|
| 1 | +# |
| 2 | +# bspc Makefile |
| 3 | +# |
| 4 | +# GNU Make required |
| 5 | +# |
| 6 | +COMPILE_PLATFORM=$(shell uname | sed -e 's/_.*//' | tr '[:upper:]' '[:lower:]' | sed -e 's/\//_/g') |
| 7 | +COMPILE_ARCH=$(shell uname -m | sed -e 's/i.86/x86/' | sed -e 's/^arm.*/arm/') |
| 8 | + |
| 9 | +ifeq ($(COMPILE_PLATFORM),sunos) |
| 10 | + # Solaris uname and GNU uname differ |
| 11 | + COMPILE_ARCH=$(shell uname -p | sed -e 's/i.86/x86/') |
| 12 | +endif |
| 13 | + |
| 14 | +############################################################################# |
| 15 | +# |
| 16 | +# If you require a different configuration from the defaults below, create a |
| 17 | +# new file named "Makefile.local" in the same directory as this file and define |
| 18 | +# your parameters there. This allows you to change configuration without |
| 19 | +# causing problems with keeping up to date with the repository. |
| 20 | +# |
| 21 | +############################################################################# |
| 22 | +-include Makefile.local |
| 23 | + |
| 24 | +ifeq ($(COMPILE_PLATFORM),cygwin) |
| 25 | + PLATFORM=mingw32 |
| 26 | +endif |
| 27 | + |
| 28 | +ifndef PLATFORM |
| 29 | +PLATFORM=$(COMPILE_PLATFORM) |
| 30 | +endif |
| 31 | + |
1 | 32 | CC=gcc |
2 | 33 | CFLAGS=\ |
3 | 34 | -Dstricmp=strcasecmp -DCom_Memcpy=memcpy -DCom_Memset=memset \ |
4 | | - -DMAC_STATIC= -DQDECL= -DLINUX -DBSPC -D_FORTIFY_SOURCE=2 \ |
| 35 | + -DMAC_STATIC= -DQDECL= -DBSPC -D_FORTIFY_SOURCE=2 \ |
5 | 36 | -fno-common \ |
6 | | - -I. -Ideps -Wall |
| 37 | + -I. -Ideps -Wall $(EXPAT_CFLAGS) |
| 38 | + |
| 39 | +ifneq (,$(findstring "$(PLATFORM)", "linux" "gnu_kfreebsd" "kfreebsd-gnu" "gnu")) |
| 40 | + CFLAGS += -DHAVE_GETRANDOM -DLINUX |
| 41 | +endif |
| 42 | +ifeq ($(PLATFORM),darwin) |
| 43 | + CFLAGS += -DHAVE_ARC4RANDOM -DLINUX |
| 44 | +endif |
7 | 45 |
|
8 | 46 | RELEASE_CFLAGS=-O3 -ffast-math |
9 | 47 | DEBUG_CFLAGS=-g -O0 -ffast-math |
@@ -80,20 +118,24 @@ GAME_OBJS = \ |
80 | 118 | #tetrahedron.o |
81 | 119 |
|
82 | 120 | EXEC = bspc |
| 121 | +ifdef MINGW |
| 122 | + BINEXT=.exe |
| 123 | +endif |
| 124 | + |
83 | 125 |
|
84 | 126 | all: release |
85 | 127 |
|
86 | 128 | debug: CFLAGS += $(DEBUG_CFLAGS) |
87 | | -debug: $(EXEC)_g |
| 129 | +debug: $(EXEC)_g$(BINEXT) |
88 | 130 |
|
89 | 131 | release: CFLAGS += $(RELEASE_CFLAGS) |
90 | | -release: $(EXEC) |
| 132 | +release: $(EXEC)$(BINEXT) |
91 | 133 |
|
92 | | -$(EXEC): $(GAME_OBJS) |
| 134 | +$(EXEC)$(BINEXT): $(GAME_OBJS) |
93 | 135 | $(CC) -o $@ $(GAME_OBJS) $(LDFLAGS) |
94 | 136 | strip $@ |
95 | 137 |
|
96 | | -$(EXEC)_g: $(GAME_OBJS) |
| 138 | +$(EXEC)_g$(BINEXT): $(GAME_OBJS) |
97 | 139 | $(CC) -o $@ $(GAME_OBJS) $(LDFLAGS) |
98 | 140 |
|
99 | 141 | ############################################################################# |
|
0 commit comments