BSP construction debugging
[dosdemo] / Makefile.dj
1 src = $(wildcard src/*.c) $(wildcard src/dos/*.c)
2 asmsrc = $(wildcard src/*.asm)
3 obj = $(src:.c=.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/dos -Ilibs/imago/src -Ilibs/mikmod/include
15 opt = -O3 -ffast-math
16 dbg = -g
17
18 CC = $(TOOLPREFIX)gcc
19 AR = $(TOOLPREFIX)ar
20 CFLAGS = -pedantic -Wall -march=pentium $(dbg) $(opt) $(inc)
21 LDFLAGS = libs/imago/imago.dja libs/mikmod/dos/libmikmod.a
22
23 $(bin): $(obj) imago mikmod
24         $(CC) -o $@ -Wl,-Map=ld.map $(obj) $(LDFLAGS)
25
26 %.cof: %.asm
27         nasm -f coff -o $@ $<
28
29 -include $(dep)
30
31 %.cof: %.c
32         $(CC) $(CFLAGS) -o $@ -c $<
33
34 %.dep: %.c
35         @$(CPP) $(CFLAGS) $< -MM -MT $(@:.dep=.cof) >$@
36
37 .PHONY: imago
38 imago:
39         $(MAKE) -C libs/imago -f Makefile.dj
40
41 .PHONY: mikmod
42 mikmod:
43         $(MAKE) -C libs/mikmod/dos -f Makefile.dj
44
45 .PHONY: cleanlibs
46 cleanlibs:
47         $(MAKE) -C libs/imago -f Makefile.dj clean
48         $(MAKE) -C libs/mikmod/dos -f Makefile.dj clean
49
50 .PHONY: clean
51 .PHONY: cleandep
52
53 ifeq ($(hostsys), dos)
54 clean:
55         del src\*.cof
56         del src\dos\*.cof
57         del $(bin)
58
59 cleandep:
60         del src\*.dep
61         del src\dos\*.dep
62 else
63 clean:
64         rm -f $(obj) $(bin)
65
66 cleandep:
67         rm -f $(dep)
68 endif