ClassiCube/Makefile

183 lines
3.7 KiB
Makefile
Raw Normal View History

C_SOURCES:=$(wildcard src/*.c)
C_OBJECTS:=$(patsubst %.c, %.o, $(C_SOURCES))
OBJECTS:=$(C_OBJECTS)
2019-04-05 14:52:01 -04:00
ENAME=ClassiCube
2023-08-29 19:27:29 -04:00
DEL=rm -f
CFLAGS=-g -pipe -fno-math-errno
LDFLAGS=-g -rdynamic
2018-10-14 02:31:13 -04:00
2019-04-06 03:44:53 -04:00
ifndef $(PLAT)
ifeq ($(OS),Windows_NT)
PLAT=mingw
else
2019-04-06 09:16:52 -04:00
PLAT=$(shell uname -s | tr '[:upper:]' '[:lower:]')
endif
ifeq ($(PLAT),darwin)
ifeq ($(shell uname -m), x86_64)
PLAT=mac_x64
else
PLAT=mac_x32
endif
endif
2019-04-05 14:52:01 -04:00
endif
2018-10-14 02:31:13 -04:00
ifeq ($(PLAT),web)
CC=emcc
OEXT=.html
CFLAGS=-g
2023-08-19 19:28:49 -04:00
LDFLAGS=-s WASM=1 -s NO_EXIT_RUNTIME=1 -s ALLOW_MEMORY_GROWTH=1
endif
2019-04-05 14:52:01 -04:00
ifeq ($(PLAT),mingw)
CC=gcc
OEXT=.exe
CFLAGS=-g -pipe -DUNICODE -fno-math-errno
LDFLAGS=-g
2022-08-21 06:58:12 -04:00
LIBS=-mwindows -lwinmm -limagehlp
endif
2019-04-05 14:52:01 -04:00
ifeq ($(PLAT),linux)
LIBS=-lX11 -lXi -lpthread -lGL -ldl
endif
ifeq ($(PLAT),sunos)
CFLAGS=-g -pipe -fno-math-errno
LIBS=-lsocket -lX11 -lXi -lGL
endif
2019-04-06 03:44:53 -04:00
ifeq ($(PLAT),mac_x32)
CFLAGS=-g -m32 -pipe -fno-math-errno
LIBS=
2021-06-04 05:35:43 -04:00
LDFLAGS=-rdynamic -framework Carbon -framework AGL -framework OpenGL -framework IOKit
endif
2019-04-06 03:44:53 -04:00
ifeq ($(PLAT),mac_x64)
OBJECTS+=src/interop_cocoa.o
CFLAGS=-g -m64 -pipe -fno-math-errno
LIBS=
LDFLAGS=-rdynamic -framework Cocoa -framework OpenGL -framework IOKit -lobjc
endif
ifeq ($(PLAT),freebsd)
CFLAGS=-g -pipe -I /usr/local/include -fno-math-errno
LDFLAGS=-L /usr/local/lib -rdynamic
LIBS=-lexecinfo -lGL -lX11 -lXi -lpthread
endif
2019-04-06 03:44:53 -04:00
ifeq ($(PLAT),openbsd)
CFLAGS=-g -pipe -I /usr/X11R6/include -I /usr/local/include -fno-math-errno
LDFLAGS=-L /usr/X11R6/lib -L /usr/local/lib -rdynamic
LIBS=-lexecinfo -lGL -lX11 -lXi -lpthread
endif
2019-04-06 03:44:53 -04:00
ifeq ($(PLAT),netbsd)
CFLAGS=-g -pipe -I /usr/X11R7/include -I /usr/pkg/include -fno-math-errno
LDFLAGS=-L /usr/X11R7/lib -L /usr/pkg/lib -rdynamic
LIBS=-lexecinfo -lGL -lX11 -lXi -lpthread
endif
ifeq ($(PLAT),dragonfly)
CFLAGS=-g -pipe -I /usr/local/include -fno-math-errno
LDFLAGS=-L /usr/local/lib -rdynamic
LIBS=-lexecinfo -lGL -lX11 -lXi -lpthread
endif
2019-11-11 02:23:50 -05:00
ifeq ($(PLAT),haiku)
OBJECTS+=src/interop_BeOS.o
CFLAGS=-g -pipe -fno-math-errno
2019-11-11 02:23:50 -05:00
LDFLAGS=-g
LIBS=-lGL -lnetwork -lstdc++ -lbe -lgame -ltracker
2019-11-11 02:23:50 -05:00
endif
2023-06-29 05:45:27 -04:00
ifeq ($(PLAT),beos)
OBJECTS+=src/interop_BeOS.o
2023-06-29 05:45:27 -04:00
CFLAGS=-g -pipe
LDFLAGS=-g
LIBS=-lGL -lnetwork -lstdc++ -lbe -lgame -ltracker
2023-06-29 05:45:27 -04:00
endif
2022-10-18 06:27:16 -04:00
ifeq ($(PLAT),serenityos)
LIBS=-lgl -lSDL2
endif
ifeq ($(PLAT),irix)
CC=gcc
LIBS=-lGL -lX11 -lXi -lpthread -ldl
endif
ifeq ($(OS),Windows_NT)
DEL=del
endif
2019-04-05 14:52:01 -04:00
default: $(PLAT)
web:
$(MAKE) $(ENAME) PLAT=web
2019-04-05 14:52:01 -04:00
linux:
$(MAKE) $(ENAME) PLAT=linux
2019-04-05 14:52:01 -04:00
mingw:
$(MAKE) $(ENAME) PLAT=mingw
sunos:
$(MAKE) $(ENAME) PLAT=sunos
mac_x32:
$(MAKE) $(ENAME) PLAT=mac_x32
mac_x64:
$(MAKE) $(ENAME) PLAT=mac_x64
2019-04-06 03:44:53 -04:00
freebsd:
$(MAKE) $(ENAME) PLAT=freebsd
2019-04-06 03:44:53 -04:00
openbsd:
$(MAKE) $(ENAME) PLAT=openbsd
2019-04-06 03:44:53 -04:00
netbsd:
$(MAKE) $(ENAME) PLAT=netbsd
dragonfly:
$(MAKE) $(ENAME) PLAT=dragonfly
haiku:
$(MAKE) $(ENAME) PLAT=haiku
2023-06-29 05:45:27 -04:00
beos:
$(MAKE) $(ENAME) PLAT=beos
2022-10-18 06:27:16 -04:00
serenityos:
$(MAKE) $(ENAME) PLAT=serenityos
irix:
$(MAKE) $(ENAME) PLAT=irix
2023-08-19 19:28:49 -04:00
# consoles builds require special handling, so are moved to
# separate makefiles to avoid having one giant messy makefile
psp:
$(MAKE) -f misc/psp/Makefile PLAT=psp
vita:
$(MAKE) -f misc/vita/Makefile PLAT=vita
2023-09-08 23:28:23 -04:00
ps3:
$(MAKE) -f misc/ps3/Makefile PLAT=ps3
2023-11-22 04:56:11 -05:00
ps2:
$(MAKE) -f misc/ps2/Makefile PLAT=ps2
3ds:
$(MAKE) -f misc/3ds/Makefile PLAT=3ds
2023-06-03 02:55:46 -04:00
wii:
$(MAKE) -f misc/wii/Makefile PLAT=wii
2023-06-03 02:55:46 -04:00
gamecube:
$(MAKE) -f misc/gc/Makefile PLAT=gamecube
dreamcast:
$(MAKE) -f misc/dreamcast/Makefile PLAT=dreamcast
xbox:
$(MAKE) -f misc/xbox/Makefile PLAT=xbox
xbox360:
2023-11-19 00:15:34 -05:00
$(MAKE) -f misc/xbox360/Makefile PLAT=xbox360
2023-10-28 07:07:22 -04:00
n64:
$(MAKE) -f misc/n64/Makefile PLAT=n64
2018-10-14 02:31:13 -04:00
clean:
2019-04-05 14:52:01 -04:00
$(DEL) $(OBJECTS)
$(ENAME): $(OBJECTS)
$(CC) $(LDFLAGS) -o $@$(OEXT) $(OBJECTS) $(LIBS)
$(C_OBJECTS): %.o : %.c
$(CC) $(CFLAGS) -c $< -o $@
src/interop_cocoa.o: src/interop_cocoa.m
$(CC) $(CFLAGS) -c $< -o $@
src/interop_BeOS.o: src/interop_BeOS.cpp
$(CC) $(CFLAGS) -c $< -o $@