]> Shamusworld >> Repos - rmac/blob - maketabs.bat
Fix for #159: Split register sets according to architecture into different tables...
[rmac] / maketabs.bat
1 @echo off
2 REM Check for file dates and build .h files if needed
3
4 SET FILE1=68k.mch
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=direct.tab
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=kw.tab
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=risc.tab
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=dsp56k.mch
29 SET FILE2=dsp56ktab.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=6502.tab
35 SET FILE2=6502kw.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 SET FILE1=op.tab
41 SET FILE2=opkw.h
42 if not exist %FILE2% GOTO BUILD
43 for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
44 if %NEWEST%==%FILE1% GOTO BUILD
45
46 SET FILE1=68kregs.tab
47 SET FILE2=68kregs.h
48 if not exist %FILE2% GOTO BUILD
49 for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
50 if %NEWEST%==%FILE1% GOTO BUILD
51
52 SET FILE1=56kregs.tab
53 SET FILE2=56kregs.h
54 if not exist %FILE2% GOTO BUILD
55 for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
56 if %NEWEST%==%FILE1% GOTO BUILD
57
58 SET FILE1=6502regs.tab
59 SET FILE2=6502regs.h
60 if not exist %FILE2% GOTO BUILD
61 for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
62 if %NEWEST%==%FILE1% GOTO BUILD
63
64 SET FILE1=riscregs.tab
65 SET FILE2=riscregs.h
66 if not exist %FILE2% GOTO BUILD
67 for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
68 if %NEWEST%==%FILE1% GOTO BUILD
69
70 SET FILE1=unary.tab
71 SET FILE2=unarytab.h
72 if not exist %FILE2% GOTO BUILD
73 for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
74 if %NEWEST%==%FILE1% GOTO BUILD
75
76 GOTO END
77
78 :BUILD
79
80 echo Generating files...
81
82 68kgen 68k.tab <68k.mch >68ktab.h
83 dsp56kgen dsp56k.tab <dsp56k.mch >dsp56ktab.h
84 type direct.tab 68k.tab | kwgen mn >mntab.h
85 kwgen kw <kw.tab >kwtab.h
86 kwgen mr <risc.tab >risckw.h
87 kwgen dsp <dsp56k.tab >dsp56kkw.h
88 kwgen mp <6502.tab >6502kw.h
89 kwgen mp <6502.tab >6502kw.h
90 kwgen mo <op.tab >opkw.h
91 kwgen reg68 <68kregs.tab >68kregs.h
92 kwgen reg56 <56kregs.tab >56kregs.h
93 kwgen reg65 <6502regs.tab >6502regs.h
94 kwgen regrisc <riscregs.tab >riscregs.h
95 kwgen unary <unary.tab >unarytab.h
96
97 rem touch files that include these header files so they'll recompile
98 echo Generating tables...
99 copy /b amode.c +,, >NUL
100 copy /b direct.c +,, >NUL
101 copy /b expr.c +,, >NUL
102 copy /b mach.c +,, >NUL
103 copy /b procln.c +,, >NUL
104 copy /b riscasm.c +,, >NUL
105 copy /b token.c +,, >NUL
106 copy /b dsp56k_mach.c +,, >NUL
107
108 :END
109
110 REM If eagen0.c is newer than eagen.c then "touch" eagen.c so that visual studio will recompile both.
111 REM Same for amode.c / parmode.h and mach.c / 68ktab.h
112
113 SET FILE1=eagen0.c
114 SET FILE2=eagen.c
115 for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
116 if %NEWEST%==%FILE2% GOTO CHECK2
117 Echo touching eagen0.c...
118 copy /b eagen.c +,, >NUL
119
120 :CHECK2
121 SET FILE1=parmode.h
122 SET FILE2=amode.c
123 for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
124 if %NEWEST%==%FILE2% GOTO CHECK3
125 Echo touching amode.c...
126 copy /b amode.c +,, >NUL
127
128 :CHECK3
129 SET FILE1=68ktab.h
130 SET FILE2=mach.c
131 for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
132 if %NEWEST%==%FILE2% GOTO END
133 Echo touching mach.c...
134 copy /b mach.c +,, >NUL
135
136 :END
137