this repo has no description
1/*
2 SPFILDEF.i
3 Copyright (C) 2012 Paul C. Pratt
4
5 You can redistribute this file and/or modify it under the terms
6 of version 2 of the GNU General Public License as published by
7 the Free Software Foundation. You should have received a copy
8 of the license along with this file; see the file COPYING.
9
10 This file is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 license for more details.
14*/
15
16/*
17 program SPecific FILe DEFinitions
18*/
19
20
21
22/* --- list of source files --- */
23
24static void DoOSGLUdepends(tDoOneDepends p)
25{
26 {
27 char *s = nullpr;
28
29 switch (gbo_lang) {
30 case gbk_lang_eng:
31 s = "STRCNENG.h";
32 break;
33 case gbk_lang_fre:
34 s = "STRCNFRE.h";
35 break;
36 case gbk_lang_ita:
37 s = "STRCNITA.h";
38 break;
39 case gbk_lang_ger:
40 s = "STRCNGER.h";
41 break;
42 case gbk_lang_dut:
43 s = "STRCNDUT.h";
44 break;
45 case gbk_lang_spa:
46 s = "STRCNSPA.h";
47 break;
48 case gbk_lang_pol:
49 s = "STRCNPOL.h";
50 break;
51 case gbk_lang_ptb:
52 s = "STRCNPTB.h";
53 break;
54 case gbk_lang_cat:
55 s = "STRCNCAT.h";
56 break;
57 case gbk_lang_cze:
58 s = "STRCNCZE.h";
59 break;
60 case gbk_lang_srl:
61 s = "STRCNSRL.h";
62 break;
63 }
64
65 if (nullpr != s) {
66 p(kDepDirCSrc, s);
67 }
68 }
69
70 p(kDepDirCnfg, "STRCONST.h");
71 p(kDepDirCSrc, "INTLCHAR.h");
72 p(kDepDirCSrc, "COMOSGLU.h");
73 if (WantLocalTalk) {
74 {
75 char *s = nullpr;
76
77 switch (gbo_lto) {
78 case gbk_lto_bpf:
79 s = "LTOVRBPF.h";
80 break;
81 case gbk_lto_udp:
82 s = "LTOVRUDP.h";
83 break;
84 }
85
86 if (nullpr != s) {
87 p(kDepDirCSrc, s);
88 }
89 }
90 p(kDepDirCnfg, "LOCALTLK.h");
91 }
92 if (WantAltKeysMode) {
93 p(kDepDirCSrc, "ALTKEYSM.h");
94 }
95 p(kDepDirCSrc, "CONTROLM.h");
96 if (gbk_sndapi_none != gbo_sndapi) {
97 {
98 char *s = nullpr;
99
100 switch (gbo_sndapi) {
101 case gbk_sndapi_alsa:
102 s = "SGLUALSA.h";
103 break;
104 case gbk_sndapi_ddsp:
105 s = "SGLUDDSP.h";
106 break;
107 }
108
109 if (nullpr != s) {
110 p(kDepDirCSrc, s);
111 }
112 }
113 p(kDepDirCnfg, "SOUNDGLU.h");
114 }
115}
116
117static void DoMINEM68Kdepends(tDoOneDepends p)
118{
119 if (cur_mIIorIIX) {
120 p(kDepDirCSrc, "FPMATHEM.h");
121 p(kDepDirCSrc, "FPCPEMDV.h");
122 }
123}
124
125static void DoROMEMDEVdepends(tDoOneDepends p)
126{
127 if (NeedScrnHack) {
128 p(kDepDirCSrc, "SCRNHACK.h");
129 }
130 if (gbk_AHM_none != cur_AltHappyMac) {
131 p(kDepDirCSrc, "HPMCHACK.h");
132 }
133}
134
135static void DoAllSrcFiles(tDoOneCFile p)
136{
137 blnr WantSCRNMAPR = (gbk_apifam_osx == gbo_apifam)
138 || (gbk_apifam_mac == gbo_apifam)
139 || (gbk_apifam_cco == gbo_apifam)
140 || (gbk_apifam_xwn == gbo_apifam)
141 || (gbk_apifam_sdl == gbo_apifam)
142 || (gbk_apifam_sd2 == gbo_apifam);
143 blnr WantSCRNTRNS = WantSCRNMAPR && (cur_ScrnDpth != 0);
144
145 p("CNFUIOSG", kDepDirCnfg, kCSrcFlgmNoSource, nullpr);
146 p("CNFUIALL", kDepDirCnfg, kCSrcFlgmNoSource, nullpr);
147 p("DFCNFCMP", kDepDirCSrc, kCSrcFlgmNoSource, nullpr);
148 p("ENDIANAC", kDepDirCSrc, kCSrcFlgmNoSource, nullpr);
149 p("CNFUDOSG", kDepDirCnfg, kCSrcFlgmNoSource, nullpr);
150 p("CNFUDALL", kDepDirCnfg, kCSrcFlgmNoSource, nullpr);
151 p("OSGLUAAA", kDepDirCSrc, kCSrcFlgmNoSource, nullpr);
152
153 p("STRCNENG", kDepDirCSrc,
154 CSrcFlagsUseHdrIf(gbk_lang_eng == gbo_lang), nullpr);
155 p("STRCNFRE", kDepDirCSrc,
156 CSrcFlagsUseHdrIf(gbk_lang_fre == gbo_lang), nullpr);
157 p("STRCNITA", kDepDirCSrc,
158 CSrcFlagsUseHdrIf(gbk_lang_ita == gbo_lang), nullpr);
159 p("STRCNGER", kDepDirCSrc,
160 CSrcFlagsUseHdrIf(gbk_lang_ger == gbo_lang), nullpr);
161 p("STRCNDUT", kDepDirCSrc,
162 CSrcFlagsUseHdrIf(gbk_lang_dut == gbo_lang), nullpr);
163 p("STRCNSPA", kDepDirCSrc,
164 CSrcFlagsUseHdrIf(gbk_lang_spa == gbo_lang), nullpr);
165 p("STRCNPOL", kDepDirCSrc,
166 CSrcFlagsUseHdrIf(gbk_lang_pol == gbo_lang), nullpr);
167 p("STRCNPTB", kDepDirCSrc,
168 CSrcFlagsUseHdrIf(gbk_lang_ptb == gbo_lang), nullpr);
169 p("STRCNCAT", kDepDirCSrc,
170 CSrcFlagsUseHdrIf(gbk_lang_cat == gbo_lang), nullpr);
171 p("STRCNCZE", kDepDirCSrc,
172 CSrcFlagsUseHdrIf(gbk_lang_cze == gbo_lang), nullpr);
173 p("STRCNSRL", kDepDirCSrc,
174 CSrcFlagsUseHdrIf(gbk_lang_srl == gbo_lang), nullpr);
175
176 p("STRCONST", kDepDirCnfg, kCSrcFlgmNoSource, nullpr);
177 p("OSGCOMUI", kDepDirCSrc, kCSrcFlgmNoSource, nullpr);
178 p("OSGCOMUD", kDepDirCSrc, kCSrcFlgmNoSource, nullpr);
179 p("INTLCHAR", kDepDirCSrc, kCSrcFlgmNoSource, nullpr);
180 p("COMOSGLU", kDepDirCSrc, kCSrcFlgmNoSource, nullpr);
181 p("LOCALTLK", kDepDirCnfg,
182 CSrcFlagsUseHdrIf(WantLocalTalk), nullpr);
183 p("LTOVRBPF", kDepDirCSrc,
184 CSrcFlagsUseHdrIf(WantLocalTalk && (gbk_lto_bpf == gbo_lto)),
185 nullpr);
186 p("LTOVRUDP", kDepDirCSrc,
187 CSrcFlagsUseHdrIf(WantLocalTalk && (gbk_lto_udp == gbo_lto)),
188 nullpr);
189 p("ALTKEYSM", kDepDirCSrc,
190 CSrcFlagsUseHdrIf(WantAltKeysMode), nullpr);
191 p("ACTVCODE", kDepDirCSrc,
192 CSrcFlagsUseHdrIf(WantActvCode), nullpr);
193 p("CONTROLM", kDepDirCSrc, kCSrcFlgmNoSource, nullpr);
194 p("PBUFSTDC", kDepDirCSrc,
195 CSrcFlagsUseHdrIf((gbk_apifam_xwn == gbo_apifam)
196 || (gbk_apifam_sd2 == gbo_apifam)
197 || (gbk_apifam_sdl == gbo_apifam)
198 ),
199 nullpr);
200 p("SCRNMAPR", kDepDirCSrc,
201 CSrcFlagsUseHdrIf(WantSCRNMAPR), nullpr);
202 p("SCRNTRNS", kDepDirCSrc,
203 CSrcFlagsUseHdrIf(WantSCRNTRNS), nullpr);
204 p("DATE2SEC", kDepDirCSrc, kCSrcFlgmNoSource, nullpr);
205
206 p("SGLUALSA", kDepDirCSrc,
207 CSrcFlagsUseHdrIf(gbk_sndapi_alsa == gbo_sndapi), nullpr);
208 p("SGLUDDSP", kDepDirCSrc,
209 CSrcFlagsUseHdrIf(gbk_sndapi_ddsp == gbo_sndapi), nullpr);
210
211 p("SOUNDGLU", kDepDirCnfg,
212 CSrcFlagsUseHdrIf(gbk_sndapi_none != gbo_sndapi), nullpr);
213
214 p("OSGLUMAC", kDepDirCSrc,
215 kCSrcFlgmUseAPI
216 | CSrcFlagsUseSrcIf(gbk_apifam_mac == gbo_apifam),
217 DoOSGLUdepends);
218 p("OSGLUOSX", kDepDirCSrc,
219 kCSrcFlgmUseAPI
220 | CSrcFlagsUseSrcIf(gbk_apifam_osx == gbo_apifam),
221 DoOSGLUdepends);
222 p("OSGLUWIN", kDepDirCSrc,
223 kCSrcFlgmUseAPI
224 | CSrcFlagsUseSrcIf(gbk_apifam_win == gbo_apifam),
225 DoOSGLUdepends);
226 p("OSGLUXWN", kDepDirCSrc,
227 kCSrcFlgmUseAPI
228 | CSrcFlagsUseSrcIf(gbk_apifam_xwn == gbo_apifam),
229 DoOSGLUdepends);
230 p("OSGLUNDS", kDepDirCSrc,
231 kCSrcFlgmUseAPI
232 | CSrcFlagsUseSrcIf(gbk_apifam_nds == gbo_apifam),
233 DoOSGLUdepends);
234 p("OSGLUGTK", kDepDirCSrc,
235 kCSrcFlgmUseAPI
236 | CSrcFlagsUseSrcIf(gbk_apifam_gtk == gbo_apifam),
237 DoOSGLUdepends);
238 p("OSGLUSDL", kDepDirCSrc,
239 kCSrcFlgmUseAPI
240 | CSrcFlagsUseSrcIf((gbk_apifam_sdl == gbo_apifam)
241 || (gbk_apifam_sd2 == gbo_apifam)),
242 DoOSGLUdepends);
243 p("OSGLUCCO", kDepDirCSrc,
244 kCSrcFlgmUseAPI | kCSrcFlgmOjbc
245 | CSrcFlagsUseSrcIf(gbk_apifam_cco == gbo_apifam),
246 DoOSGLUdepends);
247
248 p("CNFUIPIC", kDepDirCnfg, kCSrcFlgmNoSource, nullpr);
249 p("CNFUDPIC", kDepDirCnfg, kCSrcFlgmNoSource, nullpr);
250 p("PICOMMON", kDepDirCSrc, kCSrcFlgmNoSource, nullpr);
251 p("GLOBGLUE", kDepDirCSrc, kCSrcFlgmNone, nullpr);
252 p("M68KITAB", kDepDirCSrc, kCSrcFlgmNone, nullpr);
253 p("DISAM68K", kDepDirCSrc, CSrcFlagsUseIfA(WantDisasm), nullpr);
254 p("FPMATHEM", kDepDirCSrc,
255 CSrcFlagsUseHdrIf(cur_mIIorIIX),
256 nullpr);
257 p("FPCPEMDV", kDepDirCSrc,
258 CSrcFlagsUseHdrIf(cur_mIIorIIX),
259 nullpr);
260
261 p("MINEM68K", kDepDirCSrc, kCSrcFlgmSortFirst, DoMINEM68Kdepends);
262 /*
263 Put the most speed critical part of the
264 program first, to help ensure consistent
265 alignment for it, regardless of changes
266 to rest of program.
267 Speed can depend subtly, basically
268 randomly, on how code is aligned.
269 */
270
271 p("VIAEMDEV", kDepDirCSrc, kCSrcFlgmNone, nullpr);
272 p("VIA2EMDV", kDepDirCSrc, CSrcFlagsUseIfA(EmVIA2), nullpr);
273 p("IWMEMDEV", kDepDirCSrc, kCSrcFlgmNone, nullpr);
274 p("SCCEMDEV", kDepDirCSrc, kCSrcFlgmNone, nullpr);
275 p("RTCEMDEV", kDepDirCSrc, CSrcFlagsUseIfA(EmRTC), nullpr);
276 p("SCRNHACK", kDepDirCSrc,
277 CSrcFlagsUseHdrIf(NeedScrnHack), nullpr);
278 p("HPMCHACK", kDepDirCSrc,
279 CSrcFlagsUseHdrIf(gbk_AHM_none != cur_AltHappyMac), nullpr);
280 p("ROMEMDEV", kDepDirCSrc, kCSrcFlgmNone, DoROMEMDEVdepends);
281 p("SCSIEMDV", kDepDirCSrc, kCSrcFlgmNone, nullpr);
282 p("SONYEMDV", kDepDirCSrc, kCSrcFlgmNone, nullpr);
283 p("SCRNEMDV", kDepDirCSrc, kCSrcFlgmNone, nullpr);
284 p("VIDEMDEV", kDepDirCSrc, CSrcFlagsUseIfA(EmVidCard), nullpr);
285 p("MOUSEMDV", kDepDirCSrc, kCSrcFlgmNone, nullpr);
286 p("KBRDEMDV", kDepDirCSrc, CSrcFlagsUseIfA(EmClassicKbrd), nullpr);
287 p("ADBSHARE", kDepDirCSrc,
288 CSrcFlagsUseHdrIf(cur_mdl >= gbk_mdl_SE), nullpr);
289 p("ADBEMDEV", kDepDirCSrc, CSrcFlagsUseIfA(EmADB), nullpr);
290 p("PMUEMDEV", kDepDirCSrc, CSrcFlagsUseIfA(EmPMU), nullpr);
291 p("ASCEMDEV", kDepDirCSrc, CSrcFlagsUseIfA(EmASC), nullpr);
292 p("SNDEMDEV", kDepDirCSrc, CSrcFlagsUseIfA(EmClassicSnd), nullpr);
293 p("PROGMAIN", kDepDirCSrc, kCSrcFlgmNone, nullpr);
294}
295
296/* --- list of document types --- */
297
298static void WriteRomExtensions(tWriteOneExtension p)
299{
300 p("rom");
301}
302
303static void WriteDskExtensions(tWriteOneExtension p)
304{
305 p("dsk");
306}
307
308static void DoAllDocTypes(tWriteOneDocType p)
309{
310 p("ROM", "ROM!", "Rom image", WriteRomExtensions);
311 p("DSK", "MvIm", "Disk image", WriteDskExtensions);
312}