- instructed gcc to emit only pentium1 instructions
[dosdemo] / Makefile.dj
1 src = $(wildcard src/*.c) $(wildcard src/dos/*.c)
2 obj = $(src:.c=.o)
3 dep = $(obj:.o=.d)
4 bin = demo.exe
5
6 ifeq ($(findstring COMMAND.COM, $(SHELL)), COMMAND.COM)
7         hostsys = dos
8 else
9         hostsys = unix
10         TOOLPREFIX = i586-pc-msdosdjgpp-
11 endif
12
13 inc = -Isrc -Isrc/dos -Ilibs/imago/src -Ilibs/oldmik/src
14 opt = -O3 -ffast-math
15 dbg = -g
16
17 CC = $(TOOLPREFIX)gcc
18 AR = $(TOOLPREFIX)ar
19 CFLAGS = -pedantic -Wall -march=pentium $(dbg) $(opt) $(inc)
20 LDFLAGS = libs/imago/imago.a libs/oldmik/mikmod.a
21
22 $(bin): $(obj) imago mikmod
23         $(CC) -o $@ -Wl,-Map=ld.map $(obj) $(LDFLAGS)
24
25 -include $(dep)
26
27 %.d: %.c
28         @$(CPP) $(CFLAGS) $< -MM -MT $(@:.d=.o) >$@
29
30 .PHONY: imago
31 imago:
32         $(MAKE) -C libs/imago -f Makefile.dj
33
34 .PHONY: mikmod
35 mikmod:
36         $(MAKE) -C libs/oldmik -f Makefile.dj
37
38 .PHONY: cleanlibs
39 cleanlibs:
40         $(MAKE) -C libs/imago -f Makefile.dj clean
41         $(MAKE) -C libs/oldmik -f Makefile.dj clean
42
43 .PHONY: clean
44 .PHONY: cleandep
45
46 ifeq ($(hostsys), dos)
47 clean:
48         del src\*.o
49         del src\dos\*.o
50         del $(bin)
51
52 cleandep:
53         del src\*.d
54         del src\dos\*.d
55 else
56 clean:
57         rm -f $(obj) $(bin)
58
59 cleandep:
60         rm -f $(dep)
61 endif