this repo has no description
at main 312 lines 8.9 kB view raw
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}