Annotation of XNU/bsd/hfs/hfscommon/headers/system/ConditionalMacros.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.