b5c42bba4d0852422c36d6032577a5101daa0f35
[dosdemo] / Makefile.dj
1 src = $(wildcard src/*.c) $(wildcard src/scr/*.c) $(wildcard src/dos/*.c)
2 asmsrc = $(wildcard src/*.asm) $(wildcard src/scr/*.asm) $(wildcard src/dos/*.asm)
3 obj = $(src:.c=.cof) $(asmsrc:.asm=.cof)
4 dep = $(obj:.cof=.dep)
5 bin = demo.exe
6
7 asmsrc += font.asm
8
9 ifeq ($(findstring COMMAND.COM, $(SHELL)), COMMAND.COM)
10         hostsys = dos
11 else
12         hostsys = unix
13         TOOLPREFIX = i586-pc-msdosdjgpp-
14 endif
15
16 inc = -Isrc -Isrc/scr -Isrc/dos -Ilibs -Ilibs/imago/src -Ilibs/anim/src -Ilibs/mikmod/include
17 opt = -O3 -ffast-math -fno-strict-aliasing
18 dbg = -g
19 warn = -pedantic -Wall -Wno-unused-function -Wno-unused-variable
20
21 CC = $(TOOLPREFIX)gcc
22 AR = $(TOOLPREFIX)ar
23 CFLAGS = $(warn) -march=pentium $(dbg) $(opt) $(inc)
24 LDFLAGS = libs/imago/imago.dja libs/anim/anim.dja libs/mikmod/dos/libmikmod.a
25
26 $(bin): $(obj) imago anim mikmod
27         $(CC) -o $@ -Wl,-Map=ld.map $(obj) $(LDFLAGS)
28
29 %.cof: %.asm
30         nasm -f coff -o $@ $<
31
32 ifneq ($(hostsys), dos)
33 -include $(dep)
34 endif
35
36 %.cof: %.c
37         $(CC) $(CFLAGS) -o $@ -c $<
38
39 %.dep: %.c
40         @echo dep $@
41         @$(CPP) $(CFLAGS) $< -MM -MT $(@:.dep=.cof) >$@
42
43 .PHONY: imago
44 imago:
45         $(MAKE) -C libs/imago -f Makefile.dj
46
47 .PHONY: anim
48 anim:
49         $(MAKE) -C libs/anim -f Makefile.dj
50
51 .PHONY: mikmod
52 mikmod:
53         $(MAKE) -C libs/mikmod/dos -f Makefile.dj
54
55 .PHONY: cleanlibs
56 cleanlibs:
57         $(MAKE) -C libs/imago -f Makefile.dj clean
58         $(MAKE) -C libs/anim -f Makefile.dj clean
59         $(MAKE) -C libs/mikmod/dos -f Makefile.dj clean
60
61 .PHONY: clean
62 .PHONY: cleandep
63
64 ifeq ($(hostsys), dos)
65 clean:
66         del src\*.cof
67         del src\dos\*.cof
68         del $(bin)
69
70 cleandep:
71         del src\*.dep
72         del src\dos\*.dep
73 else
74 clean:
75         rm -f $(obj) $(bin)
76
77 cleandep:
78         rm -f $(dep)
79 endif
80
81
82 tools/csprite/csprite:
83         $(MAKE) -C tools/csprite
84
85 font.asm: data/legible.fnt tools/csprite/csprite
86         tools/csprite/csprite -n cs_font -s 8x16 -conv565 -nasm $< >$@