xrick2gs/build.bat

97 lines
1.6 KiB
Batchfile

@echo off
setlocal
rem
rem Build and link xRick for the Apple IIgs
rem
rem
rem object directory if it doesn't exist
rem
if not exist "obj" (
mkdir obj
)
rem
rem #define IIGS 1
rem Add "include" into the directory search path for #include
rem
set CC=cc=-DIIGS=1 cc=-Iinclude cc=-Isrc
rem
rem Build a list of .c files
rem
for /f "tokens=*" %%a in ('dir /b src\*.c') do call :appendsrc %%a
goto :compile
rem
rem Silly append function, that has the conditional
rem to work around starting the list with a space character
rem
:appendsrc
if defined SOURCEFILES (
set SOURCEFILES=%SOURCEFILES% %1
) else (
if "%1" NEQ "\\" (
set SOURCEFILES=%1
)
)
EXIT /B 0
:appendobj
if defined OBJFILES (
set OBJFILES=%OBJFILES% obj\%1
) else (
set OBJFILES=obj\%1
)
EXIT /B 0
rem
rem Loop through the list of .c files, compiling them with ORCA
rem
:compile
FOR %%I IN (%SOURCEFILES%) DO (
echo Compile: %%I
set CFILE=%%I
iix compile -P -I +O src\%%I keep=obj:%%I %CC% || goto :error
)
:link
del xrick.lib
echo makelib xrick.lib
FOR %%I IN (%SOURCEFILES%) DO (
call :appendobj %%I
rem echo iix makelib -P xrick.lib +obj:%%I.a
set CFILE=%%I
iix makelib -P xrick.lib +obj:%%I.a || goto :error3
)
iix makelib -P xrick.lib +e1.obj
echo Linking xrick.s16
rem echo %OBJFILES%
set CFILE=xrick.s16
iix link +L obj\xrick.c xrick.lib keep=xrick || goto :error2
rem iix -DKeepType=S16 link +L +S %OBJFILES% keep=xrick || goto :error2
goto :eof
:error3
echo !!ERROR adding object: %CFILE%
exit /B 1
:error2
echo !!ERROR Linking: %CFILE%
exit /B 1
:error
echo !!ERROR Compiling: %CFILE%
exit /B 1
:eof