@echo off
if "%1" == "/prepro" goto :prepro

 set x1=tools\debug\prepro.exe
 if exist %x1% goto :x1_ok
 set x1=tools\prepro___win32_debug\prepro.exe
 if exist %x1% goto :x1_ok
 echo prepro.exe not found.
 goto :end
:x1_ok
 set X2=tools\debug\reftab.exe
 if exist %X2% goto :x2_ok
 set X2=tools\reftab___win32_debug\reftab.exe
 if exist %X2% goto :x2_ok
 echo reftab.exe not found.
 goto :end
:x2_ok
 set X3=tools\debug\errtab.exe
 if exist %X3% goto :x3_ok
 set X3=tools\errtab___win32_debug\errtab.exe
 if exist %X3% goto :x3_ok
 echo errtab.exe not found.
 goto :end
:x3_ok


:main
 echo generating error reference list ...
 call %0 /prepro tools %x1%
 call %0 /prepro basic %x1%
 echo generating error reference module ...
 echo basic\errref.txt > files.$$$
 echo tools\errref.txt >> files.$$$
 %x2% < files.$$$ > reftab.inc
 if errorlevel 1 (
   echo %x2% error %errorlevel%
 ) else (
   move reftab.inc basic\reftab.inc
 )
 del files.$$$
 echo basic\error.txt > files.$$$
 %x3% < files.$$$ > errtab.inc
 if errorlevel 1 (
   echo %x3% error %errorlevel%
 ) else (
   move errtab.inc basic\errtab.inc
 )
 del files.$$$
goto :end


:prepro
 cd %2
 if exist srcs.$$$ erase srcs.$$$
 for %%f in (*.f90) do echo %%f >> srcs.$$1
 sort < srcs.$$1 > srcs.$$$
 echo.  %2
 ..\%3 < srcs.$$$ > errref.txt
 if errorlevel 1 (
  echo prepro error %errorlevel%
  del errref.txt
 )
 del srcs.$$?
 cd ..
 goto :exit


:end
color 0f
pause
color 07
:exit
