DIRSEP=/
OBJ=obj
DUMP=cat
+DOSLIBMAKE=./make.sh
+DOSLIBMAKEALL=./buildall.sh
!else #DOS ^^
to_os_path=/=\
REMOVECOMMAND=del
DIRSEP=\
OBJ=obj
DUMP=type
+DOSLIBMAKE=.\make.bat
+DOSLIBMAKEALL=.\build.bat
!endif
TARGET_OS = dos
BUILD_ROOT=$+$(%__CWD__)$-
#EXMMTESTDIR=16$(DIRSEP)exmmtest$(DIRSEP)
DATADIR=data$(DIRSEP)
-SPRI=$(DATADIR)$(DIRSEP)spri$(DIRSEP)
+SPRI=$(DATADIR)/spri
SRC=src
SRCLIB=src/lib
JSMNLIB=src/lib/jsmn
NYANLIB=src/lib/nyan
EXMMLIB=src/lib/exmm
-MODEXLIB16=src/lib/modex16
+MODEXLIB16=src/lib/16_vl
MODEXLIB=src/lib/modex
VGMSNDLIB=src/lib/vgmsnd
DOSLIB=src/lib/doslib
# quiet flags
#
WLIBQ=-q
-WCLQ=-zq $(WLIBQ)
+WCLQ=-q
UPXQ=-qqq
#
# compile flags
#
-S_FLAGS=-sg -st -of+ -zu -zdf -zff -zgf -k32768#54096#60000
+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 -mh -0 -fpi87 -fo=.$(OBJ) -d1
+T_FLAGS=-bt=dos -wx -mh -0 -fpi87 -fo=.$(OBJ) -d1###### -e=65536
CPPFLAGS=-DTARGET_MSDOS=16 -DMSDOS=1
!ifeq DEBUGSERIAL 1
!endif
AFLAGS=$(WCLQ) $(T_FLAGS)
CFLAGS=$(WCLQ) $(T_FLAGS) -wo -i"$(DOSLIB)" $(O_FLAGS) $(S_FLAGS) $(Z_FLAGS)
-LFLAGS=$(WCLQ) -l=dos -fm=$^&.mah -lr
+LFLAGS=$(WCLQ) -l=dos -fm=$^&.mah $(S_FLAGS)
LIBFLAGS=$(WLIBQ) -b -n
#
# objects
#
VGMSNDOBJ = vgmSnd.$(OBJ) 16_snd.$(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) 16_vrs.$(OBJ) 16_sprit.$(OBJ)
+GFXLIBOBJS = 16_vl.$(OBJ) 16text.$(OBJ) bakapee.$(OBJ) scroll16.$(OBJ) 16render.$(OBJ) 16_vrs.$(OBJ) 16_sprit.$(OBJ)
+OLDGFXLIBOBJS=bitmap.$(OBJ)
+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) 16_map.$(OBJ) jsmn.$(OBJ)
#16planar.$(OBJ) planar.$(OBJ)
DOSLIBOBJ = adlib.$(OBJ) 8254.$(OBJ) 8259.$(OBJ) dos.$(OBJ) cpu.$(OBJ)
!ifeq DEBUGSERIAL 1
.asm.obj:
*wcl $(AFLAGS) $(extra_$^&_obj_opts) -c $[@
+#CFLAGS is neccessary here
.obj.exe :
*wcl $(LFLAGS) $(extra_$^&_exe_opts) -fe=$@ $<
# List of executables to build
#
TESTEXEC = &
- test.exe &
- test0.exe &
- pcxtest.exe &
- pcxtest2.exe &
- palettec.exe &
+ tesuto.exe &
+ 0.exe &
+ scroll.exe &
+ zcroll.exe &
+ exmmtest.exe &
+ vrstest.exe
+TESTEXEC2 = &
+ vgmtest.exe &
+ inputest.exe &
maptest.exe &
fmemtest.exe &
fonttest.exe &
fontgfx.exe &
- scroll.exe &
- vgmtest.exe &
- inputest.exe &
+ test.exe &
+ test0.exe &
+ pcxtest.exe &
+ pcxtest2.exe
+UTILEXEC = &
palettel.exe &
- exmmtest.exe &
- vrstest.exe
+ palettec.exe
EXEC = &
16.exe &
bakapi.exe &
- tesuto.exe &
- 0.exe &
+ $(UTILEXEC) &
$(TESTEXEC)
all: $(EXEC) joytest.exe
+testexec: $(EXEC) joytest.exe $(TESTEXEC2)
#
# game and bakapi executables
#
-16.exe: 16.$(OBJ) mapread.$(OBJ) jsmn.$(OBJ) $(16LIB) gfx.lib $(DOSLIBLIBS)
+16.exe: 16.$(OBJ) $(16LIB) gfx.lib $(DOSLIBLIBS)
bakapi.exe: bakapi.$(OBJ) gfx.lib $(DOSLIBLIBS)
#
# Test Executables!
#
-scroll.exe: scroll.$(OBJ) mapread.$(OBJ) jsmn.$(OBJ) $(16LIB) gfx.lib $(DOSLIBLIBS)
+scroll.exe: scroll.$(OBJ) $(16LIB) gfx.lib $(DOSLIBLIBS) $(OLDGFXLIBOBJS)
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)
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)
+pcxtest.exe: pcxtest.$(OBJ) gfx.lib $(DOSLIBLIBS) $(OLDGFXLIBOBJS)
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)
+pcxtest2.exe: pcxtest2.$(OBJ) gfx.lib $(DOSLIBLIBS) $(OLDGFXLIBOBJS)
#planrpcx.exe: planrpcx.$(OBJ) gfx.lib
-maptest.exe: maptest.$(OBJ) mapread.$(OBJ) jsmn.$(OBJ) gfx.lib $(DOSLIBLIBS)
+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)
#
16.$(OBJ): $(SRC)/16.c $(SRC)/16.h
bakapi.$(OBJ): $(SRC)/bakapi.c $(SRC)/bakapi.h
-test.$(OBJ): $(SRC)/test.c $(SRCLIB)/modex16.h
-#test2.$(OBJ): $(SRC)/test2.c $(SRCLIB)/modex16.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)/modex16.h
-vrstest.$(OBJ): $(SRC)/vrstest.c $(SRCLIB)/modex16.h
-#planrpcx.$(OBJ): $(SRC)/planrpcx.c $(SRCLIB)/modex16.h
-pcxtest2.$(OBJ): $(SRC)/pcxtest2.c $(SRCLIB)/modex16.h
+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)/modex16.h
+maptest.$(OBJ): $(SRC)/maptest.c $(SRCLIB)/16_vl.h
#emmtest.$(OBJ): $(SRC)/emmtest.c
#emsdump.$(OBJ): $(SRC)/emsdump.c
fmemtest.$(OBJ): $(SRC)/fmemtest.c
#
# non executable objects libraries
#
-
16.lib: $(16LIBOBJS)
vgmsnd.lib: $(VGMSNDOBJ)
gfx.lib: $(GFXLIBOBJS)
*wlib $(LIBFLAGS) $(extra_$^&_lib_opts) $@ $<
-# extdep:
-# !include $(DOSLIBDIR)$(DIRSEP)extdep.mak
-
+#
+# doslib
+#
# library deps 16-bit huge
$(DOSLIB_CPU)/dos86h/cpu.lib:
- cd $(DOSLIB_CPU:$(to_os_path)) && .$(DIRSEP)make.sh && cd $(BUILD_ROOT)
+ cd $(DOSLIB_CPU:$(to_os_path)) && $(DOSLIBMAKE) && cd $(BUILD_ROOT)
$(DOSLIB_DOS)/dos86h/dos.lib:
- cd $(DOSLIB_DOS:$(to_os_path)) && .$(DIRSEP)make.sh && cd $(BUILD_ROOT)
+ cd $(DOSLIB_DOS:$(to_os_path)) && $(DOSLIBMAKE) && cd $(BUILD_ROOT)
$(DOSLIB_VGA)/dos86h/vgatty.lib:
- cd $(DOSLIB_VGA:$(to_os_path)) && .$(DIRSEP)make.sh && cd $(BUILD_ROOT)
+ cd $(DOSLIB_VGA:$(to_os_path)) && $(DOSLIBMAKE) && cd $(BUILD_ROOT)
$(DOSLIB_VGA)/dos86h/vga.lib:
- cd $(DOSLIB_VGA:$(to_os_path)) && .$(DIRSEP)make.sh && cd $(BUILD_ROOT)
+ cd $(DOSLIB_VGA:$(to_os_path)) && $(DOSLIBMAKE) && cd $(BUILD_ROOT)
$(DOSLIB_8250)/dos86h/8250.lib:
- cd $(DOSLIB_8250:$(to_os_path)) && .$(DIRSEP)make.sh && cd $(BUILD_ROOT)
+ cd $(DOSLIB_8250:$(to_os_path)) && $(DOSLIBMAKE) && cd $(BUILD_ROOT)
joytest.exe:
- cd $(DOSLIB_JOYSTICK:$(to_os_path)) && .$(DIRSEP)make.sh && cd $(BUILD_ROOT)
+ cd $(DOSLIB_JOYSTICK:$(to_os_path)) && $(DOSLIBMAKE) && cd $(BUILD_ROOT)
$(COPYCOMMAND) $(DOSLIB_JOYSTICK:$(to_os_path))$(DIRSEP)dos86h$(DIRSEP)test.exe joytest.exe
-#$(DOSLIBLIBS): .symbolic
-# @cd $(DOSLIB:$(to_os_path))
-# @.$(DIRSEP)buildall.sh
-# @cd $(BUILD_ROOT)
-modex16.$(OBJ): $(SRCLIB)/modex16.c $(SRCLIB)/modex16.h
+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
scroll16.$(OBJ): $(SRCLIB)/scroll16.c $(SRCLIB)/scroll16.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
#other~
#
clean: .symbolic
- @$(REMOVECOMMAND) $(EXEC)
- @$(REMOVECOMMAND) *.$(OBJ)
+ @for %f in ($(EXEC)) do @if exist %f $(REMOVECOMMAND) %f
!ifdef __LINUX__
@rm *.LIB
+ @. src/util/bcexmm.sh
@rm *.EXE
- #@$(REMOVECOMMAND) *.\$\$\$
-!else
- @*$(REMOVECOMMAND) *.$$$
!endif
- @$(REMOVECOMMAND) 16.lib
- @$(REMOVECOMMAND) gfx.lib
- @$(REMOVECOMMAND) vgmsnd.lib
- @*wlib -n $(WLIBQ) 16.lib
- @*wlib -n $(WLIBQ) gfx.lib
- @*wlib -n $(WLIBQ) vgmsnd.lib
- @$(REMOVECOMMAND) *.16W
- @$(REMOVECOMMAND) *.16B
- @$(REMOVECOMMAND) *.OBJ
- @$(REMOVECOMMAND) *.o
- @$(REMOVECOMMAND) *.BCO
- #@$(REMOVECOMMAND) makefi~1
- #@$(REMOVECOMMAND) makefile~
- @$(REMOVECOMMAND) __wcl__.LNK
-# @$(REMOVECOMMAND) *.smp
- @$(REMOVECOMMAND) *.SMP
- @$(REMOVECOMMAND) *.hed
- @$(REMOVECOMMAND) *.MAH
- @$(REMOVECOMMAND) *.mah
- @$(REMOVECOMMAND) *.err
- #@cd $(DOSLIB:$(to_os_path))
- #@./buildall.sh clean
- #@cd $(BUILD_ROOT)
+ @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)
# @$(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
#git submodule add <repo>
mkdl: .symbolic
@cd $(DOSLIB:$(to_os_path))
- @./buildall.sh
+ @$(DOSLIBMAKEALL)
+ @cd $(BUILD_ROOT)
+
+cldl: .symbolic
+ @cd $(DOSLIB:$(to_os_path))
+ @$(DOSLIBMAKEALL) clean
@cd $(BUILD_ROOT)
uplibs: .symbolic
@cd $(BUILD_ROOT)
reinitlibs: .symbolic
- @rm -rf $(SRCLIB)doslib
- @rm -rf $(SRCLIB)jsmn
+ @rm -rf $(DOSLIB)
+ @rm -rf $(JSMNLIB)
@rm -rf 16/CatacombApocalypse
@rm -rf 16/wolf3d
@rm -rf 16/keen
@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
+ @git clone https://github.com/FlatRockSoft/Catacomb3D.git
@cd $(BUILD_ROOT)
@cp $(DOSLIB)/make-lowercase .