|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights ! 7: * Reserved. This file contains Original Code and/or Modifications of ! 8: * Original Code as defined in and that are subject to the Apple Public ! 9: * Source License Version 1.1 (the "License"). You may not use this file ! 10: * except in compliance with the License. Please obtain a copy of the ! 11: * License at http://www.apple.com/publicsource and read it before using ! 12: * this file. ! 13: * ! 14: * The Original Code and all software distributed under the License are ! 15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 18: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 19: * License for the specific language governing rights and limitations ! 20: * under the License. ! 21: * ! 22: * @APPLE_LICENSE_HEADER_END@ ! 23: */ ! 24: ! 25: /* ! 26: File: ConditionalMacros.h ! 27: ! 28: Contains: Set up for compiler independent conditionals ! 29: ! 30: Version: Universal Interface Files 3.2 ! 31: ! 32: DRI: Nick Kledzik ! 33: ! 34: Copyright: � 1993-1998 by Apple Computer, Inc., all rights reserved ! 35: ! 36: Warning: *** APPLE INTERNAL USE ONLY *** ! 37: This file may contain unreleased API's ! 38: ! 39: BuildInfo: Built by: Naga Pappireddi ! 40: With Interfacer: 3.0d9 (PowerPC native) ! 41: From: ConditionalMacros.i ! 42: Revision: 102 ! 43: Dated: 9/2/98 ! 44: Last change by: GW ! 45: Last comment: (Really johng) BlueBox builds on Rhapsody need TARGET_OS_MAC, ! 46: ! 47: Bugs: Report bugs to Radar component "System Interfaces", "Latest" ! 48: List the version information (from above) in the Problem Description. ! 49: ! 50: */ ! 51: #ifndef __CONDITIONALMACROS__ ! 52: #define __CONDITIONALMACROS__ ! 53: ! 54: /**************************************************************************************************** ! 55: UNIVERSAL_INTERFACES_VERSION ! 56: ! 57: 0x0320 => version 3.2 ! 58: 0x0310 => version 3.1 ! 59: 0x0301 => version 3.0.1 ! 60: 0x0300 => version 3.0 ! 61: 0x0210 => version 2.1 ! 62: This conditional did not exist prior to version 2.1 ! 63: ****************************************************************************************************/ ! 64: #define UNIVERSAL_INTERFACES_VERSION 0x0320 ! 65: ! 66: /**************************************************************************************************** ! 67: ! 68: TARGET_CPU_� ! 69: These conditionals specify which microprocessor instruction set is being ! 70: generated. At most one of these is true, the rest are false. ! 71: ! 72: TARGET_CPU_PPC - Compiler is generating PowerPC instructions ! 73: TARGET_CPU_68K - Compiler is generating 680x0 instructions ! 74: TARGET_CPU_X86 - Compiler is generating x86 instructions ! 75: TARGET_CPU_MIPS - Compiler is generating MIPS instructions ! 76: TARGET_CPU_SPARC - Compiler is generating Sparc instructions ! 77: TARGET_CPU_ALPHA - Compiler is generating Dec Alpha instructions ! 78: ! 79: ! 80: TARGET_OS_� ! 81: These conditionals specify in which Operating System the generated code will ! 82: run. At most one of the these is true, the rest are false. ! 83: ! 84: TARGET_OS_MAC - Generate code will run under Mac OS ! 85: TARGET_OS_WIN32 - Generate code will run under 32-bit Windows ! 86: TARGET_OS_UNIX - Generate code will run under some unix ! 87: ! 88: ! 89: TARGET_RT_� ! 90: These conditionals specify in which runtime the generated code will ! 91: run. This is needed when the OS and CPU support more than one runtime ! 92: (e.g. MacOS on 68K supports CFM68K and Classic 68k). ! 93: ! 94: TARGET_RT_LITTLE_ENDIAN - Generated code uses little endian format for integers ! 95: TARGET_RT_BIG_ENDIAN - Generated code uses big endian format for integers ! 96: TARGET_RT_MAC_CFM - TARGET_OS_MAC is true and CFM68K or PowerPC CFM being used ! 97: TARGET_RT_MAC_68881 - TARGET_OS_MAC is true and 68881 floating point instructions used ! 98: ! 99: ! 100: PRAGMA_� ! 101: These conditionals specify whether the compiler supports particular #pragma's ! 102: ! 103: PRAGMA_IMPORT - Compiler supports: #pragma import on/off/reset ! 104: PRAGMA_ONCE - Compiler supports: #pragma once ! 105: PRAGMA_STRUCT_ALIGN - Compiler supports: #pragma options align=mac68k/power/reset ! 106: PRAGMA_STRUCT_PACK - Compiler supports: #pragma pack(n) ! 107: PRAGMA_STRUCT_PACKPUSH - Compiler supports: #pragma pack(push, n)/pack(pop) ! 108: PRAGMA_ENUM_PACK - Compiler supports: #pragma options(!pack_enums) ! 109: PRAGMA_ENUM_ALWAYSINT - Compiler supports: #pragma enumsalwaysint on/off/reset ! 110: PRAGMA_ENUM_OPTIONS - Compiler supports: #pragma options enum=int/small/reset ! 111: ! 112: FOUR_CHAR_CODE ! 113: This conditional does the proper byte swapping to assue that a four character code (e.g. 'TEXT') ! 114: is compiled down to the correct value on all compilers. ! 115: ! 116: FOUR_CHAR_CODE('abcd') - Convert a four-char-code to the correct 32-bit value ! 117: ! 118: TYPE_� ! 119: These conditionals specify whether the compiler supports particular types. ! 120: ! 121: TYPE_LONGLONG - Compiler supports "long long" 64-bit integers ! 122: TYPE_BOOL - Compiler supports "bool" ! 123: TYPE_EXTENDED - Compiler supports "extended" 80/96 bit floating point ! 124: ! 125: ****************************************************************************************************/ ! 126: ! 127: #if defined(__MRC__) ! 128: /* ! 129: MrC[pp] compiler from Apple Computer, Inc. ! 130: */ ! 131: #define TARGET_CPU_PPC 1 ! 132: #define TARGET_CPU_68K 0 ! 133: #define TARGET_CPU_X86 0 ! 134: #define TARGET_CPU_MIPS 0 ! 135: #define TARGET_CPU_SPARC 0 ! 136: #define TARGET_CPU_ALPHA 0 ! 137: #define TARGET_OS_MAC 1 ! 138: #define TARGET_OS_WIN32 0 ! 139: #define TARGET_OS_UNIX 0 ! 140: #define TARGET_RT_LITTLE_ENDIAN 0 ! 141: #define TARGET_RT_BIG_ENDIAN 1 ! 142: #define TARGET_RT_MAC_CFM 1 ! 143: #define TARGET_RT_MAC_68881 0 ! 144: #if (__MRC__ > 0x0200) && (__MRC__ < 0x0700) ! 145: #define PRAGMA_IMPORT 1 ! 146: #else ! 147: #define PRAGMA_IMPORT 0 ! 148: #endif ! 149: #define PRAGMA_STRUCT_ALIGN 1 ! 150: #define PRAGMA_ONCE 1 ! 151: #define PRAGMA_STRUCT_PACK 0 ! 152: #define PRAGMA_STRUCT_PACKPUSH 0 ! 153: #define PRAGMA_ENUM_PACK 1 ! 154: #define PRAGMA_ENUM_ALWAYSINT 0 ! 155: #define PRAGMA_ENUM_OPTIONS 0 ! 156: #define FOUR_CHAR_CODE(x) (x) ! 157: ! 158: #if (__MRC__ > 0x0300) && (__MRC__ < 0x0700) ! 159: #if __option(longlong) ! 160: #define TYPE_LONGLONG 1 ! 161: #else ! 162: #define TYPE_LONGLONG 0 ! 163: #endif ! 164: #if __option(bool) ! 165: #define TYPE_BOOL 1 ! 166: #else ! 167: #define TYPE_BOOL 0 ! 168: #endif ! 169: #else ! 170: #define TYPE_LONGLONG 0 ! 171: #define TYPE_BOOL 0 ! 172: #endif ! 173: #define TYPE_EXTENDED 0 ! 174: ! 175: ! 176: ! 177: #elif defined(__SC__) && (defined(MPW_CPLUS) || defined(MPW_C)) ! 178: /* ! 179: SC[pp] compiler from Apple Computer, Inc. ! 180: */ ! 181: #define TARGET_CPU_PPC 0 ! 182: #define TARGET_CPU_68K 1 ! 183: #define TARGET_CPU_X86 0 ! 184: #define TARGET_CPU_MIPS 0 ! 185: #define TARGET_CPU_SPARC 0 ! 186: #define TARGET_CPU_ALPHA 0 ! 187: #define TARGET_OS_MAC 1 ! 188: #define TARGET_OS_WIN32 0 ! 189: #define TARGET_OS_UNIX 0 ! 190: #define TARGET_RT_LITTLE_ENDIAN 0 ! 191: #define TARGET_RT_BIG_ENDIAN 1 ! 192: #if defined(__CFM68K__) ! 193: #define TARGET_RT_MAC_CFM 1 ! 194: #else ! 195: #define TARGET_RT_MAC_CFM 0 ! 196: #endif ! 197: #if defined(mc68881) ! 198: #define TARGET_RT_MAC_68881 1 ! 199: #else ! 200: #define TARGET_RT_MAC_68881 0 ! 201: #endif ! 202: #if TARGET_RT_MAC_CFM ! 203: #define PRAGMA_IMPORT 1 ! 204: #if (__SC__ <= 0x0810) ! 205: /* old versions of SC don't support �#pragma import reset� */ ! 206: #define PRAGMA_IMPORT_OFF 1 ! 207: #endif ! 208: #else ! 209: #define PRAGMA_IMPORT 0 ! 210: #endif ! 211: #if (__SC__ >= 0x0801) ! 212: #define PRAGMA_STRUCT_ALIGN 1 ! 213: #else ! 214: #define PRAGMA_STRUCT_ALIGN 0 ! 215: #endif ! 216: #define PRAGMA_ONCE 0 ! 217: #define PRAGMA_STRUCT_PACK 0 ! 218: #define PRAGMA_STRUCT_PACKPUSH 0 ! 219: #define PRAGMA_ENUM_PACK 1 ! 220: #define PRAGMA_ENUM_ALWAYSINT 0 ! 221: #define PRAGMA_ENUM_OPTIONS 0 ! 222: #define FOUR_CHAR_CODE(x) (x) ! 223: ! 224: #define TYPE_LONGLONG 0 ! 225: #define TYPE_EXTENDED 1 ! 226: #if (__SC__ > 0x0810) ! 227: #if __option(bool) ! 228: #define TYPE_BOOL 1 ! 229: #else ! 230: #define TYPE_BOOL 0 ! 231: #endif ! 232: #else ! 233: #define TYPE_BOOL 0 ! 234: #endif ! 235: ! 236: ! 237: ! 238: #elif defined(__MWERKS__) ! 239: /* ! 240: CodeWarrior compiler from Metrowerks, Inc. ! 241: */ ! 242: #if (__MWERKS__ < 0x0900) || macintosh ! 243: #define TARGET_OS_MAC 1 ! 244: #define TARGET_OS_WIN32 0 ! 245: #define TARGET_OS_UNIX 0 ! 246: #define TARGET_CPU_X86 0 ! 247: #define TARGET_CPU_MIPS 0 ! 248: #define TARGET_CPU_SPARC 0 ! 249: #define TARGET_CPU_ALPHA 0 ! 250: #define TARGET_RT_LITTLE_ENDIAN 0 ! 251: #define TARGET_RT_BIG_ENDIAN 1 ! 252: #if powerc ! 253: #define TARGET_CPU_PPC 1 ! 254: #define TARGET_CPU_68K 0 ! 255: #define TARGET_RT_MAC_CFM 1 ! 256: #define TARGET_RT_MAC_68881 0 ! 257: #else ! 258: #define TARGET_CPU_PPC 0 ! 259: #define TARGET_CPU_68K 1 ! 260: #if defined(__CFM68K__) ! 261: #define TARGET_RT_MAC_CFM 1 ! 262: #else ! 263: #define TARGET_RT_MAC_CFM 0 ! 264: #endif ! 265: #if __MC68881__ ! 266: #define TARGET_RT_MAC_68881 1 ! 267: #else ! 268: #define TARGET_RT_MAC_68881 0 ! 269: #endif ! 270: #endif ! 271: #define PRAGMA_ONCE 1 ! 272: #if (__MWERKS__ >= 0x0700) ! 273: #define PRAGMA_IMPORT TARGET_RT_MAC_CFM ! 274: #else ! 275: #define PRAGMA_IMPORT 0 ! 276: #endif ! 277: #define PRAGMA_STRUCT_ALIGN 1 ! 278: #define PRAGMA_STRUCT_PACK 0 ! 279: #define PRAGMA_STRUCT_PACKPUSH 0 ! 280: #define PRAGMA_ENUM_PACK 0 ! 281: #define PRAGMA_ENUM_ALWAYSINT 1 ! 282: #define PRAGMA_ENUM_OPTIONS 0 ! 283: #define FOUR_CHAR_CODE(x) (x) ! 284: ! 285: ! 286: #elif (__MWERKS__ >= 0x0900) && __INTEL__ ! 287: #define TARGET_CPU_PPC 0 ! 288: #define TARGET_CPU_68K 0 ! 289: #define TARGET_CPU_X86 1 ! 290: #define TARGET_CPU_MIPS 0 ! 291: #define TARGET_CPU_SPARC 0 ! 292: #define TARGET_CPU_ALPHA 0 ! 293: #define TARGET_OS_MAC 0 ! 294: #define TARGET_OS_WIN32 1 ! 295: #define TARGET_OS_UNIX 0 ! 296: #define TARGET_RT_LITTLE_ENDIAN 1 ! 297: #define TARGET_RT_BIG_ENDIAN 0 ! 298: #define TARGET_RT_MAC_CFM 0 ! 299: #define TARGET_RT_MAC_68881 0 ! 300: #define PRAGMA_ONCE 1 ! 301: #define PRAGMA_IMPORT 0 ! 302: #define PRAGMA_STRUCT_ALIGN 0 ! 303: #define PRAGMA_STRUCT_PACK 1 ! 304: #define PRAGMA_STRUCT_PACKPUSH 1 ! 305: #define PRAGMA_ENUM_PACK 0 ! 306: #define PRAGMA_ENUM_ALWAYSINT 1 ! 307: #define PRAGMA_ENUM_OPTIONS 0 ! 308: #define FOUR_CHAR_CODE(x) (x) ! 309: ! 310: ! 311: #elif (__MWERKS__ >= 0x1900) && __MIPS__ ! 312: #define TARGET_CPU_PPC 0 ! 313: #define TARGET_CPU_68K 0 ! 314: #define TARGET_CPU_X86 0 ! 315: #define TARGET_CPU_MIPS 1 ! 316: #define TARGET_CPU_SPARC 0 ! 317: #define TARGET_CPU_ALPHA 0 ! 318: #define TARGET_OS_MAC 0 ! 319: #define TARGET_OS_WIN32 0 ! 320: #define TARGET_OS_UNIX 1 ! 321: #if __option(little_endian) ! 322: #define TARGET_RT_LITTLE_ENDIAN 1 ! 323: #define TARGET_RT_BIG_ENDIAN 0 ! 324: #else ! 325: #define TARGET_RT_LITTLE_ENDIAN 0 ! 326: #define TARGET_RT_BIG_ENDIAN 1 ! 327: #endif ! 328: #define TARGET_RT_MAC_CFM 0 ! 329: #define TARGET_RT_MAC_68881 0 ! 330: #define PRAGMA_ONCE 1 ! 331: #define PRAGMA_IMPORT 0 ! 332: #define PRAGMA_STRUCT_ALIGN 0 ! 333: #define PRAGMA_STRUCT_PACK 1 ! 334: #define PRAGMA_STRUCT_PACKPUSH 0 ! 335: #define PRAGMA_ENUM_PACK 0 ! 336: #define PRAGMA_ENUM_ALWAYSINT 1 ! 337: #define PRAGMA_ENUM_OPTIONS 0 ! 338: #define FOUR_CHAR_CODE(x) (x) ! 339: ! 340: ! 341: ! 342: #elif (__MWERKS__ >= 0x2110) && NeXT ! 343: #define TARGET_CPU_PPC 1 ! 344: #define TARGET_CPU_68K 0 ! 345: #define TARGET_CPU_X86 0 ! 346: #define TARGET_CPU_MIPS 0 ! 347: #define TARGET_CPU_SPARC 0 ! 348: #define TARGET_CPU_ALPHA 0 ! 349: #define TARGET_OS_MAC 0 ! 350: #define TARGET_OS_WIN32 0 ! 351: #define TARGET_OS_UNIX 1 ! 352: #if __option(little_endian) ! 353: #define TARGET_RT_LITTLE_ENDIAN 1 ! 354: #define TARGET_RT_BIG_ENDIAN 0 ! 355: #else ! 356: #define TARGET_RT_LITTLE_ENDIAN 0 ! 357: #define TARGET_RT_BIG_ENDIAN 1 ! 358: #endif ! 359: #define TARGET_RT_MAC_CFM 0 ! 360: #define TARGET_RT_MAC_68881 0 ! 361: #define PRAGMA_ONCE 1 ! 362: #define PRAGMA_IMPORT 0 ! 363: #define PRAGMA_STRUCT_ALIGN 0 ! 364: #define PRAGMA_STRUCT_PACK 1 ! 365: #define PRAGMA_STRUCT_PACKPUSH 0 ! 366: #define PRAGMA_ENUM_PACK 0 ! 367: #define PRAGMA_ENUM_ALWAYSINT 1 ! 368: #define PRAGMA_ENUM_OPTIONS 0 ! 369: #define FOUR_CHAR_CODE(x) (x) ! 370: ! 371: ! 372: #define forCarbon 1 ! 373: ! 374: ! 375: #else ! 376: #error unknown Metrowerks compiler ! 377: #endif ! 378: ! 379: ! 380: #if (__MWERKS__ >= 0x1100) ! 381: #if __option(longlong) ! 382: #define TYPE_LONGLONG 1 ! 383: #else ! 384: #define TYPE_LONGLONG 0 ! 385: #endif ! 386: #else ! 387: #define TYPE_LONGLONG 0 ! 388: #endif ! 389: #if (__MWERKS__ >= 0x1000) ! 390: #if __option(bool) ! 391: #define TYPE_BOOL 1 ! 392: #else ! 393: #define TYPE_BOOL 0 ! 394: #endif ! 395: #else ! 396: #define TYPE_BOOL 0 ! 397: #endif ! 398: #define TYPE_EXTENDED 0 ! 399: ! 400: ! 401: ! 402: #elif defined(SYMANTEC_CPLUS) || defined(SYMANTEC_C) ! 403: /* ! 404: C and C++ compiler from Symantec, Inc. ! 405: */ ! 406: #define TARGET_OS_MAC 1 ! 407: #define TARGET_OS_WIN32 0 ! 408: #define TARGET_OS_UNIX 0 ! 409: #define TARGET_CPU_X86 0 ! 410: #define TARGET_CPU_MIPS 0 ! 411: #define TARGET_CPU_SPARC 0 ! 412: #define TARGET_CPU_ALPHA 0 ! 413: #define TARGET_RT_LITTLE_ENDIAN 0 ! 414: #define TARGET_RT_BIG_ENDIAN 1 ! 415: #if powerc ! 416: #define TARGET_CPU_PPC 1 ! 417: #define TARGET_CPU_68K 0 ! 418: #define TARGET_RT_MAC_CFM 1 ! 419: #define TARGET_RT_MAC_68881 0 ! 420: #else ! 421: #define TARGET_CPU_PPC 0 ! 422: #define TARGET_CPU_68K 1 ! 423: #if defined(__CFM68K) ! 424: #define TARGET_RT_MAC_CFM 1 ! 425: #else ! 426: #define TARGET_RT_MAC_CFM 0 ! 427: #endif ! 428: #if mc68881 ! 429: #define TARGET_RT_MAC_68881 1 ! 430: #else ! 431: #define TARGET_RT_MAC_68881 0 ! 432: #endif ! 433: #endif ! 434: #define PRAGMA_IMPORT 0 ! 435: #define PRAGMA_ONCE 1 ! 436: #define PRAGMA_STRUCT_ALIGN 1 ! 437: #define PRAGMA_STRUCT_PACK 0 ! 438: #define PRAGMA_STRUCT_PACKPUSH 0 ! 439: #define PRAGMA_ENUM_PACK 1 ! 440: #define PRAGMA_ENUM_ALWAYSINT 0 ! 441: #define PRAGMA_ENUM_OPTIONS 0 ! 442: #define FOUR_CHAR_CODE(x) (x) ! 443: ! 444: #if __useAppleExts__ ! 445: #define TYPE_EXTENDED 1 ! 446: #else ! 447: #define TYPE_EXTENDED 0 ! 448: #endif ! 449: #define TYPE_LONGLONG 0 ! 450: #define TYPE_BOOL 0 ! 451: ! 452: ! 453: ! 454: #elif defined(THINK_C) ! 455: /* ! 456: THINK C compiler from Symantec, Inc. << WARNING: Unsupported Compiler >> ! 457: */ ! 458: #define TARGET_CPU_PPC 0 ! 459: #define TARGET_CPU_68K 1 ! 460: #define TARGET_CPU_X86 0 ! 461: #define TARGET_CPU_MIPS 0 ! 462: #define TARGET_CPU_SPARC 0 ! 463: #define TARGET_CPU_ALPHA 0 ! 464: #define TARGET_OS_MAC 1 ! 465: #define TARGET_OS_WIN32 0 ! 466: #define TARGET_OS_UNIX 0 ! 467: #define TARGET_RT_LITTLE_ENDIAN 0 ! 468: #define TARGET_RT_BIG_ENDIAN 1 ! 469: #define TARGET_RT_MAC_CFM 0 ! 470: #if defined(mc68881) ! 471: #define TARGET_RT_MAC_68881 1 ! 472: #else ! 473: #define TARGET_RT_MAC_68881 0 ! 474: #endif ! 475: #define PRAGMA_IMPORT 0 ! 476: #define PRAGMA_STRUCT_ALIGN 0 ! 477: #define PRAGMA_ONCE 1 ! 478: #define PRAGMA_STRUCT_PACK 0 ! 479: #define PRAGMA_STRUCT_PACKPUSH 0 ! 480: #define PRAGMA_ENUM_PACK 1 ! 481: #define PRAGMA_ENUM_ALWAYSINT 0 ! 482: #define PRAGMA_ENUM_OPTIONS 0 ! 483: #define FOUR_CHAR_CODE(x) (x) ! 484: ! 485: #define TYPE_EXTENDED 1 ! 486: #define TYPE_LONGLONG 0 ! 487: #define TYPE_BOOL 0 ! 488: ! 489: ! 490: ! 491: #elif defined(__PPCC__) ! 492: /* ! 493: PPCC compiler from Apple Computer, Inc. << WARNING: Unsupported Compiler >> ! 494: */ ! 495: #define TARGET_CPU_PPC 1 ! 496: #define TARGET_CPU_68K 0 ! 497: #define TARGET_CPU_X86 0 ! 498: #define TARGET_CPU_MIPS 0 ! 499: #define TARGET_CPU_SPARC 0 ! 500: #define TARGET_CPU_ALPHA 0 ! 501: #define TARGET_OS_MAC 1 ! 502: #define TARGET_OS_WIN32 0 ! 503: #define TARGET_OS_UNIX 0 ! 504: #define TARGET_RT_LITTLE_ENDIAN 0 ! 505: #define TARGET_RT_BIG_ENDIAN 1 ! 506: #define TARGET_RT_MAC_CFM 1 ! 507: #define TARGET_RT_MAC_68881 0 ! 508: #define PRAGMA_IMPORT 0 ! 509: #define PRAGMA_STRUCT_ALIGN 1 ! 510: #define PRAGMA_ONCE 0 ! 511: #define PRAGMA_STRUCT_PACK 0 ! 512: #define PRAGMA_STRUCT_PACKPUSH 0 ! 513: #define PRAGMA_ENUM_PACK 0 ! 514: #define PRAGMA_ENUM_ALWAYSINT 0 ! 515: #define PRAGMA_ENUM_OPTIONS 0 ! 516: #define FOUR_CHAR_CODE(x) (x) ! 517: ! 518: #define TYPE_EXTENDED 0 ! 519: #define TYPE_LONGLONG 0 ! 520: #define TYPE_BOOL 0 ! 521: ! 522: ! 523: #elif defined(applec) && !defined(__SC__) ! 524: /* ! 525: MPW C compiler from Apple Computer, Inc. << WARNING: Unsupported Compiler >> ! 526: */ ! 527: #define TARGET_CPU_PPC 0 ! 528: #define TARGET_CPU_68K 1 ! 529: #define TARGET_CPU_X86 0 ! 530: #define TARGET_CPU_MIPS 0 ! 531: #define TARGET_CPU_SPARC 0 ! 532: #define TARGET_CPU_ALPHA 0 ! 533: #define TARGET_OS_MAC 1 ! 534: #define TARGET_OS_WIN32 0 ! 535: #define TARGET_OS_UNIX 0 ! 536: #define TARGET_RT_LITTLE_ENDIAN 0 ! 537: #define TARGET_RT_BIG_ENDIAN 1 ! 538: #define TARGET_RT_MAC_CFM 0 ! 539: #if defined(mc68881) ! 540: #define TARGET_RT_MAC_68881 1 ! 541: #else ! 542: #define TARGET_RT_MAC_68881 0 ! 543: #endif ! 544: #define PRAGMA_IMPORT 0 ! 545: #define PRAGMA_STRUCT_ALIGN 0 ! 546: #define PRAGMA_ONCE 0 ! 547: #define PRAGMA_STRUCT_PACK 0 ! 548: #define PRAGMA_STRUCT_PACKPUSH 0 ! 549: #define PRAGMA_ENUM_PACK 0 ! 550: #define PRAGMA_ENUM_ALWAYSINT 0 ! 551: #define PRAGMA_ENUM_OPTIONS 0 ! 552: /* Note: MPW C 3.2 had a bug where MACRO('xx ') would cause 'xx ' to be misevaluated */ ! 553: #define FOUR_CHAR_CODE ! 554: ! 555: #define TYPE_EXTENDED 1 ! 556: #define TYPE_LONGLONG 0 ! 557: #define TYPE_BOOL 0 ! 558: ! 559: ! 560: ! 561: #elif defined(__GNUC__) && (defined(__APPLE_CPP__) || defined(__APPLE_CC__) || defined(__NEXT_CPP__)) ! 562: /* ! 563: gcc from Next, Inc., with cpp-precomp (header precompiler) ! 564: */ ! 565: #if defined(powerpc) || defined(ppc) ! 566: #define TARGET_CPU_PPC 1 ! 567: #define TARGET_CPU_68K 0 ! 568: #define TARGET_CPU_X86 0 ! 569: #define TARGET_CPU_MIPS 0 ! 570: #define TARGET_CPU_SPARC 0 ! 571: #define TARGET_CPU_ALPHA 0 ! 572: #define TARGET_RT_MAC_CFM 0 ! 573: #define TARGET_RT_MAC_68881 0 ! 574: #define TARGET_RT_LITTLE_ENDIAN 0 ! 575: #define TARGET_RT_BIG_ENDIAN 1 ! 576: #elif defined(m68k) ! 577: #define TARGET_CPU_PPC 0 ! 578: #define TARGET_CPU_68K 1 ! 579: #define TARGET_CPU_X86 0 ! 580: #define TARGET_CPU_MIPS 0 ! 581: #define TARGET_CPU_SPARC 0 ! 582: #define TARGET_CPU_ALPHA 0 ! 583: #define TARGET_RT_MAC_CFM 0 ! 584: #define TARGET_RT_MAC_68881 0 ! 585: #define TARGET_RT_LITTLE_ENDIAN 0 ! 586: #define TARGET_RT_BIG_ENDIAN 1 ! 587: #elif defined(sparc) ! 588: #define TARGET_CPU_PPC 0 ! 589: #define TARGET_CPU_68K 0 ! 590: #define TARGET_CPU_X86 0 ! 591: #define TARGET_CPU_MIPS 0 ! 592: #define TARGET_CPU_SPARC 1 ! 593: #define TARGET_CPU_ALPHA 0 ! 594: #define TARGET_RT_MAC_CFM 0 ! 595: #define TARGET_RT_MAC_68881 0 ! 596: #define TARGET_RT_LITTLE_ENDIAN 0 ! 597: #define TARGET_RT_BIG_ENDIAN 1 ! 598: #elif defined(i386) || defined(intel) ! 599: #define TARGET_CPU_PPC 0 ! 600: #define TARGET_CPU_68K 0 ! 601: #define TARGET_CPU_X86 1 ! 602: #define TARGET_CPU_MIPS 0 ! 603: #define TARGET_CPU_SPARC 0 ! 604: #define TARGET_CPU_ALPHA 0 ! 605: #define TARGET_RT_MAC_CFM 0 ! 606: #define TARGET_RT_MAC_68881 0 ! 607: #define TARGET_RT_LITTLE_ENDIAN 1 ! 608: #define TARGET_RT_BIG_ENDIAN 0 ! 609: #else ! 610: #error unrecognized NeXT GNU C compiler ! 611: #endif ! 612: ! 613: /* BlueBox wants TARGET_OS_MAC when compiling on Rhapsody. ! 614: Carbon wants TARGET_OS_UNIX (for now, at least). ! 615: Similarly, BlueBox wants TARGET_RT_MAC_CFM=1 and Carbon does not. ! 616: Since BlueBox does an -Asystem(macos) on the command line for builds, ! 617: these conditionals below let us all be happy campers. */ ! 618: ! 619: #if #system(macos) ! 620: #define TARGET_OS_MAC 1 ! 621: #define TARGET_OS_WIN32 0 ! 622: #define TARGET_OS_UNIX 0 ! 623: #undef TARGET_RT_MAC_CFM /* different from above setting */ ! 624: #define TARGET_RT_MAC_CFM 1 ! 625: #else ! 626: #define TARGET_OS_MAC 0 ! 627: #define TARGET_OS_WIN32 0 ! 628: #define TARGET_OS_UNIX 1 ! 629: #endif ! 630: ! 631: ! 632: #define PRAGMA_IMPORT 0 ! 633: #define PRAGMA_STRUCT_ALIGN 1 ! 634: #define PRAGMA_ONCE 0 ! 635: #define PRAGMA_STRUCT_PACK 0 ! 636: #define PRAGMA_STRUCT_PACKPUSH 0 ! 637: #define PRAGMA_ENUM_PACK 0 ! 638: #define PRAGMA_ENUM_ALWAYSINT 0 ! 639: #define PRAGMA_ENUM_OPTIONS 0 ! 640: #define FOUR_CHAR_CODE(x) (x) ! 641: ! 642: #define TYPE_EXTENDED 0 ! 643: #ifdef _LONG_LONG ! 644: #define TYPE_LONGLONG 1 ! 645: #else ! 646: #define TYPE_LONGLONG 0 ! 647: #endif ! 648: #ifdef __cplusplus ! 649: #define TYPE_BOOL 1 ! 650: #else ! 651: #define TYPE_BOOL 0 ! 652: #endif ! 653: ! 654: ! 655: #define forCarbon 1 ! 656: ! 657: ! 658: #elif defined(__GNUC__) && defined(__linux__) ! 659: /* ! 660: gcc (egcs, really) for MkLinux. << WARNING: Unsupported Compiler >> ! 661: */ ! 662: #if #cpu(powerpc) ! 663: #define TARGET_CPU_PPC 1 ! 664: #define TARGET_CPU_68K 0 ! 665: #define TARGET_CPU_X86 0 ! 666: #define TARGET_CPU_MIPS 0 ! 667: #define TARGET_CPU_SPARC 0 ! 668: #define TARGET_CPU_ALPHA 0 ! 669: #define TARGET_RT_MAC_CFM 1 ! 670: #define TARGET_RT_MAC_68881 0 ! 671: #elif #cpu(m68k) ! 672: #define TARGET_CPU_PPC 0 ! 673: #define TARGET_CPU_68K 1 ! 674: #define TARGET_CPU_X86 0 ! 675: #define TARGET_CPU_MIPS 0 ! 676: #define TARGET_CPU_SPARC 0 ! 677: #define TARGET_CPU_ALPHA 0 ! 678: #define TARGET_RT_MAC_CFM 0 ! 679: #define TARGET_RT_MAC_68881 0 ! 680: #else ! 681: #error unsupported GNU C compiler ! 682: #endif ! 683: ! 684: #if #system(macos) ! 685: #define TARGET_OS_MAC 1 ! 686: #define TARGET_OS_WIN32 0 ! 687: #define TARGET_OS_UNIX 0 ! 688: #elif #system(unix) ! 689: #define TARGET_OS_MAC 0 ! 690: #define TARGET_OS_WIN32 0 ! 691: #define TARGET_OS_UNIX 1 ! 692: #else ! 693: #error unsupported GNU C compiler ! 694: #endif ! 695: ! 696: ! 697: ! 698: #define TARGET_RT_LITTLE_ENDIAN 0 ! 699: #define TARGET_RT_BIG_ENDIAN 1 ! 700: #define PRAGMA_IMPORT 0 ! 701: #define PRAGMA_STRUCT_ALIGN 0 ! 702: #define PRAGMA_ONCE 0 ! 703: #define PRAGMA_STRUCT_PACK 1 ! 704: #define PRAGMA_STRUCT_PACKPUSH 0 ! 705: #define PRAGMA_ENUM_PACK 0 ! 706: #define PRAGMA_ENUM_ALWAYSINT 0 ! 707: #define PRAGMA_ENUM_OPTIONS 0 ! 708: #define FOUR_CHAR_CODE(x) (x) ! 709: ! 710: #define TYPE_EXTENDED 0 ! 711: #ifdef _LONG_LONG ! 712: #define TYPE_LONGLONG 1 ! 713: #else ! 714: #define TYPE_LONGLONG 0 ! 715: #endif ! 716: #define TYPE_BOOL 0 ! 717: ! 718: ! 719: #elif defined(__GNUC__) ! 720: /* ! 721: gC for MPW from Free Software Foundation, Inc. ! 722: */ ! 723: #if #cpu(powerpc) ! 724: #define TARGET_CPU_PPC 1 ! 725: #define TARGET_CPU_68K 0 ! 726: #define TARGET_CPU_X86 0 ! 727: #define TARGET_CPU_MIPS 0 ! 728: #define TARGET_CPU_SPARC 0 ! 729: #define TARGET_CPU_ALPHA 0 ! 730: #define TARGET_RT_MAC_CFM 1 ! 731: #define TARGET_RT_MAC_68881 0 ! 732: #elif #cpu(m68k) ! 733: #define TARGET_CPU_PPC 0 ! 734: #define TARGET_CPU_68K 1 ! 735: #define TARGET_CPU_X86 0 ! 736: #define TARGET_CPU_MIPS 0 ! 737: #define TARGET_CPU_SPARC 0 ! 738: #define TARGET_CPU_ALPHA 0 ! 739: #define TARGET_RT_MAC_CFM 0 ! 740: #define TARGET_RT_MAC_68881 0 ! 741: #else ! 742: #error unsupported GNU C compiler ! 743: #endif ! 744: ! 745: #if #system(macos) ! 746: #define TARGET_OS_MAC 1 ! 747: #define TARGET_OS_WIN32 0 ! 748: #define TARGET_OS_UNIX 0 ! 749: #elif #system(unix) ! 750: #define TARGET_OS_MAC 0 ! 751: #define TARGET_OS_WIN32 0 ! 752: #define TARGET_OS_UNIX 1 ! 753: #else ! 754: #error unsupported GNU C compiler ! 755: #endif ! 756: ! 757: #define TARGET_RT_LITTLE_ENDIAN 0 ! 758: #define TARGET_RT_BIG_ENDIAN 1 ! 759: #define PRAGMA_IMPORT 0 ! 760: #define PRAGMA_STRUCT_ALIGN 1 ! 761: #define PRAGMA_ONCE 0 ! 762: #define PRAGMA_STRUCT_PACK 0 ! 763: #define PRAGMA_STRUCT_PACKPUSH 0 ! 764: #define PRAGMA_ENUM_PACK 0 ! 765: #define PRAGMA_ENUM_ALWAYSINT 0 ! 766: #define PRAGMA_ENUM_OPTIONS 0 ! 767: #define FOUR_CHAR_CODE(x) (x) ! 768: ! 769: #define TYPE_EXTENDED 0 ! 770: #ifdef _LONG_LONG ! 771: #define TYPE_LONGLONG 1 ! 772: #else ! 773: #define TYPE_LONGLONG 0 ! 774: #endif ! 775: #define TYPE_BOOL 0 ! 776: ! 777: ! 778: ! 779: #elif defined(__xlc) || defined(__xlC) || defined(__xlC__) || defined(__XLC121__) ! 780: /* ! 781: xlc and xlC on RS/6000 from IBM, Inc. ! 782: */ ! 783: #define TARGET_CPU_PPC 1 ! 784: #define TARGET_CPU_68K 0 ! 785: #define TARGET_CPU_X86 0 ! 786: #define TARGET_CPU_MIPS 0 ! 787: #define TARGET_CPU_SPARC 0 ! 788: #define TARGET_CPU_ALPHA 0 ! 789: #if defined(_AIX) ! 790: #define TARGET_OS_MAC 0 ! 791: #define TARGET_OS_UNIX 1 ! 792: #else ! 793: #define TARGET_OS_MAC 1 ! 794: #define TARGET_OS_UNIX 0 ! 795: #endif ! 796: #define TARGET_OS_WIN32 0 ! 797: #define TARGET_RT_LITTLE_ENDIAN 0 ! 798: #define TARGET_RT_BIG_ENDIAN 1 ! 799: #define TARGET_RT_MAC_CFM 1 ! 800: #define TARGET_RT_MAC_68881 0 ! 801: #define PRAGMA_IMPORT 0 ! 802: #define PRAGMA_STRUCT_ALIGN 1 ! 803: #define PRAGMA_ONCE 0 ! 804: #define PRAGMA_STRUCT_PACK 0 ! 805: #define PRAGMA_STRUCT_PACKPUSH 0 ! 806: #define PRAGMA_ENUM_PACK 0 ! 807: #define PRAGMA_ENUM_ALWAYSINT 0 ! 808: #define PRAGMA_ENUM_OPTIONS 1 ! 809: #define FOUR_CHAR_CODE(x) (x) ! 810: ! 811: #define TYPE_EXTENDED 0 ! 812: #ifdef _LONG_LONG ! 813: #define TYPE_LONGLONG 1 ! 814: #else ! 815: #define TYPE_LONGLONG 0 ! 816: #endif ! 817: #define TYPE_BOOL 0 ! 818: ! 819: ! 820: #elif defined(_MSC_VER) && !defined(__MWERKS__) ! 821: /* ! 822: Visual C++ from Microsoft, Inc. ! 823: */ ! 824: #if defined(_M_M68K) /* Visual C++ with Macintosh 68K target */ ! 825: #define TARGET_CPU_PPC 0 ! 826: #define TARGET_CPU_68K 1 ! 827: #define TARGET_CPU_X86 0 ! 828: #define TARGET_CPU_MIPS 0 ! 829: #define TARGET_CPU_SPARC 0 ! 830: #define TARGET_CPU_ALPHA 0 ! 831: #define TARGET_OS_MAC 1 ! 832: #define TARGET_OS_WIN32 0 ! 833: #define TARGET_OS_UNIX 0 ! 834: #define TARGET_RT_LITTLE_ENDIAN 0 ! 835: #define TARGET_RT_BIG_ENDIAN 1 ! 836: #define TARGET_RT_MAC_CFM 0 ! 837: #define TARGET_RT_MAC_68881 0 ! 838: #define PRAGMA_IMPORT 0 ! 839: #define PRAGMA_STRUCT_ALIGN 1 ! 840: #define PRAGMA_ONCE 0 ! 841: #define PRAGMA_STRUCT_PACK 1 ! 842: #define PRAGMA_STRUCT_PACKPUSH 1 ! 843: #define PRAGMA_ENUM_PACK 0 ! 844: #define PRAGMA_ENUM_ALWAYSINT 0 ! 845: #define PRAGMA_ENUM_OPTIONS 0 ! 846: #define FOUR_CHAR_CODE(x) (x) ! 847: #define TYPE_EXTENDED 0 ! 848: #define TYPE_LONGLONG 0 ! 849: #define TYPE_BOOL 0 ! 850: #elif defined(_M_MPPC) /* Visual C++ with Macintosh PowerPC target */ ! 851: #define TARGET_CPU_PPC 1 ! 852: #define TARGET_CPU_68K 0 ! 853: #define TARGET_CPU_X86 0 ! 854: #define TARGET_CPU_MIPS 0 ! 855: #define TARGET_CPU_SPARC 0 ! 856: #define TARGET_CPU_ALPHA 0 ! 857: #define TARGET_OS_MAC 1 ! 858: #define TARGET_OS_WIN32 0 ! 859: #define TARGET_OS_UNIX 0 ! 860: #define TARGET_RT_LITTLE_ENDIAN 0 ! 861: #define TARGET_RT_BIG_ENDIAN 1 ! 862: #define TARGET_RT_MAC_CFM 1 ! 863: #define TARGET_RT_MAC_68881 0 ! 864: #define PRAGMA_IMPORT 0 ! 865: #define PRAGMA_STRUCT_ALIGN 1 ! 866: #define PRAGMA_ONCE 0 ! 867: #define PRAGMA_STRUCT_PACK 1 ! 868: #define PRAGMA_STRUCT_PACKPUSH 1 ! 869: #define PRAGMA_ENUM_PACK 0 ! 870: #define PRAGMA_ENUM_ALWAYSINT 0 ! 871: #define PRAGMA_ENUM_OPTIONS 0 ! 872: #define FOUR_CHAR_CODE(x) (x) ! 873: #define TYPE_EXTENDED 0 ! 874: #define TYPE_LONGLONG 0 ! 875: #define TYPE_BOOL 0 ! 876: ! 877: #elif defined(_M_IX86) /* Visual C++ with Intel x86 target */ ! 878: #define TARGET_CPU_PPC 0 ! 879: #define TARGET_CPU_68K 0 ! 880: #define TARGET_CPU_X86 1 ! 881: #define TARGET_CPU_MIPS 0 ! 882: #define TARGET_CPU_SPARC 0 ! 883: #define TARGET_CPU_ALPHA 0 ! 884: #define TARGET_OS_MAC 0 ! 885: #define TARGET_OS_WIN32 1 ! 886: #define TARGET_OS_UNIX 0 ! 887: #define TARGET_RT_LITTLE_ENDIAN 1 ! 888: #define TARGET_RT_BIG_ENDIAN 0 ! 889: #define TARGET_RT_MAC_CFM 0 ! 890: #define TARGET_RT_MAC_68881 0 ! 891: #define PRAGMA_IMPORT 0 ! 892: #define PRAGMA_STRUCT_ALIGN 0 ! 893: #define PRAGMA_ONCE 0 ! 894: #define PRAGMA_STRUCT_PACK 1 ! 895: #define PRAGMA_STRUCT_PACKPUSH 1 ! 896: #define PRAGMA_ENUM_PACK 0 ! 897: #define PRAGMA_ENUM_ALWAYSINT 0 ! 898: #define PRAGMA_ENUM_OPTIONS 0 ! 899: #define FOUR_CHAR_CODE(x) (x) ! 900: #define TYPE_EXTENDED 0 ! 901: #define TYPE_LONGLONG 0 ! 902: #if defined(__cplusplus) && (_MSC_VER >= 1100) ! 903: #define TYPE_BOOL 1 ! 904: #else ! 905: #define TYPE_BOOL 0 ! 906: #endif ! 907: ! 908: #elif defined(_M_ALPHA) /* Visual C++ with Dec Alpha target */ ! 909: #define TARGET_CPU_PPC 0 ! 910: #define TARGET_CPU_68K 0 ! 911: #define TARGET_CPU_X86 0 ! 912: #define TARGET_CPU_MIPS 0 ! 913: #define TARGET_CPU_SPARC 0 ! 914: #define TARGET_CPU_ALPHA 1 ! 915: #define TARGET_OS_MAC 0 ! 916: #define TARGET_OS_WIN32 1 ! 917: #define TARGET_OS_UNIX 0 ! 918: #define TARGET_RT_LITTLE_ENDIAN 1 ! 919: #define TARGET_RT_BIG_ENDIAN 0 ! 920: #define TARGET_RT_MAC_CFM 0 ! 921: #define TARGET_RT_MAC_68881 0 ! 922: #define PRAGMA_IMPORT 0 ! 923: #define PRAGMA_STRUCT_ALIGN 0 ! 924: #define PRAGMA_ONCE 0 ! 925: #define PRAGMA_STRUCT_PACK 1 ! 926: #define PRAGMA_STRUCT_PACKPUSH 1 ! 927: #define PRAGMA_ENUM_PACK 0 ! 928: #define PRAGMA_ENUM_ALWAYSINT 0 ! 929: #define PRAGMA_ENUM_OPTIONS 0 ! 930: #define FOUR_CHAR_CODE(x) (((unsigned long) ((x) & 0x000000FF)) << 24) \ ! 931: | (((unsigned long) ((x) & 0x0000FF00)) << 8) \ ! 932: | (((unsigned long) ((x) & 0x00FF0000)) >> 8) \ ! 933: | (((unsigned long) ((x) & 0xFF000000)) >> 24) ! 934: #define TYPE_EXTENDED 0 ! 935: #define TYPE_LONGLONG 0 ! 936: #define TYPE_BOOL 0 ! 937: ! 938: #elif defined(_M_PPC) /* Visual C++ for Windows NT on PowerPC target */ ! 939: #define TARGET_CPU_PPC 1 ! 940: #define TARGET_CPU_68K 0 ! 941: #define TARGET_CPU_X86 0 ! 942: #define TARGET_CPU_MIPS 0 ! 943: #define TARGET_CPU_SPARC 0 ! 944: #define TARGET_CPU_ALPHA 0 ! 945: #define TARGET_OS_MAC 0 ! 946: #define TARGET_OS_WIN32 1 ! 947: #define TARGET_OS_UNIX 0 ! 948: #define TARGET_RT_LITTLE_ENDIAN 1 ! 949: #define TARGET_RT_BIG_ENDIAN 0 ! 950: #define TARGET_RT_MAC_CFM 0 ! 951: #define TARGET_RT_MAC_68881 0 ! 952: #define PRAGMA_IMPORT 0 ! 953: #define PRAGMA_STRUCT_ALIGN 0 ! 954: #define PRAGMA_ONCE 0 ! 955: #define PRAGMA_STRUCT_PACK 1 ! 956: #define PRAGMA_STRUCT_PACKPUSH 1 ! 957: #define PRAGMA_ENUM_PACK 0 ! 958: #define PRAGMA_ENUM_ALWAYSINT 0 ! 959: #define PRAGMA_ENUM_OPTIONS 0 ! 960: #define FOUR_CHAR_CODE(x) (((unsigned long) ((x) & 0x000000FF)) << 24) \ ! 961: | (((unsigned long) ((x) & 0x0000FF00)) << 8) \ ! 962: | (((unsigned long) ((x) & 0x00FF0000)) >> 8) \ ! 963: | (((unsigned long) ((x) & 0xFF000000)) >> 24) ! 964: #define TYPE_EXTENDED 0 ! 965: #define TYPE_LONGLONG 0 ! 966: #define TYPE_BOOL 0 ! 967: ! 968: #elif defined(_M_MRX000) /* Visual C++ for Windows NT on MIPS target */ ! 969: #define TARGET_CPU_PPC 0 ! 970: #define TARGET_CPU_68K 0 ! 971: #define TARGET_CPU_X86 0 ! 972: #define TARGET_CPU_MIPS 1 ! 973: #define TARGET_CPU_SPARC 0 ! 974: #define TARGET_CPU_ALPHA 0 ! 975: #define TARGET_OS_MAC 0 ! 976: #define TARGET_OS_WIN32 1 ! 977: #define TARGET_OS_UNIX 0 ! 978: #define TARGET_RT_LITTLE_ENDIAN 1 ! 979: #define TARGET_RT_BIG_ENDIAN 0 ! 980: #define TARGET_RT_MAC_CFM 0 ! 981: #define TARGET_RT_MAC_68881 0 ! 982: #define PRAGMA_IMPORT 0 ! 983: #define PRAGMA_STRUCT_ALIGN 0 ! 984: #define PRAGMA_ONCE 0 ! 985: #define PRAGMA_STRUCT_PACK 1 ! 986: #define PRAGMA_STRUCT_PACKPUSH 1 ! 987: #define PRAGMA_ENUM_PACK 0 ! 988: #define PRAGMA_ENUM_ALWAYSINT 0 ! 989: #define PRAGMA_ENUM_OPTIONS 0 ! 990: #define FOUR_CHAR_CODE(x) (((unsigned long) ((x) & 0x000000FF)) << 24) \ ! 991: | (((unsigned long) ((x) & 0x0000FF00)) << 8) \ ! 992: | (((unsigned long) ((x) & 0x00FF0000)) >> 8) \ ! 993: | (((unsigned long) ((x) & 0xFF000000)) >> 24) ! 994: #define TYPE_EXTENDED 0 ! 995: #define TYPE_LONGLONG 0 ! 996: #define TYPE_BOOL 0 ! 997: #endif ! 998: ! 999: ! 1000: #elif defined(__MOTO__) ! 1001: /* ! 1002: mcc from Motorola, Inc. ! 1003: */ ! 1004: #define TARGET_CPU_PPC 1 ! 1005: #define TARGET_CPU_68K 0 ! 1006: #define TARGET_CPU_X86 0 ! 1007: #define TARGET_CPU_MIPS 0 ! 1008: #define TARGET_CPU_SPARC 0 ! 1009: #define TARGET_CPU_ALPHA 0 ! 1010: #define TARGET_OS_MAC 1 ! 1011: #define TARGET_OS_WIN32 0 ! 1012: #define TARGET_OS_UNIX 0 ! 1013: #define TARGET_RT_LITTLE_ENDIAN 0 ! 1014: #define TARGET_RT_BIG_ENDIAN 1 ! 1015: #define TARGET_RT_MAC_CFM 1 ! 1016: #define TARGET_RT_MAC_68881 0 ! 1017: #define PRAGMA_IMPORT 0 /* how is this detected ?? */ ! 1018: #define PRAGMA_STRUCT_ALIGN 1 ! 1019: #if __MOTO__ >= 40702 /* MCC version 4.7.2 */ ! 1020: #define PRAGMA_ONCE 1 ! 1021: #else ! 1022: #define PRAGMA_ONCE 0 ! 1023: #endif ! 1024: #define PRAGMA_STRUCT_PACK 0 ! 1025: #define PRAGMA_STRUCT_PACKPUSH 0 ! 1026: #define PRAGMA_ENUM_PACK 0 ! 1027: #define PRAGMA_ENUM_ALWAYSINT 0 ! 1028: #define PRAGMA_ENUM_OPTIONS 0 ! 1029: #define FOUR_CHAR_CODE(x) (x) ! 1030: #define TYPE_LONGLONG 0 /* how is this detected ?? */ ! 1031: #ifdef _BOOL ! 1032: #define TYPE_BOOL 1 ! 1033: #else ! 1034: #define TYPE_BOOL 0 ! 1035: #endif ! 1036: #define TYPE_EXTENDED 0 ! 1037: ! 1038: ! 1039: ! 1040: #elif defined(_MIPS_ISA) ! 1041: /* ! 1042: MIPSpro compiler from Silicon Graphics Inc. ! 1043: */ ! 1044: #define TARGET_CPU_PPC 0 ! 1045: #define TARGET_CPU_68K 0 ! 1046: #define TARGET_CPU_X86 0 ! 1047: #define TARGET_CPU_MIPS 1 ! 1048: #define TARGET_CPU_SPARC 0 ! 1049: #define TARGET_CPU_ALPHA 0 ! 1050: #define TARGET_OS_MAC 0 ! 1051: #define TARGET_OS_WIN32 0 ! 1052: #define TARGET_OS_UNIX 1 ! 1053: #define TARGET_RT_LITTLE_ENDIAN 0 ! 1054: #define TARGET_RT_BIG_ENDIAN 1 ! 1055: #define TARGET_RT_MAC_CFM 0 ! 1056: #define TARGET_RT_MAC_68881 0 ! 1057: #define PRAGMA_IMPORT 0 ! 1058: #define PRAGMA_STRUCT_ALIGN 0 ! 1059: #define PRAGMA_ONCE 0 ! 1060: #define PRAGMA_STRUCT_PACK 1 ! 1061: #define PRAGMA_STRUCT_PACKPUSH 0 ! 1062: #define PRAGMA_ENUM_PACK 0 ! 1063: #define PRAGMA_ENUM_ALWAYSINT 0 ! 1064: #define PRAGMA_ENUM_OPTIONS 0 ! 1065: #define FOUR_CHAR_CODE(x) (x) ! 1066: #define TYPE_EXTENDED 0 ! 1067: #define TYPE_LONGLONG 0 ! 1068: #define TYPE_BOOL 0 ! 1069: ! 1070: ! 1071: #elif defined(__sparc) ! 1072: /* ! 1073: SPARCompiler compiler from Sun Microsystems Inc. ! 1074: */ ! 1075: #define TARGET_CPU_PPC 0 ! 1076: #define TARGET_CPU_68K 0 ! 1077: #define TARGET_CPU_X86 0 ! 1078: #define TARGET_CPU_MIPS 0 ! 1079: #define TARGET_CPU_SPARC 1 ! 1080: #define TARGET_CPU_ALPHA 0 ! 1081: #define TARGET_OS_MAC 0 ! 1082: #define TARGET_OS_WIN32 0 ! 1083: #define TARGET_OS_UNIX 1 ! 1084: #define TARGET_RT_LITTLE_ENDIAN 0 ! 1085: #define TARGET_RT_BIG_ENDIAN 1 ! 1086: #define TARGET_RT_MAC_CFM 0 ! 1087: #define TARGET_RT_MAC_68881 0 ! 1088: #define PRAGMA_IMPORT 0 ! 1089: #define PRAGMA_STRUCT_ALIGN 0 ! 1090: #define PRAGMA_ONCE 0 ! 1091: #define PRAGMA_STRUCT_PACK 1 ! 1092: #define PRAGMA_STRUCT_PACKPUSH 0 ! 1093: #define PRAGMA_ENUM_PACK 0 ! 1094: #define PRAGMA_ENUM_ALWAYSINT 0 ! 1095: #define PRAGMA_ENUM_OPTIONS 0 ! 1096: #define FOUR_CHAR_CODE(x) (((unsigned long) ((x) & 0x000000FF)) << 24) \ ! 1097: | (((unsigned long) ((x) & 0x0000FF00)) << 8) \ ! 1098: | (((unsigned long) ((x) & 0x00FF0000)) >> 8) \ ! 1099: | (((unsigned long) ((x) & 0xFF000000)) >> 24) ! 1100: #define TYPE_EXTENDED 0 ! 1101: #define TYPE_LONGLONG 0 ! 1102: #define TYPE_BOOL 0 ! 1103: ! 1104: ! 1105: #else ! 1106: /* ! 1107: Unknown compiler, perhaps set up from the command line (e.g. -d TARGET_CPU_MIPS , etc.) ! 1108: */ ! 1109: #if defined(TARGET_CPU_PPC) && TARGET_CPU_PPC ! 1110: #define TARGET_CPU_68K 0 ! 1111: #define TARGET_CPU_X86 0 ! 1112: #define TARGET_CPU_MIPS 0 ! 1113: #define TARGET_CPU_SPARC 0 ! 1114: #define TARGET_CPU_ALPHA 0 ! 1115: #elif defined(TARGET_CPU_68K) && TARGET_CPU_68K ! 1116: #define TARGET_CPU_PPC 0 ! 1117: #define TARGET_CPU_X86 0 ! 1118: #define TARGET_CPU_MIPS 0 ! 1119: #define TARGET_CPU_SPARC 0 ! 1120: #define TARGET_CPU_ALPHA 0 ! 1121: #elif defined(TARGET_CPU_X86) && TARGET_CPU_X86 ! 1122: #define TARGET_CPU_PPC 0 ! 1123: #define TARGET_CPU_68K 0 ! 1124: #define TARGET_CPU_MIPS 0 ! 1125: #define TARGET_CPU_SPARC 0 ! 1126: #define TARGET_CPU_ALPHA 0 ! 1127: #elif defined(TARGET_CPU_MIPS) && TARGET_CPU_MIPS ! 1128: #define TARGET_CPU_PPC 0 ! 1129: #define TARGET_CPU_68K 0 ! 1130: #define TARGET_CPU_X86 0 ! 1131: #define TARGET_CPU_SPARC 0 ! 1132: #define TARGET_CPU_ALPHA 0 ! 1133: #elif defined(TARGET_CPU_SPARC) && TARGET_CPU_SPARC ! 1134: #define TARGET_CPU_PPC 0 ! 1135: #define TARGET_CPU_68K 0 ! 1136: #define TARGET_CPU_X86 0 ! 1137: #define TARGET_CPU_MIPS 0 ! 1138: #define TARGET_CPU_ALPHA 0 ! 1139: #elif defined(TARGET_CPU_ALPHA) && TARGET_CPU_ALPHA ! 1140: #define TARGET_CPU_PPC 0 ! 1141: #define TARGET_CPU_68K 0 ! 1142: #define TARGET_CPU_X86 0 ! 1143: #define TARGET_CPU_MIPS 0 ! 1144: #define TARGET_CPU_SPARC 0 ! 1145: ! 1146: ! 1147: #else ! 1148: /* ! 1149: NOTE: If your compiler errors out here then support for your compiler ! 1150: has not yet been added to ConditionalMacros.h. ! 1151: ! 1152: ConditionalMacros.h is designed to be plug-and-play. It auto detects ! 1153: which compiler is being run and configures the TARGET_ conditionals ! 1154: appropriately. ! 1155: ! 1156: The short term work around is to set the TARGET_CPU_ and TARGET_OS_ ! 1157: on the command line to the compiler (e.g. d TARGET_CPU_MIPS -d TARGET_OS_UNIX) ! 1158: ! 1159: The long term solution is to add a new case to this file which ! 1160: auto detects your compiler and sets up the TARGET_ conditionals. ! 1161: If you do this, send the changes you made to [email protected] ! 1162: to get it integrated into the next release of ConditionalMacros.h. ! 1163: */ ! 1164: #error ConditionalMacros.h: unknown compiler (see comment above) ! 1165: #define TARGET_CPU_PPC 0 ! 1166: #define TARGET_CPU_68K 0 ! 1167: #define TARGET_CPU_X86 0 ! 1168: #define TARGET_CPU_MIPS 0 ! 1169: #define TARGET_CPU_SPARC 0 ! 1170: #define TARGET_CPU_ALPHA 0 ! 1171: #endif ! 1172: ! 1173: ! 1174: ! 1175: #if defined(TARGET_OS_MAC) && TARGET_OS_MAC ! 1176: #define TARGET_OS_WIN32 0 ! 1177: #define TARGET_OS_UNIX 0 ! 1178: #elif defined(TARGET_OS_WIN32) && TARGET_OS_WIN32 ! 1179: #define TARGET_OS_MAC 0 ! 1180: #define TARGET_OS_UNIX 0 ! 1181: #elif defined(TARGET_OS_UNIX) && TARGET_OS_UNIX ! 1182: #define TARGET_OS_MAC 0 ! 1183: #define TARGET_OS_WIN32 0 ! 1184: #elif TARGET_CPU_PPC || TARGET_CPU_68K ! 1185: #define TARGET_OS_MAC 1 ! 1186: #define TARGET_OS_WIN32 0 ! 1187: #define TARGET_OS_UNIX 0 ! 1188: #else ! 1189: #error ConditionalMacros.h: unknown target OS (see comment above) ! 1190: #endif ! 1191: ! 1192: #if !defined(TARGET_RT_BIG_ENDIAN) && !defined(TARGET_RT_LITTLE_ENDIAN) ! 1193: #if TARGET_OS_MAC ! 1194: #define TARGET_RT_LITTLE_ENDIAN 0 ! 1195: #define TARGET_RT_BIG_ENDIAN 1 ! 1196: #elif TARGET_OS_WIN32 ! 1197: #define TARGET_RT_LITTLE_ENDIAN 1 ! 1198: #define TARGET_RT_BIG_ENDIAN 0 ! 1199: #endif ! 1200: #endif ! 1201: ! 1202: #if defined(TARGET_RT_BIG_ENDIAN) && !defined(TARGET_RT_LITTLE_ENDIAN) ! 1203: #define TARGET_RT_LITTLE_ENDIAN !TARGET_RT_BIG_ENDIAN ! 1204: #elif !defined(TARGET_RT_BIG_ENDIAN) && defined(TARGET_RT_LITTLE_ENDIAN) ! 1205: #define TARGET_RT_BIG_ENDIAN !TARGET_RT_LITTLE_ENDIAN ! 1206: #endif ! 1207: ! 1208: #if !defined(TARGET_RT_BIG_ENDIAN) && !defined(TARGET_RT_LITTLE_ENDIAN) ! 1209: #error unknown endianess of target processor ! 1210: #endif ! 1211: ! 1212: #ifndef TARGET_RT_MAC_CFM ! 1213: #define TARGET_RT_MAC_CFM TARGET_CPU_PPC ! 1214: #endif ! 1215: #ifndef TARGET_RT_MAC_68881 ! 1216: #define TARGET_RT_MAC_68881 0 ! 1217: #endif ! 1218: ! 1219: ! 1220: #ifndef PRAGMA_IMPORT ! 1221: #define PRAGMA_IMPORT 0 ! 1222: #endif ! 1223: #ifndef PRAGMA_STRUCT_ALIGN ! 1224: #define PRAGMA_STRUCT_ALIGN 0 ! 1225: #endif ! 1226: #ifndef PRAGMA_ONCE ! 1227: #define PRAGMA_ONCE 0 ! 1228: #endif ! 1229: #ifndef PRAGMA_STRUCT_PACK ! 1230: #define PRAGMA_STRUCT_PACK 0 ! 1231: #endif ! 1232: #ifndef PRAGMA_STRUCT_PACKPUSH ! 1233: #define PRAGMA_STRUCT_PACKPUSH 0 ! 1234: #endif ! 1235: #ifndef PRAGMA_ENUM_PACK ! 1236: #define PRAGMA_ENUM_PACK 0 ! 1237: #endif ! 1238: #ifndef PRAGMA_ENUM_ALWAYSINT ! 1239: #define PRAGMA_ENUM_ALWAYSINT 0 ! 1240: #endif ! 1241: #ifndef PRAGMA_ENUM_OPTIONS ! 1242: #define PRAGMA_ENUM_OPTIONS 0 ! 1243: #endif ! 1244: #ifndef FOUR_CHAR_CODE ! 1245: #define FOUR_CHAR_CODE(x) (x) ! 1246: #endif ! 1247: ! 1248: #ifndef TYPE_EXTENDED ! 1249: #define TYPE_EXTENDED 0 ! 1250: #endif ! 1251: #ifndef TYPE_LONGLONG ! 1252: #define TYPE_LONGLONG 0 ! 1253: #endif ! 1254: #ifndef TYPE_BOOL ! 1255: #define TYPE_BOOL 0 ! 1256: #endif ! 1257: #endif ! 1258: ! 1259: ! 1260: ! 1261: ! 1262: /**************************************************************************************************** ! 1263: ! 1264: EXTERN_API� ! 1265: These conditionals are used to specify the calling convention of a function. ! 1266: Mac classic 68K and Win32 each have two possible calling conventions: ! 1267: ! 1268: EXTERN_API - Classic 68K pascal, Win32 __cdecl ! 1269: EXTERN_API_C - Classic 68K C, Win32 __cdecl ! 1270: EXTERN_API_STDCALL - Classic 68K pascal, Win32 __stdcall ! 1271: EXTERN_API_C_STDCALL - Classic 68K C, Win32 __stdcall ! 1272: ! 1273: ! 1274: CALLBACK_API� ! 1275: These conditionals are used to specify the calling convention of a function pointer. ! 1276: Mac classic 68K and Win32 each have two possible calling conventions: ! 1277: ! 1278: CALLBACK_API - Classic 68K pascal, Win32 __stdcall ! 1279: CALLBACK_API_C - Classic 68K C, Win32 __stdcall ! 1280: CALLBACK_API_STDCALL - Classic 68K pascal, Win32 __cdecl ! 1281: CALLBACK_API_C_STDCALL - Classic 68K C, Win32 __cdecl ! 1282: ! 1283: ****************************************************************************************************/ ! 1284: #if TARGET_OS_MAC ! 1285: /* ! 1286: Mac OS ! 1287: */ ! 1288: #define EXTERN_API(_type) extern pascal _type /* Note: all Mac OS compilers must be able to handle the pascal keyword */ ! 1289: #define EXTERN_API_C(_type) extern _type ! 1290: #define EXTERN_API_STDCALL(_type) extern pascal _type ! 1291: #define EXTERN_API_C_STDCALL(_type) extern _type ! 1292: #define CALLBACK_API(_type, _name) pascal _type (*_name) ! 1293: #define CALLBACK_API_C(_type, _name) _type (*_name) ! 1294: #define CALLBACK_API_STDCALL(_type, _name) pascal _type (*_name) ! 1295: #define CALLBACK_API_C_STDCALL(_type, _name) _type (*_name) ! 1296: #elif TARGET_OS_WIN32 ! 1297: /* ! 1298: Win32 ! 1299: */ ! 1300: #define EXTERN_API(_type) _type __cdecl ! 1301: #define EXTERN_API_C(_type) _type __cdecl ! 1302: #define EXTERN_API_STDCALL(_type) _type __stdcall ! 1303: #define EXTERN_API_C_STDCALL(_type) _type __stdcall ! 1304: #define CALLBACK_API(_type, _name) _type (__cdecl * _name) ! 1305: #define CALLBACK_API_C(_type, _name) _type (__cdecl * _name) ! 1306: #define CALLBACK_API_STDCALL(_type, _name) _type (__stdcall * _name) ! 1307: #define CALLBACK_API_C_STDCALL(_type, _name) _type (__stdcall * _name) ! 1308: /* MacOS 68K compilers need pascal keyword on function implementation, but Win32 cannot have it */ ! 1309: #undef pascal ! 1310: #define pascal ! 1311: #else ! 1312: /* ! 1313: Unix or anything else ! 1314: */ ! 1315: #define EXTERN_API(_type) extern _type ! 1316: #define EXTERN_API_C(_type) extern _type ! 1317: #define EXTERN_API_STDCALL(_type) extern _type ! 1318: #define EXTERN_API_C_STDCALL(_type) extern _type ! 1319: #define CALLBACK_API(_type, _name) _type (*_name) ! 1320: #define CALLBACK_API_C(_type, _name) _type (*_name) ! 1321: #define CALLBACK_API_STDCALL(_type, _name) _type (*_name) ! 1322: #define CALLBACK_API_C_STDCALL(_type, _name) _type (*_name) ! 1323: /* MacOS 68K compilers need pascal keyword on function implementation, but unix cannot have it */ ! 1324: #undef pascal ! 1325: #define pascal ! 1326: #endif ! 1327: ! 1328: ! 1329: /* Backwards compatibility for clients expecting Universal Interfacew 3.0d7 (Interfacer 2.d014) style */ ! 1330: #define EXTERN_API_1 EXTERN_API_STDCALL ! 1331: #define EXTERN_API_2 EXTERN_API_C_STDCALL ! 1332: #define EXTERN_API_3 EXTERN_API ! 1333: #define EXTERN_API_4 EXTERN_API_C ! 1334: #define CALLBACK_API_1 CALLBACK_API_STDCALL ! 1335: #define CALLBACK_API_2 CALLBACK_API_C_STDCALL ! 1336: #define CALLBACK_API_3 CALLBACK_API ! 1337: #define CALLBACK_API_4 CALLBACK_API_C ! 1338: ! 1339: /**************************************************************************************************** ! 1340: Backward compatibility for clients expecting 2.x version on ConditionalMacros.h ! 1341: ! 1342: GENERATINGPOWERPC - Compiler is generating PowerPC instructions ! 1343: GENERATING68K - Compiler is generating 68k family instructions ! 1344: GENERATING68881 - Compiler is generating mc68881 floating point instructions ! 1345: GENERATINGCFM - Code being generated assumes CFM calling conventions ! 1346: CFMSYSTEMCALLS - No A-traps. Systems calls are made using CFM and UPP's ! 1347: PRAGMA_ALIGN_SUPPORTED - Compiler supports: #pragma options align=mac68k/power/reset ! 1348: PRAGMA_IMPORT_SUPPORTED - Compiler supports: #pragma import on/off/reset ! 1349: ! 1350: ****************************************************************************************************/ ! 1351: #if TARGET_OS_MAC ! 1352: #define GENERATINGPOWERPC TARGET_CPU_PPC ! 1353: #define GENERATING68K TARGET_CPU_68K ! 1354: #define GENERATING68881 TARGET_RT_MAC_68881 ! 1355: #define GENERATINGCFM TARGET_RT_MAC_CFM ! 1356: #define CFMSYSTEMCALLS TARGET_RT_MAC_CFM ! 1357: #define PRAGMA_ALIGN_SUPPORTED PRAGMA_STRUCT_ALIGN ! 1358: #define PRAGMA_IMPORT_SUPPORTED PRAGMA_IMPORT ! 1359: /* ! 1360: NOTE: The FOR_� conditionals were developed to produce integerated ! 1361: interface files for System 7 and Copland. Now that Copland ! 1362: is canceled, all FOR_ conditionals have been removed from ! 1363: the interface files. But, just in case you someone got an ! 1364: interface file that uses them, the following sets the FOR_� ! 1365: conditionals to a consistent, usable state. ! 1366: ! 1367: #define FOR_OPAQUE_SYSTEM_DATA_STRUCTURES 0 ! 1368: #ifndef FOR_PTR_BASED_AE ! 1369: #define FOR_PTR_BASED_AE 0 ! 1370: #endif ! 1371: #define FOR_SYSTEM7_ONLY 1 ! 1372: #define FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED 1 ! 1373: #define FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE 1 ! 1374: #define FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE 1 ! 1375: #define FOR_SYSTEM8_COOPERATIVE 0 ! 1376: #define FOR_SYSTEM8_PREEMPTIVE 0 ! 1377: */ ! 1378: #define FOR_OPAQUE_SYSTEM_DATA_STRUCTURES ..FOR_OPAQUE_SYSTEM_DATA_STRUCTURES_is_an_obsolete_Coplandism.. ! 1379: #define FOR_PTR_BASED_AE ..FOR_PTR_BASED_AE_is_an_obsolete_Coplandism.. ! 1380: #define FOR_SYSTEM7_ONLY ..FOR_SYSTEM7_ONLY_is_an_obsolete_Coplandism.. ! 1381: #define FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED ..FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED_is_an_obsolete_Coplandism.. ! 1382: #define FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE ..FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE_is_an_obsolete_Coplandism.. ! 1383: #define FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE ..FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE_is_an_obsolete_Coplandism.. ! 1384: #define FOR_SYSTEM8_COOPERATIVE ..FOR_SYSTEM8_COOPERATIVE_is_an_obsolete_Coplandism.. ! 1385: #define FOR_SYSTEM8_PREEMPTIVE ..FOR_SYSTEM8_PREEMPTIVE_is_an_obsolete_Coplandism.. ! 1386: #endif /* TARGET_OS_MAC */ ! 1387: ! 1388: ! 1389: ! 1390: /**************************************************************************************************** ! 1391: ! 1392: OLDROUTINENAMES - "Old" names for Macintosh system calls are allowed in source code. ! 1393: (e.g. DisposPtr instead of DisposePtr). The names of system routine ! 1394: are now more sensitive to change because CFM binds by name. In the ! 1395: past, system routine names were compiled out to just an A-Trap. ! 1396: Macros have been added that each map an old name to its new name. ! 1397: This allows old routine names to be used in existing source files, ! 1398: but the macros only work if OLDROUTINENAMES is true. This support ! 1399: will be removed in the near future. Thus, all source code should ! 1400: be changed to use the new names! You can set OLDROUTINENAMES to false ! 1401: to see if your code has any old names left in it. ! 1402: ! 1403: OLDROUTINELOCATIONS - "Old" location of Macintosh system calls are used. For example, c2pstr ! 1404: has been moved from Strings to TextUtils. It is conditionalized in ! 1405: Strings with OLDROUTINELOCATIONS and in TextUtils with !OLDROUTINELOCATIONS. ! 1406: This allows developers to upgrade to newer interface files without ! 1407: having to change the includes in their source code. But, it allows ! 1408: the slow migration of system calls to more understandable file locations. ! 1409: OLDROUTINELOCATIONS currently defaults to true, but eventually will ! 1410: default to false. ! 1411: ! 1412: ****************************************************************************************************/ ! 1413: #ifndef OLDROUTINENAMES ! 1414: #define OLDROUTINENAMES 0 ! 1415: #endif /* !defined(OLDROUTINENAMES) */ ! 1416: ! 1417: #ifndef OLDROUTINELOCATIONS ! 1418: #define OLDROUTINELOCATIONS 0 ! 1419: #endif /* !defined(OLDROUTINELOCATIONS) */ ! 1420: ! 1421: ! 1422: ! 1423: /**************************************************************************************************** ! 1424: C specific conditionals ! 1425: ! 1426: CGLUESUPPORTED - Interface library will support "C glue" functions (function names ! 1427: are: all lowercase, use C strings instead of pascal strings, use ! 1428: Point* instead of Point). ! 1429: ! 1430: ****************************************************************************************************/ ! 1431: #ifndef CGLUESUPPORTED ! 1432: #if TARGET_OS_MAC && !defined(THINK_C) ! 1433: #define CGLUESUPPORTED 1 ! 1434: #else ! 1435: #define CGLUESUPPORTED 0 ! 1436: #endif /* TARGET_OS_MAC && !defined(THINK_C) */ ! 1437: ! 1438: #endif /* !defined(CGLUESUPPORTED) */ ! 1439: ! 1440: ! 1441: ! 1442: /**************************************************************************************************** ! 1443: The following macros isolate the use of 68K inlines in function prototypes. ! 1444: On the Mac OS under the Classic 68K runtime, function prototypes were followed ! 1445: by a list of 68K opcodes which the compiler inserted in the generated code instead ! 1446: of a JSR. Under Classic 68K on the Mac OS, this macro will put the opcodes ! 1447: in the right syntax. For all other OS's and runtimes the macro suppress the opcodes. ! 1448: Example: ! 1449: ! 1450: EXTERN_P void DrawPicture(PicHandle myPicture, const Rect *dstRect) ! 1451: ONEWORDINLINE(0xA8F6); ! 1452: ! 1453: ****************************************************************************************************/ ! 1454: ! 1455: #if TARGET_OS_MAC && !TARGET_RT_MAC_CFM ! 1456: #define ONEWORDINLINE(w1) = w1 ! 1457: #define TWOWORDINLINE(w1,w2) = {w1,w2} ! 1458: #define THREEWORDINLINE(w1,w2,w3) = {w1,w2,w3} ! 1459: #define FOURWORDINLINE(w1,w2,w3,w4) = {w1,w2,w3,w4} ! 1460: #define FIVEWORDINLINE(w1,w2,w3,w4,w5) = {w1,w2,w3,w4,w5} ! 1461: #define SIXWORDINLINE(w1,w2,w3,w4,w5,w6) = {w1,w2,w3,w4,w5,w6} ! 1462: #define SEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7) = {w1,w2,w3,w4,w5,w6,w7} ! 1463: #define EIGHTWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8) = {w1,w2,w3,w4,w5,w6,w7,w8} ! 1464: #define NINEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9) = {w1,w2,w3,w4,w5,w6,w7,w8,w9} ! 1465: #define TENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10) = {w1,w2,w3,w4,w5,w6,w7,w8,w9,w10} ! 1466: #define ELEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11) = {w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11} ! 1467: #define TWELVEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12) = {w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12} ! 1468: #else ! 1469: #define ONEWORDINLINE(w1) ! 1470: #define TWOWORDINLINE(w1,w2) ! 1471: #define THREEWORDINLINE(w1,w2,w3) ! 1472: #define FOURWORDINLINE(w1,w2,w3,w4) ! 1473: #define FIVEWORDINLINE(w1,w2,w3,w4,w5) ! 1474: #define SIXWORDINLINE(w1,w2,w3,w4,w5,w6) ! 1475: #define SEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7) ! 1476: #define EIGHTWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8) ! 1477: #define NINEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9) ! 1478: #define TENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10) ! 1479: #define ELEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11) ! 1480: #define TWELVEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12) ! 1481: #endif ! 1482: ! 1483: ! 1484: /**************************************************************************************************** ! 1485: ! 1486: TARGET_CARBON - default: false. Switches all of the above as described. Overrides all others ! 1487: - NOTE: If you set TARGET_CARBON to 1, then the other switches will be setup by ! 1488: ConditionalMacros, and should not be set manually. ! 1489: ! 1490: If you wish to do development for pre-Carbon Systems, you can set the following: ! 1491: ! 1492: OPAQUE_TOOLBOX_STRUCTS - default: false. True for TARGET_CARBON, hides struct fields. ! 1493: ACCESSOR_CALLS_ARE_FUNCTIONS - default: false. True for TARGET_CARBON, preserve old #define-style accessors ! 1494: MIXEDMODE_CALLS_ARE_FUNCTIONS - default: false. True for TARGET_CARBON, turn MixedMode macros into functions ! 1495: CALL_NOT_IN_CARBON - default: true. False for TARGET_CARBON, hide calls not supported in Carbon ! 1496: ! 1497: ****************************************************************************************************/ ! 1498: #ifndef TARGET_CARBON ! 1499: #define TARGET_CARBON 0 ! 1500: #endif /* !defined(TARGET_CARBON) */ ! 1501: ! 1502: #if TARGET_CARBON ! 1503: #define OPAQUE_TOOLBOX_STRUCTS 1 ! 1504: #define ACCESSOR_CALLS_ARE_FUNCTIONS 1 ! 1505: #define MIXEDMODE_CALLS_ARE_FUNCTIONS 1 ! 1506: #define CALL_NOT_IN_CARBON 0 ! 1507: #else ! 1508: #ifndef OPAQUE_TOOLBOX_STRUCTS ! 1509: #define OPAQUE_TOOLBOX_STRUCTS 0 ! 1510: #endif /* !defined(OPAQUE_TOOLBOX_STRUCTS) */ ! 1511: ! 1512: #ifndef ACCESSOR_CALLS_ARE_FUNCTIONS ! 1513: #define ACCESSOR_CALLS_ARE_FUNCTIONS 0 ! 1514: #endif /* !defined(ACCESSOR_CALLS_ARE_FUNCTIONS) */ ! 1515: ! 1516: /* ! 1517: * It's possible to have ACCESSOR_CALLS_ARE_FUNCTIONS set to true and OPAQUE_TOOLBOX_STRUCTS ! 1518: * set to false, but not the other way around, so make sure the defines are not set this way. ! 1519: */ ! 1520: #if OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS ! 1521: #error OPAQUE_TOOLBOX_STRUCTS cannot be true when ACCESSOR_CALLS_ARE_FUNCTIONS is false ! 1522: #endif /* OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS */ ! 1523: ! 1524: #ifndef MIXEDMODE_CALLS_ARE_FUNCTIONS ! 1525: #define MIXEDMODE_CALLS_ARE_FUNCTIONS 0 ! 1526: #endif /* !defined(MIXEDMODE_CALLS_ARE_FUNCTIONS) */ ! 1527: ! 1528: #ifndef CALL_NOT_IN_CARBON ! 1529: #define CALL_NOT_IN_CARBON 1 ! 1530: #endif /* !defined(CALL_NOT_IN_CARBON) */ ! 1531: ! 1532: #endif /* TARGET_CARBON */ ! 1533: ! 1534: /* ! 1535: Conditional forCarbon is a temporary workaround ! 1536: for the fact that our Carbon sources don't compile with ! 1537: TARGET_OS_MAC set yet. They compile TARGET_OS_UNIX now. ! 1538: */ ! 1539: #ifndef forCarbon ! 1540: #define forCarbon 0 ! 1541: #endif /* !defined(forCarbon) */ ! 1542: ! 1543: ! 1544: ! 1545: #endif /* __CONDITIONALMACROS__ */ ! 1546:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.