9dbd84fade2654418862a7f39fe5f4cdfaee733b
[retroray] / GNUmakefile
1 -include config.mk
2
3 # --- default build option values ---
4 build_gfx ?= gl
5 build_opt ?= false
6 build_dbg ?= true
7 # -----------------------------------
8
9 gawsrc_gl = src/gaw/gaw_gl.c
10 gawsrc_sw = src/gaw/gaw_sw.c src/gaw/gawswtnl.c src/gaw/polyfill.c src/gaw/polyclip.c
11
12 src = $(wildcard src/*.c) $(wildcard src/modern/*.c) $(gawsrc_$(build_gfx))
13 obj = $(src:.c=.o)
14 dep = $(src:.c=.d)
15 bin = retrorend
16
17 warn = -pedantic -Wall
18 dbg = -g
19 #opt = -O3
20 def = -DMINIGLUT_USE_LIBC
21 inc = -Isrc -Isrc/modern -Ilibs -Ilibs/imago/src -Ilibs/treestor/include -Ilibs/drawtext
22 libs = libs/unix/imago.a libs/unix/treestor.a libs/unix/drawtext.a
23
24 CFLAGS = $(warn) $(dbg) $(opt) $(inc) $(def) $(cflags_$(rend)) -MMD
25 LDFLAGS = $(ldsys_pre) $(libs) $(ldsys)
26
27 sys := $(shell uname -s | sed 's/MINGW.*/mingw/')
28 ifeq ($(sys), mingw)
29         bin = game.exe
30
31         ldsys = -lopengl32 -lglu32 -lgdi32 -lwinmm
32         ldsys_pre = -static-libgcc -lmingw32 -mconsole
33 else
34         ldsys = -lGL -lGLU -lX11 -lm
35 endif
36
37 $(bin): $(obj) libs
38         $(CC) -o $@ $(obj) $(LDFLAGS)
39
40 -include $(dep)
41
42 .c.o:
43         $(CC) $(CFLAGS) -c $< -o $@
44
45 .PHONY: clean
46 clean:
47         rm -f $(obj) $(bin)
48
49 .PHONY: cleandep
50 cleandep:
51         rm -f $(dep)
52
53 .PHONY: libs
54 libs:
55         $(MAKE) -C libs
56
57 .PHONY: clean-libs
58 clean-libs:
59         $(MAKE) -C libs clean
60
61 .PHONY: data
62 data:
63         tools/procdata
64
65 .PHONY: crosswin
66 crosswin:
67         $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw
68
69 .PHONY: crosswin-clean
70 crosswin-clean:
71         $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw clean
72
73 .PHONY: crosswin-cleandep
74 crosswin-cleandep:
75         $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw cleandep