6092afc74d
When country was converted to a submodule (by me) the production installation target was hacked onto the kernel subdirectory Makefile which wasn't ideal. Introduce a production target into the country Makefile that does the installation. Since we want the submodule to be buildable standalone, we can't include the variable definitions from the upper level, such as $(DIRSEP) and $(CP), so the caller has to pass those in at build time if using the production target. Tested on Linux (GCC + Watcom) and DOS (Watcom)
196 lines
5.0 KiB
Batchfile
196 lines
5.0 KiB
Batchfile
@echo off
|
|
rem batch file to build everything
|
|
rem IF NOTHING COMPILES, CHECK IF YOUR CVS CHECKOUT USES CORRECT DOS LINEBREAKS
|
|
|
|
if NOT "%1" == "/?" goto start
|
|
echo ":-----------------------------------------------------------------------"
|
|
echo ":- Syntax: BUILD [-r] [fat32|fat16] [msc|wc|tc|tcpp|bc] [86|186|386] "
|
|
echo ":- [debug] [lfnapi] [/L #] [/D value] [list] [upx] [win] "
|
|
echo ":- option case is significant !! "
|
|
echo ":- Note: Open Watcom (wc) is the preferred compiler "
|
|
echo ":-----------------------------------------------------------------------"
|
|
goto end
|
|
|
|
:start
|
|
|
|
:- assume an error until successful build
|
|
set XERROR=1
|
|
if "%XERROR%" == "" goto noenv
|
|
|
|
if "%1" == "-r" call clobber.bat
|
|
if "%1" == "-r" shift
|
|
|
|
if not exist config.bat echo You must copy CONFIG.B to CONFIG.BAT and edit it to reflect your setup!
|
|
if not exist config.bat goto abort
|
|
|
|
call config.bat
|
|
:-if "%LAST%" == "" goto noenv
|
|
set dos4g=quiet
|
|
|
|
:-----------------------------------------------------------------------
|
|
:- following is command line handling
|
|
:- options on the commandline overwrite default settings
|
|
:-----------------------------------------------------------------------
|
|
|
|
:loop_commandline
|
|
|
|
if "%1" == "fat32" set XFAT=32
|
|
if "%1" == "fat16" set XFAT=16
|
|
|
|
if "%1" == "msc" set COMPILER=MSCL8
|
|
if "%1" == "wc" set COMPILER=WATCOM
|
|
if "%1" == "tc" set COMPILER=TC2
|
|
if "%1" == "tcpp" set COMPILER=TURBOCPP
|
|
if "%1" == "bc" set COMPILER=BC
|
|
|
|
if "%1" == "86" set XCPU=86
|
|
if "%1" == "186" set XCPU=186
|
|
if "%1" == "386" set XCPU=386
|
|
if "%1" == "x86" goto setCPU
|
|
|
|
if "%1" == "upx" set XUPX=upx --8086 --best
|
|
|
|
if "%1" == "debug" set ALLCFLAGS=%ALLCFLAGS% -DDEBUG
|
|
if "%1" == "lfn" set ALLCFLAGS=%ALLCFLAGS% -DWITHLFNAPI
|
|
if "%1" == "lfnapi" set ALLCFLAGS=%ALLCFLAGS% -DWITHLFNAPI
|
|
|
|
if "%1" == "win" set ALLCFLAGS=%ALLCFLAGS% -DWIN31SUPPORT
|
|
if "%1" == "win" set NASMFLAGS=%NASMFLAGS% -DWIN31SUPPORT
|
|
|
|
if "%1" == "list" set NASMFLAGS=%NASMFLAGS% -l$*.lst
|
|
|
|
if "%1" == "/L" goto setLoadSeg
|
|
if "%1" == "/D" goto setDefine
|
|
|
|
:nextOption
|
|
shift
|
|
if not "%1" == "" goto loop_commandline
|
|
|
|
call default.bat
|
|
:-if "%LAST%" == "" goto noenv
|
|
|
|
:-----------------------------------------------------------------------
|
|
:- finally - we are going to compile
|
|
:-----------------------------------------------------------------------
|
|
|
|
echo USING OPTIONS of C=[%ALLCFLAGS%] ASM=[%NASMFLAGS%]
|
|
|
|
echo.
|
|
echo Process UTILS ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
echo.
|
|
cd utils
|
|
%MAKE% production
|
|
if errorlevel 1 goto abort-cd
|
|
|
|
echo.
|
|
echo Process LIB ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
echo.
|
|
cd ..\lib
|
|
%MAKE%
|
|
if errorlevel 1 goto abort-cd
|
|
|
|
echo.
|
|
echo Process DRIVERS ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
echo.
|
|
cd ..\drivers
|
|
%MAKE% production
|
|
if errorlevel 1 goto abort-cd
|
|
|
|
echo.
|
|
echo Process BOOT +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
echo.
|
|
cd ..\boot
|
|
%MAKE% production
|
|
if errorlevel 1 goto abort-cd
|
|
|
|
echo.
|
|
echo Process SYS ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
echo.
|
|
cd ..\sys
|
|
%MAKE% production
|
|
if errorlevel 1 goto abort-cd
|
|
if NOT "%XUPX%" == "" %XUPX% ..\bin\sys.com
|
|
|
|
echo.
|
|
echo Process KERNEL +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
echo.
|
|
cd ..\kernel
|
|
%MAKE% production
|
|
if errorlevel 1 goto abort-cd
|
|
|
|
echo.
|
|
echo Process COUNTRY +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
echo.
|
|
cd ..\country
|
|
%MAKE% DIRSEP=\ CP=copy production
|
|
if errorlevel 1 goto abort-cd
|
|
|
|
echo.
|
|
echo Process SETVER +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
echo.
|
|
cd ..\setver
|
|
%MAKE% production
|
|
if errorlevel 1 goto abort-cd
|
|
|
|
cd ..
|
|
|
|
set XERROR=
|
|
|
|
:- if you like, put finalizing commands (like copy to floppy) into build2.bat
|
|
if exist build2.bat call build2.bat
|
|
|
|
echo.
|
|
echo Processing is done.
|
|
goto end
|
|
|
|
:-----------------------------------------------------------------------
|
|
|
|
:setLoadSeg
|
|
shift
|
|
if "%1" == "" echo you MUST specify load segment eg 0x60 with /L option
|
|
if "%1" == "" goto abort
|
|
set LOADSEG=%1
|
|
goto nextOption
|
|
|
|
:setCPU
|
|
shift
|
|
if "%1" == "" echo you MUST specify compiler's cpu cmd line argument, eg -5
|
|
if "%1" == "" goto abort
|
|
set XCPU_EX=%1
|
|
goto nextOption
|
|
|
|
:setDefine
|
|
shift
|
|
:- Give extra compiler DEFINE flags here
|
|
if "%1" == "" echo you MUST specify value to define with /D option
|
|
if "%1" == "" echo such as /D DEBUG : extra DEBUG output
|
|
if "%1" == "" echo or /D DOSEMU : printf output goes to dosemu log
|
|
if "%1" == "" echo or /D WIN31SUPPORT : enable Win 3.x hooks
|
|
if "%1" == "" goto abort
|
|
if "%2" == "/V" goto :setDefineWithValue
|
|
set ALLCFLAGS=%ALLCFLAGS% -D%1
|
|
set NASMFLAGS=%NASMFLAGS% -D%1
|
|
REM $(NASMBOOTFLAGS) are extra flags only used when building boot sectors
|
|
set NASMBOOTFLAGS=%NASMBOOTFLAGS% -d%1
|
|
goto nextOption
|
|
|
|
:setDefineWithValue
|
|
set ALLCFLAGS=%ALLCFLAGS% -D%1=%3
|
|
set NASMFLAGS=%NASMFLAGS% -D%1=%3
|
|
shift
|
|
shift
|
|
goto nextOption
|
|
|
|
:noenv
|
|
echo Unable to set necessary environment variables!
|
|
goto abort
|
|
|
|
:abort-cd
|
|
cd ..
|
|
|
|
:abort
|
|
echo Compilation was aborted!
|
|
|
|
:end
|
|
call default.bat clearset
|