accidentally removed the watcom makefile
[dosdemo] / Makefile.dj
1 src = $(wildcard src/*.c) $(wildcard src/dos/*.c)
2 asmsrc = $(wildcard src/*.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/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 -include $(dep)
31
32 %.cof: %.c
33         $(CC) $(CFLAGS) -o $@ -c $<
34
35 %.dep: %.c
36         @$(CPP) $(CFLAGS) $< -MM -MT $(@:.dep=.cof) >$@
37
38 .PHONY: imago
39 imago:
40         $(MAKE) -C libs/imago -f Makefile.dj
41
42 .PHONY: anim
43 anim:
44         $(MAKE) -C libs/anim -f Makefile.dj
45
46 .PHONY: mikmod
47 mikmod:
48         $(MAKE) -C libs/mikmod/dos -f Makefile.dj
49
50 .PHONY: cleanlibs
51 cleanlibs:
52         $(MAKE) -C libs/imago -f Makefile.dj clean
53         $(MAKE) -C libs/anim -f Makefile.dj clean
54         $(MAKE) -C libs/mikmod/dos -f Makefile.dj clean
55
56 .PHONY: clean
57 .PHONY: cleandep
58
59 ifeq ($(hostsys), dos)
60 clean:
61         del src\*.cof
62         del src\dos\*.cof
63         del $(bin)
64
65 cleandep:
66         del src\*.dep
67         del src\dos\*.dep
68 else
69 clean:
70         rm -f $(obj) $(bin)
71
72 cleandep:
73         rm -f $(dep)
74 endif