capture feature
[censuslogo] / Makefile
1 src = $(src_main) $(filter-out $(wildcard src/main_*.c), $(wildcard src/*.c))
2 obj = $(src:.c=.o)
3 dep = $(obj:.o=.d)
4 bin = censuslogo
5
6 sys ?= $(shell uname -s | sed 's/MINGW.*/mingw/')
7
8 CFLAGS = -pedantic -Wall -g -DNOLOAD
9 LDFLAGS = $(ldflags_sys) -lm
10
11
12 ifeq ($(sys), mingw)
13         src_main = src/main_w32.c
14         obj = $(src:.c=.w32.o)
15         bin = censuslogo.exe
16         CFLAGS += -DFREEGLUT_STATIC
17
18         ldflags_sys = -lmingw32 -mconsole -lfreeglut_static -lopengl32 -lglu32 -lgdi32 -lwinmm
19 else
20         src_main = src/main_x11.c
21         ldflags_sys = -lGL -lGLU -lX11
22 endif
23
24 $(bin): $(obj)
25         $(CC) -o $@ $(obj) $(LDFLAGS)
26
27 -include $(dep)
28
29 %.d: %.c
30         @$(CPP) $(CFLAGS) $< -MM -MT $(@:.d=.o) >$@
31
32 .PHONY: clean
33 clean:
34         rm -f $(obj) $(bin)
35
36 .PHONY: cleandep
37 cleandep:
38         rm -f $(dep)
39
40 # --- cross-compile rules for win32 ---
41 %.w32.o: %.c
42         $(CC) -o $@ $(CFLAGS) -c $<
43
44 .PHONY: cross
45 cross:
46         $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw
47
48 .PHONY: cross-clean
49 cross-clean:
50         $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw clean