updated readme
[andemo] / Makefile
1 src = $(wildcard src/*.c) $(wildcard src/scr/*.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 -DNDEBUG
9 def = -DMINIGLUT_USE_LIBC -DGLEW_STATIC
10 incdir = -Isrc -Ilibs -Ilibs/imago/src -Ilibs/treestore -Ilibs/glew
11 libs_path = libs/unix
12 libdir = -L$(libs_path)
13
14 libs = $(libs_path)/libimago.a $(libs_path)/libtreestore.a $(libs_path)/libanim.a \
15            $(libs_path)/libpsys.a
16
17 CFLAGS = $(warn) $(dbg) $(opt) $(def) $(incdir) -fcommon -MMD
18 LDFLAGS = $(libdir) $(libsys) $(libgl) -limago -lpsys -lanim -ltreestore $(libc)
19
20 sys ?= $(shell uname -s | sed 's/MINGW.*/mingw/')
21 ifeq ($(sys), mingw)
22         obj = $(src:.c=.w32.o)
23         bin = demo.exe
24         libgl = -lopengl32
25         libsys = -lmingw32 -lgdi32 -lwinmm -mconsole
26         libs_path = libs/w32
27         libc = -lm
28 else
29         libgl = -lGL -lX11 -lXext
30         libc = -lm -ldl
31 endif
32
33 $(bin): $(obj) Makefile $(libs)
34         $(CC) -o $@ $(obj) $(LDFLAGS)
35
36 -include $(dep)
37
38 %.w32.o: %.c
39         $(CC) -o $@ $(CFLAGS) -c $<
40
41 $(libs_path)/%.a:
42         $(MAKE) -C libs
43
44 .PHONY: clean
45 clean:
46         rm -f $(obj) $(bin)
47
48 .PHONY: cleandep
49 cleandep:
50         rm -f $(dep)
51
52 .PHONY: libs
53 libs:
54         $(MAKE) -C libs
55
56 .PHONY: clean-libs
57 clean-libs:
58         $(MAKE) -C libs clean
59
60 .PHONY: android
61 android:
62         $(MAKE) -f Makefile.android
63
64 .PHONY: android-clean
65 android-clean:
66         $(MAKE) -f Makefile.android clean
67
68 .PHONY: android-libs
69 android-libs:
70         $(MAKE) -f Makefile.android libs
71
72 .PHONY: install
73 install:
74         $(MAKE) -f Makefile.android install
75
76 .PHONY: run
77 run:
78         $(MAKE) -f Makefile.android install run
79
80 .PHONY: stop
81 stop:
82         $(MAKE) -f Makefile.android stop
83
84 .PHONY: cross
85 cross:
86         $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw
87
88 .PHONY: cross-libs
89 cross-libs:
90         $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw -C libs
91
92 .PHONY: cross-clean
93 cross-clean:
94         $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw clean
95
96 .PHONY: cross-clean-libs
97 cross-clean-libs:
98         $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw -C libs clean