2faa385d952bb33077b0ea7d49e863cff33ed2d5
[dosdemo] / Makefile
1 obj = 3dgfx.obj bsptree.obj bump.obj cfgopt.obj demo.obj djdpmi.obj dynarr.obj &
2 fract.obj gfx.obj gfxutil.obj greets.obj grise.obj hairball.obj infcubes.obj &
3 keyb.obj logger.obj main.obj mesh.obj meshload.obj metaball.obj metasurf.obj &
4 mouse.obj music.obj noise.obj plasma.obj polyclip.obj polyfill.obj polytest.obj &
5 rbtree.obj sball.obj screen.obj smoketxt.obj thunder.obj tilemaze.obj timer.obj &
6 tinyfps.obj treestor.obj ts_text.obj tunnel.obj util.obj vbe.obj vga.obj
7
8 bin = demo.exe
9
10 libs = imago.lib anim.lib
11
12 def = -dM_PI=3.141592653589793
13 opt = -5 -fp5 -otexan -oh -oi -ei
14 dbg = -d2
15
16 !ifdef __UNIX__
17 incpath = -Isrc -Isrc/dos -Ilibs -Ilibs/imago/src -Ilibs/anim/src
18 libpath = libpath libs/imago libpath libs/anim
19 RM = rm -f
20 !else
21 incpath = -Isrc -Isrc\dos -Ilibs -Ilibs\imago\src -Ilibs\anim\src
22 libpath = libpath libs\imago libpath libs\anim
23 RM = del
24 !endif
25
26 AS = nasm
27 CC = wcc386
28 CXX = wpp386
29 ASFLAGS = -fobj
30 CFLAGS = $(dbg) $(opt) $(def) -zq -bt=dos $(incpath)
31 CXXFLAGS = $(CFLAGS)
32 LDFLAGS = option stack=16k option map $(libpath) library { $(libs) }
33 LD = wlink
34
35 $(bin): cflags.occ $(obj) libs/imago/imago.lib
36         %write objects.lnk $(obj)
37         %write ldflags.lnk $(LDFLAGS)
38         $(LD) debug all name $@ system dos4g file { @objects } @ldflags
39
40 .c: src;src/dos
41 .cc: src;src/dos
42 .asm: src;src/dos
43
44 cflags.occ: Makefile
45         %write $@ $(CFLAGS)
46
47 cxxflags.occ: Makefile
48         %write $@ $(CXXFLAGS)
49
50 .c.obj: .autodepend
51         $(CC) -fo=$@ @cflags.occ $[*
52
53 .cc.obj: .autodepend
54         $(CXX) -fo=$@ @cxxflags.occ $[*
55
56 .asm.obj:
57         $(AS) $(ASFLAGS) -o $@ $[*.asm
58
59 clean: .symbolic
60         $(RM) *.obj
61         $(RM) *.occ
62         $(RM) *.lnk
63         $(RM) $(bin)