]> Shamusworld >> Repos - rmac/blob - maketabs.bat
Yet another fix for bug #77 - eval is now uint64_t so the check wasn't correct
[rmac] / maketabs.bat
1 rem @echo off
2 REM Check for file dates and build .h files if needed
3
4 SET FILE1=68ktab
5 SET FILE2=68ktab.h
6 if not exist %FILE2% GOTO BUILD
7 for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
8 if %NEWEST%==%FILE1% GOTO BUILD
9
10 SET FILE1=mntab
11 SET FILE2=mntab.h
12 if not exist %FILE2% GOTO BUILD
13 for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
14 if %NEWEST%==%FILE1% GOTO BUILD
15
16 SET FILE1=kwtab
17 SET FILE2=kwtab.h
18 if not exist %FILE2% GOTO BUILD
19 for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
20 if %NEWEST%==%FILE1% GOTO BUILD
21
22 SET FILE1=risctab
23 SET FILE2=risckw.h
24 if not exist %FILE2% GOTO BUILD
25 for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
26 if %NEWEST%==%FILE1% GOTO BUILD
27
28 SET FILE1=6502.tbl
29 SET FILE2=6502kw.h
30 if not exist %FILE2% GOTO BUILD
31 for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
32 if %NEWEST%==%FILE1% GOTO BUILD
33
34 SET FILE1=op.tab
35 SET FILE2=opkw.h
36 if not exist %FILE2% GOTO BUILD
37 for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
38 if %NEWEST%==%FILE1% GOTO BUILD
39
40 GOTO END
41
42 :BUILD
43
44 echo Generating files...
45
46 68kgen 68kmn <68ktab >68ktab.h
47 type mntab 68kmn | kwgen mn >mntab.h
48 kwgen kw <kwtab >kwtab.h
49 kwgen mr <risctab >risckw.h
50 kwgen mp <6502.tbl >6502kw.h
51 kwgen mo <op.tab >opkw.h
52
53 rem touch files that include these header files so they'll recompile
54 echo Generating tables...
55 copy /b amode.c +,, >NUL
56 copy /b direct.c +,, >NUL
57 copy /b expr.c +,, >NUL
58 copy /b mach.c +,, >NUL
59 copy /b procln.c +,, >NUL
60 copy /b riscasm.c +,, >NUL
61 copy /b token.c +,, >NUL
62
63 :END
64
65 REM If eagen0.c is newer than eagen.c then "touch" eagen.c so that visual studio will recompile both.
66 REM Same for amode.c / parmode.h and mach.c / 68ktab.h
67
68 SET FILE1=eagen0.c
69 SET FILE2=eagen.c
70 for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
71 if %NEWEST%==%FILE2% GOTO CHECK2
72 Echo touching eagen0.c...
73 copy /b eagen.c +,, >NUL
74
75 :CHECK2
76 SET FILE1=parmode.h
77 SET FILE2=amode.c
78 for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
79 if %NEWEST%==%FILE2% GOTO CHECK3
80 Echo touching amode.c...
81 copy /b amode.c +,, >NUL
82
83 :CHECK3
84 SET FILE1=68ktab.h
85 SET FILE2=mach.c
86 for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
87 if %NEWEST%==%FILE2% GOTO END
88 Echo touching mach.c...
89 copy /b mach.c +,, >NUL
90
91 :END
92