|
|
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.0dx ! 31: ! 32: DRI: Nick Kledzik ! 33: ! 34: Copyright: � 1993-1997 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: Scott Roberts ! 40: With Interfacer: 3.0d2 (PowerPC native) ! 41: From: ConditionalMacros.i ! 42: Revision: 75 ! 43: Dated: 6/11/97 ! 44: Last change by: ngk ! 45: Last comment: Restore TYPE_LONGLONG for MrC - changed type for AbsoluteTime in ! 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: 0x0300 => version 3.0 ! 58: 0x0210 => version 2.1 ! 59: This conditional did not exist prior to version 2.1 ! 60: ****************************************************************************************************/ ! 61: #define UNIVERSAL_INTERFACES_VERSION 0x0300 ! 62: ! 63: /**************************************************************************************************** ! 64: ! 65: TARGET_CPU_� ! 66: These conditionals specify which microprocessor instruction set is being ! 67: generated. At most one of these is true, the rest are false. ! 68: ! 69: TARGET_CPU_PPC - Compiler is generating PowerPC instructions ! 70: TARGET_CPU_68K - Compiler is generating 680x0 instructions ! 71: TARGET_CPU_X86 - Compiler is generating x86 instructions ! 72: TARGET_CPU_MIPS - Compiler is generating MIPS instructions ! 73: TARGET_CPU_SPARC - Compiler is generating Sparc instructions ! 74: TARGET_CPU_ALPHA - Compiler is generating Dec Alpha instructions ! 75: ! 76: ! 77: TARGET_OS_� ! 78: These conditionals specify in which Operating System the generated code will ! 79: run. At most one of the these is true, the rest are false. ! 80: ! 81: TARGET_OS_MAC - Generate code will run under Mac OS ! 82: TARGET_OS_WIN32 - Generate code will run under 32-bit Windows ! 83: TARGET_OS_UNIX - Generate code will run under some unix ! 84: TARGET_OS_RHAPSODY - Generate code will run under Rhapsody ! 85: ! 86: ! 87: TARGET_RT_� ! 88: These conditionals specify in which runtime the generated code will ! 89: run. This is needed when the OS and CPU support more than one runtime ! 90: (e.g. MacOS on 68K supports CFM68K and Classic 68k). ! 91: ! 92: TARGET_RT_LITTLE_ENDIAN - Generated code uses little endian format for integers ! 93: TARGET_RT_BIG_ENDIAN - Generated code uses big endian format for integers ! 94: TARGET_RT_MAC_CFM - TARGET_OS_MAC is true and CFM68K or PowerPC CFM being used ! 95: TARGET_RT_MAC_68881 - TARGET_OS_MAC is true and 68881 floating point instructions used ! 96: ! 97: ! 98: PRAGMA_� ! 99: These conditionals specify whether the compiler supports particular #pragma's ! 100: ! 101: PRAGMA_IMPORT - Compiler supports: #pragma import on/off/reset ! 102: PRAGMA_ONCE - Compiler supports: #pragma once ! 103: PRAGMA_STRUCT_ALIGN - Compiler supports: #pragma options align=mac68k/power/reset ! 104: PRAGMA_STRUCT_PACK - Compiler supports: #pragma pack(n) ! 105: PRAGMA_STRUCT_PACKPUSH - Compiler supports: #pragma pack(push, n)/pack(pop) ! 106: PRAGMA_ENUM_PACK - Compiler supports: #pragma options(!pack_enums) ! 107: PRAGMA_ENUM_ALWAYSINT - Compiler supports: #pragma enumsalwaysint on/off/reset ! 108: PRAGMA_ENUM_OPTIONS - Compiler supports: #pragma options enum=int/small/reset ! 109: ! 110: FOUR_CHAR_CODE ! 111: This conditional does the proper byte swapping to assue that a four character code (e.g. 'TEXT') ! 112: is compiled down to the correct value on all compilers. ! 113: ! 114: FOUR_CHAR_CODE('abcd') - Convert a four-char-code to the correct 32-bit value ! 115: ! 116: TYPE_� ! 117: These conditionals specify whether the compiler supports particular types. ! 118: ! 119: TYPE_LONGLONG - Compiler supports "long long" 64-bit integers ! 120: TYPE_BOOL - Compiler supports "bool" ! 121: TYPE_EXTENDED - Compiler supports "extended" 80/96 bit floating point ! 122: ! 123: ****************************************************************************************************/ ! 124: ! 125: #if defined(__MRC__) ! 126: /* ! 127: MrC[pp] compiler from Apple Computer, Inc. ! 128: */ ! 129: #define TARGET_CPU_PPC 1 ! 130: #define TARGET_CPU_68K 0 ! 131: #define TARGET_CPU_X86 0 ! 132: #define TARGET_CPU_MIPS 0 ! 133: #define TARGET_CPU_SPARC 0 ! 134: #define TARGET_CPU_ALPHA 0 ! 135: #define TARGET_OS_MAC 1 ! 136: #define TARGET_OS_WIN32 0 ! 137: #define TARGET_OS_UNIX 0 ! 138: #define TARGET_RT_LITTLE_ENDIAN 0 ! 139: #define TARGET_RT_BIG_ENDIAN 1 ! 140: #define TARGET_RT_MAC_CFM 1 ! 141: #define TARGET_RT_MAC_68881 0 ! 142: #if (__MRC__ > 0x0200) && (__MRC__ < 0x0700) ! 143: #define PRAGMA_IMPORT 1 ! 144: #else ! 145: #define PRAGMA_IMPORT 0 ! 146: #endif ! 147: #define PRAGMA_STRUCT_ALIGN 1 ! 148: #define PRAGMA_ONCE 1 ! 149: #define PRAGMA_STRUCT_PACK 0 ! 150: #define PRAGMA_STRUCT_PACKPUSH 0 ! 151: #define PRAGMA_ENUM_PACK 0 ! 152: #define PRAGMA_ENUM_ALWAYSINT 0 ! 153: #define PRAGMA_ENUM_OPTIONS 0 ! 154: #define FOUR_CHAR_CODE(x) (x) ! 155: ! 156: #if (__MRC__ > 0x0300) && (__MRC__ < 0x0700) ! 157: #if __option(longlong) ! 158: #define TYPE_LONGLONG 1 ! 159: #else ! 160: #define TYPE_LONGLONG 0 ! 161: #endif ! 162: #if __option(bool) ! 163: #define TYPE_BOOL 1 ! 164: #else ! 165: #define TYPE_BOOL 0 ! 166: #endif ! 167: #else ! 168: #define TYPE_LONGLONG 0 ! 169: #define TYPE_BOOL 0 ! 170: #endif ! 171: #define TYPE_EXTENDED 0 ! 172: ! 173: ! 174: ! 175: #elif defined(__SC__) && (defined(MPW_CPLUS) || defined(MPW_C)) ! 176: /* ! 177: SC[pp] compiler from Apple Computer, Inc. ! 178: */ ! 179: #define TARGET_CPU_PPC 0 ! 180: #define TARGET_CPU_68K 1 ! 181: #define TARGET_CPU_X86 0 ! 182: #define TARGET_CPU_MIPS 0 ! 183: #define TARGET_CPU_SPARC 0 ! 184: #define TARGET_CPU_ALPHA 0 ! 185: #define TARGET_OS_MAC 1 ! 186: #define TARGET_OS_WIN32 0 ! 187: #define TARGET_OS_UNIX 0 ! 188: #define TARGET_RT_LITTLE_ENDIAN 0 ! 189: #define TARGET_RT_BIG_ENDIAN 1 ! 190: #if defined(__CFM68K__) ! 191: #define TARGET_RT_MAC_CFM 1 ! 192: #else ! 193: #define TARGET_RT_MAC_CFM 0 ! 194: #endif ! 195: #if defined(mc68881) ! 196: #define TARGET_RT_MAC_68881 1 ! 197: #else ! 198: #define TARGET_RT_MAC_68881 0 ! 199: #endif ! 200: #if TARGET_RT_MAC_CFM ! 201: #define PRAGMA_IMPORT 1 ! 202: #if (__SC__ <= 0x0810) ! 203: /* old versions of SC don't support �#pragma import reset� */ ! 204: #define PRAGMA_IMPORT_OFF 1 ! 205: #endif ! 206: #else ! 207: #define PRAGMA_IMPORT 0 ! 208: #endif ! 209: #define PRAGMA_STRUCT_ALIGN 0 ! 210: #define PRAGMA_ONCE 0 ! 211: #define PRAGMA_STRUCT_PACK 0 ! 212: #define PRAGMA_STRUCT_PACKPUSH 0 ! 213: #define PRAGMA_ENUM_PACK 1 ! 214: #define PRAGMA_ENUM_ALWAYSINT 0 ! 215: #define PRAGMA_ENUM_OPTIONS 0 ! 216: #define FOUR_CHAR_CODE(x) (x) ! 217: ! 218: #define TYPE_LONGLONG 0 ! 219: #define TYPE_EXTENDED 1 ! 220: #if (__SC__ > 0x0810) ! 221: #if __option(bool) ! 222: #define TYPE_BOOL 1 ! 223: #else ! 224: #define TYPE_BOOL 0 ! 225: #endif ! 226: #else ! 227: #define TYPE_BOOL 0 ! 228: #endif ! 229: ! 230: ! 231: ! 232: #elif defined(__MWERKS__) ! 233: /* ! 234: CodeWarrior compiler from Metrowerks, Inc. ! 235: */ ! 236: #if (__MWERKS__ < 0x0900) || macintosh ! 237: #define TARGET_OS_MAC 0 ! 238: #define TARGET_OS_WIN32 0 ! 239: #define TARGET_OS_UNIX 1 ! 240: #define TARGET_CPU_X86 0 ! 241: #define TARGET_CPU_MIPS 0 ! 242: #define TARGET_CPU_SPARC 0 ! 243: #define TARGET_CPU_ALPHA 0 ! 244: #define TARGET_RT_LITTLE_ENDIAN 0 ! 245: #define TARGET_RT_BIG_ENDIAN 1 ! 246: #if powerc ! 247: #define TARGET_CPU_PPC 1 ! 248: #define TARGET_CPU_68K 0 ! 249: #define TARGET_RT_MAC_CFM 1 ! 250: #define TARGET_RT_MAC_68881 0 ! 251: #else ! 252: #define TARGET_CPU_PPC 0 ! 253: #define TARGET_CPU_68K 1 ! 254: #if defined(__CFM68K__) ! 255: #define TARGET_RT_MAC_CFM 1 ! 256: #else ! 257: #define TARGET_RT_MAC_CFM 0 ! 258: #endif ! 259: #if __MC68881__ ! 260: #define TARGET_RT_MAC_68881 1 ! 261: #else ! 262: #define TARGET_RT_MAC_68881 0 ! 263: #endif ! 264: #endif ! 265: #elif (__MWERKS__ >= 0x0900) && __INTEL__ ! 266: #define TARGET_CPU_PPC 0 ! 267: #define TARGET_CPU_68K 0 ! 268: #define TARGET_CPU_X86 1 ! 269: #define TARGET_CPU_MIPS 0 ! 270: #define TARGET_CPU_SPARC 0 ! 271: #define TARGET_CPU_ALPHA 0 ! 272: #define TARGET_OS_MAC 0 ! 273: #define TARGET_OS_WIN32 1 ! 274: #define TARGET_OS_UNIX 0 ! 275: #define TARGET_RT_LITTLE_ENDIAN 1 ! 276: #define TARGET_RT_BIG_ENDIAN 0 ! 277: #define TARGET_RT_MAC_CFM 0 ! 278: #define TARGET_RT_MAC_68881 0 ! 279: #else ! 280: #error unknown Metrowerks compiler ! 281: #endif ! 282: ! 283: ! 284: #if (__MWERKS__ >= 0x0700) ! 285: #define PRAGMA_IMPORT TARGET_RT_MAC_CFM ! 286: #else ! 287: #define PRAGMA_IMPORT 0 ! 288: #endif ! 289: #define PRAGMA_STRUCT_ALIGN 1 ! 290: #define PRAGMA_ONCE 1 ! 291: #define PRAGMA_STRUCT_PACK 0 ! 292: #define PRAGMA_STRUCT_PACKPUSH 0 ! 293: #define PRAGMA_ENUM_PACK 0 ! 294: #define PRAGMA_ENUM_ALWAYSINT 1 ! 295: #define PRAGMA_ENUM_OPTIONS 0 ! 296: #define FOUR_CHAR_CODE(x) (x) ! 297: ! 298: #if (__MWERKS__ >= 0x1100) ! 299: #if __option(longlong) ! 300: #define TYPE_LONGLONG 1 ! 301: #define _LONG_LONG 1 /* temporary */ ! 302: #else ! 303: #define TYPE_LONGLONG 0 ! 304: #endif ! 305: #else ! 306: #define TYPE_LONGLONG 0 ! 307: #endif ! 308: #if (__MWERKS__ >= 0x1000) ! 309: #if __option(bool) ! 310: #define TYPE_BOOL 1 ! 311: #else ! 312: #define TYPE_BOOL 0 ! 313: #endif ! 314: #else ! 315: #define TYPE_BOOL 0 ! 316: #endif ! 317: ! 318: #if TARGET_OS_MAC && TARGET_CPU_68K ! 319: typedef long double extended; ! 320: #define TYPE_EXTENDED 1 ! 321: #else ! 322: #define TYPE_EXTENDED 0 ! 323: #endif ! 324: ! 325: ! 326: ! 327: #elif defined(SYMANTEC_CPLUS) || defined(SYMANTEC_C) ! 328: /* ! 329: C and C++ compiler from Symantec, Inc. ! 330: */ ! 331: #define TARGET_OS_MAC 1 ! 332: #define TARGET_OS_WIN32 0 ! 333: #define TARGET_OS_UNIX 0 ! 334: #define TARGET_CPU_X86 0 ! 335: #define TARGET_CPU_MIPS 0 ! 336: #define TARGET_CPU_SPARC 0 ! 337: #define TARGET_CPU_ALPHA 0 ! 338: #define TARGET_RT_LITTLE_ENDIAN 0 ! 339: #define TARGET_RT_BIG_ENDIAN 1 ! 340: #if powerc ! 341: #define TARGET_CPU_PPC 1 ! 342: #define TARGET_CPU_68K 0 ! 343: #define TARGET_RT_MAC_CFM 1 ! 344: #define TARGET_RT_MAC_68881 0 ! 345: #else ! 346: #define TARGET_CPU_PPC 0 ! 347: #define TARGET_CPU_68K 1 ! 348: #if defined(__CFM68K) ! 349: #define TARGET_RT_MAC_CFM 1 ! 350: #else ! 351: #define TARGET_RT_MAC_CFM 0 ! 352: #endif ! 353: #if mc68881 ! 354: #define TARGET_RT_MAC_68881 1 ! 355: #else ! 356: #define TARGET_RT_MAC_68881 0 ! 357: #endif ! 358: #endif ! 359: #define PRAGMA_IMPORT 0 ! 360: #define PRAGMA_ONCE 1 ! 361: #define PRAGMA_STRUCT_ALIGN 1 ! 362: #define PRAGMA_STRUCT_PACK 0 ! 363: #define PRAGMA_STRUCT_PACKPUSH 0 ! 364: #define PRAGMA_ENUM_PACK 1 ! 365: #define PRAGMA_ENUM_ALWAYSINT 0 ! 366: #define PRAGMA_ENUM_OPTIONS 0 ! 367: #define FOUR_CHAR_CODE(x) (x) ! 368: ! 369: #if __useAppleExts__ ! 370: #define TYPE_EXTENDED 1 ! 371: #else ! 372: #define TYPE_EXTENDED 0 ! 373: #endif ! 374: #define TYPE_LONGLONG 0 ! 375: #define TYPE_BOOL 0 ! 376: ! 377: ! 378: ! 379: #elif defined(THINK_C) ! 380: /* ! 381: THINK C compiler from Symantec, Inc. << WARNING: Unsupported Compiler >> ! 382: */ ! 383: #define TARGET_CPU_PPC 0 ! 384: #define TARGET_CPU_68K 1 ! 385: #define TARGET_CPU_X86 0 ! 386: #define TARGET_CPU_MIPS 0 ! 387: #define TARGET_CPU_SPARC 0 ! 388: #define TARGET_CPU_ALPHA 0 ! 389: #define TARGET_OS_MAC 1 ! 390: #define TARGET_OS_WIN32 0 ! 391: #define TARGET_OS_UNIX 0 ! 392: #define TARGET_RT_LITTLE_ENDIAN 0 ! 393: #define TARGET_RT_BIG_ENDIAN 1 ! 394: #define TARGET_RT_MAC_CFM 0 ! 395: #if defined(mc68881) ! 396: #define TARGET_RT_MAC_68881 1 ! 397: #else ! 398: #define TARGET_RT_MAC_68881 0 ! 399: #endif ! 400: #define PRAGMA_IMPORT 0 ! 401: #define PRAGMA_STRUCT_ALIGN 0 ! 402: #define PRAGMA_ONCE 1 ! 403: #define PRAGMA_STRUCT_PACK 0 ! 404: #define PRAGMA_STRUCT_PACKPUSH 0 ! 405: #define PRAGMA_ENUM_PACK 1 ! 406: #define PRAGMA_ENUM_ALWAYSINT 0 ! 407: #define PRAGMA_ENUM_OPTIONS 0 ! 408: #define FOUR_CHAR_CODE(x) (x) ! 409: ! 410: #define TYPE_EXTENDED 1 ! 411: #define TYPE_LONGLONG 0 ! 412: #define TYPE_BOOL 0 ! 413: ! 414: ! 415: ! 416: #elif defined(__PPCC__) ! 417: /* ! 418: PPCC compiler from Apple Computer, Inc. << WARNING: Unsupported Compiler >> ! 419: */ ! 420: #define TARGET_CPU_PPC 1 ! 421: #define TARGET_CPU_68K 0 ! 422: #define TARGET_CPU_X86 0 ! 423: #define TARGET_CPU_MIPS 0 ! 424: #define TARGET_CPU_SPARC 0 ! 425: #define TARGET_CPU_ALPHA 0 ! 426: #define TARGET_OS_MAC 1 ! 427: #define TARGET_OS_WIN32 0 ! 428: #define TARGET_OS_UNIX 0 ! 429: #define TARGET_RT_LITTLE_ENDIAN 0 ! 430: #define TARGET_RT_BIG_ENDIAN 1 ! 431: #define TARGET_RT_MAC_CFM 1 ! 432: #define TARGET_RT_MAC_68881 0 ! 433: #define PRAGMA_IMPORT 0 ! 434: #define PRAGMA_STRUCT_ALIGN 1 ! 435: #define PRAGMA_ONCE 0 ! 436: #define PRAGMA_STRUCT_PACK 0 ! 437: #define PRAGMA_STRUCT_PACKPUSH 0 ! 438: #define PRAGMA_ENUM_PACK 0 ! 439: #define PRAGMA_ENUM_ALWAYSINT 0 ! 440: #define PRAGMA_ENUM_OPTIONS 0 ! 441: #define FOUR_CHAR_CODE(x) (x) ! 442: ! 443: #define TYPE_EXTENDED 0 ! 444: #define TYPE_LONGLONG 0 ! 445: #define TYPE_BOOL 0 ! 446: ! 447: ! 448: #elif defined(applec) && !defined(__SC__) ! 449: /* ! 450: MPW C compiler from Apple Computer, Inc. << WARNING: Unsupported Compiler >> ! 451: */ ! 452: #define TARGET_CPU_PPC 0 ! 453: #define TARGET_CPU_68K 1 ! 454: #define TARGET_CPU_X86 0 ! 455: #define TARGET_CPU_MIPS 0 ! 456: #define TARGET_CPU_SPARC 0 ! 457: #define TARGET_CPU_ALPHA 0 ! 458: #define TARGET_OS_MAC 1 ! 459: #define TARGET_OS_WIN32 0 ! 460: #define TARGET_OS_UNIX 0 ! 461: #define TARGET_RT_LITTLE_ENDIAN 0 ! 462: #define TARGET_RT_BIG_ENDIAN 1 ! 463: #define TARGET_RT_MAC_CFM 0 ! 464: #if defined(mc68881) ! 465: #define TARGET_RT_MAC_68881 1 ! 466: #else ! 467: #define TARGET_RT_MAC_68881 0 ! 468: #endif ! 469: #define PRAGMA_IMPORT 0 ! 470: #define PRAGMA_STRUCT_ALIGN 0 ! 471: #define PRAGMA_ONCE 0 ! 472: #define PRAGMA_STRUCT_PACK 0 ! 473: #define PRAGMA_STRUCT_PACKPUSH 0 ! 474: #define PRAGMA_ENUM_PACK 0 ! 475: #define PRAGMA_ENUM_ALWAYSINT 0 ! 476: #define PRAGMA_ENUM_OPTIONS 0 ! 477: /* Note: MPW C 3.2 had a bug where MACRO('xx ') would cause 'xx ' to be misevaluated */ ! 478: #define FOUR_CHAR_CODE ! 479: ! 480: #define TYPE_EXTENDED 1 ! 481: #define TYPE_LONGLONG 0 ! 482: #define TYPE_BOOL 0 ! 483: ! 484: ! 485: ! 486: #elif defined(__GNUC__) ! 487: /* ! 488: gC from Free Software Foundation, Inc. ! 489: */ ! 490: #if 0 ! 491: ! 492: #if #cpu(powerpc) ! 493: #define TARGET_CPU_PPC 1 ! 494: #define TARGET_CPU_68K 0 ! 495: #define TARGET_CPU_X86 0 ! 496: #define TARGET_CPU_MIPS 0 ! 497: #define TARGET_CPU_SPARC 0 ! 498: #define TARGET_CPU_ALPHA 0 ! 499: #define TARGET_RT_MAC_CFM 1 ! 500: #define TARGET_RT_MAC_68881 0 ! 501: #elif #cpu(m68k) ! 502: #define TARGET_CPU_PPC 0 ! 503: #define TARGET_CPU_68K 1 ! 504: #define TARGET_CPU_X86 0 ! 505: #define TARGET_CPU_MIPS 0 ! 506: #define TARGET_CPU_SPARC 0 ! 507: #define TARGET_CPU_ALPHA 0 ! 508: #define TARGET_RT_MAC_CFM 0 ! 509: #define TARGET_RT_MAC_68881 0 ! 510: #else ! 511: #error unsupported GNU C compiler ! 512: #endif ! 513: ! 514: #if #system(macos) ! 515: #define TARGET_OS_MAC 1 ! 516: #define TARGET_OS_WIN32 0 ! 517: #define TARGET_OS_UNIX 0 ! 518: #elif #system(unix) ! 519: #define TARGET_OS_MAC 0 ! 520: #define TARGET_OS_WIN32 0 ! 521: #define TARGET_OS_UNIX 1 ! 522: #else ! 523: #error unsupported GNU C compiler ! 524: #endif ! 525: #endif ! 526: ! 527: #define TARGET_CPU_PPC 1 ! 528: #define TARGET_CPU_68K 0 ! 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_RT_MAC_CFM 0 ! 534: #define TARGET_RT_MAC_68881 0 ! 535: ! 536: #define TARGET_OS_MAC 0 ! 537: #define TARGET_OS_WIN32 0 ! 538: #define TARGET_OS_UNIX 0 ! 539: #define TARGET_OS_RHAPSODY 1 ! 540: ! 541: #if DIAGNOSTIC ! 542: #define DEBUG_BUILD 1 ! 543: #else ! 544: #define DEBUG_BUILD 0 ! 545: #endif /* DIAGNOSTIC */ ! 546: ! 547: #define TARGET_RT_LITTLE_ENDIAN 0 ! 548: #define TARGET_RT_BIG_ENDIAN 1 ! 549: #define PRAGMA_IMPORT 0 ! 550: #define PRAGMA_STRUCT_ALIGN 1 ! 551: #define PRAGMA_ONCE 0 ! 552: #define PRAGMA_STRUCT_PACK 0 ! 553: #define PRAGMA_STRUCT_PACKPUSH 0 ! 554: #define PRAGMA_ENUM_PACK 0 ! 555: #define PRAGMA_ENUM_ALWAYSINT 0 ! 556: #define PRAGMA_ENUM_OPTIONS 0 ! 557: #define DWORD unsigned long ! 558: #define FOUR_CHAR_CODE(x) x ! 559: // #define FOUR_CHAR_CODE(x) (((DWORD) ((x) & 0x000000FF)) << 24) \ ! 560: // | (((DWORD) ((x) & 0x0000FF00)) << 8) \ ! 561: // | (((DWORD) ((x) & 0x00FF0000)) >> 8) \ ! 562: // | (((DWORD) ((x) & 0xFF000000)) >> 24) ! 563: ! 564: #define TYPE_EXTENDED 0 ! 565: #ifdef _LONG_LONG ! 566: #define TYPE_LONGLONG 1 ! 567: #else ! 568: #define TYPE_LONGLONG 0 ! 569: #endif ! 570: #define TYPE_BOOL 0 ! 571: ! 572: ! 573: ! 574: #elif defined(__xlc) || defined(__xlC) || defined(__xlC__) || defined(__XLC121__) ! 575: /* ! 576: xlc and xlC on RS/6000 from IBM, Inc. ! 577: */ ! 578: #define TARGET_CPU_PPC 1 ! 579: #define TARGET_CPU_68K 0 ! 580: #define TARGET_CPU_X86 0 ! 581: #define TARGET_CPU_MIPS 0 ! 582: #define TARGET_CPU_SPARC 0 ! 583: #define TARGET_CPU_ALPHA 0 ! 584: #define TARGET_OS_MAC 1 ! 585: #define TARGET_OS_WIN32 0 ! 586: #define TARGET_OS_UNIX 0 ! 587: #define TARGET_RT_LITTLE_ENDIAN 0 ! 588: #define TARGET_RT_BIG_ENDIAN 1 ! 589: #define TARGET_RT_MAC_CFM 1 ! 590: #define TARGET_RT_MAC_68881 0 ! 591: #define PRAGMA_IMPORT 0 ! 592: #define PRAGMA_STRUCT_ALIGN 1 ! 593: #define PRAGMA_ONCE 0 ! 594: #define PRAGMA_STRUCT_PACK 0 ! 595: #define PRAGMA_STRUCT_PACKPUSH 0 ! 596: #define PRAGMA_ENUM_PACK 0 ! 597: #define PRAGMA_ENUM_ALWAYSINT 0 ! 598: #define PRAGMA_ENUM_OPTIONS 1 ! 599: #define FOUR_CHAR_CODE(x) (x) ! 600: ! 601: #define TYPE_EXTENDED 0 ! 602: #ifdef _LONG_LONG ! 603: #define TYPE_LONGLONG 1 ! 604: #else ! 605: #define TYPE_LONGLONG 0 ! 606: #endif ! 607: #define TYPE_BOOL 0 ! 608: ! 609: ! 610: #elif defined(_MSC_VER) && !defined(__MWERKS__) ! 611: /* ! 612: Visual C++ from Microsoft, Inc. ! 613: */ ! 614: #if defined(_M_M68K) /* Visual C++ with Macintosh 68K target */ ! 615: #define TARGET_CPU_PPC 0 ! 616: #define TARGET_CPU_68K 1 ! 617: #define TARGET_CPU_X86 0 ! 618: #define TARGET_CPU_MIPS 0 ! 619: #define TARGET_CPU_SPARC 0 ! 620: #define TARGET_CPU_ALPHA 0 ! 621: #define TARGET_OS_MAC 1 ! 622: #define TARGET_OS_WIN32 0 ! 623: #define TARGET_OS_UNIX 0 ! 624: #define TARGET_RT_LITTLE_ENDIAN 0 ! 625: #define TARGET_RT_BIG_ENDIAN 1 ! 626: #define TARGET_RT_MAC_CFM 0 ! 627: #define TARGET_RT_MAC_68881 0 ! 628: #define PRAGMA_IMPORT 0 ! 629: #define PRAGMA_STRUCT_ALIGN 1 ! 630: #define PRAGMA_ONCE 0 ! 631: #define PRAGMA_STRUCT_PACK 1 ! 632: #define PRAGMA_STRUCT_PACKPUSH 1 ! 633: #define PRAGMA_ENUM_PACK 0 ! 634: #define PRAGMA_ENUM_ALWAYSINT 0 ! 635: #define PRAGMA_ENUM_OPTIONS 0 ! 636: #define FOUR_CHAR_CODE(x) (x) ! 637: #define TYPE_EXTENDED 0 ! 638: #define TYPE_LONGLONG 0 ! 639: #define TYPE_BOOL 0 ! 640: #elif defined(_M_MPPC) /* Visual C++ with Macintosh PowerPC target */ ! 641: #define TARGET_CPU_PPC 1 ! 642: #define TARGET_CPU_68K 0 ! 643: #define TARGET_CPU_X86 0 ! 644: #define TARGET_CPU_MIPS 0 ! 645: #define TARGET_CPU_SPARC 0 ! 646: #define TARGET_CPU_ALPHA 0 ! 647: #define TARGET_OS_MAC 1 ! 648: #define TARGET_OS_WIN32 0 ! 649: #define TARGET_OS_UNIX 0 ! 650: #define TARGET_RT_LITTLE_ENDIAN 0 ! 651: #define TARGET_RT_BIG_ENDIAN 1 ! 652: #define TARGET_RT_MAC_CFM 1 ! 653: #define TARGET_RT_MAC_68881 0 ! 654: #define PRAGMA_IMPORT 0 ! 655: #define PRAGMA_STRUCT_ALIGN 1 ! 656: #define PRAGMA_ONCE 0 ! 657: #define PRAGMA_STRUCT_PACK 1 ! 658: #define PRAGMA_STRUCT_PACKPUSH 1 ! 659: #define PRAGMA_ENUM_PACK 0 ! 660: #define PRAGMA_ENUM_ALWAYSINT 0 ! 661: #define PRAGMA_ENUM_OPTIONS 0 ! 662: #define FOUR_CHAR_CODE(x) (x) ! 663: #define TYPE_EXTENDED 0 ! 664: #define TYPE_LONGLONG 0 ! 665: #define TYPE_BOOL 0 ! 666: ! 667: #elif defined(_M_IX86) /* Visual C++ with Intel x86 target */ ! 668: #define TARGET_CPU_PPC 0 ! 669: #define TARGET_CPU_68K 0 ! 670: #define TARGET_CPU_X86 1 ! 671: #define TARGET_CPU_MIPS 0 ! 672: #define TARGET_CPU_SPARC 0 ! 673: #define TARGET_CPU_ALPHA 0 ! 674: #define TARGET_OS_MAC 0 ! 675: #define TARGET_OS_WIN32 1 ! 676: #define TARGET_OS_UNIX 0 ! 677: #define TARGET_RT_LITTLE_ENDIAN 1 ! 678: #define TARGET_RT_BIG_ENDIAN 0 ! 679: #define TARGET_RT_MAC_CFM 0 ! 680: #define TARGET_RT_MAC_68881 0 ! 681: #define PRAGMA_IMPORT 0 ! 682: #define PRAGMA_STRUCT_ALIGN 0 ! 683: #define PRAGMA_ONCE 0 ! 684: #define PRAGMA_STRUCT_PACK 1 ! 685: #define PRAGMA_STRUCT_PACKPUSH 1 ! 686: #define PRAGMA_ENUM_PACK 0 ! 687: #define PRAGMA_ENUM_ALWAYSINT 0 ! 688: #define PRAGMA_ENUM_OPTIONS 0 ! 689: #define FOUR_CHAR_CODE(x) (((DWORD) ((x) & 0x000000FF)) << 24) \ ! 690: | (((DWORD) ((x) & 0x0000FF00)) << 8) \ ! 691: | (((DWORD) ((x) & 0x00FF0000)) >> 8) \ ! 692: | (((DWORD) ((x) & 0xFF000000)) >> 24) ! 693: #define TYPE_EXTENDED 0 ! 694: #define TYPE_LONGLONG 0 ! 695: #if defined(__cplusplus) && (_MSC_VER >= 1100) ! 696: #define TYPE_BOOL 1 ! 697: #else ! 698: #define TYPE_BOOL 0 ! 699: #endif ! 700: ! 701: #elif defined(_M_ALPHA) /* Visual C++ with Dec Alpha target */ ! 702: #define TARGET_CPU_PPC 0 ! 703: #define TARGET_CPU_68K 0 ! 704: #define TARGET_CPU_X86 0 ! 705: #define TARGET_CPU_MIPS 0 ! 706: #define TARGET_CPU_SPARC 0 ! 707: #define TARGET_CPU_ALPHA 1 ! 708: #define TARGET_OS_MAC 0 ! 709: #define TARGET_OS_WIN32 1 ! 710: #define TARGET_OS_UNIX 0 ! 711: #define TARGET_RT_LITTLE_ENDIAN 1 ! 712: #define TARGET_RT_BIG_ENDIAN 0 ! 713: #define TARGET_RT_MAC_CFM 0 ! 714: #define TARGET_RT_MAC_68881 0 ! 715: #define PRAGMA_IMPORT 0 ! 716: #define PRAGMA_STRUCT_ALIGN 0 ! 717: #define PRAGMA_ONCE 0 ! 718: #define PRAGMA_STRUCT_PACK 1 ! 719: #define PRAGMA_STRUCT_PACKPUSH 1 ! 720: #define PRAGMA_ENUM_PACK 0 ! 721: #define PRAGMA_ENUM_ALWAYSINT 0 ! 722: #define PRAGMA_ENUM_OPTIONS 0 ! 723: #define FOUR_CHAR_CODE(x) (((DWORD) ((x) & 0x000000FF)) << 24) \ ! 724: | (((DWORD) ((x) & 0x0000FF00)) << 8) \ ! 725: | (((DWORD) ((x) & 0x00FF0000)) >> 8) \ ! 726: | (((DWORD) ((x) & 0xFF000000)) >> 24) ! 727: #define TYPE_EXTENDED 0 ! 728: #define TYPE_LONGLONG 0 ! 729: #define TYPE_BOOL 0 ! 730: ! 731: #elif defined(_M_PPC) /* Visual C++ for Windows NT on PowerPC target */ ! 732: #define TARGET_CPU_PPC 1 ! 733: #define TARGET_CPU_68K 0 ! 734: #define TARGET_CPU_X86 0 ! 735: #define TARGET_CPU_MIPS 0 ! 736: #define TARGET_CPU_SPARC 0 ! 737: #define TARGET_CPU_ALPHA 0 ! 738: #define TARGET_OS_MAC 0 ! 739: #define TARGET_OS_WIN32 1 ! 740: #define TARGET_OS_UNIX 0 ! 741: #define TARGET_RT_LITTLE_ENDIAN 1 ! 742: #define TARGET_RT_BIG_ENDIAN 0 ! 743: #define TARGET_RT_MAC_CFM 0 ! 744: #define TARGET_RT_MAC_68881 0 ! 745: #define PRAGMA_IMPORT 0 ! 746: #define PRAGMA_STRUCT_ALIGN 0 ! 747: #define PRAGMA_ONCE 0 ! 748: #define PRAGMA_STRUCT_PACK 1 ! 749: #define PRAGMA_STRUCT_PACKPUSH 1 ! 750: #define PRAGMA_ENUM_PACK 0 ! 751: #define PRAGMA_ENUM_ALWAYSINT 0 ! 752: #define PRAGMA_ENUM_OPTIONS 0 ! 753: #define FOUR_CHAR_CODE(x) (((DWORD) ((x) & 0x000000FF)) << 24) \ ! 754: | (((DWORD) ((x) & 0x0000FF00)) << 8) \ ! 755: | (((DWORD) ((x) & 0x00FF0000)) >> 8) \ ! 756: | (((DWORD) ((x) & 0xFF000000)) >> 24) ! 757: #define TYPE_EXTENDED 0 ! 758: #define TYPE_LONGLONG 0 ! 759: #define TYPE_BOOL 0 ! 760: ! 761: #elif defined(_M_MRX000) /* Visual C++ for Windows NT on MIPS target */ ! 762: #define TARGET_CPU_PPC 0 ! 763: #define TARGET_CPU_68K 0 ! 764: #define TARGET_CPU_X86 0 ! 765: #define TARGET_CPU_MIPS 1 ! 766: #define TARGET_CPU_SPARC 0 ! 767: #define TARGET_CPU_ALPHA 0 ! 768: #define TARGET_OS_MAC 0 ! 769: #define TARGET_OS_WIN32 1 ! 770: #define TARGET_OS_UNIX 0 ! 771: #define TARGET_RT_LITTLE_ENDIAN 1 ! 772: #define TARGET_RT_BIG_ENDIAN 0 ! 773: #define TARGET_RT_MAC_CFM 0 ! 774: #define TARGET_RT_MAC_68881 0 ! 775: #define PRAGMA_IMPORT 0 ! 776: #define PRAGMA_STRUCT_ALIGN 0 ! 777: #define PRAGMA_ONCE 0 ! 778: #define PRAGMA_STRUCT_PACK 1 ! 779: #define PRAGMA_STRUCT_PACKPUSH 1 ! 780: #define PRAGMA_ENUM_PACK 0 ! 781: #define PRAGMA_ENUM_ALWAYSINT 0 ! 782: #define PRAGMA_ENUM_OPTIONS 0 ! 783: #define FOUR_CHAR_CODE(x) (((DWORD) ((x) & 0x000000FF)) << 24) \ ! 784: | (((DWORD) ((x) & 0x0000FF00)) << 8) \ ! 785: | (((DWORD) ((x) & 0x00FF0000)) >> 8) \ ! 786: | (((DWORD) ((x) & 0xFF000000)) >> 24) ! 787: #define TYPE_EXTENDED 0 ! 788: #define TYPE_LONGLONG 0 ! 789: #define TYPE_BOOL 0 ! 790: #endif ! 791: ! 792: ! 793: #elif defined(__MOTO__) ! 794: /* ! 795: mcc from Motorola, Inc. ?? ! 796: */ ! 797: ! 798: ! 799: ! 800: #elif defined(_MIPS_ISA) ! 801: /* ! 802: MIPSpro compiler from Silicon Graphics Inc. ! 803: */ ! 804: #define TARGET_CPU_PPC 0 ! 805: #define TARGET_CPU_68K 0 ! 806: #define TARGET_CPU_X86 0 ! 807: #define TARGET_CPU_MIPS 1 ! 808: #define TARGET_CPU_SPARC 0 ! 809: #define TARGET_CPU_ALPHA 0 ! 810: #define TARGET_OS_MAC 0 ! 811: #define TARGET_OS_WIN32 0 ! 812: #define TARGET_OS_UNIX 1 ! 813: #define TARGET_RT_LITTLE_ENDIAN 0 ! 814: #define TARGET_RT_BIG_ENDIAN 1 ! 815: #define TARGET_RT_MAC_CFM 0 ! 816: #define TARGET_RT_MAC_68881 0 ! 817: #define PRAGMA_IMPORT 0 ! 818: #define PRAGMA_STRUCT_ALIGN 0 ! 819: #define PRAGMA_ONCE 0 ! 820: #define PRAGMA_STRUCT_PACK 1 ! 821: #define PRAGMA_STRUCT_PACKPUSH 0 ! 822: #define PRAGMA_ENUM_PACK 0 ! 823: #define PRAGMA_ENUM_ALWAYSINT 0 ! 824: #define PRAGMA_ENUM_OPTIONS 0 ! 825: #define FOUR_CHAR_CODE(x) (x) ! 826: #define TYPE_EXTENDED 0 ! 827: #define TYPE_LONGLONG 0 ! 828: #define TYPE_BOOL 0 ! 829: ! 830: ! 831: #elif defined(__sparc) ! 832: /* ! 833: SPARCompiler compiler from Sun Microsystems Inc. ! 834: */ ! 835: #define TARGET_CPU_PPC 0 ! 836: #define TARGET_CPU_68K 0 ! 837: #define TARGET_CPU_X86 0 ! 838: #define TARGET_CPU_MIPS 0 ! 839: #define TARGET_CPU_SPARC 1 ! 840: #define TARGET_CPU_ALPHA 0 ! 841: #define TARGET_OS_MAC 0 ! 842: #define TARGET_OS_WIN32 0 ! 843: #define TARGET_OS_UNIX 1 ! 844: #define TARGET_RT_LITTLE_ENDIAN 0 ! 845: #define TARGET_RT_BIG_ENDIAN 1 ! 846: #define TARGET_RT_MAC_CFM 0 ! 847: #define TARGET_RT_MAC_68881 0 ! 848: #define PRAGMA_IMPORT 0 ! 849: #define PRAGMA_STRUCT_ALIGN 0 ! 850: #define PRAGMA_ONCE 0 ! 851: #define PRAGMA_STRUCT_PACK 1 ! 852: #define PRAGMA_STRUCT_PACKPUSH 0 ! 853: #define PRAGMA_ENUM_PACK 0 ! 854: #define PRAGMA_ENUM_ALWAYSINT 0 ! 855: #define PRAGMA_ENUM_OPTIONS 0 ! 856: #define FOUR_CHAR_CODE(x) (((unsigned long) ((x) & 0x000000FF)) << 24) \ ! 857: | (((unsigned long) ((x) & 0x0000FF00)) << 8) \ ! 858: | (((unsigned long) ((x) & 0x00FF0000)) >> 8) \ ! 859: | (((unsigned long) ((x) & 0xFF000000)) >> 24) ! 860: #define TYPE_EXTENDED 0 ! 861: #define TYPE_LONGLONG 0 ! 862: #define TYPE_BOOL 0 ! 863: ! 864: ! 865: #else ! 866: /* ! 867: Unknown compiler, perhaps set up from the command line (e.g. -d TARGET_CPU_MIPS , etc.) ! 868: */ ! 869: #if defined(TARGET_CPU_PPC) && TARGET_CPU_PPC ! 870: #define TARGET_CPU_68K 0 ! 871: #define TARGET_CPU_X86 0 ! 872: #define TARGET_CPU_MIPS 0 ! 873: #define TARGET_CPU_SPARC 0 ! 874: #define TARGET_CPU_ALPHA 0 ! 875: #elif defined(TARGET_CPU_68K) && TARGET_CPU_68K ! 876: #define TARGET_CPU_PPC 0 ! 877: #define TARGET_CPU_X86 0 ! 878: #define TARGET_CPU_MIPS 0 ! 879: #define TARGET_CPU_SPARC 0 ! 880: #define TARGET_CPU_ALPHA 0 ! 881: #elif defined(TARGET_CPU_X86) && TARGET_CPU_X86 ! 882: #define TARGET_CPU_PPC 0 ! 883: #define TARGET_CPU_68K 0 ! 884: #define TARGET_CPU_MIPS 0 ! 885: #define TARGET_CPU_SPARC 0 ! 886: #define TARGET_CPU_ALPHA 0 ! 887: #elif defined(TARGET_CPU_MIPS) && TARGET_CPU_MIPS ! 888: #define TARGET_CPU_PPC 0 ! 889: #define TARGET_CPU_68K 0 ! 890: #define TARGET_CPU_X86 0 ! 891: #define TARGET_CPU_SPARC 0 ! 892: #define TARGET_CPU_ALPHA 0 ! 893: #elif defined(TARGET_CPU_SPARC) && TARGET_CPU_SPARC ! 894: #define TARGET_CPU_PPC 0 ! 895: #define TARGET_CPU_68K 0 ! 896: #define TARGET_CPU_X86 0 ! 897: #define TARGET_CPU_MIPS 0 ! 898: #define TARGET_CPU_ALPHA 0 ! 899: #elif defined(TARGET_CPU_ALPHA) && TARGET_CPU_ALPHA ! 900: #define TARGET_CPU_PPC 0 ! 901: #define TARGET_CPU_68K 0 ! 902: #define TARGET_CPU_X86 0 ! 903: #define TARGET_CPU_MIPS 0 ! 904: #define TARGET_CPU_SPARC 0 ! 905: #else ! 906: #error ConditionalMacros.h: unknown compiler ! 907: #define TARGET_CPU_PPC 0 ! 908: #define TARGET_CPU_68K 0 ! 909: #define TARGET_CPU_X86 0 ! 910: #define TARGET_CPU_MIPS 0 ! 911: #define TARGET_CPU_SPARC 0 ! 912: #define TARGET_CPU_ALPHA 0 ! 913: #endif ! 914: ! 915: #if defined(TARGET_OS_RHAPSODY) && TARGET_OS_RHAPSODY ! 916: #define TARGET_OS_WIN32 0 ! 917: #define TARGET_OS_MAC 0 ! 918: #define TARGET_OS_UNIX 1 ! 919: #endif ! 920: ! 921: #if defined(TARGET_OS_MAC) && TARGET_OS_MAC ! 922: #define TARGET_OS_WIN32 0 ! 923: #define TARGET_OS_UNIX 0 ! 924: #elif defined(TARGET_OS_WIN32) && TARGET_OS_WIN32 ! 925: #define TARGET_OS_MAC 0 ! 926: #define TARGET_OS_UNIX 0 ! 927: #elif defined(TARGET_OS_UNIX) && TARGET_OS_UNIX ! 928: #define TARGET_OS_MAC 0 ! 929: #define TARGET_OS_WIN32 0 ! 930: #elif TARGET_CPU_PPC || TARGET_CPU_68K ! 931: #define TARGET_OS_MAC 1 ! 932: #define TARGET_OS_WIN32 0 ! 933: #define TARGET_OS_UNIX 0 ! 934: #else ! 935: #error ConditionalMacros.h: unknown target OS ! 936: #endif ! 937: ! 938: ! 939: #if !defined(TARGET_RT_BIG_ENDIAN) && !defined(TARGET_RT_LITTLE_ENDIAN) ! 940: #if TARGET_OS_MAC ! 941: #define TARGET_RT_LITTLE_ENDIAN 0 ! 942: #define TARGET_RT_BIG_ENDIAN 1 ! 943: #elif TARGET_OS_WIN32 ! 944: #define TARGET_RT_LITTLE_ENDIAN 1 ! 945: #define TARGET_RT_BIG_ENDIAN 0 ! 946: #endif ! 947: #endif ! 948: ! 949: #if defined(TARGET_RT_BIG_ENDIAN) && !defined(TARGET_RT_LITTLE_ENDIAN) ! 950: #define TARGET_RT_LITTLE_ENDIAN !TARGET_RT_BIG_ENDIAN ! 951: #elif !defined(TARGET_RT_BIG_ENDIAN) && defined(TARGET_RT_LITTLE_ENDIAN) ! 952: #define TARGET_RT_BIG_ENDIAN !TARGET_RT_LITTLE_ENDIAN ! 953: #endif ! 954: ! 955: #if !defined(TARGET_RT_BIG_ENDIAN) && !defined(TARGET_RT_LITTLE_ENDIAN) ! 956: #error unknown endianess of target processor ! 957: #endif ! 958: ! 959: #ifndef TARGET_RT_MAC_CFM ! 960: #define TARGET_RT_MAC_CFM TARGET_CPU_PPC ! 961: #endif ! 962: #ifndef TARGET_RT_MAC_68881 ! 963: #define TARGET_RT_MAC_68881 0 ! 964: #endif ! 965: ! 966: ! 967: #ifndef PRAGMA_IMPORT ! 968: #define PRAGMA_IMPORT 0 ! 969: #endif ! 970: #ifndef PRAGMA_STRUCT_ALIGN ! 971: #define PRAGMA_STRUCT_ALIGN 0 ! 972: #endif ! 973: #ifndef PRAGMA_ONCE ! 974: #define PRAGMA_ONCE 0 ! 975: #endif ! 976: #ifndef PRAGMA_STRUCT_PACK ! 977: #define PRAGMA_STRUCT_PACK 0 ! 978: #endif ! 979: #ifndef PRAGMA_STRUCT_PACKPUSH ! 980: #define PRAGMA_STRUCT_PACKPUSH 0 ! 981: #endif ! 982: #ifndef PRAGMA_ENUM_PACK ! 983: #define PRAGMA_ENUM_PACK 0 ! 984: #endif ! 985: #ifndef PRAGMA_ENUM_ALWAYSINT ! 986: #define PRAGMA_ENUM_ALWAYSINT 0 ! 987: #endif ! 988: #ifndef PRAGMA_ENUM_OPTIONS ! 989: #define PRAGMA_ENUM_OPTIONS 0 ! 990: #endif ! 991: #ifndef FOUR_CHAR_CODE ! 992: #define FOUR_CHAR_CODE(x) (x) ! 993: #endif ! 994: ! 995: #ifndef TYPE_EXTENDED ! 996: #define TYPE_EXTENDED 0 ! 997: #endif ! 998: #ifndef TYPE_LONGLONG ! 999: #define TYPE_LONGLONG 0 ! 1000: #endif ! 1001: #ifndef TYPE_BOOL ! 1002: #define TYPE_BOOL 0 ! 1003: #endif ! 1004: #endif ! 1005: ! 1006: ! 1007: ! 1008: ! 1009: /**************************************************************************************************** ! 1010: ! 1011: EXTERN_API� ! 1012: These conditionals are used to specify the calling convention of a function. ! 1013: Mac classic 68K and Win32 each have two possible calling conventions: ! 1014: ! 1015: EXTERN_API - Classic 68K pascal, Win32 __cdecl ! 1016: EXTERN_API_C - Classic 68K C, Win32 __cdecl ! 1017: EXTERN_API_STDCALL - Classic 68K pascal, Win32 __stdcall ! 1018: EXTERN_API_C_STDCALL - Classic 68K C, Win32 __stdcall ! 1019: ! 1020: ! 1021: CALLBACK_API� ! 1022: These conditionals are used to specify the calling convention of a function pointer. ! 1023: Mac classic 68K and Win32 each have two possible calling conventions: ! 1024: ! 1025: CALLBACK_API - Classic 68K pascal, Win32 __stdcall ! 1026: CALLBACK_API_C - Classic 68K C, Win32 __stdcall ! 1027: CALLBACK_API_STDCALL - Classic 68K pascal, Win32 __cdecl ! 1028: CALLBACK_API_C_STDCALL - Classic 68K C, Win32 __cdecl ! 1029: ! 1030: ****************************************************************************************************/ ! 1031: #if TARGET_OS_MAC ! 1032: /* ! 1033: Mac OS ! 1034: */ ! 1035: #define EXTERN_API(_type) extern pascal _type /* Note: all Mac OS compilers must be able to handle the pascal keyword */ ! 1036: #define EXTERN_API_C(_type) extern _type ! 1037: #define EXTERN_API_STDCALL(_type) extern pascal _type ! 1038: #define EXTERN_API_C_STDCALL(_type) extern _type ! 1039: #define CALLBACK_API(_type, _name) pascal _type (*_name) ! 1040: #define CALLBACK_API_C(_type, _name) _type (*_name) ! 1041: #define CALLBACK_API_STDCALL(_type, _name) pascal _type (*_name) ! 1042: #define CALLBACK_API_C_STDCALL(_type, _name) _type (*_name) ! 1043: #elif TARGET_OS_WIN32 ! 1044: /* ! 1045: Win32 ! 1046: */ ! 1047: #define EXTERN_API(_type) __declspec(dllimport) _type __cdecl ! 1048: #define EXTERN_API_C(_type) __declspec(dllimport) _type __cdecl ! 1049: #define EXTERN_API_STDCALL(_type) __declspec(dllimport) _type __stdcall ! 1050: #define EXTERN_API_C_STDCALL(_type) __declspec(dllimport) _type __stdcall ! 1051: #define CALLBACK_API(_type, _name) _type (* __cdecl _name) ! 1052: #define CALLBACK_API_C(_type, _name) _type (* __cdecl _name) ! 1053: #define CALLBACK_API_STDCALL(_type, _name) _type (* __stdcall _name) ! 1054: #define CALLBACK_API_C_STDCALL(_type, _name) _type (* __stdcall _name) ! 1055: #else ! 1056: /* ! 1057: Unix or anything else ! 1058: */ ! 1059: #define EXTERN_API(_type) extern _type ! 1060: #define EXTERN_API_C(_type) extern _type ! 1061: #define EXTERN_API_STDCALL(_type) extern _type ! 1062: #define EXTERN_API_C_STDCALL(_type) extern _type ! 1063: #define CALLBACK_API(_type, _name) _type (*_name) ! 1064: #define CALLBACK_API_C(_type, _name) _type (*_name) ! 1065: #define CALLBACK_API_STDCALL(_type, _name) _type (*_name) ! 1066: #define CALLBACK_API_C_STDCALL(_type, _name) _type (*_name) ! 1067: #endif ! 1068: ! 1069: ! 1070: /* Backwards compatibility for clients expecting Universal Interfacew 3.0d7 (Interfacer 2.d014) style */ ! 1071: #define EXTERN_API_1 EXTERN_API_STDCALL ! 1072: #define EXTERN_API_2 EXTERN_API_C_STDCALL ! 1073: #define EXTERN_API_3 EXTERN_API ! 1074: #define EXTERN_API_4 EXTERN_API_C ! 1075: #define CALLBACK_API_1 CALLBACK_API_STDCALL ! 1076: #define CALLBACK_API_2 CALLBACK_API_C_STDCALL ! 1077: #define CALLBACK_API_3 CALLBACK_API ! 1078: #define CALLBACK_API_4 CALLBACK_API_C ! 1079: ! 1080: /* Remove pascal support from Rhapsody */ ! 1081: #ifdef TARGET_OS_RHAPSODY ! 1082: #define pascal ! 1083: #endif ! 1084: ! 1085: /**************************************************************************************************** ! 1086: Backward compatibility for clients expecting 2.x version on ConditionalMacros.h ! 1087: ! 1088: GENERATINGPOWERPC - Compiler is generating PowerPC instructions ! 1089: GENERATING68K - Compiler is generating 68k family instructions ! 1090: GENERATING68881 - Compiler is generating mc68881 floating point instructions ! 1091: GENERATINGCFM - Code being generated assumes CFM calling conventions ! 1092: CFMSYSTEMCALLS - No A-traps. Systems calls are made using CFM and UPP's ! 1093: PRAGMA_ALIGN_SUPPORTED - Compiler supports: #pragma options align=mac68k/power/reset ! 1094: PRAGMA_IMPORT_SUPPORTED - Compiler supports: #pragma import on/off/reset ! 1095: ! 1096: ****************************************************************************************************/ ! 1097: #define GENERATINGPOWERPC TARGET_CPU_PPC ! 1098: #define GENERATING68K TARGET_CPU_68K ! 1099: #define GENERATING68881 TARGET_RT_MAC_68881 ! 1100: #define GENERATINGCFM TARGET_RT_MAC_CFM ! 1101: #define CFMSYSTEMCALLS TARGET_RT_MAC_CFM ! 1102: /* ! 1103: The SuperMario build sets PRAGMA_ALIGN_SUPPORTED in some cases to work around old MPW C compiler ! 1104: using NameRegistry. Once SM switches to Interfacer 2.0d14 the #ifndef will no longer be needed. ! 1105: */ ! 1106: #ifndef PRAGMA_ALIGN_SUPPORTED ! 1107: #define PRAGMA_ALIGN_SUPPORTED PRAGMA_STRUCT_ALIGN ! 1108: #endif ! 1109: #define PRAGMA_IMPORT_SUPPORTED PRAGMA_IMPORT ! 1110: /* ! 1111: NOTE: The FOR_� conditionals were developed to produce integerated ! 1112: interface files for System 7 and Copland. Now that Copland ! 1113: is canceled, all FOR_ conditionals have been removed from ! 1114: the interface files. But, just in case you someone got an ! 1115: interface file that uses them, the following sets the FOR_� ! 1116: conditionals to a consistent, usable state. ! 1117: */ ! 1118: #define FOR_OPAQUE_SYSTEM_DATA_STRUCTURES 0 ! 1119: #ifndef FOR_PTR_BASED_AE ! 1120: #define FOR_PTR_BASED_AE 0 ! 1121: #endif /* ! defined(FOR_PTR_BASED_AE) */ ! 1122: ! 1123: #define FOR_SYSTEM7_ONLY 1 ! 1124: #define FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED 1 ! 1125: #define FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE 1 ! 1126: #define FOR_SYSTEM7_AND_SYSTEM8_PREEMPTIVE 1 ! 1127: #define FOR_SYSTEM8_COOPERATIVE 0 ! 1128: #define FOR_SYSTEM8_PREEMPTIVE 0 ! 1129: ! 1130: ! 1131: ! 1132: /**************************************************************************************************** ! 1133: ! 1134: OLDROUTINENAMES - "Old" names for Macintosh system calls are allowed in source code. ! 1135: (e.g. DisposPtr instead of DisposePtr). The names of system routine ! 1136: are now more sensitive to change because CFM binds by name. In the ! 1137: past, system routine names were compiled out to just an A-Trap. ! 1138: Macros have been added that each map an old name to its new name. ! 1139: This allows old routine names to be used in existing source files, ! 1140: but the macros only work if OLDROUTINENAMES is true. This support ! 1141: will be removed in the near future. Thus, all source code should ! 1142: be changed to use the new names! You can set OLDROUTINENAMES to false ! 1143: to see if your code has any old names left in it. ! 1144: ! 1145: OLDROUTINELOCATIONS - "Old" location of Macintosh system calls are used. For example, c2pstr ! 1146: has been moved from Strings to TextUtils. It is conditionalized in ! 1147: Strings with OLDROUTINELOCATIONS and in TextUtils with !OLDROUTINELOCATIONS. ! 1148: This allows developers to upgrade to newer interface files without ! 1149: having to change the includes in their source code. But, it allows ! 1150: the slow migration of system calls to more understandable file locations. ! 1151: OLDROUTINELOCATIONS currently defaults to true, but eventually will ! 1152: default to false. ! 1153: ! 1154: ****************************************************************************************************/ ! 1155: #ifndef OLDROUTINENAMES ! 1156: #define OLDROUTINENAMES 0 ! 1157: #endif /* ! defined(OLDROUTINENAMES) */ ! 1158: ! 1159: #ifndef OLDROUTINELOCATIONS ! 1160: #define OLDROUTINELOCATIONS 0 ! 1161: #endif /* ! defined(OLDROUTINELOCATIONS) */ ! 1162: ! 1163: ! 1164: ! 1165: /**************************************************************************************************** ! 1166: C specific conditionals ! 1167: ! 1168: CGLUESUPPORTED - Interface library will support "C glue" functions (function names ! 1169: are: all lowercase, use C strings instead of pascal strings, use ! 1170: Point* instead of Point). ! 1171: ! 1172: ****************************************************************************************************/ ! 1173: #ifndef CGLUESUPPORTED ! 1174: #ifdef THINK_C ! 1175: #define CGLUESUPPORTED 0 ! 1176: #else ! 1177: #define CGLUESUPPORTED 1 ! 1178: #endif /* defined(THINK_C) */ ! 1179: ! 1180: #endif /* ! defined(CGLUESUPPORTED) */ ! 1181: ! 1182: ! 1183: ! 1184: /**************************************************************************************************** ! 1185: The following macros isolate the use of 68K inlines in function prototypes. ! 1186: On the Mac OS under the Classic 68K runtime, function prototypes were followed ! 1187: by a list of 68K opcodes which the compiler inserted in the generated code instead ! 1188: of a JSR. Under Classic 68K on the Mac OS, this macro will put the opcodes ! 1189: in the right syntax. For all other OS's and runtimes the macro suppress the opcodes. ! 1190: Example: ! 1191: ! 1192: EXTERN_P void DrawPicture(PicHandle myPicture, const Rect *dstRect) ! 1193: ONEWORDINLINE(0xA8F6); ! 1194: ! 1195: ****************************************************************************************************/ ! 1196: ! 1197: #if TARGET_OS_MAC && !TARGET_RT_MAC_CFM ! 1198: #define ONEWORDINLINE(w1) = w1 ! 1199: #define TWOWORDINLINE(w1,w2) = {w1,w2} ! 1200: #define THREEWORDINLINE(w1,w2,w3) = {w1,w2,w3} ! 1201: #define FOURWORDINLINE(w1,w2,w3,w4) = {w1,w2,w3,w4} ! 1202: #define FIVEWORDINLINE(w1,w2,w3,w4,w5) = {w1,w2,w3,w4,w5} ! 1203: #define SIXWORDINLINE(w1,w2,w3,w4,w5,w6) = {w1,w2,w3,w4,w5,w6} ! 1204: #define SEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7) = {w1,w2,w3,w4,w5,w6,w7} ! 1205: #define EIGHTWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8) = {w1,w2,w3,w4,w5,w6,w7,w8} ! 1206: #define NINEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9) = {w1,w2,w3,w4,w5,w6,w7,w8,w9} ! 1207: #define TENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10) = {w1,w2,w3,w4,w5,w6,w7,w8,w9,w10} ! 1208: #define ELEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11) = {w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11} ! 1209: #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} ! 1210: #else ! 1211: #define ONEWORDINLINE(w1) ! 1212: #define TWOWORDINLINE(w1,w2) ! 1213: #define THREEWORDINLINE(w1,w2,w3) ! 1214: #define FOURWORDINLINE(w1,w2,w3,w4) ! 1215: #define FIVEWORDINLINE(w1,w2,w3,w4,w5) ! 1216: #define SIXWORDINLINE(w1,w2,w3,w4,w5,w6) ! 1217: #define SEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7) ! 1218: #define EIGHTWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8) ! 1219: #define NINEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9) ! 1220: #define TENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10) ! 1221: #define ELEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11) ! 1222: #define TWELVEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12) ! 1223: #endif ! 1224: ! 1225: ! 1226: ! 1227: ! 1228: ! 1229: #endif /* __CONDITIONALMACROS__ */ ! 1230:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.