# serial output is plain text ASCII.
DEBUGSERIAL=1
-DELLOGFILE=0
+DELLOGFILE=1
#192x144
#wwww will add these
!endif
TARGET_OS = dos
-MEMORYMODE = m
+MEMORYMODE = l
BUILD_ROOT=$+$(%__CWD__)$-
#EXMMTESTDIR=16$(DIRSEP)exmmtest$(DIRSEP)
VGMSNDLIB=$(SRCLIB)/vgmsnd
DOSLIBDIR=$(SRCLIB)/doslib
WCPULIB=$(SRCLIB)/wcpu
-OLDMODEX16LIBDIR=16/modex16
+OLDMODEX16LIBDIR=16$(DIRSEP)modex16
#16/$(SRCLIB)
DOSLIB_CPU=$(DOSLIBDIR)/hw/cpu
#ssh port
HOST2PORT=22
-#
# quiet flags
-#
WLIBQ=-q
WCLQ=-zq
UPXQ=-qqq
-#
+# symbolic debug for wsample/wprof/wd
+D_FLAGS=-d1+
+
# stacksize
-#
-STKSIZ=24576
-#32768#40960
+STKSIZ=32768
+#STKSIZ=24576#40960
#
# compile flags
#
S_FLAGS=-sg -st -of+ -zu -zdf -zff -zgf -k$(STKSIZ)
-Z_FLAGS=-zk0 -zc#### -zp4 -ei#### -zm
+Z_FLAGS=-zk0 -zc#### -zp4 -ei# -zm
O_FLAGS=-opnr -oe=24 -oil+ -outback -ohm
-T_FLAGS=-bt=dos -wx -m$(MEMORYMODE) -0 -fpi87 -d1 -fo=.$(OBJ)## -e=65536
+T_FLAGS=-bt=dos -wx -m$(MEMORYMODE) -0 -fpi87 $(D_FLAGS) -fo=.$(OBJ)## -e=65536
-DBUGFLAGS=-fm=$^&.meh -fd=$^&
+DBUGFLAGS=-fm=$^&.meh -fd=$^& $(D_FLAGS)
CPPFLAGS=-DTARGET_MSDOS=16 -DMSDOS=1 -DSTACKSIZE=$(STKSIZ)
!ifeq DEBUGSERIAL 1
CPPFLAGS += -DDEBUGSERIAL
#
VGMSNDOBJ = vgmSnd.$(OBJ)
OLDLIBOBJS=bitmap.$(OBJ) 16render.$(OBJ)
-GFXLIBOBJS = 16_vl.$(OBJ) 16_vl_1.$(OBJ) 16_vl_2.$(OBJ) 16_vlpal.$(OBJ) 16text.$(OBJ) scroll16.$(OBJ) 16_spri.$(OBJ)
-16LIBOBJS = 16_mm.$(OBJ) 16_pm.$(OBJ) 16_ca.$(OBJ) 16_tail.$(OBJ) 16_head.$(OBJ) 16_enti.$(OBJ) 16_dbg.$(OBJ) 16_in.$(OBJ) kitten.$(OBJ) 16_hc.$(OBJ) 16_wcpu.$(OBJ) 16_timer.$(OBJ) jsmn.$(OBJ) 16_map.$(OBJ) 16_sd.$(OBJ) 16_tail_.$(OBJ) 16_dbg_1.$(OBJ)
+GFXLIBOBJS = 16_vl.$(OBJ) 16_vl_1.$(OBJ) 16_vl_2.$(OBJ) 16_vlpal.$(OBJ) 16text.$(OBJ) scroll16.$(OBJ) 16_spri.$(OBJ) gamepal.$(OBJ)
+16LIBOBJS = 16_mm.$(OBJ) 16_pm.$(OBJ) 16_ca.$(OBJ) 16_tail.$(OBJ) 16_head.$(OBJ) 16_enti.$(OBJ) 16_dbg.$(OBJ) 16_in.$(OBJ) kitten.$(OBJ) 16_hc.$(OBJ) 16_wcpu.$(OBJ) 16_timer.$(OBJ) 16_map.$(OBJ) 16_sd.$(OBJ) 16_snd.$(OBJ) 16_tail_.$(OBJ) 16_dbg_1.$(OBJ)
DOSLIBOBJ = adlib.$(OBJ) 8254.$(OBJ) 8259.$(OBJ) dos.$(OBJ) cpu.$(OBJ)
!ifeq DEBUGSERIAL 1
DOSLIBOBJ += 8250.$(OBJ)
db.exe
TESTEXEC = &
vidtest.exe &
+ paltest.exe &
exmmtest.exe &
vgmtest.exe &
sountest.exe &
+ imfplay.exe &
+ sdtest.exe &
xcroll.exe &
0croll.exe &
1croll.exe &
tesuto.exe &
0tesuto.exe &
maptest.exe &
- imfplay.exe &
vrldbg.exe
#zcroll.exe &
TESTEXEC2 = &
pcxtest2.exe
UTILEXEC = &
palettel.exe &
- palllist.exe &
palbomb.exe &
- palettec.exe
+ palettec.exe &
+ ps.exe
+# fd-dbg.exe
!ifdef __LINUX__
SPRIUTILEXEC = &
pcx2vrl &
pcxsscut &
vrl2vrs &
vrsdump &
- vrldbg
+ vrldbg &
+ dro2imf &
+ dro2vgm &
+ imf2vgm &
+ raw2vgm
#UTILEXEC += $(SPRIUTILEXEC)
!endif
# game and bakapi executables
#
16.exe: 16.$(OBJ) $(16LIB) gfx.lib $(DOSLIB)
-bakapi.exe: bakapi.$(OBJ) 16_vl.$(OBJ) 16_vl_1.$(OBJ) 16text.$(OBJ) bakapee.$(OBJ) $(DOSLIB) 16_wcpu.$(OBJ)# gfx.lib
+bakapi.exe: bakapi.$(OBJ) 16_vl.$(OBJ) 16_vl_1.$(OBJ) 16text.$(OBJ) bakapee.$(OBJ) $(DOSLIB) 16_wcpu.$(OBJ) gamepal.$(OBJ)# gfx.lib
sp2.exe: sp2.$(OBJ)
#
0tesuto.exe: 0tesuto.$(OBJ) $(16LIB) gfx.lib $(DOSLIB)
0tesuto.$(OBJ): $(SRC)/0tesuto.c
vidtest.exe: vidtest.$(OBJ) $(16LIB) gfx.lib $(DOSLIB)
+paltest.exe: paltest.$(OBJ) $(16LIB) gfx.lib $(DOSLIB)
#test2.exe: test2.$(OBJ) gfx.lib $(DOSLIB)
test0.exe: test0.$(OBJ)
fonttest.exe: fonttest.$(OBJ) gfx.lib
#fonttes0.exe: fonttes0.$(OBJ) $(16LIB)
fontgfx.exe: fontgfx.$(OBJ) gfx.lib $(DOSLIB)
inputest.exe: inputest.$(OBJ) $(16LIB) $(DOSLIB) gfx.lib
-#inntest.exe: inntest.$(OBJ) $(16LIBNOINOBJS) 16_in_1.$(OBJ) $(DOSLIB) gfx.lib
sountest.exe: sountest.$(OBJ) $(16LIB) $(DOSLIB) gfx.lib
imfplay.exe: imfplay.$(OBJ) $(16LIB) $(DOSLIB) gfx.lib
+sdtest.exe: sdtest.$(OBJ) $(16LIB) $(DOSLIB) gfx.lib
vrldbg.exe: vrldbg.$(OBJ) #gfx.lib $(DOSLIB)
pcxtest.exe: pcxtest.$(OBJ) gfx.lib $(DOSLIB) $(16LIB)
vrstest.exe: vrstest.$(OBJ) $(16LIB) gfx.lib $(DOSLIB)
palettec.exe: palettec.$(OBJ) $(16LIB) gfx.lib $(DOSLIB)
palettel.exe: palettel.$(OBJ) $(16LIB) gfx.lib $(DOSLIB)
palbomb.exe: palbomb.$(OBJ) $(16LIB) gfx.lib $(DOSLIB)
-palllist.exe: palllist.$(OBJ) $(16LIB) gfx.lib $(DOSLIB) ll.$(OBJ)
-pcxtest2.exe: pcxtest2.$(OBJ) gfx.lib $(DOSLIB)
+pcxtest2.exe: pcxtest2.$(OBJ) gfx.lib $(DOSLIB)
#planrpcx.exe: planrpcx.$(OBJ) gfx.lib
maptest.exe: maptest.$(OBJ) 16_map.$(OBJ) 16_head.$(OBJ) gfx.lib $(DOSLIB) $(16LIB)
-fmemtest.exe: fmemtest.$(OBJ)
-exmmtest.exe: exmmtest.$(OBJ) 16_pm.$(OBJ) 16_head.$(OBJ) 16_ca.$(OBJ) 16_mm.$(OBJ) 16_hc.$(OBJ) kitten.$(OBJ) 16_vl_1.$(OBJ) 16_tail.$(OBJ) 16_in.$(OBJ) 16_dbg.$(OBJ)
- #$(16LIB) gfx.lib $(DOSLIB)
+fmemtest.exe: fmemtest.$(OBJ)
+exmmtest.exe: exmmtest.$(OBJ) $(16LIB) gfx.lib $(DOSLIB)
+ #16_pm.$(OBJ) 16_head.$(OBJ) 16_ca.$(OBJ) 16_mm.$(OBJ) 16_hc.$(OBJ) kitten.$(OBJ) 16_vl_1.$(OBJ) 16_tail.$(OBJ) 16_in.$(OBJ) 16_dbg.$(OBJ)
vgmtest.exe: vgmtest.$(OBJ) vgmsnd.lib $(16LIB) $(DOSLIB) gfx.lib
db.exe: db.$(OBJ)
ps.exe: ps.$(OBJ) 16_head.$(OBJ)
+fd-dbg.exe: fd-dbg.$(OBJ) 16_head.$(OBJ) 16_hc.$(OBJ) kitten.$(OBJ)
wcpu.exe: wcpu.$(OBJ) $(16LIB) $(DOSLIB)
#
bakapi.$(OBJ): $(SRC)/bakapi.c $(SRC)/bakapi.h
sp2.$(OBJ): 16/fcsp2src/sp2.asm
vidtest.$(OBJ): $(SRC)/vidtest.c $(SRCLIB)/16_vl.h
+psltest.$(OBJ): $(SRC)/paltest.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
palettec.$(OBJ): $(SRC)/palettec.c
palettel.$(OBJ): $(SRC)/palettel.c
palbomb.$(OBJ): $(SRC)/palbomb.c
-palllist.$(OBJ): $(SRC)/palllist.c
maptest.$(OBJ):$(SRC)/maptest.c $(SRCLIB)/16_vl.h
#emmtest.$(OBJ):$(SRC)/emmtest.c
#emsdump.$(OBJ):$(SRC)/emsdump.c
fontgfx.$(OBJ):$(SRC)/fontgfx.c
inputest.$(OBJ):$(SRC)/inputest.c
#inntest.$(OBJ):$(SRC)/inntest.c
-sountest.$(OBJ): $(SRC)/sountest.c
+sountest.$(OBJ): $(SRC)/sountest.c
+sdtest.$(OBJ): $(SRC)/sdtest.c
imfplay.$(OBJ): $(SRC)/imfplay.c
vrldbg.$(OBJ): $(SRC)/vrldbg.c
#miditest.$(OBJ): $(SRC)/miditest.c
vgmtest.$(OBJ):$(SRC)/vgmtest.c
db.$(OBJ): $(UTIL)/db.c
ps.$(OBJ): $(SRC)/ps.c
+fd-dbg.$(OBJ): $(SRC)/fd-dbg.c
#
# non executable objects libraries
16_vl.$(OBJ): $(SRCLIB)/16_vl.c $(SRCLIB)/16_vl.h
16_vl_1.$(OBJ): $(SRCLIB)/16_vl_1.c $(SRCLIB)/16_vl.h
16_vlpal.$(OBJ): $(SRCLIB)/16_vlpa_.c $(SRCLIB)/16_vlpal.c $(SRCLIB)/16_vlpal.h
+gamepal.$(OBJ): $(SRCLIB)/gamepal.c
bakapee.$(OBJ): $(SRCLIB)/bakapee.c $(SRCLIB)/bakapee.h
16planar.$(OBJ): $(MODEXLIB16)/16planar.c $(MODEXLIB16)/16planar.h
#16_vrs.$(OBJ): $(SRCLIB)/16_vrs.c $(SRCLIB)/16_vrs.h $(DOSLIB)
16_tail.$(OBJ): $(SRCLIB)/16_tail.c $(SRCLIB)/16_tail.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
16_sd.$(OBJ): $(SRCLIB)/16_sd.c $(SRCLIB)/16_sd.h
-jsmn.$(OBJ): $(JSMNLIB)/jsmn.c $(JSMNLIB)/jsmn.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
16_wcpu.$(OBJ): $(WCPULIB)/16_wcpu.c $(WCPULIB)/16_wcpu.h
#midi.$(OBJ): $(SRCLIB)/midi.c
c_utils.$(OBJ): $(MODEXLIB)/c_utils.asm
modex.$(OBJ): $(MODEXLIB)/modex.asm
-ll.$(OBJ): $(SRCLIB)/ll.c $(SRCLIB)/ll.h
bitmapl.$(OBJ): $(SRCLIB)/bitmapl.c $(SRCLIB)/bitmapl.h
#
#
0croll.exe: 0croll.$(OBJ) modex16.obj dos_kb.obj bitmap.obj# $(OLDLIBOBJS) omodex16.$(OBJ)# 16_ino.$(OBJ)
wcl -0 $(WCLQ) 0croll.$(OBJ) modex16.obj dos_kb.obj bitmap.obj# omodex16.$(OBJ) bitmap.$(OBJ)# 16_ino.$(OBJ)
-0croll.$(OBJ): $(SRC)/0croll.c
- wcl -0 $(WCLQ) -i"src/lib/doslib" -fo=.$(OBJ) -c src/0croll.c
+0croll.$(OBJ): $(SRC)$(DIRSEP)0croll.c
+ wcl -0 $(WCLQ) -i"$(DOSLIBDIR)" -fo=.$(OBJ) -c $(SRC)$(DIRSEP)0croll.c
1croll.exe: 1croll.$(OBJ) modex16.obj dos_kb.obj bitmap.obj# $(OLDLIBOBJS) omodex16.$(OBJ)# 16_ino.$(OBJ)
wcl -0 $(WCLQ) 1croll.$(OBJ) modex16.obj dos_kb.obj bitmap.obj# omodex16.$(OBJ) bitmap.$(OBJ)# 16_ino.$(OBJ)
-1croll.$(OBJ): $(SRC)/1croll.c
- wcl -0 $(WCLQ) -i"src/lib/doslib" -fo=.$(OBJ) -c src/1croll.c
-#16render.$(OBJ): $(OLDMODEX16LIBDIR)/16render.c $(OLDMODEX16LIBDIR)/16render.h
-# wcl -0 $(WCLQ) -i"src/lib/doslib" -fo=.$(OBJ) -c $(OLDMODEX16LIBDIR)/16render.c
-bitmap.$(OBJ): $(OLDMODEX16LIBDIR)/bitmap.c $(OLDMODEX16LIBDIR)/bitmap.h
- wcl -0 $(WCLQ) -i"src/lib/doslib" -fo=.$(OBJ) -c $(OLDMODEX16LIBDIR)/bitmap.c
-#omodex16.$(OBJ): $(OLDMODEX16LIBDIR)/omodex16.c $(OLDMODEX16LIBDIR)/omodex16.h
-# wcl -0 $(WCLQ) -i"src/lib/doslib" -fo=.$(OBJ) -c $(OLDMODEX16LIBDIR)/omodex16.c
-modex16.$(OBJ): $(OLDMODEX16LIBDIR)/modex16.c $(OLDMODEX16LIBDIR)/modex16.h
- wcl -0 $(WCLQ) -i"src/lib/doslib" -fo=.$(OBJ) -c $(OLDMODEX16LIBDIR)/modex16.c
-#16_ino.$(OBJ): $(SRCLIB)/16_in.c $(SRCLIB)/16_in.h
-# wcl -0 $(WCLQ) -i"src/lib/doslib" -fo=16_ino.$(OBJ) -c src/lib/16_in.c
-dos_kb.$(OBJ): $(OLDMODEX16LIBDIR)/dos_kb.c $(OLDMODEX16LIBDIR)/dos_kb.h
- wcl -0 $(WCLQ) -i"src/lib/doslib" -fo=.$(OBJ) -c $(OLDMODEX16LIBDIR)/dos_kb.c
+1croll.$(OBJ): $(SRC)$(DIRSEP)1croll.c
+ wcl -0 $(WCLQ) -i"$(DOSLIBDIR)" -fo=.$(OBJ) -c $(SRC)$(DIRSEP)1croll.c
+#16render.$(OBJ): $(OLDMODEX16LIBDIR)$(DIRSEP)16render.c $(OLDMODEX16LIBDIR)$(DIRSEP)16render.h
+# wcl -0 $(WCLQ) -i"$(DOSLIBDIR)" -fo=.$(OBJ) -c $(OLDMODEX16LIBDIR)$(DIRSEP)16render.c
+bitmap.$(OBJ): $(OLDMODEX16LIBDIR)$(DIRSEP)bitmap.c $(OLDMODEX16LIBDIR)$(DIRSEP)bitmap.h
+ wcl -0 $(WCLQ) -i"$(DOSLIBDIR)" -fo=.$(OBJ) -c $(OLDMODEX16LIBDIR)$(DIRSEP)bitmap.c
+#omodex16.$(OBJ): $(OLDMODEX16LIBDIR)$(DIRSEP)omodex16.c $(OLDMODEX16LIBDIR)$(DIRSEP)omodex16.h
+# wcl -0 $(WCLQ) -i"$(DOSLIBDIR)" -fo=.$(OBJ) -c $(OLDMODEX16LIBDIR)$(DIRSEP)omodex16.c
+modex16.$(OBJ): $(OLDMODEX16LIBDIR)$(DIRSEP)modex16.c $(OLDMODEX16LIBDIR)$(DIRSEP)modex16.h
+ wcl -0 $(WCLQ) -i"$(DOSLIBDIR)" -fo=.$(OBJ) -c $(OLDMODEX16LIBDIR)$(DIRSEP)modex16.c
+#16_ino.$(OBJ): $(SRCLIB)$(DIRSEP)16_in.c $(SRCLIB)$(DIRSEP)16_in.h
+# wcl -0 $(WCLQ) -i"$(DOSLIBDIR)" -fo=16_ino.$(OBJ) -c $(SRC)$(DIRSEP)lib$(DIRSEP)16_in.c
+dos_kb.$(OBJ): $(OLDMODEX16LIBDIR)$(DIRSEP)dos_kb.c $(OLDMODEX16LIBDIR)$(DIRSEP)dos_kb.h
+ wcl -0 $(WCLQ) -i"$(DOSLIBDIR)" -fo=.$(OBJ) -c $(OLDMODEX16LIBDIR)$(DIRSEP)dos_kb.c
#
#other~
@if exist *.OBJ $(REMOVECOMMAND) *.OBJ
#@for %f in ($(SPRIUTILEXEC)) do @if exist %f $(REMOVECOMMAND) %f
@if not exist vrl2vrs wmake -s -h pcx2vrl
+ @if not exist dro2imf wmake -s -h drotoimf
+ @if not exist raw2vgm wmake -s -h vgmtools
!else
@if exist *.o $(REMOVECOMMAND) *.o
!endif
# @$(COPYCOMMAND) $(SRCLIB)16_hc.* $(EXMMTESTDIR)$(SRCLIB)
# @$(COPYCOMMAND) $(SRCLIB)types.h $(EXMMTESTDIR)$(SRCLIB)
# @$(COPYCOMMAND) $(NYANLIB)* $(EXMMTESTDIR)$(NYANLIB)
+# @if not exist ps.exe wmake -s -h ps.exe
nuke: .symbolic
@wmake clean
backupscript: .symbolic
+ @$(COPYCOMMAND) WBUILD.BAT WBUILD.B
+ @$(COPYCOMMAND) wbuild.sh wbuild.s
@if exist *.bat $(MOVECOMMAND) *.bat $(SCRIPTBATDIR)/
@if exist *.sh $(MOVECOMMAND) *.sh $(SCRIPTBATDIR)/
+ @$(MOVECOMMAND) WBUILD.B WBUILD.BAT
+ @$(MOVECOMMAND) wbuild.s wbuild.sh
!ifdef __LINUX__
@if exist *.BAT $(MOVECOMMAND) *.BAT $(SCRIPTBATDIR)/
@if not exist ud.sh $(COPYCOMMAND) $(SCRIPTBATDIR)/ud.sh ./
@if exist 16.exe @wmake -s -h wwwdo
@if exist 16.exe @wmake -s -h wwwext
-wwwdo: .symbolic
+cleanwww: .symbolic
+wwwclean: .symbolic
+wwwcl: .symbolic
+clwww: .symbolic
@for %f in (/var/www/$(EXEC)) do @if exist /var/www/%f $(REMOVECOMMAND) /var/www/%f
@$(REMOVECOMMAND) /var/www/*.exe.zi*
@$(REMOVECOMMAND) /var/www/*.zip.zi*
+
+wwwdo: .symbolic
+ @wmake clwww
@for %f in ($(EXEC)) do @if exist %f @$(COPYCOMMAND) %f /var/www/
@./src/util/z.sh $(EXEC) $(EXEC)
@./src/util/z2.sh data.zip data
uplibs: .symbolic
@cd $(JSMNLIB:$(to_os_path))
@git pull
+ #@git checkout 18e9fe42cbfe21d65076f5c77ae2be379ad1270f
@cd $(BUILD_ROOT)
@cd $(DOSLIBDIR:$(to_os_path))
@git pull
@$(REMOVECOMMAND) -rf 16/keen
@$(REMOVECOMMAND) -rf 16/Catacomb3D
@$(REMOVECOMMAND) -rf 16/shitman
+ @$(REMOVECOMMAND) -rf 16/dro2imf
+ @$(REMOVECOMMAND) -rf 16/vgmtools
@wmake -s -h initlibs
initlibs: .symbolic
@git clone https://github.com/id-Software/wolf3d.git
@git clone https://github.com/keendreams/keen.git
@git clone https://github.com/FlatRockSoft/Catacomb3D.git
+ @git clone https://github.com/Malvineous/dro2imf.git
+ @git clone https://github.com/vgmrips/vgmtools.git
@cd $(BUILD_ROOT)
@$(COPYCOMMAND) $(DOSLIBDIR)/make-lowercase .
@cd $(BUILD_ROOT)
!ifdef __LINUX__
+drotoimf: .symbolic
+ @cd 16/dro2imf
+ @make
+ @$(MOVECOMMAND) dro2imf ../..
+ @cd $(BUILD_ROOT)
+
+vgmtools: .symbolic
+ @cd 16/vgmtools
+ @make
+ @$(MOVECOMMAND) dro2vgm ../..
+ @$(MOVECOMMAND) imf2vgm ../..
+ @$(MOVECOMMAND) raw2vgm ../..
+ @cd $(BUILD_ROOT)
+
vrs: .symbolic
vrl: .symbolic
$(SPRIUTILEXEC):