X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=dosdemo;a=blobdiff_plain;f=Makefile;fp=Makefile;h=8a2db497d8a66527e83dd8fe74fd50c1d6c332c0;hp=e24955357563cccfcbab1ac1d8f3aef69d52d264;hb=57bd2dc519c47f434e3e5acf998fb9c72448cbce;hpb=d956a9d9273eebfacfda58cb3bafff017269d5dc diff --git a/Makefile b/Makefile index e249553..8a2db49 100644 --- a/Makefile +++ b/Makefile @@ -1,97 +1,97 @@ -src = $(wildcard src/*.c) $(wildcard src/scr/*.c) $(wildcard src/dos/*.c) -asmsrc = $(wildcard src/*.asm) $(wildcard src/scr/*.asm) $(wildcard src/dos/*.asm) -obj = $(src:.c=.odj) $(asmsrc:.asm=.odj) -dep = $(obj:.odj=.dep) +!ifdef __UNIX__ +dosobj = src/dos/audos.obj src/dos/djdpmi.obj src/dos/gfx.obj src/dos/keyb.obj & + src/dos/logger.obj src/dos/main.obj src/dos/sball.obj src/dos/timer.obj & + src/dos/vbe.obj src/dos/vga.obj src/dos/watdpmi.obj +3dobj = src/3dgfx/3dgfx.obj src/3dgfx/mesh.obj src/3dgfx/meshload.obj & + src/3dgfx/polyclip.obj src/3dgfx/polyfill.obj +srcobj = src/bsptree.obj src/cfgopt.obj src/console.obj & + src/demo.obj src/dynarr.obj src/gfxutil.obj & + src/metasurf.obj src/noise.obj & + src/rbtree.obj src/screen.obj src/tinyfps.obj src/treestor.obj & + src/ts_text.obj src/util.obj +scrobj = src/scr/bump.obj src/scr/fract.obj src/scr/greets.obj & + src/scr/grise.obj src/scr/hairball.obj src/scr/infcubes.obj & + src/scr/metaball.obj src/scr/plasma.obj src/scr/polytest.obj & + src/scr/smoketxt.obj src/scr/thunder.obj src/scr/tilemaze.obj & + src/scr/tunnel.obj + +incpath = -Isrc -Isrc/dos -Isrc/3dgfx -Ilibs -Ilibs/imago/src -Ilibs/anim/src & + -Ilibs/midas +libpath = libpath libs/imago libpath libs/anim libpath libs/midas +!else + +dosobj = src\dos\audos.obj src\dos\djdpmi.obj src\dos\gfx.obj src\dos\keyb.obj & + src\dos\logger.obj src\dos\main.obj src\dos\sball.obj src\dos\timer.obj & + src\dos\vbe.obj src\dos\vga.obj src\dos\watdpmi.obj +3dobj = src\3dgfx\3dgfx.obj src\3dgfx\mesh.obj src\3dgfx\meshload.obj & + src\3dgfx\polyclip.obj src\3dgfx\polyfill.obj +srcobj = src\3dgfx.obj src\bsptree.obj src\cfgopt.obj src\console.obj & + src\demo.obj src\dynarr.obj src\gfxutil.obj src\mesh.obj src\meshload.obj & + src\metasurf.obj src\noise.obj src\polyclip.obj src\polyfill.obj & + src\rbtree.obj src\screen.obj src\tinyfps.obj src\treestor.obj & + src\ts_text.obj src\util.obj +scrobj = src\scr\bump.obj src\scr\fract.obj src\scr\greets.obj & + src\scr\grise.obj src\scr\hairball.obj src\scr\infcubes.obj & + src\scr\metaball.obj src\scr\plasma.obj src\scr\polytest.obj & + src\scr\smoketxt.obj src\scr\thunder.obj src\scr\tilemaze.obj & + src\scr\tunnel.obj + +incpath = -Isrc -Isrc\dos -Isrc\3dgfx -Ilibs -Ilibs\imago\src -Ilibs\anim\src & + -Ilibs\midas +libpath = libpath libs\imago libpath libs\anim libpath libs\midas +!endif + +obj = $(dosobj) $(3dobj) $(scrobj) $(srcobj) bin = demo.exe -asmsrc += cspr/dbgfont.asm cspr/confont.asm -bindata = data/loading.img - -ifeq ($(findstring COMMAND.COM, $(SHELL)), COMMAND.COM) - hostsys = dos -else - hostsys = unix - TOOLPREFIX = i586-pc-msdosdjgpp- -endif - -inc = -Isrc -Isrc/scr -Isrc/dos -Ilibs -Ilibs/imago/src -Ilibs/anim/src -opt = -O3 -ffast-math -fno-strict-aliasing -warn = -pedantic -Wall -Wno-unused-function -Wno-unused-variable - -ifdef RELEASE - dbg = -g - def = -DNDEBUG -DNO_MUSIC -else - def = -DNO_MUSIC -endif -#prof = -pg - -CC = $(TOOLPREFIX)gcc -AR = $(TOOLPREFIX)ar -CFLAGS = $(warn) -march=pentium $(dbg) $(opt) $(prof) $(inc) $(def) -LDFLAGS = libs/imago/imago.dja libs/anim/anim.dja - -ifneq ($(hostsys), dos) -.PHONY: all -all: data $(bin) -endif - -$(bin): $(obj) imago anim - $(CC) -o $@ -Wl,-Map=ld.map $(prof) $(obj) $(LDFLAGS) - -%.odj: %.asm - nasm -f coff -o $@ $< - -src/data.odj: src/data.asm $(bindata) - -ifneq ($(hostsys), dos) --include $(dep) -endif - -%.odj: %.c - $(CC) $(CFLAGS) -o $@ -c $< - -%.dep: %.c - @echo dep $@ - @$(CPP) $(CFLAGS) $< -MM -MT $(@:.dep=.odj) >$@ - -.PHONY: imago -imago: - $(MAKE) -C libs/imago -f Makefile - -.PHONY: anim -anim: - $(MAKE) -C libs/anim -f Makefile - -.PHONY: cleanlibs -cleanlibs: - $(MAKE) -C libs/imago -f Makefile clean - $(MAKE) -C libs/anim -f Makefile clean - -.PHONY: clean -.PHONY: cleandep - -ifeq ($(hostsys), dos) -clean: - del src\*.odj - del src\dos\*.odj +opt = -otexan +#opt = -od +def = -dM_PI=3.141592653589793 -dUSE_HLT +libs = imago.lib anim.lib midas.lib + +AS = nasm +CC = wcc386 +LD = wlink +ASFLAGS = -fobj +CFLAGS = -d3 -5 -fp5 $(opt) $(def) -s -zq -bt=dos $(incpath) +LDFLAGS = option map $(libpath) library { $(libs) } + +$(bin): cflags.occ $(obj) libs/imago/imago.lib libs/anim/anim.lib + %write objects.lnk $(obj) + %write ldflags.lnk $(LDFLAGS) + $(LD) debug all name $@ system dos4g file { @objects } @ldflags + +.c: src;src/dos;src/3dgfx;src/scr +.asm: src;src/dos;src/3dgfx;src/scr + +cflags.occ: Makefile + %write $@ $(CFLAGS) + +!ifdef __UNIX__ +src/dos/audos.obj: src/dos/audos.c +!else +src\dos\audos.obj: src\dos\audos.c +!endif + $(CC) -fo=$@ @cflags.occ -zu $[* + +.c.obj: .autodepend + $(CC) -fo=$@ @cflags.occ $[* + +.asm.obj: + nasm -f obj -o $@ $[*.asm + +!ifdef __UNIX__ +clean: .symbolic + rm -f $(obj) + rm -f $(bin) + rm -f cflags.occ *.lnk +!else +clean: .symbolic + del src\*.obj + del src\dos\*.obj + del src\3dgfx\*.obj + del src\scr\*.obj + del *.lnk + del cflags.occ del $(bin) - -cleandep: - del src\*.dep - del src\dos\*.dep -else -clean: - rm -f $(obj) $(bin) - -cleandep: - rm -f $(dep) - -.PHONY: data -data: - @tools/procdata -endif - -.PHONY: strip -strip: $(bin) - $(TOOLPREFIX)strip $(bin) +!endif