added assfile
[raydungeon] / Makefile
1 src = $(wildcard src/*.c)
2 obj = $(src:.c=.o)
3 dep = $(src:.c=.d)
4 bin = game
5
6 warn = -pedantic -Wall
7 dbg = -g
8 def = -DMINIGLUT_USE_LIBC
9
10 inc = -Ilibs/assfile
11 liblist = libs/assfile/assfile.a
12
13 CFLAGS = $(warn) $(opt) $(dbg) $(inc) $(def) -MMD
14 LDFLAGS = $(syslib) $(libgl) $(libs) -lm
15
16 sys := $(shell uname -s | sed 's/MINGW.*/mingw/')
17 ifeq ($(sys), mingw)
18         syslib = -mwindows
19         libgl = -lopengl32 -lgdi32 -lwinmm
20
21         obj = $(src:.c=.w32.o)
22         dep = $(src:.c=.w32.d)
23         bin = game.exe
24         libs = $(liblist:.a=.w32.a)
25 else
26         libgl = -lGL -lGLU -lX11
27         libs = $(liblist)
28 endif
29
30 $(bin): $(obj) libs
31         $(CC) -o $@ $(obj) $(LDFLAGS)
32
33 -include $(dep)
34
35 %.w32.o: %.c
36         $(CC) -c $< $(CFLAGS) -o $@
37
38 .PHONY: libs
39 libs:
40         $(MAKE) -C libs/assfile
41
42 .PHONY: clean-libs
43 clean-libs:
44         $(MAKE) -C libs/assfile clean
45
46 .PHONY: clean
47 clean:
48         rm -f $(obj) $(bin)
49
50 .PHONY: cross
51 cross:
52         $(MAKE) CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar sys=mingw
53
54 .PHONY: clean-cross
55 clean-cross:
56         $(MAKE) sys=mingw clean