fd57f473809e83886c911ce503ce8e4e9ac72815
[andemo] / Makefile
1 src = $(wildcard src/*.c) $(wildcard src/pc/*.c) libs/glew/glew.c
2 obj = $(src:.c=.o)
3 dep = $(src:.c=.d)
4 bin = demo
5
6 warn = -pedantic -Wall
7 dbg = -g
8 #opt = -O3 -ffast-math -fno-strict-aliasing
9 def = -DMINIGLUT_USE_LIBC -DGLEW_STATIC
10 incdir = -Isrc -Ilibs/imago/src -Ilibs/glew
11 libdir = -Llibs/unix
12
13 CFLAGS = $(warn) $(dbg) $(opt) $(def) $(incdir) -fcommon -MMD
14 LDFLAGS = $(libsys) $(libgl) -lm -limago
15
16 sys ?= $(shell uname -s | sed 's/MINGW.*/mingw/')
17 ifeq ($(sys), mingw)
18         obj = $(src:.c=.w32.o)
19         bin = demo.exe
20         libgl = -lopengl32
21         libsys = -lmingw32 -lgdi32 -lwinmm -mconsole
22 else
23         libgl = -lGL -lX11 -lXext
24 endif
25
26 $(bin): $(obj)
27         $(CC) -o $@ $(obj) $(LDFLAGS)
28
29 -include $(dep)
30
31 %.w32.o: %.c
32         $(CC) -o $@ $(CFLAGS) -c $<
33
34 .PHONY: clean
35 clean:
36         rm -f $(obj) $(bin)
37
38 .PHONY: cleandep
39 cleandep:
40         rm -f $(dep)
41
42 .PHONY: libs
43 libs:
44         $(MAKE) -C libs
45
46 .PHONY: clean-libs
47 clean-libs:
48         $(MAKE) -C libs clean
49
50 .PHONY: android
51 android:
52         $(MAKE) -f Makefile.android
53
54 .PHONY: android-clean
55 android-clean:
56         $(MAKE) -f Makefile.android clean
57
58 .PHONY: android-libs
59 android-libs:
60         $(MAKE) -f Makefile.android libs
61
62 .PHONY: run
63 run:
64         $(MAKE) -f Makefile.android install run
65
66 .PHONY: stop
67 stop:
68         $(MAKE) -f Makefile.android stop
69
70 .PHONY: cross
71 cross:
72         $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw
73
74 .PHONY: cross-libs
75 cross-libs:
76         $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw -C libs
77
78 .PHONY: cross-clean
79 cross-clean:
80         $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw clean
81
82 .PHONY: cross-clean-libs
83 cross-clean-libs:
84         $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw -C libs clean