fixed 16bpp offsets in csprite generator (hardcoded for now)
[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 ifeq ($(findstring COMMAND.COM, $(SHELL)), COMMAND.COM)
8         hostsys = dos
9 else
10         hostsys = unix
11         TOOLPREFIX = i586-pc-msdosdjgpp-
12 endif
13
14 inc = -Isrc -Isrc/scr -Isrc/dos -Ilibs -Ilibs/imago/src -Ilibs/anim/src -Ilibs/mikmod/include
15 opt = -O3 -ffast-math -fno-strict-aliasing
16 dbg = -g
17 warn = -pedantic -Wall -Wno-unused-function -Wno-unused-variable
18
19 CC = $(TOOLPREFIX)gcc
20 AR = $(TOOLPREFIX)ar
21 CFLAGS = $(warn) -march=pentium $(dbg) $(opt) $(inc)
22 LDFLAGS = libs/imago/imago.dja libs/anim/anim.dja libs/mikmod/dos/libmikmod.a
23
24 $(bin): $(obj) imago anim mikmod
25         $(CC) -o $@ -Wl,-Map=ld.map $(obj) $(LDFLAGS)
26
27 %.cof: %.asm
28         nasm -f coff -o $@ $<
29
30 ifneq ($(hostsys), dos)
31 -include $(dep)
32 endif
33
34 %.cof: %.c
35         $(CC) $(CFLAGS) -o $@ -c $<
36
37 %.dep: %.c
38         @echo dep $@
39         @$(CPP) $(CFLAGS) $< -MM -MT $(@:.dep=.cof) >$@
40
41 .PHONY: imago
42 imago:
43         $(MAKE) -C libs/imago -f Makefile.dj
44
45 .PHONY: anim
46 anim:
47         $(MAKE) -C libs/anim -f Makefile.dj
48
49 .PHONY: mikmod
50 mikmod:
51         $(MAKE) -C libs/mikmod/dos -f Makefile.dj
52
53 .PHONY: cleanlibs
54 cleanlibs:
55         $(MAKE) -C libs/imago -f Makefile.dj clean
56         $(MAKE) -C libs/anim -f Makefile.dj clean
57         $(MAKE) -C libs/mikmod/dos -f Makefile.dj clean
58
59 .PHONY: clean
60 .PHONY: cleandep
61
62 ifeq ($(hostsys), dos)
63 clean:
64         del src\*.cof
65         del src\dos\*.cof
66         del $(bin)
67
68 cleandep:
69         del src\*.dep
70         del src\dos\*.dep
71 else
72 clean:
73         rm -f $(obj) $(bin)
74
75 cleandep:
76         rm -f $(dep)
77 endif