X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=makefile;h=7e80e902f1fe9faccb0fbbbd53ec3ce3eabba7d0;hb=c11666ac6f605f561e9c6c6f2bba3bccea4a7b18;hp=6cfd77a922183ff98970436030314dc7765e0e73;hpb=398c90d2a35006614f99b38ea112803015d97d33;p=16.git diff --git a/makefile b/makefile index 6cfd77a9..7e80e902 100755 --- a/makefile +++ b/makefile @@ -4,23 +4,23 @@ # # Possible optimizations for 8088 class processors # -# -oa Relax alias checking -# -ob Try to generate straight line code +# -oa Relax alias checking +# -ob Try to generate straight line code # -oe - expand user functions inline (-oe=20 is default, adds lots of code) -# -oh Enable repeated optimizations -# -oi generate certain lib funcs inline -# -oi+ Set max inline depth (C++ only, use -oi for C) -# -ok Flowing of register save into function flow graph -# -ol loop optimizations -# -ol+ loop optimizations plus unrolling -# -or Reorder for pipelined (486+ procs); not sure if good to use -# -os Favor space over time -# -ot Favor time over space -# -ei Allocate an "int" for all enum types -# -zp2 Allow compiler to add padding to structs -# -zpw Use with above; make sure you are warning free! -# -0 8088/8086 class code generation -# -s disable stack overflow checking +# -oh Enable repeated optimizations +# -oi generate certain lib funcs inline +# -oi +Set max inline depth (C++ only, use -oi for C) +# -ok Flowing of register save into function flow graph +# -ol loop optimizations +# -ol+ loop optimizations plus unrolling +# -or Reorder for pipelined (486+ procs); not sure if good to use +# -os Favor space over time +# -ot Favor time over space +# -ei Allocate an "int" for all enum types +# -zp2 Allow compiler to add padding to structs +# -zpw Use with above; make sure you are warning free! +# -0 8088/8086 class code generation +# -s disable stack overflow checking # -zk0u translate kanji to unicode... wwww # -zk0 kanji support~ @@ -32,411 +32,315 @@ # serial output is plain text ASCII. DEBUGSERIAL=1 -#%.C #192x144 #wwww will add these !ifdef __LINUX__ +#!ifdef UNIX +to_os_path=\=/ REMOVECOMMAND=rm -f COPYCOMMAND=cp -f DIRSEP=/ -OBJ=o +OBJ=obj DUMP=cat -WCL=wcl -WLIB=wlib -UPX=upx +DOSLIBMAKE=./make.sh build all dos86h +DOSLIBMAKEALL=./buildall.sh build all dos86h !else #DOS ^^ -REMOVECOMMAND=*del -COPYCOMMAND=*copy /y +to_os_path=/=\ +REMOVECOMMAND=del +COPYCOMMAND=copy /y DIRSEP=\ -OBJ=OBJ -DUMP=*type -WCL=*wcl -WLIB=*wlib -UPX=*upx +OBJ=obj +DUMP=type +DOSLIBMAKE=.\make.bat +DOSLIBMAKEALL=.\build.bat !endif TARGET_OS = dos +BUILD_ROOT=$+$(%__CWD__)$- #EXMMTESTDIR=16$(DIRSEP)exmmtest$(DIRSEP) -PDIR=..$(DIRSEP) -SRC=src$(DIRSEP) DATADIR=data$(DIRSEP) -SPRI=$(DATADIR)$(DIRSEP)spri$(DIRSEP) -SRCLIB=$(SRC)lib$(DIRSEP) -JSMNLIB=$(SRCLIB)jsmn$(DIRSEP) -NYANLIB=$(SRCLIB)nyan$(DIRSEP) -#EXMMLIB=$(SRCLIB)exmm$(DIRSEP) -MODEXLIB=$(SRCLIB)modex16$(DIRSEP) -MODEXLIB_=$(SRCLIB)modex$(DIRSEP) -VGMSNDLIB=$(SRCLIB)vgmsnd$(DIRSEP) -DOSLIB=$(SRCLIB)doslib$(DIRSEP) -DOSLIBDIR=$(SRCLIB)doslib -WCPULIB=$(SRCLIB)wcpu$(DIRSEP) +SPRI=$(DATADIR)/spri +SRC=src +SRCLIB=src/lib +JSMNLIB=src/lib/jsmn +NYANLIB=src/lib/nyan +EXMMLIB=src/lib/exmm +MODEXLIB16=src/lib/16_vl +MODEXLIB=src/lib/modex +VGMSNDLIB=src/lib/vgmsnd +DOSLIB=src/lib/doslib +WCPULIB=src/lib/wcpu + +DOSLIB_CPU=src/lib/doslib/hw/cpu +DOSLIB_DOS=src/lib/doslib/hw/dos +DOSLIB_VGA=src/lib/doslib/hw/vga +DOSLIB_8250=src/lib/doslib/hw/8250 +DOSLIB_JOYSTICK=src/lib/doslib/hw/joystick # # quiet flags # WLIBQ=-q -WCLQ=-zq $(WLIBQ) +WCLQ=-q UPXQ=-qqq # # compile flags # -AFLAGS=-mh -0 -d1 -SFLAGS=-sg -st -of+ -zu -zdf -zff -zgf -k32768#54096#60000 -DFLAGS=-DTARGET_MSDOS=16 -DMSDOS=1 $(SFLAGS) -ZFLAGS=-zk0 -zc -zp8 -zm $(WCLQ) -LFLAGS=-lr -l=dos -CFLAGS=$(AFLAGS) $(IFLAGS) -wo -i$(DOSLIB) $(LFLAGS) -fo=.$(OBJ) -OFLAGS=-obmilr -oe=24 -out -oh -ei -zp8 -fpi87 -onac -ol+ -ok##x -FLAGS=$(CFLAGS) $(OFLAGS) $(DFLAGS) $(ZFLAGS) +S_FLAGS=-sg -st -of+ -zu -zdf -zff -zgf -zq -k32768#54096#60000 +Z_FLAGS=-zk0 -zc -zp8 -zm +O_FLAGS=-obmilr -oe=24 -out -oh -ei -onac -ol+ -ok##x +T_FLAGS=-bt=dos -wx -mh -0 -fpi87 -fo=.$(OBJ) -d1###### -e=65536 + +CPPFLAGS=-DTARGET_MSDOS=16 -DMSDOS=1 +!ifeq DEBUGSERIAL 1 +CPPFLAGS += -DDEBUGSERIAL +!endif +AFLAGS=$(WCLQ) $(T_FLAGS) +CFLAGS=$(WCLQ) $(T_FLAGS) -wo -i"$(DOSLIB)" $(O_FLAGS) $(S_FLAGS) $(Z_FLAGS) +LFLAGS=$(WCLQ) -l=dos -fm=$^&.mah $(S_FLAGS) +LIBFLAGS=$(WLIBQ) -b -n # # objects # VGMSNDOBJ = vgmSnd.$(OBJ) 16_snd.$(OBJ) +OLDLIBOBJS=bitmap.$(OBJ) 16render.$(OBJ) +GFXLIBOBJS = 16_vl.$(OBJ) 16text.$(OBJ) bakapee.$(OBJ) 16_scr.$(OBJ) 16_vrs.$(OBJ) 16_sprit.$(OBJ) $(OLDLIBOBJS) +16LIBOBJS = 16_mm.$(OBJ) 16_pm.$(OBJ) 16_ca.$(OBJ) 16_tail.$(OBJ) 16_in.$(OBJ) 16_head.$(OBJ) 16_dbg.$(OBJ) kitten.$(OBJ) 16_hc.$(OBJ) wcpu.$(OBJ) 16_timer.$(OBJ) jsmn.$(OBJ) 16_map.$(OBJ) +#16planar.$(OBJ) planar.$(OBJ) mapread.$(OBJ) DOSLIBOBJ = adlib.$(OBJ) 8254.$(OBJ) 8259.$(OBJ) dos.$(OBJ) cpu.$(OBJ) -16LIBOBJS = 16_in.$(OBJ) 16_mm.$(OBJ) wcpu.$(OBJ) 16_head.$(OBJ) 16_ca.$(OBJ) 16_dbg.$(OBJ) kitten.$(OBJ) 16_hc.$(OBJ) 16_timer.$(OBJ) -GFXLIBOBJS = modex16.$(OBJ) bitmap.$(OBJ) 16text.$(OBJ) bakapee.$(OBJ) scroll16.$(OBJ) 16render.$(OBJ) $(DOSLIBLIBS) 16_vrs.$(OBJ) 16_sprit.$(OBJ) -#planar.$(OBJ) 16planar.$(OBJ) -DOSLIBLIBS=$(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)cpu$(DIRSEP)dos86h$(DIRSEP)cpu.lib $(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)dos$(DIRSEP)dos86h$(DIRSEP)dos.lib $(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)vga$(DIRSEP)dos86h$(DIRSEP)vga.lib - !ifeq DEBUGSERIAL 1 -FLAGS += -DDEBUGSERIAL DOSLIBOBJ += 8250.$(OBJ) -DOSLIBLIBS += $(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)8250$(DIRSEP)dos86h$(DIRSEP)8250.lib -!endif - -TESTEXEC = test.exe test0.exe pcxtest.exe pcxtest2.exe palettec.exe maptest.exe fmemtest.exe fonttest.exe fontgfx.exe scroll.exe vgmtest.exe inputest.exe palettel.exe exmmtest.exe vrstest.exe -##planrpcx.exe test2.exe -EXEC = 16.exe bakapi.exe tesuto.exe 0.exe $(TESTEXEC) - -all: $(EXEC) joytest.exe -#16.lib => $(16LIBOBJS) bug.... -16LIB=$(16LIBOBJS) -#16LIB=16.lib - -!ifeq DEBUGSERIAL 1 -16LIBOBJS += $(DOSLIBLIBS) !endif # -#game and bakapi executables +# libraries # -16.exe: 16.$(OBJ) mapread.$(OBJ) jsmn.$(OBJ) $(16LIB) gfx.lib - $(WCL) $(FLAGS) $(16FLAGS) 16.$(OBJ) mapread.$(OBJ) jsmn.$(OBJ) $(16LIB) gfx.lib -fm=16.mah - -bakapi.exe: bakapi.$(OBJ) gfx.lib $(DOSLIBLIBS) - $(WCL) $(FLAGS) $(BAKAPIFLAGS) bakapi.$(OBJ) gfx.lib $(DOSLIBLIBS) -fm=bakapi.mah +DOSLIBLIBS = $(DOSLIB_CPU)/dos86h/cpu.lib $(DOSLIB_DOS)/dos86h/dos.lib $(DOSLIB_VGA)/dos86h/vga.lib +!ifeq DEBUGSERIAL 1 +DOSLIBLIBS += $(DOSLIB_8250)/dos86h/8250.lib +!endif +16LIB=$(16LIBOBJS)#16.lib bad program lock up # -#Test Executables! +# Files locations # -scroll.exe: scroll.$(OBJ) mapread.$(OBJ) jsmn.$(OBJ) $(16LIB) gfx.lib - $(WCL) $(FLAGS) scroll.$(OBJ) mapread.$(OBJ) jsmn.$(OBJ) $(16LIB) gfx.lib -fm=scroll.mah -scroll.$(OBJ): $(SRC)scroll.c - $(WCL) $(FLAGS) -c $(SRC)scroll.c - -tesuto.exe: tesuto.$(OBJ) $(DOSLIBLIBS) 16_head.$(OBJ) gfx.lib - $(WCL) $(FLAGS) $(WCLQ) tesuto.$(OBJ) $(DOSLIBLIBS) 16_head.$(OBJ) gfx.lib -tesuto.$(OBJ): $(SRC)tesuto.c - $(WCL) $(FLAGS) $(WCLQ) -c $(SRC)tesuto.c - -0.exe: 0.$(OBJ) $(DOSLIBLIBS) gfx.lib $(16LIB) - $(WCL) $(FLAGS) $(WCLQ) 0.$(OBJ) $(DOSLIBLIBS) gfx.lib $(16LIB) -0.$(OBJ): $(SRC)0.c - $(WCL) $(FLAGS) $(WCLQ) -c $(SRC)0.c - -test.exe: test.$(OBJ) gfx.lib $(DOSLIBLIBS) $(16LIB) - $(WCL) $(FLAGS) test.$(OBJ) gfx.lib $(DOSLIBLIBS) $(16LIB) -fm=test.mah - -#test2.exe: test2.$(OBJ) $(DOSLIBLIBS) gfx.lib -# $(WCL) $(FLAGS) test2.$(OBJ) $(DOSLIBLIBS) gfx.lib -fm=test2.mah - -test0.exe: test0.$(OBJ) - $(WCL) $(FLAGS) test0.$(OBJ) -fm=test0.mah - -fonttest.exe: fonttest.$(OBJ) $(16LIB) gfx.lib - $(WCL) $(FLAGS) fonttest.$(OBJ) $(16LIB) gfx.lib -fm=fonttest.mah - -#fonttes0.exe: fonttes0.$(OBJ) $(16LIB) -# $(WCL) $(FLAGS) fonttes0.$(OBJ) $(16LIB) - -fontgfx.exe: fontgfx.$(OBJ) $(16LIB) gfx.lib $(DOSLIBLIBS) - $(WCL) $(FLAGS) fontgfx.$(OBJ) $(16LIB) gfx.lib $(DOSLIBLIBS) -fm=fontgfx.mah - -inputest.exe: inputest.$(OBJ) $(16LIB) - $(WCL) $(FLAGS) inputest.$(OBJ) $(16LIB) -fm=inputest.mah - -#sountest.exe: sountest.$(OBJ) $(16LIB) -# $(WCL) $(FLAGS) sountest.$(OBJ) $(16LIB) - -pcxtest.exe: pcxtest.$(OBJ) gfx.lib - $(WCL) $(FLAGS) pcxtest.$(OBJ) gfx.lib -fm=pcxtest.mah +.c : $(SRC);$(SRCLIB);$(MODEXLIB16);$(JSMNLIB);$(NYANLIB);$(VGMSNDLIB);$(WCPULIB) -vrstest.exe: vrstest.$(OBJ) gfx.lib $(16LIB) - $(WCL) $(FLAGS) vrstest.$(OBJ) gfx.lib $(16LIB) -fm=vrstest.mah +.asm : $(MODEXLIB) -palettec.exe: palettec.$(OBJ) gfx.lib #$(16LIB) - $(WCL) $(FLAGS) palettec.$(OBJ) gfx.lib -fm=palettec.mah #$(16LIB) - -palettel.exe: palettel.$(OBJ) gfx.lib #$(16LIB) - $(WCL) $(FLAGS) palettel.$(OBJ) gfx.lib -fm=palettel.mah #$(16LIB) - -pcxtest2.exe: pcxtest2.$(OBJ) gfx.lib - $(WCL) $(FLAGS) pcxtest2.$(OBJ) gfx.lib -fm=pcxtest2.mah - -##planrpcx.exe: planrpcx.$(OBJ) gfx.lib -## $(WCL) $(FLAGS) planrpcx.$(OBJ) gfx.lib -fm=planrpcx.mah - -maptest.exe: maptest.$(OBJ) mapread.$(OBJ) jsmn.$(OBJ) $(16LIB) gfx.lib - $(WCL) $(FLAGS) maptest.$(OBJ) mapread.$(OBJ) jsmn.$(OBJ) $(16LIB) gfx.lib -fm=maptest.mah - -fmemtest.exe: fmemtest.$(OBJ) $(16LIB) - $(WCL) $(FLAGS) fmemtest.$(OBJ) $(16LIB) -fm=fmemtest.mah - -exmmtest.exe: exmmtest.$(OBJ) 16_in.$(OBJ) 16_mm.$(OBJ) wcpu.$(OBJ) 16_head.$(OBJ) 16_ca.$(OBJ) 16_hc.$(OBJ) kitten.$(OBJ) - $(WCL) $(FLAGS) exmmtest.$(OBJ) -fm=exmmtest.mah $(16LIB) - -vgmtest.exe: vgmtest.$(OBJ) vgmsnd.lib $(16LIB) - $(WCL) $(FLAGS) vgmtest.$(OBJ) vgmsnd.lib -fm=vgmtest.mah $(16LIB) +.lib : .;$(DOSLIB_CPU)/dos86h;$(DOSLIB_DOS)/dos86h;$(DOSLIB_VGA)/dos86h;$(DOSLIB_8250)/dos86h +.obj : . # -#executable's objects +# Default make rules # -#!ifndef __LINUX__ -#{$(SRC)}.c.$(OBJ) : -{src}.c.$(OBJ) : - $(WCL) $(FLAGS) -c $[* -#!endif - -16.$(OBJ): $(SRC)16.h $(SRC)16.c - $(WCL) $(FLAGS) -c $(SRC)16.c - -bakapi.$(OBJ): $(SRC)bakapi.h $(SRC)bakapi.c - $(WCL) $(FLAGS) -c $(SRC)bakapi.c - -test.$(OBJ): $(SRC)test.c $(SRCLIB)modex16.h - $(WCL) $(FLAGS) -c $(SRC)test.c - -#test2.$(OBJ): $(SRC)test2.c $(SRCLIB)modex16.h -# $(WCL) $(FLAGS) -c $(SRC)test2.c - -test0.$(OBJ): $(SRC)test0.c - $(WCL) $(FLAGS) -c $(SRC)test0.c - -pcxtest.$(OBJ): $(SRC)pcxtest.c $(SRCLIB)modex16.h - $(WCL) $(FLAGS) -c $(SRC)pcxtest.c - -vrstest.$(OBJ): $(SRC)vrstest.c $(SRCLIB)modex16.h - $(WCL) $(FLAGS) -c $(SRC)vrstest.c - -##planrpcx.$(OBJ): $(SRC)planrpcx.c $(SRCLIB)modex16.h -## $(WCL) $(FLAGS) -c $(SRC)planrpcx.c - -pcxtest2.$(OBJ): $(SRC)pcxtest2.c $(SRCLIB)modex16.h - $(WCL) $(FLAGS) -c $(SRC)pcxtest2.c - -palettec.$(OBJ): $(SRC)palettec.c - $(WCL) $(FLAGS) -c $(SRC)palettec.c - -palettel.$(OBJ): $(SRC)palettel.c - $(WCL) $(FLAGS) -c $(SRC)palettel.c - -maptest.$(OBJ): $(SRC)maptest.c $(SRCLIB)modex16.h - $(WCL) $(FLAGS) -c $(SRC)maptest.c - -#emmtest.$(OBJ): $(SRC)emmtest.c -# $(WCL) $(FLAGS) $(MFLAGS) -c $(SRC)emmtest.c - -#emsdump.$(OBJ): $(SRC)emsdump.c -# $(WCL) $(FLAGS) $(MFLAGS) -c $(SRC)emsdump.c - -fmemtest.$(OBJ): $(SRC)fmemtest.c - $(WCL) $(FLAGS) -c $(SRC)fmemtest.c - -fonttest.$(OBJ): $(SRC)fonttest.c - $(WCL) $(FLAGS) -c $(SRC)fonttest.c - -#fonttes0.$(OBJ): $(SRC)fonttes0.c -# $(WCL) $(FLAGS) -c $(SRC)fonttes0.c +.c.obj: + *wcl $(CPPFLAGS) $(CFLAGS) $(extra_$^&_obj_opts) -c $[@ -fontgfx.$(OBJ): $(SRC)fontgfx.c - $(WCL) $(FLAGS) -c $(SRC)fontgfx.c +.asm.obj: + *wcl $(AFLAGS) $(extra_$^&_obj_opts) -c $[@ -inputest.$(OBJ): $(SRC)inputest.c - $(WCL) $(FLAGS) -c $(SRC)inputest.c +#CFLAGS is neccessary here +.obj.exe : + *wcl $(LFLAGS) $(extra_$^&_exe_opts) -fe=$@ $< -#sountest.$(OBJ): $(SRC)sountest.c -# $(WCL) $(FLAGS) -c $(SRC)sountest.c +.obj.lib : + *wlib $(LIBFLAGS) $(extra_$^&_lib_opts) $@ $< -#miditest.$(OBJ): $(SRC)miditest.c -# $(WCL) $(FLAGS) -c $(SRC)miditest.c - -#testemm.$(OBJ): $(SRC)testemm.c -# $(WCL) $(FLAGS) -c $(SRC)testemm.c - -#testemm0.$(OBJ): $(SRC)testemm0.c -# $(WCL) $(FLAGS) -c $(SRC)testemm0.c - -tsthimem.$(OBJ): $(SRC)tsthimem.c - $(WCL) $(FLAGS) -c $(SRC)tsthimem.c +# +# List of executables to build +# +TESTEXEC = & + tesuto.exe & + 0.exe & + exmmtest.exe & + vgmtest.exe & + scroll.exe & + zcroll.exe & + inputest.exe & + vrstest.exe +TESTEXEC2 = & + maptest.exe & + fmemtest.exe & + fonttest.exe & + fontgfx.exe & + test.exe & + test0.exe & + pcxtest.exe & + pcxtest2.exe +UTILEXEC = & + palettel.exe & + palettec.exe & + db.exe +EXEC = & + 16.exe & + bakapi.exe & + $(UTILEXEC) & + $(TESTEXEC) -exmmtest.$(OBJ): $(SRC)exmmtest.c - $(WCL) $(FLAGS) -c $(SRC)exmmtest.c 16_in.$(OBJ) 16_mm.$(OBJ) wcpu.$(OBJ) 16_head.$(OBJ) 16_ca.$(OBJ) 16_hc.$(OBJ) kitten.$(OBJ) +all: $(EXEC) joytest.exe +testexec: $(EXEC) joytest.exe $(TESTEXEC2) -vgmtest.$(OBJ): $(SRC)vgmtest.c - $(WCL) $(FLAGS) -c $(SRC)vgmtest.c - #====$(WCL) -mc -c $(SRC)vgmtest.c +# +# game and bakapi executables +# +16.exe: 16.$(OBJ) $(16LIB) gfx.lib $(DOSLIBLIBS) +bakapi.exe: bakapi.$(OBJ) gfx.lib $(DOSLIBLIBS) # -#non executable objects libraries +# Test Executables! # -16.lib: $(16LIBOBJS)# doslib.lib vgmsnd.lib - $(WLIB) -b $(WLIBQ) 16.lib $(16LIBOBJS)# doslib.lib vgmsnd.lib +scroll.exe: scroll.$(OBJ) $(16LIB) gfx.lib $(DOSLIBLIBS) +scroll.$(OBJ): $(SRC)/scroll.c +zcroll.exe: zcroll.$(OBJ) $(16LIB) gfx.lib $(DOSLIBLIBS) +zcroll.$(OBJ): $(SRC)/zcroll.c +tesuto.exe: tesuto.$(OBJ) 16_head.$(OBJ) gfx.lib $(DOSLIBLIBS) +tesuto.$(OBJ): $(SRC)/tesuto.c +0.exe: 0.$(OBJ) $(16LIB) gfx.lib $(DOSLIBLIBS) +0.$(OBJ): $(SRC)/0.c +test.exe: test.$(OBJ) $(16LIB) gfx.lib $(DOSLIBLIBS) +#test2.exe: test2.$(OBJ) gfx.lib $(DOSLIBLIBS) +test0.exe: test0.$(OBJ) +fonttest.exe: fonttest.$(OBJ) gfx.lib +#fonttes0.exe: fonttes0.$(OBJ) $(16LIB) +fontgfx.exe: fontgfx.$(OBJ) gfx.lib $(DOSLIBLIBS) +inputest.exe: inputest.$(OBJ) $(16LIB) $(DOSLIBLIBS) +#sountest.exe: sountest.$(OBJ) $(16LIB) +pcxtest.exe: pcxtest.$(OBJ) gfx.lib $(DOSLIBLIBS) +vrstest.exe: vrstest.$(OBJ) $(16LIB) gfx.lib $(DOSLIBLIBS) +#vgacamm.exe: vgacamm.$(OBJ) $(16LIB) gfx.lib $(DOSLIBLIBS) +palettec.exe: palettec.$(OBJ) gfx.lib $(DOSLIBLIBS) +palettel.exe: palettel.$(OBJ) gfx.lib $(DOSLIBLIBS) +pcxtest2.exe: pcxtest2.$(OBJ) gfx.lib $(DOSLIBLIBS) +#planrpcx.exe: planrpcx.$(OBJ) gfx.lib +maptest.exe: maptest.$(OBJ) 16_map.$(OBJ) 16_head.$(OBJ) gfx.lib $(DOSLIBLIBS) +fmemtest.exe: fmemtest.$(OBJ) +exmmtest.exe: exmmtest.$(OBJ) $(16LIB) $(DOSLIBLIBS) +vgmtest.exe: vgmtest.$(OBJ) vgmsnd.lib $(16LIB) $(DOSLIBLIBS) +db.exe: db.$(OBJ) -gfx.lib: $(GFXLIBOBJS) - $(WLIB) -b $(WLIBQ) gfx.lib $(GFXLIBOBJS) +# +# executable's objects +# +16.$(OBJ): $(SRC)/16.c $(SRC)/16.h +bakapi.$(OBJ): $(SRC)/bakapi.c $(SRC)/bakapi.h +test.$(OBJ): $(SRC)/test.c $(SRCLIB)/16_vl.h +#test2.$(OBJ): $(SRC)/test2.c $(SRCLIB)/16_vl.h +test0.$(OBJ): $(SRC)/test0.c +pcxtest.$(OBJ):$(SRC)/pcxtest.c $(SRCLIB)/16_vl.h +vrstest.$(OBJ):$(SRC)/vrstest.c $(SRCLIB)/16_vl.h +#vgacamm.$(OBJ):$(SRC)/vgacamm.c $(SRCLIB)/16_vl.h +#planrpcx.$(OBJ): $(SRC)/planrpcx.c $(SRCLIB)/16_vl.h +pcxtest2.$(OBJ):$(SRC)/pcxtest2.c $(SRCLIB)/16_vl.h +palettec.$(OBJ):$(SRC)/palettec.c +palettel.$(OBJ):$(SRC)/palettel.c +maptest.$(OBJ):$(SRC)/maptest.c $(SRCLIB)/16_vl.h +#emmtest.$(OBJ):$(SRC)/emmtest.c +#emsdump.$(OBJ):$(SRC)/emsdump.c +fmemtest.$(OBJ):$(SRC)/fmemtest.c +fonttest.$(OBJ):$(SRC)/fonttest.c +#fonttes0.$(OBJ): $(SRC)/fonttes0.c +fontgfx.$(OBJ):$(SRC)/fontgfx.c +inputest.$(OBJ):$(SRC)/inputest.c +#sountest.$(OBJ): $(SRC)/sountest.c +#miditest.$(OBJ): $(SRC)/miditest.c +#testemm.$(OBJ):$(SRC)/testemm.c +#testemm0.$(OBJ): $(SRC)/testemm0.c +#tsthimem.$(OBJ): $(SRC)/tsthimem.c +exmmtest.$(OBJ):$(SRC)/exmmtest.c +vgmtest.$(OBJ):$(SRC)/vgmtest.c +db.$(OBJ):$(SRC)/db.c +# +# non executable objects libraries +# +16.lib: $(16LIBOBJS) vgmsnd.lib: $(VGMSNDOBJ) - $(WLIB) -b $(WLIBQ) vgmsnd.lib $(VGMSNDOBJ) -# extdep: -# !include $(DOSLIBDIR)$(DIRSEP)extdep.mak +gfx.lib: $(GFXLIBOBJS) + *wlib $(LIBFLAGS) $(extra_$^&_lib_opts) $@ $< +# +# doslib +# # library deps 16-bit huge -$(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)cpu$(DIRSEP)dos86h$(DIRSEP)cpu.lib: - cd $(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)cpu && .$(DIRSEP)make.sh -$(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)dos$(DIRSEP)dos86h$(DIRSEP)dos.lib: - cd $(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)dos && .$(DIRSEP)make.sh -$(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)vga$(DIRSEP)dos86h$(DIRSEP)vgatty.lib: - cd $(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)vga && .$(DIRSEP)make.sh -$(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)vga$(DIRSEP)dos86h$(DIRSEP)vga.lib: - cd $(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)vga && .$(DIRSEP)make.sh -$(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)8250$(DIRSEP)dos86h$(DIRSEP)8250.lib: - cd $(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)8250 && .$(DIRSEP)make.sh +$(DOSLIB_CPU)/dos86h/cpu.lib: + cd $(DOSLIB_CPU:$(to_os_path)) && $(DOSLIBMAKE) && cd $(BUILD_ROOT) +$(DOSLIB_DOS)/dos86h/dos.lib: + cd $(DOSLIB_DOS:$(to_os_path)) && $(DOSLIBMAKE) && cd $(BUILD_ROOT) +$(DOSLIB_VGA)/dos86h/vgatty.lib: + cd $(DOSLIB_VGA:$(to_os_path)) && $(DOSLIBMAKE) && cd $(BUILD_ROOT) +$(DOSLIB_VGA)/dos86h/vga.lib: + cd $(DOSLIB_VGA:$(to_os_path)) && $(DOSLIBMAKE) && cd $(BUILD_ROOT) +$(DOSLIB_8250)/dos86h/8250.lib: + cd $(DOSLIB_8250:$(to_os_path)) && $(DOSLIBMAKE) && cd $(BUILD_ROOT) joytest.exe: - cd $(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)joystick && .$(DIRSEP)make.sh && $(COPYCOMMAND) dos86h$(DIRSEP)test.exe $(PDIR)$(PDIR)$(PDIR)$(PDIR)$(PDIR)joytest.exe -#$(DOSLIBLIBS): .symbolic -# @cd $(DOSLIB) -# @.$(DIRSEP)buildall.sh -# @cd $(PDIR)$(PDIR)$(PDIR) - -modex16.$(OBJ): $(SRCLIB)modex16.h $(SRCLIB)modex16.c - $(WCL) $(FLAGS) -c $(SRCLIB)modex16.c - -bakapee.$(OBJ): $(SRCLIB)bakapee.h $(SRCLIB)bakapee.c - $(WCL) $(FLAGS) -c $(SRCLIB)bakapee.c - -16render.$(OBJ): $(MODEXLIB)16render.h $(MODEXLIB)16render.c - $(WCL) $(FLAGS) -c $(MODEXLIB)16render.c - -##16planar.$(OBJ): $(MODEXLIB)16planar.h $(MODEXLIB)16planar.c -## $(WCL) $(FLAGS) -c $(MODEXLIB)16planar.c - -16_vrs.$(OBJ): $(SRCLIB)16_vrs.h $(SRCLIB)16_vrs.c $(DOSLIBLIBS) - $(WCL) $(FLAGS) -c $(SRCLIB)16_vrs.c $(DOSLIBLIBS) -16_sprit.$(OBJ): $(SRCLIB)16_sprit.h $(SRCLIB)16_sprit.c - $(WCL) $(FLAGS) -c $(SRCLIB)16_sprit.c - - -bitmap.$(OBJ): $(SRCLIB)bitmap.h $(SRCLIB)bitmap.c - $(WCL) $(FLAGS) -c $(SRCLIB)bitmap.c - -##planar.$(OBJ): $(SRCLIB)planar.h $(SRCLIB)planar.c -## $(WCL) $(FLAGS) -c $(SRCLIB)planar.c - -scroll16.$(OBJ): $(SRCLIB)scroll16.h $(SRCLIB)scroll16.c - $(WCL) $(FLAGS) -c $(SRCLIB)scroll16.c - -wcpu.$(OBJ): $(WCPULIB)wcpu.h $(WCPULIB)wcpu.c - $(WCL) $(FLAGS) -c $(WCPULIB)wcpu.c - -16text.$(OBJ): $(SRCLIB)16text.c - $(WCL) $(FLAGS) -c $(SRCLIB)16text.c - -mapread.$(OBJ): $(SRCLIB)mapread.h $(SRCLIB)mapread.c - $(WCL) $(FLAGS) -c $(SRCLIB)mapread.c - -16_timer.$(OBJ): $(SRCLIB)16_timer.h $(SRCLIB)16_timer.c - $(WCL) $(FLAGS) -c $(SRCLIB)16_timer.c - -16_in.$(OBJ): $(SRCLIB)16_in.h $(SRCLIB)16_in.c - $(WCL) $(FLAGS) -c $(SRCLIB)16_in.c - -16_mm.$(OBJ): $(SRCLIB)16_mm.h $(SRCLIB)16_mm.c - $(WCL) $(FLAGS) -c $(SRCLIB)16_mm.c - -16_ca.$(OBJ): $(SRCLIB)16_ca.h $(SRCLIB)16_ca.c - $(WCL) $(FLAGS) -c $(SRCLIB)16_ca.c - -16_dbg.$(OBJ): $(SRCLIB)16_dbg.h $(SRCLIB)16_dbg.c - $(WCL) $(FLAGS) -c $(SRCLIB)16_dbg.c - -midi.$(OBJ): $(SRCLIB)midi.h $(SRCLIB)midi.c - $(WCL) $(FLAGS) -c $(SRCLIB)midi.c - -16_head.$(OBJ): $(SRCLIB)16_head.h $(SRCLIB)16_head.c - $(WCL) $(FLAGS) -c $(SRCLIB)16_head.c - -16_hc.$(OBJ): $(SRCLIB)16_hc.h $(SRCLIB)16_hc.c - $(WCL) $(FLAGS) -c $(SRCLIB)16_hc.c - -16_snd.$(OBJ): $(SRCLIB)16_snd.h $(SRCLIB)16_snd.c - $(WCL) $(FLAGS) -c $(SRCLIB)16_snd.c - #====$(WCL) -mc -c $(SRCLIB)16_snd.c - -jsmn.$(OBJ): $(JSMNLIB)jsmn.h $(JSMNLIB)jsmn.c - $(WCL) $(FLAGS) -c $(JSMNLIB)jsmn.c - -kitten.$(OBJ): $(NYANLIB)kitten.h $(NYANLIB)kitten.c - $(WCL) $(FLAGS) -c $(NYANLIB)kitten.c - -vgmSnd.$(OBJ): $(VGMSNDLIB)vgmSnd.h $(VGMSNDLIB)vgmSnd.c - $(WCL) $(FLAGS) -c $(VGMSNDLIB)vgmSnd.c - #====$(WCL) -c -mc $(VGMSNDLIB)vgmSnd.c - -#memory.$(OBJ): $(EXMMLIB)memory.h $(EXMMLIB)memory.c -# $(WCL) $(FLAGS) $(MFLAGS) -c $(EXMMLIB)memory.c - -c_utils.$(OBJ): $(MODEXLIB_)c_utils.asm - $(WCL) -c $(AFLAGS) $(MODEXLIB_)c_utils.asm -modex.$(OBJ): $(MODEXLIB_)modex.asm - $(WCL) -c $(AFLAGS) $(MODEXLIB_)modex.asm + cd $(DOSLIB_JOYSTICK:$(to_os_path)) && $(DOSLIBMAKE) && cd $(BUILD_ROOT) + $(COPYCOMMAND) $(DOSLIB_JOYSTICK:$(to_os_path))$(DIRSEP)dos86h$(DIRSEP)test.exe joytest.exe + +16_vl.$(OBJ):$(SRCLIB)/16_vl.c $(SRCLIB)/16_vl.h +bakapee.$(OBJ):$(SRCLIB)/bakapee.c $(SRCLIB)/bakapee.h +16render.$(OBJ):$(SRCLIB)/16render.c $(SRCLIB)/16render.h +16planar.$(OBJ):$(MODEXLIB16)/16planar.c $(MODEXLIB16)/16planar.h +16_vrs.$(OBJ): $(SRCLIB)/16_vrs.c $(SRCLIB)/16_vrs.h $(DOSLIBLIBS) +16_sprit.$(OBJ):$(SRCLIB)/16_sprit.c $(SRCLIB)/16_sprit.h +bitmap.$(OBJ): $(SRCLIB)/bitmap.c $(SRCLIB)/bitmap.h +planar.$(OBJ): $(SRCLIB)/planar.c $(SRCLIB)/planar.h +16_scr.$(OBJ):$(SRCLIB)/16_scr.c $(SRCLIB)/16_scr.h +16text.$(OBJ): $(SRCLIB)/16text.c +mapread.$(OBJ):$(SRCLIB)/mapread.c $(SRCLIB)/mapread.h +16_map.$(OBJ):$(SRCLIB)/16_map.c $(SRCLIB)/16_map.h +16_timer.$(OBJ):$(SRCLIB)/16_timer.c $(SRCLIB)/16_timer.h +16_in.$(OBJ): $(SRCLIB)/16_in.c $(SRCLIB)/16_in.h +16_mm.$(OBJ): $(SRCLIB)/16_mm.c $(SRCLIB)/16_mm.h +16_pm.$(OBJ): $(SRCLIB)/16_pm.c $(SRCLIB)/16_pm.h +16_ca.$(OBJ): $(SRCLIB)/16_ca.c $(SRCLIB)/16_ca.h +16_dbg.$(OBJ): $(SRCLIB)/16_dbg.c $(SRCLIB)/16_dbg.h +midi.$(OBJ): $(SRCLIB)/midi.c $(SRCLIB)/midi.h +16_head.$(OBJ):$(SRCLIB)/16_head.c $(SRCLIB)/16_head.h +16_tail.$(OBJ):$(SRCLIB)/16_tail.c $(SRCLIB)/16_tail.h +16_hc.$(OBJ): $(SRCLIB)/16_hc.c $(SRCLIB)/16_hc.h +16_snd.$(OBJ): $(SRCLIB)/16_snd.c $(SRCLIB)/16_snd.h +jsmn.$(OBJ): $(JSMNLIB)/jsmn.c $(JSMNLIB)/jsmn.h +kitten.$(OBJ): $(NYANLIB)/kitten.c $(NYANLIB)/kitten.h +vgmSnd.$(OBJ): $(VGMSNDLIB)/vgmSnd.c $(VGMSNDLIB)/vgmSnd.h +wcpu.$(OBJ): $(WCPULIB)/wcpu.c $(WCPULIB)/wcpu.h +#memory.$(OBJ):$(EXMMLIB)/memory.c $(EXMMLIB)/memory.h +c_utils.$(OBJ):$(MODEXLIB)/c_utils.asm +modex.$(OBJ): $(MODEXLIB)/modex.asm # #other~ # clean: .symbolic - @$(REMOVECOMMAND) $(EXEC) - @$(REMOVECOMMAND) *.$(OBJ) - @$(REMOVECOMMAND) 16.lib - @$(REMOVECOMMAND) gfx.lib - @$(REMOVECOMMAND) vgmsnd.lib - @$(REMOVECOMMAND) *.LIB #dos - @$(WLIB) -n $(WLIBQ) 16.lib - @$(WLIB) -n $(WLIBQ) gfx.lib - @$(WLIB) -n $(WLIBQ) vgmsnd.lib - @$(REMOVECOMMAND) *.16W - @$(REMOVECOMMAND) *.16B - @$(REMOVECOMMAND) *.OBJ - @$(REMOVECOMMAND) *.$(OBJ) - @$(REMOVECOMMAND) *.BCO - #@$(REMOVECOMMAND) makefi~1 - #@$(REMOVECOMMAND) makefile~ - @$(REMOVECOMMAND) __wcl__.LNK -# @$(REMOVECOMMAND) *.smp - @$(REMOVECOMMAND) *.SMP - @$(REMOVECOMMAND) *.hed - @$(REMOVECOMMAND) *.MAH - @$(REMOVECOMMAND) *.mah - @$(REMOVECOMMAND) *.err - #@cd $(DOSLIB) - #@./buildall.sh clean - #@cd $(PDIR)$(PDIR)$(PDIR) + @if not exist $(DOSLIB)/buildall.sh wmake -h initlibs + @for %f in ($(EXEC)) do @if exist %f $(REMOVECOMMAND) %f +!ifdef __LINUX__ + @rm *.LIB + @. src/util/bcexmm.sh + @rm *.EXE +!endif + @if exist *.obj $(REMOVECOMMAND) *.obj + @if exist *.OBJ $(REMOVECOMMAND) *.OBJ + @if exist *.bco $(REMOVECOMMAND) *.bco + @if exist *.BCO $(REMOVECOMMAND) *.BCO + @if exist *.LIB $(REMOVECOMMAND) *.LIB + @if exist *.lnk $(REMOVECOMMAND) *.lnk + @if exist *.LNK $(REMOVECOMMAND) *.LNK + @if exist *.smp $(REMOVECOMMAND) *.smp + @if exist *.SMP $(REMOVECOMMAND) *.SMP + @if exist *.hed $(REMOVECOMMAND) *.hed + @if exist *.mah $(REMOVECOMMAND) *.mah + @if exist *.MAH $(REMOVECOMMAND) *.MAH + @if exist *.err $(REMOVECOMMAND) *.err +# @if exist *.16W $(REMOVECOMMAND) *.16W +# @if exist *.16B $(REMOVECOMMAND) *.16B + # @$(COPYCOMMAND) $(SRC)exmmtest.c $(EXMMTESTDIR)$(SRC) # @$(COPYCOMMAND) $(SRCLIB)16_mm.* $(EXMMTESTDIR)$(SRCLIB) # @$(COPYCOMMAND) $(SRCLIB)16_head.* $(EXMMTESTDIR)$(SRCLIB) @@ -444,8 +348,12 @@ clean: .symbolic # @$(COPYCOMMAND) $(SRCLIB)16_hc.* $(EXMMTESTDIR)$(SRCLIB) # @$(COPYCOMMAND) $(SRCLIB)types.h $(EXMMTESTDIR)$(SRCLIB) # @$(COPYCOMMAND) $(NYANLIB)* $(EXMMTESTDIR)$(NYANLIB) -# @echo $(watcom) -# @echo $(INCLUDE) + +nuke: .symbolic + @wmake clean + @wmake cldl + @wmake all + @wmake comp backupconfig: .symbolic @$(COPYCOMMAND) .git$(DIRSEP)config git_con.fig @@ -453,16 +361,16 @@ backupconfig: .symbolic @$(COPYCOMMAND) .gitignore git_igno.re comp: .symbolic - @$(UPX) -9 $(EXEC) + @*upx -9 $(EXEC) comq: .symbolic - @$(UPX) -9 $(UPXQ) $(EXEC) + @*upx -9 $(UPXQ) $(EXEC) www: .symbolic @ssh -p 26 sparky4@4ch.mooo.com 'rm -f /var/www/16/*exe*' - #@rm -f /var/www/$(EXEC)* - @rm -f /var/www/*.exe.zip* - #@cp ./$(EXEC) $(DIRSEP)var$(DIRSEP)www$(DIRSEP) + #@$(REMOVECOMMAND) -f /var/www/$(EXEC)* + @$(REMOVECOMMAND) -f /var/www/*.exe.zip* + #@$(COPYCOMMAND) ./$(EXEC) $(DIRSEP)var$(DIRSEP)www$(DIRSEP) @./src/util/z.sh $(EXEC) $(EXEC) @scp -r -P 26 *.exe 4ch.mooo.com:/var/www/16/ @scp -r -P 26 x4get.bat 4ch.mooo.com:/var/www/16/ @@ -472,47 +380,54 @@ getwww: .symbolic *x4get.bat $(EXEC) vomitchan: .symbolic - @$(DUMP) *.err + @if exist *.err $(DUMP) *.err ## ## External library management~ ^^ ## #git submodule add mkdl: .symbolic - @cd $(DOSLIB) - @./buildall.sh - @cd $(PDIR)$(PDIR)$(PDIR) + @cd $(DOSLIB:$(to_os_path)) + @$(DOSLIBMAKEALL) + @cd $(BUILD_ROOT) + +cldl: .symbolic + @cd $(DOSLIB:$(to_os_path)) + @$(DOSLIBMAKEALL) clean + @cd $(BUILD_ROOT) uplibs: .symbolic - @cd $(JSMNLIB) + @cd $(JSMNLIB:$(to_os_path)) @git pull - @cd $(PDIR)$(PDIR)$(PDIR) - @cd $(DOSLIB) + @cd $(BUILD_ROOT) + @cd $(DOSLIB:$(to_os_path)) @git pull - @cd $(PDIR)$(PDIR)$(PDIR) + @cd $(BUILD_ROOT) reinitlibs: .symbolic - @rm -rf $(SRCLIB)doslib - @rm -rf $(SRCLIB)jsmn - @rm -rf 16/CatacombApocalypse - @rm -rf 16/wolf3d - @rm -rf 16/keen + @$(REMOVECOMMAND) -rf $(DOSLIB) + @$(REMOVECOMMAND) -rf $(JSMNLIB) + @$(REMOVECOMMAND) -rf 16/CatacombApocalypse + @$(REMOVECOMMAND) -rf 16/wolf3d + @$(REMOVECOMMAND) -rf 16/keen + @$(REMOVECOMMAND) -rf 16/Catacomb3D @wmake -h initlibs initlibs: .symbolic - @cp git_con.fig .git/config - @cp git_modu.les .gitmodules - @cp git_igno.re .gitignore - @cd $(SRCLIB) + @$(COPYCOMMAND) git_con.fig .git/config + @$(COPYCOMMAND) git_modu.les .gitmodules + @$(COPYCOMMAND) git_igno.re .gitignore + @cd $(SRCLIB:$(to_os_path)) @git clone https://github.com/joncampbell123/doslib.git @git clone https://github.com/zserge/jsmn.git - @cd $(PDIR)$(PDIR) + @cd $(BUILD_ROOT) @cd 16 @git clone https://github.com/FlatRockSoft/CatacombApocalypse.git @git clone https://github.com/id-Software/wolf3d.git @git clone https://github.com/keendreams/keen.git - @cd $(PDIR) - @cp $(SRCLIB)doslib/make-lowercase . + @git clone https://github.com/FlatRockSoft/Catacomb3D.git + @cd $(BUILD_ROOT) + @$(COPYCOMMAND) $(DOSLIB)/make-lowercase . ## ## experimental libs @@ -521,25 +436,25 @@ xlib: .symbolic @cd 16$(DIRSEP)xlib @wmake -h clean @wmake -h all - @cd $(PDIR)$(PDIR) + @cd $(BUILD_ROOT) mx: .symbolic @cd 16$(DIRSEP)xw # @wmake clean @wmake -h all - @cd $(PDIR)$(PDIR) + @cd $(BUILD_ROOT) mx_: .symbolic @cd 16$(DIRSEP)xw_ @wmake -h -f makefile all - @cd $(PDIR)$(PDIR) + @cd $(BUILD_ROOT) vrs: .symbolic - @cd $(DOSLIBDIR)$(DIRSEP)hw$(DIRSEP)vga + @cd $(DOSLIB_VGA:$(to_os_path)) #@make clean @make all - @mv pcx2vrl ../../../../../ - @mv pcxsscut ../../../../../ - @mv vrl2vrs ../../../../../ - @mv vrsdump ../../../../../ - @cd ../../../../../ + @mv pcx2vrl $(BUILD_ROOT)$(DIRSEP) + @mv pcxsscut $(BUILD_ROOT)$(DIRSEP) + @mv vrl2vrs $(BUILD_ROOT)$(DIRSEP) + @mv vrsdump $(BUILD_ROOT)$(DIRSEP) + @cd $(BUILD_ROOT)