fixed DJGPP makefile
[dosdemo] / Makefile.dj
1 src = $(wildcard src/*.c) $(wildcard src/3dgfx/*.c) $(wildcard src/scr/*.c) \
2           $(wildcard src/dos/*.c)
3 asmsrc = $(wildcard src/*.asm) $(wildcard src/scr/*.asm) $(wildcard src/dos/*.asm)
4 obj = $(src:.c=.odj) $(asmsrc:.asm=.odj)
5 dep = $(src:.c=.d)
6 bin = demo.exe
7
8 asmsrc += cspr/dbgfont.asm cspr/confont.asm
9 bindata = data/loading.img
10
11 ifeq ($(findstring COMMAND.COM, $(SHELL)), COMMAND.COM)
12         hostsys = dos
13 else
14         hostsys = unix
15         TOOLPREFIX = i586-pc-msdosdjgpp-
16 endif
17
18 inc = -Isrc -Isrc/3dgfx -Isrc/scr -Isrc/dos -Ilibs \
19           -Ilibs/imago/src -Ilibs/anim/src -Ilibs/midas
20 opt = -O3 -ffast-math -fno-strict-aliasing
21 warn = -pedantic -Wall -Wno-unused-function -Wno-unused-variable
22
23 ifdef RELEASE
24         dbg = -g
25         def = -DNDEBUG -DNO_MUSIC
26 else
27         def = -DNO_MUSIC
28 endif
29 #prof = -pg
30
31 CC = $(TOOLPREFIX)gcc
32 AR = $(TOOLPREFIX)ar
33 CFLAGS = -march=pentium $(warn) -MMD $(dbg) $(opt) $(prof) $(inc) $(def)
34 LDFLAGS = libs/imago/imago.dja libs/anim/anim.dja libs/midas/libmidas.a
35
36 ifneq ($(hostsys), dos)
37 .PHONY: all
38 all: data $(bin)
39 endif
40
41 $(bin): $(obj) imago anim
42         $(CC) -o $@ -Wl,-Map=ld.map $(prof) $(obj) $(LDFLAGS)
43
44 %.odj: %.asm
45         nasm -f coff -o $@ $<
46
47 src/data.odj: src/data.asm $(bindata)
48
49 -include $(dep)
50
51 %.odj: %.c
52         $(CC) $(CFLAGS) -o $@ -c $<
53
54 .PHONY: imago
55 imago:
56         $(MAKE) -C libs/imago -f Makefile.dj
57
58 .PHONY: anim
59 anim:
60         $(MAKE) -C libs/anim -f Makefile.dj
61
62 .PHONY: cleanlibs
63 cleanlibs:
64         $(MAKE) -C libs/imago clean -f Makefile.dj
65         $(MAKE) -C libs/anim clean -f Makefile.dj
66
67 .PHONY: clean
68 .PHONY: cleandep
69
70 ifeq ($(hostsys), dos)
71 clean:
72         del src\*.odj
73         del src\3dgfx\*.odj
74         del src\dos\*.odj
75         del $(bin)
76
77 cleandep:
78         del src\*.d
79         del src\3dgfx\*.d
80         del src\dos\*.d
81 else
82 clean:
83         rm -f $(obj) $(bin)
84
85 cleandep:
86         rm -f $(dep)
87
88 .PHONY: data
89 data:
90         @tools/procdata
91 endif
92
93 .PHONY: strip
94 strip: $(bin)
95         $(TOOLPREFIX)strip $(bin)