]> 4ch.mooo.com Git - 16.git/blobdiff - makefile
engi stuff moved to tdef and textinit is in startup16
[16.git] / makefile
index 3a190a4f1f5dd0d580549d6d186d6c4f2ef73b63..2f4b6e4ebe6d8fbdc0f7a816103282f23c0b811d 100755 (executable)
--- a/makefile
+++ b/makefile
@@ -4,21 +4,21 @@
 #
 # Possible optimizations for 8088 class processors
 #
-# -oaRelax alias checking
-# -obTry 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)
-# -ohEnable repeated optimizations
-# -oigenerate certain lib funcs inline
-# -oi+Set max inline depth (C++ only, use -oi for C)
-# -okFlowing of register save into function flow graph
-# -olloop optimizations
-# -ol+loop optimizations plus unrolling
-# -orReorder for pipelined (486+ procs); not sure if good to use
-# -osFavor space over time
-# -otFavor time over space
-# -eiAllocate an "int" for all enum types
-# -zp2Allow compiler to add padding to structs
-# -zpwUse with above; make sure you are warning free!
+# -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
 
@@ -42,8 +42,8 @@ COPYCOMMAND=cp -f
 DIRSEP=/
 OBJ=obj
 DUMP=cat
-DOSLIBMAKE=./make.sh
-DOSLIBMAKEALL=./buildall.sh
+DOSLIBMAKE=./make.sh build all
+DOSLIBMAKEALL=./buildall.sh build all
 !else          #DOS ^^
 to_os_path=/=\
 REMOVECOMMAND=del
@@ -56,6 +56,7 @@ DOSLIBMAKEALL=.\build.bat
 !endif
 
 TARGET_OS = dos
+MEMORYMODE = l
 
 BUILD_ROOT=$+$(%__CWD__)$-
 #EXMMTESTDIR=16$(DIRSEP)exmmtest$(DIRSEP)
@@ -77,6 +78,7 @@ 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
+DOSLIB_MEMMODE=dos86$(MEMORYMODE)
 
 #
 # quiet flags
@@ -91,7 +93,7 @@ UPXQ=-qqq
 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
+T_FLAGS=-bt=dos -wx -m$(MEMORYMODE) -0 -fpi87 -fo=.$(OBJ) -d1###### -e=65536
 
 CPPFLAGS=-DTARGET_MSDOS=16 -DMSDOS=1
 !ifeq DEBUGSERIAL 1
@@ -99,17 +101,17 @@ 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)
+LFLAGS=$(WCLQ) -l=dos -fd -fm=$^&.mah $(S_FLAGS)
 LIBFLAGS=$(WLIBQ) -b -n
 
 #
 # objects
 #
 VGMSNDOBJ = vgmSnd.$(OBJ) 16_snd.$(OBJ)
-GFXLIBOBJS = 16_vl.$(OBJ) 16text.$(OBJ) bakapee.$(OBJ) scroll16.$(OBJ) 16render.$(OBJ) 16_vrs.$(OBJ) 16_sprit.$(OBJ)
-OLDLIBOBJS=bitmap.$(OBJ) mapread.$(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)
+OLDLIBOBJS=bitmap.$(OBJ) 16render.$(OBJ)
+GFXLIBOBJS = 16_vl.$(OBJ) 16text.$(OBJ) bakapee.$(OBJ) scroll16.$(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) 16text.$(OBJ)
+#16planar.$(OBJ) planar.$(OBJ) mapread.$(OBJ)
 DOSLIBOBJ = adlib.$(OBJ) 8254.$(OBJ) 8259.$(OBJ) dos.$(OBJ) cpu.$(OBJ)
 !ifeq DEBUGSERIAL 1
 DOSLIBOBJ += 8250.$(OBJ)
@@ -118,9 +120,9 @@ DOSLIBOBJ += 8250.$(OBJ)
 #
 # libraries
 #
-DOSLIBLIBS = $(DOSLIB_CPU)/dos86h/cpu.lib $(DOSLIB_DOS)/dos86h/dos.lib $(DOSLIB_VGA)/dos86h/vga.lib
+DOSLIBLIBS = $(DOSLIB_CPU)/$(DOSLIB_MEMMODE)/cpu.lib $(DOSLIB_DOS)/$(DOSLIB_MEMMODE)/dos.lib $(DOSLIB_VGA)/$(DOSLIB_MEMMODE)/vga.lib
 !ifeq DEBUGSERIAL 1
-DOSLIBLIBS += $(DOSLIB_8250)/dos86h/8250.lib
+DOSLIBLIBS += $(DOSLIB_8250)/$(DOSLIB_MEMMODE)/8250.lib
 !endif
 16LIB=$(16LIBOBJS)#16.lib bad program lock up
 
@@ -131,7 +133,7 @@ DOSLIBLIBS += $(DOSLIB_8250)/dos86h/8250.lib
 
 .asm : $(MODEXLIB)
 
-.lib : .;$(DOSLIB_CPU)/dos86h;$(DOSLIB_DOS)/dos86h;$(DOSLIB_VGA)/dos86h;$(DOSLIB_8250)/dos86h
+.lib : .;$(DOSLIB_CPU)/$(DOSLIB_MEMMODE);$(DOSLIB_DOS)/$(DOSLIB_MEMMODE);$(DOSLIB_VGA)/$(DOSLIB_MEMMODE);$(DOSLIB_8250)/$(DOSLIB_MEMMODE)
 
 .obj : .
 
@@ -157,13 +159,13 @@ DOSLIBLIBS += $(DOSLIB_8250)/dos86h/8250.lib
 TESTEXEC = &
        tesuto.exe &
        0.exe &
-       zcroll.exe &
        exmmtest.exe &
-       vrstest.exe
-TESTEXEC2 = &
-       scroll.exe &
        vgmtest.exe &
+       scroll.exe &
+       zcroll.exe &
        inputest.exe &
+       vrstest.exe
+TESTEXEC2 = &
        maptest.exe &
        fmemtest.exe &
        fonttest.exe &
@@ -174,7 +176,8 @@ TESTEXEC2 = &
        pcxtest2.exe
 UTILEXEC = &
        palettel.exe &
-       palettec.exe
+       palettec.exe &
+       db.exe
 EXEC = &
        16.exe &
        bakapi.exe &
@@ -193,7 +196,7 @@ bakapi.exe:         bakapi.$(OBJ) gfx.lib $(DOSLIBLIBS)
 #
 # Test Executables!
 #
-scroll.exe:    scroll.$(OBJ) $(16LIB) gfx.lib $(DOSLIBLIBS) $(OLDLIBOBJS)
+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
@@ -209,17 +212,18 @@ fonttest.exe:      fonttest.$(OBJ) gfx.lib
 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) $(OLDLIBOBJS)
+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) $(OLDLIBOBJS)
+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)
 
 #
 # executable's objects
@@ -251,6 +255,7 @@ inputest.$(OBJ):$(SRC)/inputest.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
@@ -265,20 +270,20 @@ gfx.lib: $(GFXLIBOBJS)
 #      doslib
 #
 # library deps 16-bit huge
-$(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)
+$(DOSLIB_CPU)/$(DOSLIB_MEMMODE)/cpu.lib:
+       cd $(DOSLIB_CPU:$(to_os_path)) && $(DOSLIBMAKE) $(DOSLIB_MEMMODE) && cd $(BUILD_ROOT)
+$(DOSLIB_DOS)/$(DOSLIB_MEMMODE)/dos.lib:
+       cd $(DOSLIB_DOS:$(to_os_path)) && $(DOSLIBMAKE) $(DOSLIB_MEMMODE) && cd $(BUILD_ROOT)
+$(DOSLIB_VGA)/$(DOSLIB_MEMMODE)/vgatty.lib:
+       cd $(DOSLIB_VGA:$(to_os_path)) && $(DOSLIBMAKE) $(DOSLIB_MEMMODE) && cd $(BUILD_ROOT)
+$(DOSLIB_VGA)/$(DOSLIB_MEMMODE)/vga.lib:
+       cd $(DOSLIB_VGA:$(to_os_path)) && $(DOSLIBMAKE) $(DOSLIB_MEMMODE) && cd $(BUILD_ROOT)
+$(DOSLIB_8250)/$(DOSLIB_MEMMODE)/8250.lib:
+       cd $(DOSLIB_8250:$(to_os_path)) && $(DOSLIBMAKE) $(DOSLIB_MEMMODE) && cd $(BUILD_ROOT)
 
 joytest.exe:
-       cd $(DOSLIB_JOYSTICK:$(to_os_path)) && $(DOSLIBMAKE) && cd $(BUILD_ROOT)
-       $(COPYCOMMAND) $(DOSLIB_JOYSTICK:$(to_os_path))$(DIRSEP)dos86h$(DIRSEP)test.exe joytest.exe
+       cd $(DOSLIB_JOYSTICK:$(to_os_path)) && $(DOSLIBMAKE) $(DOSLIB_MEMMODE) && cd $(BUILD_ROOT)
+       $(COPYCOMMAND) $(DOSLIB_JOYSTICK:$(to_os_path))$(DIRSEP)$(DOSLIB_MEMMODE)$(DIRSEP)test.exe joytest.exe
 
 16_vl.$(OBJ):$(SRCLIB)/16_vl.c $(SRCLIB)/16_vl.h
 bakapee.$(OBJ):$(SRCLIB)/bakapee.c $(SRCLIB)/bakapee.h
@@ -289,7 +294,7 @@ bakapee.$(OBJ):$(SRCLIB)/bakapee.c $(SRCLIB)/bakapee.h
 bitmap.$(OBJ): $(SRCLIB)/bitmap.c $(SRCLIB)/bitmap.h
 planar.$(OBJ): $(SRCLIB)/planar.c $(SRCLIB)/planar.h
 scroll16.$(OBJ):$(SRCLIB)/scroll16.c $(SRCLIB)/scroll16.h
-16text.$(OBJ): $(SRCLIB)/16text.c
+16text.$(OBJ): $(SRCLIB)/16text.c $(SRCLIB)/16text.h
 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
@@ -315,6 +320,7 @@ modex.$(OBJ):        $(MODEXLIB)/modex.asm
 #other~
 #
 clean: .symbolic
+       @if not exist $(DOSLIB)/buildall.sh wmake -h initlibs
        @for %f in ($(EXEC)) do @if exist %f $(REMOVECOMMAND) %f
 !ifdef __LINUX__
        @rm *.LIB
@@ -364,9 +370,9 @@ comq: .symbolic
 
 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/
@@ -384,12 +390,12 @@ vomitchan: .symbolic
 #git submodule add <repo>
 mkdl: .symbolic
        @cd $(DOSLIB:$(to_os_path))
-       @$(DOSLIBMAKEALL)
+       @$(DOSLIBMAKEALL) $(DOSLIB_MEMMODE)
        @cd $(BUILD_ROOT)
 
 cldl: .symbolic
        @cd $(DOSLIB:$(to_os_path))
-       @$(DOSLIBMAKEALL) clean
+       @$(DOSLIBMAKEALL) $(DOSLIB_MEMMODE) clean
        @cd $(BUILD_ROOT)
 
 uplibs: .symbolic
@@ -401,17 +407,18 @@ uplibs: .symbolic
        @cd $(BUILD_ROOT)
 
 reinitlibs: .symbolic
-       @rm -rf $(DOSLIB)
-       @rm -rf $(JSMNLIB)
-       @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
+       @$(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
@@ -422,7 +429,7 @@ initlibs: .symbolic
        @git clone https://github.com/keendreams/keen.git
        @git clone https://github.com/FlatRockSoft/Catacomb3D.git
        @cd $(BUILD_ROOT)
-       @cp $(DOSLIB)/make-lowercase .
+       @$(COPYCOMMAND) $(DOSLIB)/make-lowercase .
 
 ##
 ##     experimental libs