2 rem Check for file dates and build .h files if needed
4 call :CHECK_OUT_OF_DATE 68k.mch 68ktab.h
5 call :CHECK_OUT_OF_DATE direct.tab mntab.h
6 call :CHECK_OUT_OF_DATE kw.tab kwtab.h
7 call :CHECK_OUT_OF_DATE risc.tab risckw.h
8 call :CHECK_OUT_OF_DATE dsp56k.mch dsp56ktab.h
9 call :CHECK_OUT_OF_DATE 6502.tab 6502kw.h
10 call :CHECK_OUT_OF_DATE op.tab opkw.h
11 call :CHECK_OUT_OF_DATE 68kregs.tab 68kregs.h
12 call :CHECK_OUT_OF_DATE 56kregs.tab 56kregs.h
13 call :CHECK_OUT_OF_DATE 6502regs.tab 6502regs.h
14 call :CHECK_OUT_OF_DATE riscregs.tab riscregs.h
15 call :CHECK_OUT_OF_DATE unary.tab unarytab.h
21 echo Generating files...
23 68kgen 68k.tab <68k.mch >68ktab.h
24 dsp56kgen dsp56k.tab <dsp56k.mch >dsp56ktab.h
25 type direct.tab 68k.tab | kwgen mn >mntab.h
26 kwgen kw <kw.tab >kwtab.h
27 kwgen mr <risc.tab >risckw.h
28 kwgen dsp <dsp56k.tab >dsp56kkw.h
29 kwgen mp <6502.tab >6502kw.h
30 kwgen mp <6502.tab >6502kw.h
31 kwgen mo <op.tab >opkw.h
32 kwgen reg68 <68kregs.tab >68kregs.h
33 kwgen reg56 <56kregs.tab >56kregs.h
34 kwgen reg65 <6502regs.tab >6502regs.h
35 kwgen regrisc <riscregs.tab >riscregs.h
36 kwgen unary <unary.tab >unarytab.h
38 rem Touch timestamps of files that include these header files so they'll recompile
39 echo Generating tables...
40 copy /b amode.c +,, >NUL
41 copy /b direct.c +,, >NUL
42 copy /b expr.c +,, >NUL
43 copy /b mach.c +,, >NUL
44 copy /b procln.c +,, >NUL
45 copy /b riscasm.c +,, >NUL
46 copy /b token.c +,, >NUL
47 copy /b dsp56k_mach.c +,, >NUL
48 copy /b eagen.c +,, >NUL
53 REM If eagen0.c is newer than eagen.c then "touch" eagen.c so that visual studio will recompile oth.
54 REM Same for amode.c / parmode.h and mach.c / 68ktab.h
55 call :CHECK_AND_TOUCH eagen0.c eagen.c
56 call :CHECK_AND_TOUCH parmode.h amode.c
57 call :CHECK_AND_TOUCH 68ktab.h mach.c
62 rem Check if second passed file is older compared to the first, or doesn't exist, or is zero size. In which case go generate everything just to be sure
66 if not exist %FILE2% GOTO BUILD
67 FOR /F "usebackq" %%A IN ('%FILE2%') DO set size=%%~zA
68 if "%size%"=="0" GOTO BUILD
69 for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
70 if %NEWEST%==%FILE1% GOTO BUILD
74 rem Check if second passed file is older compared to the first, and "touch" the file stamp of hat file if yes
78 for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
79 if %NEWEST%==%FILE2% GOTO :CHECK_AND_TOUCH_END