adding libimago
[andemo] / Makefile
1 src = $(wildcard src/*.c) $(wildcard src/pc/*.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
10 incdir = -Isrc
11
12 CFLAGS = $(warn) $(dbg) $(opt) $(def) $(incdir) -fcommon -MMD
13 LDFLAGS = $(libsys) $(libgl) -lm
14
15 sys ?= $(shell uname -s | sed 's/MINGW.*/mingw/')
16 ifeq ($(sys), mingw)
17         obj = $(src:.c=.w32.o)
18         bin = demo.exe
19         libgl = -lopengl32
20         libsys = -lmingw32 -lgdi32 -lwinmm -mconsole
21 else
22         libgl = -lGL -lX11 -lXext
23 endif
24
25 $(bin): $(obj)
26         $(CC) -o $@ $(obj) $(LDFLAGS)
27
28 -include $(dep)
29
30 %.w32.o: %.c
31         $(CC) -o $@ $(CFLAGS) -c $<
32
33 .PHONY: clean
34 clean:
35         rm -f $(obj) $(bin)
36
37 .PHONY: cleandep
38 cleandep:
39         rm -f $(dep)
40
41 .PHONY: libs
42 libs:
43         $(MAKE) -C libs
44
45 .PHONY: clean-libs
46 clean-libs:
47         $(MAKE) -C libs clean
48
49
50 .PHONY: cross
51 cross:
52         $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw
53
54 .PHONY: cross-libs
55 cross-libs:
56         $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw -C libs
57
58 .PHONY: cross-clean
59 cross-clean:
60         $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw clean
61
62 .PHONY: cross-clean-libs
63 cross-clean-libs:
64         $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw -C libs clean