94e655df3d355913f1cfaba9ae6d516ec919bbdd
[retroray] / Makefile
1 !ifdef __UNIX__
2 dosobj = src/dos/djdpmi.obj src/dos/gfx.obj src/dos/keyb.obj src/dos/main.obj &
3         src/dos/mouse.obj src/dos/vbe.obj src/dos/vga.obj src/dos/watdpmi.obj
4 appobj = src/app.obj src/cmesh.obj src/darray.obj src/font.obj src/logger.obj &
5         src/meshgen.obj src/meshload.obj src/options.obj src/rbtree.obj src/geom.obj &
6         src/rend.obj src/rtk.obj src/scene.obj src/scr_mod.obj src/scr_rend.obj &
7         src/texture.obj src/material.obj &
8         src/util.obj src/util_s.obj src/cpuid.obj src/cpuid_s.obj
9 gawobj = src/gaw/gaw_sw.obj src/gaw/gawswtnl.obj src/gaw/polyclip.obj src/gaw/polyfill.obj
10
11 incpath = -Isrc -Isrc/dos -Ilibs -Ilibs/imago/src -Ilibs/treestor/include -Ilibs/drawtext
12 libpath = libpath libs/dos
13 !else
14 dosobj = src\dos\djdpmi.obj src\dos\gfx.obj src\dos\keyb.obj src\dos\main.obj &
15         src\dos\mouse.obj src\dos\vbe.obj src\dos\vga.obj src\dos\watdpmi.obj
16 appobj = src\app.obj src\cmesh.obj src\darray.obj src\font.obj src\logger.obj &
17         src\meshgen.obj src\meshload.obj src\options.obj src\rbtree.obj src\geom.obj &
18         src\rend.obj src\rtk.obj src\scene.obj src\scr_mod.obj src\scr_rend.obj &
19         src\texture.obj src\material.obj &
20         src\util.obj src\util_s.obj src\cpuid.obj src\cpuid_s.obj
21 gawobj = src\gaw\gaw_sw.obj src\gaw\gawswtnl.obj src\gaw\polyclip.obj src\gaw\polyfill.obj
22
23 incpath = -Isrc -Isrc\dos -Ilibs -Ilibs\imago\src -Ilibs\treestor\include -Ilibs\drawtext
24 libpath = libpath libs\dos
25 !endif
26
27 obj = $(dosobj) $(appobj) $(gawobj)
28 bin = retroray.exe
29
30 opt = -otexan
31 def = -DGFX_SW
32 libs = imago.lib treestor.lib drawtext.lib
33
34 AS = nasm
35 CC = wcc386
36 LD = wlink
37 ASFLAGS = -fobj
38 CFLAGS = -d3 -5 -fp5 $(opt) $(def) -s -zq -bt=dos $(incpath)
39 LDFLAGS = option map $(libpath) library { $(libs) }
40
41 $(bin): cflags.occ $(obj) $(libs)
42         %write objects.lnk $(obj)
43         %write ldflags.lnk $(LDFLAGS)
44         $(LD) debug all name $@ system dos4g file { @objects } @ldflags
45
46 .c: src;src/dos;src/gaw
47 .asm: src;src/dos;src/gaw
48
49 cflags.occ: Makefile
50         %write $@ $(CFLAGS)
51
52 .c.obj: .autodepend
53         $(CC) -fo=$@ @cflags.occ $[*
54
55 .asm.obj:
56         nasm $(ASFLAGS) -o $@ $[*.asm
57
58
59 !ifdef __UNIX__
60 clean: .symbolic
61         rm -f $(obj)
62         rm -f $(bin)
63         rm -f cflags.occ *.lnk
64
65 imago.lib:
66         cd libs/imago
67         wmake
68         cd ../..
69
70 treestor.lib:
71         cd libs/treestor
72         wmake
73         cd ../..
74
75 drawtext.lib:
76         cd libs/drawtext
77         wmake
78         cd ../..
79
80 !else
81
82 imago.lib:
83         cd libs\imago
84         wmake
85         cd ..\..
86
87 treestor.lib:
88         cd libs\treestor
89         wmake
90         cd ..\..
91
92 drawtext.lib:
93         cd libs\drawtext
94         wmake
95         cd ..\..
96
97 clean: .symbolic
98         del src\*.obj
99         del src\dos\*.obj
100         del src\gaw\*.obj
101         del *.lnk
102         del cflags.occ
103         del $(bin)
104 !endif