-baseobj = main.obj
-demoobj = demo.obj screen.obj gfxutil.obj
-scrobj = tunnel.obj fract.obj grise.obj
-sysobj = gfx.obj vbe.obj dpmi.obj timer.obj keyb.obj mouse.obj logger.obj
-obj = $(baseobj) $(demoobj) $(sysobj)
+demoobj = main.obj demo.obj screen.obj cfgopt.obj music.obj gfxutil.obj &
+3dgfx.obj polyfill.obj polyclip.obj metasurf.obj dynarr.obj mesh.obj
+scrobj = tunnel.obj fract.obj grise.obj polytest.obj plasma.obj bump.obj &
+thunder.obj metaball.obj greets.obj infcubes.obj
+sysobj = gfx.obj vbe.obj watdpmi.obj timer.obj keyb.obj mouse.obj sball.obj &
+logger.obj tinyfps.obj util.obj
+obj = $(baseobj) $(demoobj) $(sysobj) $(scrobj)
bin = demo.exe
-libs = imago.lib
+libs = imago.lib mikmod.lib
+def = -dM_PI=3.141592653589793
opt = -5 -fp5 -otexan -oh -oi -ei
dbg = -d1
!ifdef __UNIX__
-incpath = -Isrc -Isrc/dos -Ilibs/imago/src
-libpath = libs/imago
+incpath = -Isrc -Isrc/dos -Ilibs/imago/src -Ilibs/oldmik/src
+libpath = libpath libs/imago libpath libs/oldmik
+RM = rm -f
!else
-incpath = -Isrc -Isrc\dos -Ilibs\imago\src
-libpath = libs\imago
+incpath = -Isrc -Isrc\dos -Ilibs\imago\src -Ilibs\oldmik\src
+libpath = libpath libs\imago libpath libs\oldmik
+RM = del
!endif
AS = nasm
CC = wcc386
CXX = wpp386
ASFLAGS = -fobj
-CFLAGS = $(dbg) $(opt) -zq -bt=dos $(incpath)
+CFLAGS = $(dbg) $(opt) $(def) -zq -bt=dos $(incpath)
CXXFLAGS = $(CFLAGS)
-LDFLAGS = libpath $(libpath) library { $(libs) }
+LDFLAGS = option stack=16k option map $(libpath) library { $(libs) }
LD = wlink
-$(bin): $(obj) libs/imago/imago.lib
+$(bin): cflags.occ $(obj) libs/imago/imago.lib
%write objects.lnk $(obj)
- $(LD) debug all name $@ system dos4g file { @objects } $(LDFLAGS)
+ %write ldflags.lnk $(LDFLAGS)
+ $(LD) debug all name $@ system dos4g file { @objects } @ldflags
.c: src;src/dos
.cc: src;src/dos
.asm: src;src/dos
+cflags.occ: Makefile
+ %write $@ $(CFLAGS)
+
+cxxflags.occ: Makefile
+ %write $@ $(CXXFLAGS)
+
+music.obj: music.c
+ $(CC) -fo=$@ @cflags.occ -zu $[*
+
.c.obj: .autodepend
- $(CC) -fo=$@ $(CFLAGS) $[*
+ $(CC) -fo=$@ @cflags.occ $[*
.cc.obj: .autodepend
- $(CXX) -fo=$@ $(CXXFLAGS) $[*
+ $(CXX) -fo=$@ @cxxflags.occ $[*
.asm.obj:
$(AS) $(ASFLAGS) -o $@ $[*.asm
clean: .symbolic
- del *.obj
- del $(bin)
+ $(RM) *.obj
+ $(RM) *.occ
+ $(RM) *.lnk
+ $(RM) $(bin)