diff --git a/build.bat b/build.bat index e18eb19..c35eb1f 100644 --- a/build.bat +++ b/build.bat @@ -1,21 +1,30 @@ @echo off +rem batch file to build everything rem IF NOTHING COMPILES, CHECK IF YOUR CVS CHECKOUT USES CORRECT DOS LINEBREAKS -:- batch file to build everything -:- $Id$ +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 -:- Syntax: BUILD [-r] [fat32|fat16] [msc|wc|tc|tcpp] [86|186|386] -:- option case is significant !! +:start + +:- assume an error until successful build +set XERROR=1 +if "%XERROR%" == "" goto noenv if "%1" == "-r" call clobber.bat if "%1" == "-r" shift -set XERROR= - 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 :----------------------------------------------------------------------- @@ -32,11 +41,27 @@ 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" == "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 @@ -44,11 +69,14 @@ if "%COMPILER%" == "" echo you MUST define a COMPILER variable in CONFIG.BAT if "%COMPILER%" == "" goto abort 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. @@ -83,6 +111,7 @@ echo. cd ..\sys %MAKE% production if errorlevel 1 goto abort-cd +if NOT "%XUPX%" == "" %XUPX% ..\bin\sys.com echo. echo Process KERNEL +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -93,10 +122,10 @@ if errorlevel 1 goto abort-cd cd .. -:- if you like, put some finalizing commands (like copy to floppy) -:- into build2.bat +set XERROR= -if exist build2.bat call build2 +:- 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. @@ -104,11 +133,49 @@ 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 +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! -set XERROR=1 :end -default.bat clearset +call default.bat clearset