initial raytracing experiment
[dosdemo] / Makefile
1 !ifdef __UNIX__
2 dosobj = src/dos/audos.obj src/dos/djdpmi.obj src/dos/gfx.obj src/dos/keyb.obj &
3         src/dos/logger.obj src/dos/main.obj src/dos/sball.obj src/dos/timer.obj &
4         src/dos/vbe.obj src/dos/vga.obj src/dos/watdpmi.obj src/dos/mouse.obj
5 3dobj = src/3dgfx/3dgfx.obj src/3dgfx/mesh.obj src/3dgfx/meshload.obj &
6         src/3dgfx/polyclip.obj src/3dgfx/polyfill.obj
7 srcobj = src/bsptree.obj src/cfgopt.obj src/console.obj src/demo.obj &
8         src/dynarr.obj src/gfxutil.obj src/metasurf.obj src/noise.obj &
9         src/rbtree.obj src/screen.obj src/tinyfps.obj src/treestor.obj &
10         src/image.obj src/ts_text.obj src/util.obj src/util_s.obj src/cpuid.obj &
11         src/cpuid_s.obj src/darray.obj src/data.obj
12 scrobj = src/scr/bump.obj src/scr/fract.obj src/scr/greets.obj &
13         src/scr/grise.obj src/scr/hairball.obj src/scr/infcubes.obj &
14         src/scr/metaball.obj src/scr/plasma.obj src/scr/polytest.obj &
15         src/scr/smoketxt.obj src/scr/thunder.obj src/scr/tilemaze.obj &
16         src/scr/tunnel.obj src/scr/cybersun.obj src/scr/raytrace.obj src/scr/rt.obj
17 csprobj = cspr/dbgfont.obj cspr/confont.obj
18
19 incpath = -Isrc -Isrc/dos -Isrc/3dgfx -Ilibs -Ilibs/imago/src -Ilibs/anim/src &
20         -Ilibs/midas
21 libpath = libpath libs/imago libpath libs/anim libpath libs/midas
22 !else
23
24 dosobj = src\dos\audos.obj src\dos\djdpmi.obj src\dos\gfx.obj src\dos\keyb.obj &
25         src\dos\logger.obj src\dos\main.obj src\dos\sball.obj src\dos\timer.obj &
26         src\dos\vbe.obj src\dos\vga.obj src\dos\watdpmi.obj src\dos\mouse.obj
27 3dobj = src\3dgfx\3dgfx.obj src\3dgfx\mesh.obj src\3dgfx\meshload.obj &
28         src\3dgfx\polyclip.obj src\3dgfx\polyfill.obj
29 srcobj = src\bsptree.obj src\cfgopt.obj src\console.obj src\demo.obj &
30         src\dynarr.obj src\gfxutil.obj src\metasurf.obj src\noise.obj &
31         src\rbtree.obj src\screen.obj src\tinyfps.obj src\treestor.obj &
32         src\image.obj src\ts_text.obj src\util.obj src\util_s.obj src\cpuid.obj &
33         src\cpuid_s.obj src\darray.obj src\data.obj
34 scrobj = src\scr\bump.obj src\scr\fract.obj src\scr\greets.obj &
35         src\scr\grise.obj src\scr\hairball.obj src\scr\infcubes.obj &
36         src\scr\metaball.obj src\scr\plasma.obj src\scr\polytest.obj &
37         src\scr\smoketxt.obj src\scr\thunder.obj src\scr\tilemaze.obj &
38         src\scr\tunnel.obj src\scr\cybersun.obj src\scr\raytrace.obj src\scr\rt.obj
39 csprobj = cspr\dbgfont.obj cspr\confont.obj
40
41 incpath = -Isrc -Isrc\dos -Isrc\3dgfx -Ilibs -Ilibs\imago\src -Ilibs\anim\src &
42         -Ilibs\midas
43 libpath = libpath libs\imago libpath libs\anim libpath libs\midas
44 !endif
45
46 obj = $(dosobj) $(3dobj) $(scrobj) $(srcobj) $(csprobj)
47 bin = demo.exe
48
49 opt = -otexan
50 #opt = -od
51 def = -dM_PI=3.141592653589793 -dUSE_HLT -dNO_SOUND
52 libs = imago.lib anim.lib
53 # midas.lib
54
55 AS = nasm
56 CC = wcc386
57 LD = wlink
58 ASFLAGS = -fobj
59 CFLAGS = -d3 -5 -fp5 $(opt) $(def) -s -zq -bt=dos $(incpath)
60 LDFLAGS = option map $(libpath) library { $(libs) }
61
62 $(bin): cflags.occ $(obj) libs/imago/imago.lib libs/anim/anim.lib
63         %write objects.lnk $(obj)
64         %write ldflags.lnk $(LDFLAGS)
65         $(LD) debug all name $@ system dos4g file { @objects } @ldflags
66
67 .c: src;src/dos;src/3dgfx;src/scr;cspr
68 .asm: src;src/dos;src/3dgfx;src/scr;cspr
69
70 cflags.occ: Makefile
71         %write $@ $(CFLAGS)
72
73 !ifdef __UNIX__
74 src/dos/audos.obj: src/dos/audos.c
75 !else
76 src\dos\audos.obj: src\dos\audos.c
77 !endif
78         $(CC) -fo=$@ @cflags.occ -zu $[*
79
80 .c.obj: .autodepend
81         $(CC) -fo=$@ @cflags.occ $[*
82
83 .asm.obj:
84         nasm -f obj -o $@ $[*.asm
85
86 !ifdef __UNIX__
87 clean: .symbolic
88         rm -f $(obj)
89         rm -f $(bin)
90         rm -f cflags.occ *.lnk
91 !else
92 clean: .symbolic
93         del src\*.obj
94         del src\dos\*.obj
95         del src\3dgfx\*.obj
96         del src\scr\*.obj
97         del *.lnk
98         del cflags.occ
99         del $(bin)
100 !endif