1@echo off 2 3:: make.cmd - Build Oberon with Microsoft C compiler. 4 5:: Expects the path to include cl.exe. 6 7:: As of December 2016 the Microsoft C compiler and build tools 8:: can be downloaded independently of the full Visual Studio IDE 9:: as the 'Visual C++ Build Tools 2015'. 10 11:: See: http://landinghub.visualstudio.com/visual-cpp-build-tools 12 13:: With this installed, from the start button select: 14:: All Apps / Visual C++ Build Tools / Visual C++ 2015 x86 Native Build Tools Command Prompt 15:: or All Apps / Visual C++ Build Tools / Visual C++ 2015 x64 Native Build Tools Command Prompt 16 17 18 19 20:: Create configuration and parameter files. 21 22cl -nologo -Isrc\runtime src\tools\make\configure.c >msc-listing || type msc-listing 23setlocal 24configure.exe 25del configure.obj configure.exe 2>nul 26 27 28:: Extract make variables into local environment 29 30for /F "delims='=' tokens=1,2" %%a in (Configuration.make) do set %%a=%%b 31 32set FLAVOUR=%OS%.%DATAMODEL%.%COMPILER% 33set BUILDDIR=build\%FLAVOUR% 34set OBECOMP=%ONAME%%BINEXT% 35set MODEL=2 36 37for /F %%d in ('cd');do set ROOTDIR=%%d 38 39 40:: Process target parameter 41 42if "%1" equ "" ( 43 call :usage 44) else ( 45 call :%1 46) 47endlocal 48goto :eof 49 50 51 52 53:usage 54@echo. 55@echo Usage: 56@echo. 57@echo. make full - Make compiler to 'install' subdirectory 58@echo. make install - Install 'install' subdir to OS. Requires administrator privileges 59@echo. 60@echo. make clean - Remove made files 61@echo. make compiler - Build the compiler but not the library 62@echo. make library - Build all library files and make library 63@echo. make install - Install built compiler and library (from administrator prompt) 64goto :eof 65 66 67 68 69:full 70call :clean || exit /b 71echo. 72echo.--- Compiler build started --- 73echo. 74call :compiler || exit /b 75echo. 76echo.--- Compiler build successfull --- 77echo. 78call :browsercmd || exit /b 79echo. 80echo.--- Library build started --- 81echo. 82call :library || exit /b 83echo. 84echo.--- Library build successfull --- 85echo. 86call :makeinstalldir || exit /b 87goto :eof 88 89 90 91 92:makeinstalldir 93rmdir /s /q "%ROOTDIR%\install" >nul 2>&1 94mkdir "%ROOTDIR%\install" >nul 2>&1 95 96mkdir "%ROOTDIR%\install\bin" >nul 2>&1 97copy %OBECOMP% "%ROOTDIR%\install\bin" >nul 98copy %BUILDDIR%\showdef.exe "%ROOTDIR%\install\bin" >nul 99 100mkdir "%ROOTDIR%\install\2" >nul 2>&1 101mkdir "%ROOTDIR%\install\2\include" >nul 2>&1 102mkdir "%ROOTDIR%\install\2\sym" >nul 2>&1 103copy %BUILDDIR%\2\*.h "%ROOTDIR%\install\2\include" >nul 104copy %BUILDDIR%\2\*.sym "%ROOTDIR%\install\2\sym" >nul 105 106mkdir "%ROOTDIR%\install\C" >nul 2>&1 107mkdir "%ROOTDIR%\install\C\include" >nul 2>&1 108mkdir "%ROOTDIR%\install\C\sym" >nul 2>&1 109copy %BUILDDIR%\C\*.h "%ROOTDIR%\install\C\include" >nul 110copy %BUILDDIR%\C\*.sym "%ROOTDIR%\install\C\sym" >nul 111 112mkdir "%ROOTDIR%\install\lib" >nul 2>&1 113copy %BUILDDIR%\2\lib%ONAME%* "%ROOTDIR%\install\lib" >nul 114copy %BUILDDIR%\C\lib%ONAME%* "%ROOTDIR%\install\lib" >nul 115 116echo. 117echo Now add %ROOTDIR%\install\bin to your path, for example with the command: 118echo PATH %ROOTDIR%\install\bin;%%PATH%% 119echo. 120goto :eof 121 122 123 124:install 125whoami /groups | find "12288" >nul 126if errorlevel 1 ( 127echo make install - administrator rights required. Please run under an administrator command prompt. 128goto :eof 129) 130echo Installing to %INSTALLDIR% 131rmdir /s /q "%INSTALLDIR%" >nul 2>&1 132xcopy /E /I /Y "%ROOTDIR%\install" "%INSTALLDIR%" >nul 133echo. 134echo Now add %INSTALLDIR%\bin to your path, for example with the command: 135echo PATH %INSTALLDIR%\bin;%%PATH%% 136echo. 137goto :eof 138 139 140 141:uninstall 142whoami /groups | find "12288" >nul 143if errorlevel 1 ( 144echo make uninstall - administrator rights required. Please run under an administrator command prompt. 145goto :eof 146) 147echo Uninstalling %INSTALLDIR% 148rmdir /s /q "%INSTALLDIR%" >nul 2>&1 149goto :eof 150 151 152 153 154:compiler 155call :translate || exit /b 156call :assemble || exit /b 157goto :eof 158 159 160 161 162:clean 163echo.--- Cleaning branch ... %OS% %COMPILER% %DATAMODEL% --- 164rd /s /q %BUILDDIR% 2>nul 165del /q %OBECOMP% 2>nul 166goto :eof 167 168 169 170 171:assemble 172echo. 173echo.make assemble - compiling Oberon compiler c source:: 174echo. VERSION: %VERSION% 175echo. Target characeristics: 176echo. PLATFORM: %PLATFORM% 177echo. OS: %OS% 178echo. BUILDDIR: %BUILDDIR% 179echo. INSTALLDIR: %INSTALLDIR% 180echo. Oberon characteristics: 181echo. MODEL: %MODEL% 182echo. ADRSIZE: %ADRSIZE% 183echo. ALIGNMENT: %ALIGNMENT% 184echo. C compiler: 185echo. COMPILER: %COMPILER% 186echo. COMPILE: %COMPILE% 187echo. DATAMODEL: %DATAMODEL% 188 189cd %BUILDDIR% 190 191cl -nologo /Zi -c SYSTEM.c Configuration.c Platform.c Heap.c || exit /b 192cl -nologo /Zi -c Out.c Reals.c Strings.c Modules.c || exit /b 193cl -nologo /Zi -c Files.c Texts.c VT100.c || exit /b 194cl -nologo /Zi -c OPM.c extTools.c OPS.c OPT.c || exit /b 195cl -nologo /Zi -c OPC.c OPV.c OPB.c OPP.c || exit /b 196 197cl -nologo /Zi Compiler.c /Fe%ROOTDIR%\%OBECOMP% /link /INCREMENTAL:NO ^ 198SYSTEM.obj Configuration.obj Platform.obj Heap.obj Out.obj Reals.obj ^ 199Modules.obj Files.obj Strings.obj Texts.obj VT100.obj extTools.obj ^ 200OPM.obj OPS.obj OPT.obj OPC.obj OPV.obj OPB.obj OPP.obj || exit /b 201 202cd %ROOTDIR% 203copy src\runtime\*.c %BUILDDIR% >nul 204copy src\runtime\*.h %BUILDDIR% >nul 205copy src\runtime\*.Txt %BUILDDIR% >nul 206copy src\runtime\*.Txt %ROOTDIR% >nul 207echo.%OBECOMP% created. 208goto :eof 209 210 211 212 213:compilefromsavedsource 214echo.Populating clean build directory from bootstrap C sources. 215mkdir %BUILDDIR% >nul 2>nul 216copy bootstrap\%PLATFORM%-%ADRSIZE%%ALIGNMENT%\*.* %BUILDDIR% >nul 217copy bootstrap\*.c %BUILDDIR% >nul 218copy bootstrap\*.h %BUILDDIR% >nul 219call :assemble || exit /b 220copy bootstrap\*.c %BUILDDIR% >nul 221copy bootstrap\*.h %BUILDDIR% >nul 222goto :eof 223 224 225 226 227:translate 228:: Make sure we have an oberon compiler binary: if we built one earlier we'll use it, 229:: otherwise use one of the saved sets of C sources in the bootstrap directory. 230if not exist %OBECOMP% call :compilefromsavedsource 231 232echo. 233echo.make translate - translating compiler source: 234echo. PLATFORM: %PLATFORM% 235echo. MODEL: %MODEL% 236echo. ADRSIZE: %ADRSIZE% 237echo. ALIGNMENT: %ALIGNMENT% 238 239md %BUILDDIR% 2>nul 240cd %BUILDDIR% 241del *.sym >nul 2>nul 242%ROOTDIR%\%OBECOMP% -SsfF -A%ADRSIZE%%ALIGNMENT% -O%MODEL% ../../Configuration.Mod || exit /b 243%ROOTDIR%\%OBECOMP% -SsfF -A%ADRSIZE%%ALIGNMENT% -O%MODEL% ../../src/runtime/Platform%PLATFORM%.Mod || exit /b 244%ROOTDIR%\%OBECOMP% -SsfFapx -A%ADRSIZE%%ALIGNMENT% -O%MODEL% ../../src/runtime/Heap.Mod || exit /b 245%ROOTDIR%\%OBECOMP% -SsfF -A%ADRSIZE%%ALIGNMENT% -O%MODEL% ../../src/runtime/Reals.Mod || exit /b 246%ROOTDIR%\%OBECOMP% -SsfF -A%ADRSIZE%%ALIGNMENT% -O%MODEL% ../../src/runtime/Strings.Mod || exit /b 247%ROOTDIR%\%OBECOMP% -SsfF -A%ADRSIZE%%ALIGNMENT% -O%MODEL% ../../src/runtime/Out.Mod || exit /b 248%ROOTDIR%\%OBECOMP% -SsfF -A%ADRSIZE%%ALIGNMENT% -O%MODEL% ../../src/runtime/Modules.Mod || exit /b 249%ROOTDIR%\%OBECOMP% -SsfFx -A%ADRSIZE%%ALIGNMENT% -O%MODEL% ../../src/runtime/Files.Mod || exit /b 250%ROOTDIR%\%OBECOMP% -SsfF -A%ADRSIZE%%ALIGNMENT% -O%MODEL% ../../src/runtime/Texts.Mod || exit /b 251%ROOTDIR%\%OBECOMP% -SsfF -A%ADRSIZE%%ALIGNMENT% -O%MODEL% ../../src/runtime/VT100.Mod || exit /b 252%ROOTDIR%\%OBECOMP% -SsfF -A%ADRSIZE%%ALIGNMENT% -O%MODEL% ../../src/compiler/OPM.Mod || exit /b 253%ROOTDIR%\%OBECOMP% -SsfF -A%ADRSIZE%%ALIGNMENT% -O%MODEL% ../../src/compiler/extTools.Mod || exit /b 254%ROOTDIR%\%OBECOMP% -SsfFx -A%ADRSIZE%%ALIGNMENT% -O%MODEL% ../../src/compiler/OPS.Mod || exit /b 255%ROOTDIR%\%OBECOMP% -SsfF -A%ADRSIZE%%ALIGNMENT% -O%MODEL% ../../src/compiler/OPT.Mod || exit /b 256%ROOTDIR%\%OBECOMP% -SsfF -A%ADRSIZE%%ALIGNMENT% -O%MODEL% ../../src/compiler/OPC.Mod || exit /b 257%ROOTDIR%\%OBECOMP% -SsfF -A%ADRSIZE%%ALIGNMENT% -O%MODEL% ../../src/compiler/OPV.Mod || exit /b 258%ROOTDIR%\%OBECOMP% -SsfF -A%ADRSIZE%%ALIGNMENT% -O%MODEL% ../../src/compiler/OPB.Mod || exit /b 259%ROOTDIR%\%OBECOMP% -SsfF -A%ADRSIZE%%ALIGNMENT% -O%MODEL% ../../src/compiler/OPP.Mod || exit /b 260%ROOTDIR%\%OBECOMP% -Ssfm -A%ADRSIZE%%ALIGNMENT% -O%MODEL% ../../src/compiler/Compiler.Mod || exit /b 261 262cd %ROOTDIR% 263copy src\runtime\*.c %BUILDDIR% >nul 264copy src\runtime\*.h %BUILDDIR% >nul 265copy src\runtime\*.Txt %BUILDDIR% >nul 266 267echo.%BUILDDIR% filled with compiler C source. 268goto :eof 269 270 271 272 273:browsercmd 274echo. 275echo.Making symbol browser 276cd %BUILDDIR% 277%ROOTDIR%/%OBECOMP% -fSs ../../src/runtime/Oberon.Mod 278%ROOTDIR%/%OBECOMP% -fSm ../../src/tools/browser/BrowserCmd.Mod 279cl -nologo BrowserCmd.c Oberon.c /Feshowdef.exe ^ 280 Platform.obj Texts.obj OPT.obj Heap.obj Out.obj SYSTEM.obj OPM.obj OPS.obj OPV.obj ^ 281 Files.obj Reals.obj Modules.obj VT100.obj Configuration.obj Strings.obj ^ 282 OPC.obj 283cd %ROOTDIR% 284goto :eof 285 286 287 288 289:runtime 290echo. 291echo.Making runtime library for -O%MODEL% 292cd %BUILDDIR%\%MODEL% 293%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/runtime/Platform%PLATFORM%.Mod 294%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/runtime/Heap.Mod 295%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/runtime/Modules.Mod 296%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/runtime/Reals.Mod 297%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/runtime/Strings.Mod 298%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/runtime/Out.Mod 299%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/runtime/In.Mod 300%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/runtime/VT100.Mod 301%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/runtime/Files.Mod 302%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/runtime/Math.Mod 303%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/runtime/MathL.Mod 304%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/runtime/Texts.Mod 305%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/runtime/Oberon.Mod 306cd %ROOTDIR% 307goto :eof 308 309 310:v4 311echo. 312echo.Making V4 library for -O%MODEL% 313cd %BUILDDIR%\%MODEL% 314%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/v4/Args.Mod || exit /b 315%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/v4/Console.Mod || exit /b 316%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/v4/Printer.Mod || exit /b 317%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/v4/Sets.Mod || exit /b 318cd %ROOTDIR% 319goto :eof 320 321:ooc2 322echo.Making ooc2 library for -O%MODEL% 323cd %BUILDDIR%\%MODEL% 324%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc2/ooc2Strings.Mod || exit /b 325%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc2/ooc2Ascii.Mod || exit /b 326%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc2/ooc2CharClass.Mod || exit /b 327%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc2/ooc2ConvTypes.Mod || exit /b 328%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc2/ooc2IntConv.Mod || exit /b 329%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc2/ooc2IntStr.Mod || exit /b 330%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc2/ooc2Real0.Mod || exit /b 331cd %ROOTDIR% 332goto :eof 333 334:ooc 335echo.Making ooc library for -O%MODEL% 336cd %BUILDDIR%\%MODEL% 337%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocLowReal.Mod || exit /b 338%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocLowLReal.Mod || exit /b 339%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocRealMath.Mod || exit /b 340%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocOakMath.Mod || exit /b 341%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocLRealMath.Mod || exit /b 342%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocLongInts.Mod || exit /b 343%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocComplexMath.Mod || exit /b 344%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocLComplexMath.Mod || exit /b 345%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocAscii.Mod || exit /b 346%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocCharClass.Mod || exit /b 347%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocStrings.Mod || exit /b 348%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocConvTypes.Mod || exit /b 349%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocLRealConv.Mod || exit /b 350%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocLRealStr.Mod || exit /b 351%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocRealConv.Mod || exit /b 352%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocRealStr.Mod || exit /b 353%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocIntConv.Mod || exit /b 354%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocIntStr.Mod || exit /b 355%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocMsg.Mod || exit /b 356%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocSysClock.Mod || exit /b 357%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocTime.Mod || exit /b 358%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocChannel.Mod || exit /b 359%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocStrings2.Mod || exit /b 360%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocRts.Mod || exit /b 361%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocFilenames.Mod || exit /b 362%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocTextRider.Mod || exit /b 363%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocBinaryRider.Mod || exit /b 364%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocJulianDay.Mod || exit /b 365%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocFilenames.Mod || exit /b 366%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocwrapperlibc.Mod || exit /b 367%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ooc/oocC%DATAMODEL%.Mod || exit /b 368cd %ROOTDIR% 369goto :eof 370 371:oocX11 372echo No X11 support on plain Windows - use cygwin and build with cygwin make. 373goto :eof 374 375:ulm 376echo.Making ulm library for -O%MODEL% 377cd %BUILDDIR%\%MODEL% 378%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmTypes.Mod || exit /b 379%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmObjects.Mod || exit /b 380%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmPriorities.Mod || exit /b 381%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmDisciplines.Mod || exit /b 382%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmServices.Mod || exit /b 383%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmSys.Mod || exit /b 384%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmSYSTEM.Mod || exit /b 385%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmEvents.Mod || exit /b 386%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmProcess.Mod || exit /b 387%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmResources.Mod || exit /b 388%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmForwarders.Mod || exit /b 389%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmRelatedEvents.Mod || exit /b 390%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmStreams.Mod || exit /b 391%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmStrings.Mod || exit /b 392%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmSysTypes.Mod || exit /b 393%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmTexts.Mod || exit /b 394%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmSysConversions.Mod || exit /b 395%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmErrors.Mod || exit /b 396%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmSysErrors.Mod || exit /b 397%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmSysStat.Mod || exit /b 398%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmASCII.Mod || exit /b 399%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmSets.Mod || exit /b 400%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmIO.Mod || exit /b 401%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmAssertions.Mod || exit /b 402%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmIndirectDisciplines.Mod || exit /b 403%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmStreamDisciplines.Mod || exit /b 404%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmIEEE.Mod || exit /b 405%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmMC68881.Mod || exit /b 406%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmReals.Mod || exit /b 407%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmPrint.Mod || exit /b 408%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmWrite.Mod || exit /b 409%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmConstStrings.Mod || exit /b 410%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmPlotters.Mod || exit /b 411%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmSysIO.Mod || exit /b 412%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmLoader.Mod || exit /b 413%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmNetIO.Mod || exit /b 414%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmPersistentObjects.Mod || exit /b 415%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmPersistentDisciplines.Mod || exit /b 416%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmOperations.Mod || exit /b 417%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmScales.Mod || exit /b 418%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmTimes.Mod || exit /b 419%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmClocks.Mod || exit /b 420%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmTimers.Mod || exit /b 421%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmConditions.Mod || exit /b 422%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmStreamConditions.Mod || exit /b 423%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmTimeConditions.Mod || exit /b 424%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmCiphers.Mod || exit /b 425%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmCipherOps.Mod || exit /b 426%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmBlockCiphers.Mod || exit /b 427%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmAsymmetricCiphers.Mod || exit /b 428%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmConclusions.Mod || exit /b 429%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmRandomGenerators.Mod || exit /b 430%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmTCrypt.Mod || exit /b 431%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/ulm/ulmIntOperations.Mod || exit /b 432cd %ROOTDIR% 433goto :eof 434 435:pow32 436echo.Making pow32 library for -O%MODEL% 437cd %BUILDDIR%\%MODEL% 438%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/pow/powStrings.Mod || exit /b 439cd %ROOTDIR% 440goto :eof 441 442:misc 443echo.Making misc library for -O%MODEL% 444cd %BUILDDIR%\%MODEL% 445%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/misc/crt.Mod || exit /b 446%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/misc/Listen.Mod || exit /b 447%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/misc/MersenneTwister.Mod || exit /b 448%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/misc/MultiArrays.Mod || exit /b 449%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/misc/MultiArrayRiders.Mod || exit /b 450cd %ROOTDIR% 451goto :eof 452 453:s3 454echo.Making s3 library for -O%MODEL% 455cd %BUILDDIR%\%MODEL% 456%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/s3/ethBTrees.Mod || exit /b 457%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/s3/ethMD5.Mod || exit /b 458%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/s3/ethSets.Mod || exit /b 459%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/s3/ethZlib.Mod || exit /b 460%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/s3/ethZlibBuffers.Mod || exit /b 461%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/s3/ethZlibInflate.Mod || exit /b 462%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/s3/ethZlibDeflate.Mod || exit /b 463%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/s3/ethZlibReaders.Mod || exit /b 464%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/s3/ethZlibWriters.Mod || exit /b 465%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/s3/ethZip.Mod || exit /b 466%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/s3/ethRandomNumbers.Mod || exit /b 467%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/s3/ethGZReaders.Mod || exit /b 468%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/s3/ethGZWriters.Mod || exit /b 469%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/s3/ethUnicode.Mod || exit /b 470%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/s3/ethDates.Mod || exit /b 471%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/s3/ethReals.Mod || exit /b 472%ROOTDIR%\%OBECOMP% -Ffs -O%MODEL% ../../../src/library/s3/ethStrings.Mod || exit /b 473cd %ROOTDIR% 474goto :eof 475 476 477 478 479:initlibrary 480rd /s /q %BUILDDIR%\%MODEL% >nul 2>nul 481mkdir %BUILDDIR% >nul 2>nul 482mkdir %BUILDDIR%\%MODEL% >nul 2>nul 483copy src\runtime\*.c %BUILDDIR%\%MODEL% >nul 484copy src\runtime\*.h %BUILDDIR%\%MODEL% >nul 485cd %BUILDDIR%\%MODEL% 486cl -nologo -c SYSTEM.c 487cd %ROOTDIR% 488goto :eof 489 490 491:library 492SET MODEL=2 493call :initlibrary || exit /b 494call :runtime || exit /b 495call :v4 || exit /b 496call :ooc2 || exit /b 497call :ooc || exit /b 498call :ulm || exit /b 499call :pow32 || exit /b 500call :misc || exit /b 501call :s3 || exit /b 502lib -nologo %BUILDDIR%\%MODEL%\*.obj -out:%BUILDDIR%\%MODEL%\lib%ONAME%-O%MODEL%.lib || exit /b 503 504SET MODEL=C 505call :initlibrary || exit /b 506call :runtime || exit /b 507lib -nologo %BUILDDIR%\%MODEL%\*.obj -out:%BUILDDIR%\%MODEL%\lib%ONAME%-O%MODEL%.lib || exit /b 508goto :eof 509 510 511 512 513 514 515 516 517