minor makefile fixes
[retrobench] / Makefile.dj
1 src = $(wildcard src/*.c) $(wildcard src/dos/*.c)
2 ssrc = $(wildcard src/*.s) sinlut.s
3 obj = $(src:.c=.odj) $(ssrc:.s=.odj)
4 dep = $(src:.c=.d)
5 coff = rbench
6 bin = $(coff).exe
7 bin0 = $(coff)0.exe
8
9 ifeq ($(findstring COMMAND.COM, $(SHELL)), COMMAND.COM)
10         host = dos
11         LUTGEN = tools/lutgen.exe
12 else
13         host = unix
14         TC = i586-pc-msdosdjgpp-
15         LUTGEN = tools/lutgen
16 endif
17
18 CC = $(TC)gcc
19 AS = $(TC)as
20
21 warn = -pedantic -Wall -Wno-deprecated-declarations
22 dbg = -g
23 opt = -O3 -ffast-math -fno-strict-aliasing
24 inc = -Isrc
25 def = -DNO_STDINT_H
26
27 CFLAGS = $(warn) $(dbg) $(opt) $(def) $(inc) -MMD
28 LDFLAGS = -Wl,-Map=link.map
29
30 $(bin): $(obj)
31         $(CC) -o $@ $(obj) $(LDFLAGS)
32
33 $(bin0): $(bin)
34         exe2coff $<
35         copy /b \djgpp\bin\cwsdstr0.exe+$(coff) $@
36
37 sinlut.s: $(LUTGEN)
38         $(LUTGEN) >$@
39
40 -include $(dep)
41 -include *.d
42
43 %.odj: %.c
44         $(CC) -o $@ $(CFLAGS) -c $<
45
46 %.odj: %.s
47         $(AS) -o $@ $(ASFLAGS) $<
48
49 ifeq ($(host), dos)
50 .PHONY: clean
51 clean:
52         del src\*.odj
53         del src\dos\*.odj
54         del *.odj
55         del $(bin)
56         del sinlut.s
57
58 .PHONY: cleandep
59 cleandep:
60         del src\*.d
61         del src\dos\*.d
62         del *.d
63 else
64 .PHONY: clean
65 clean:
66         rm -f $(obj) $(bin)
67
68 .PHONY: clean
69 cleandep:
70         rm -f $(dep)
71 endif
72
73 $(LUTGEN): tools/lutgen.c
74         gcc -o $@ $< -lm