Error Handling and Messages from the BCX Translator

The BCX translator returns a 1 when a successful translation has been completed. If a problem has occured during translation and BCX aborts, 0 is returned. This return value can be determined by a batch file and a conditional jump can be made based on whether or not the compilation was successful. Here is a sample PCALL.BAT that jumps to an error message if 0 is returned.


 setlocal
 @ECHO OFF
 IF NOT EXIST %1.bas GOTO usage
 C:\bin\bc.exe %1 -p
 IF errorlevel = 0 GOTO errormsg
 CALL C:\dev\PellesC\Bin\povars32.bat
 IF EXIST %1.res GOTO res
 IF NOT EXIST "res\%~1.rc" GOTO nores
 ECHO Compiling resources.....
 C:\dev\PellesC\Bin\porc.exe "res\%~1.rc" /i res /fo "%~1.res"
:res
 IF EXIST %1.res SET PRES="%~1.res"
nores
 ECHO Compiling "%~1.c"..........
 C:\dev\PellesC\Bin\pocc.exe /W1 /Ot /MT /Go /Gd /Ze /Zx /Tx86-coff -D_WIN32_WINNT=0x501 "%~1.c"
 ECHO Linking ................
 C:\dev\PellesC\Bin\polink.exe /release /MACHINE:X86 /SUBSYSTEM:CONSOLE,5.01 "%~1.obj" %PRES% %2 %3 %4 %5 %6 %7 %8 %9 /out:"%~1.exe"
 ECHO Finished!
 IF EXIST "%~1.obj" del "%~1.obj"
 GOTO done
:errormsg
 echo translation aborted
 GOTO done
:usage
 ECHO **************************************************************
 ECHO  Usage:  PCALL.BAT MainFile  ExtraFile1 ExtraFile2 ExtraFile3
 ECHO  Note:   ExtraFiles can be .libs, .res , .obj
 ECHO  Use this batch file to create console mode program
 ECHO **************************************************************
:done
endlocal