mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-22 22:27:05 +00:00
1867 lines
71 KiB
C
1867 lines
71 KiB
C
/*
|
||
File: ConditionalMacros.h
|
||
|
||
Contains: Set up for compiler independent conditionals
|
||
|
||
Version: QuickTime 7.3
|
||
|
||
Copyright: (c) 2007 (c) 1993-2001 by Apple Computer, Inc., all rights reserved
|
||
|
||
Bugs?: For bug reports, consult the following page on
|
||
the World Wide Web:
|
||
|
||
http://developer.apple.com/bugreporter/
|
||
|
||
*/
|
||
#ifndef __CONDITIONALMACROS__
|
||
#define __CONDITIONALMACROS__
|
||
|
||
/****************************************************************************************************
|
||
UNIVERSAL_INTERFACES_VERSION
|
||
|
||
0x0400 --> version 4.0 (Mac OS X only)
|
||
0x0335 --> version 3.4
|
||
0x0331 --> version 3.3.1
|
||
0x0330 --> version 3.3
|
||
0x0320 --> version 3.2
|
||
0x0310 --> version 3.1
|
||
0x0301 --> version 3.0.1
|
||
0x0300 --> version 3.0
|
||
0x0210 --> version 2.1
|
||
This conditional did not exist prior to version 2.1
|
||
****************************************************************************************************/
|
||
#define UNIVERSAL_INTERFACES_VERSION 0x0340
|
||
#define UNIVERSAL_INTERFACES_SEED_VERSION 22
|
||
|
||
|
||
/****************************************************************************************************
|
||
|
||
TARGET_CPU_*
|
||
These conditionals specify which microprocessor instruction set is being
|
||
generated. At most one of these is true, the rest are false.
|
||
|
||
TARGET_CPU_PPC - Compiler is generating PowerPC instructions
|
||
TARGET_CPU_68K - Compiler is generating 680x0 instructions
|
||
TARGET_CPU_X86 - Compiler is generating x86 instructions
|
||
TARGET_CPU_MIPS - Compiler is generating MIPS instructions
|
||
TARGET_CPU_SPARC - Compiler is generating Sparc instructions
|
||
TARGET_CPU_ALPHA - Compiler is generating Dec Alpha instructions
|
||
|
||
|
||
TARGET_OS_*
|
||
These conditionals specify in which Operating System the generated code will
|
||
run. At most one of the these is true, the rest are false.
|
||
|
||
TARGET_OS_MAC - Generate code will run under Mac OS
|
||
TARGET_OS_WIN32 - Generate code will run under 32-bit Windows
|
||
TARGET_OS_UNIX - Generate code will run under some unix
|
||
|
||
|
||
TARGET_RT_*
|
||
These conditionals specify in which runtime the generated code will
|
||
run. This is needed when the OS and CPU support more than one runtime
|
||
(e.g. MacOS on 68K supports CFM68K and Classic 68k).
|
||
|
||
TARGET_RT_LITTLE_ENDIAN - Generated code uses little endian format for integers
|
||
TARGET_RT_BIG_ENDIAN - Generated code uses big endian format for integers
|
||
TARGET_RT_MAC_CFM - TARGET_OS_MAC is true and CFM68K or PowerPC CFM (TVectors) are used
|
||
TARGET_RT_MAC_MACHO - TARGET_OS_MAC is true and Mach-O style runtime
|
||
TARGET_RT_MAC_68881 - TARGET_OS_MAC is true and 68881 floating point instructions used
|
||
|
||
|
||
TARGET__API_*_*
|
||
These conditionals are used to differentiate between sets of API's on the same
|
||
processor under the same OS. The first section after _API_ is the OS. The
|
||
second section is the API set. Unlike TARGET_OS_ and TARGET_CPU_, these
|
||
conditionals are not mutally exclusive. This file will attempt to auto-configure
|
||
all TARGET_API_*_* values, but will often need a TARGET_API_*_* value predefined
|
||
in order to disambiguate.
|
||
|
||
TARGET_API_MAC_OS8 - Code is being compiled to run on System 7 through Mac OS 8.x
|
||
TARGET_API_MAC_CARBON - Code is being compiled to run on Mac OS 8 and Mac OS X via CarbonLib
|
||
TARGET_API_MAC_OSX - Code is being compiled to run on Mac OS X
|
||
|
||
|
||
PRAGMA_*
|
||
These conditionals specify whether the compiler supports particular #pragma's
|
||
|
||
PRAGMA_IMPORT - Compiler supports: #pragma import on/off/reset
|
||
PRAGMA_ONCE - Compiler supports: #pragma once
|
||
PRAGMA_STRUCT_ALIGN - Compiler supports: #pragma options align=mac68k/power/reset
|
||
PRAGMA_STRUCT_PACK - Compiler supports: #pragma pack(n)
|
||
PRAGMA_STRUCT_PACKPUSH - Compiler supports: #pragma pack(push, n)/pack(pop)
|
||
PRAGMA_ENUM_PACK - Compiler supports: #pragma options(!pack_enums)
|
||
PRAGMA_ENUM_ALWAYSINT - Compiler supports: #pragma enumsalwaysint on/off/reset
|
||
PRAGMA_ENUM_OPTIONS - Compiler supports: #pragma options enum=int/small/reset
|
||
|
||
|
||
FOUR_CHAR_CODE
|
||
This conditional does the proper byte swapping to assue that a four character code (e.g. 'TEXT')
|
||
is compiled down to the correct value on all compilers.
|
||
|
||
FOUR_CHAR_CODE('abcd') - Convert a four-char-code to the correct 32-bit value
|
||
|
||
|
||
TYPE_*
|
||
These conditionals specify whether the compiler supports particular types.
|
||
|
||
TYPE_LONGLONG - Compiler supports "long long" 64-bit integers
|
||
TYPE_BOOL - Compiler supports "bool"
|
||
TYPE_EXTENDED - Compiler supports "extended" 80/96 bit floating point
|
||
TYPE_LONGDOUBLE_IS_DOUBLE - Compiler implements "long double" same as "double"
|
||
|
||
|
||
FUNCTION_*
|
||
These conditionals specify whether the compiler supports particular language extensions
|
||
to function prototypes and definitions.
|
||
|
||
FUNCTION_PASCAL - Compiler supports "pascal void Foo()"
|
||
FUNCTION_DECLSPEC - Compiler supports "__declspec(xxx) void Foo()"
|
||
FUNCTION_WIN32CC - Compiler supports "void __cdecl Foo()" and "void __stdcall Foo()"
|
||
|
||
****************************************************************************************************/
|
||
|
||
#if defined(__MRC__)
|
||
/*
|
||
MrC[pp] compiler from Apple Computer, Inc.
|
||
*/
|
||
#define TARGET_CPU_PPC 1
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_OS_MAC 1
|
||
#define TARGET_OS_WIN32 0
|
||
#define TARGET_OS_UNIX 0
|
||
#define TARGET_RT_LITTLE_ENDIAN 0
|
||
#define TARGET_RT_BIG_ENDIAN 1
|
||
#define TARGET_RT_MAC_CFM 1
|
||
#define TARGET_RT_MAC_MACHO 0
|
||
#define TARGET_RT_MAC_68881 0
|
||
#if (__MRC__ > 0x0200) && (__MRC__ < 0x0700)
|
||
#define PRAGMA_IMPORT 1
|
||
#else
|
||
#define PRAGMA_IMPORT 0
|
||
#endif
|
||
#define PRAGMA_STRUCT_ALIGN 1
|
||
#define PRAGMA_ONCE 1
|
||
#define PRAGMA_STRUCT_PACK 0
|
||
#define PRAGMA_STRUCT_PACKPUSH 0
|
||
#define PRAGMA_ENUM_PACK 1
|
||
#define PRAGMA_ENUM_ALWAYSINT 0
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#define FOUR_CHAR_CODE(x) (x)
|
||
|
||
#if (__MRC__ > 0x0300) && (__MRC__ < 0x0700)
|
||
#if __option(longlong)
|
||
|
||
|
||
#define TYPE_LONGLONG 1
|
||
|
||
|
||
#else
|
||
#define TYPE_LONGLONG 0
|
||
#endif
|
||
#if __option(bool)
|
||
#define TYPE_BOOL 1
|
||
#else
|
||
#define TYPE_BOOL 0
|
||
#endif
|
||
#define SLASH_INCLUDES_UNSUPPORTED !__option(unix_includes)
|
||
#else
|
||
#define TYPE_LONGLONG 0
|
||
#define TYPE_BOOL 0
|
||
#define SLASH_INCLUDES_UNSUPPORTED 1
|
||
#endif
|
||
#define TYPE_EXTENDED 0
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 0
|
||
|
||
#define FUNCTION_PASCAL 1
|
||
#define FUNCTION_DECLSPEC 0
|
||
#define FUNCTION_WIN32CC 0
|
||
|
||
|
||
|
||
#elif defined(__SC__) && (defined(MPW_CPLUS) || defined(MPW_C))
|
||
/*
|
||
SC[pp] compiler from Apple Computer, Inc.
|
||
*/
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 1
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_OS_MAC 1
|
||
#define TARGET_OS_WIN32 0
|
||
#define TARGET_OS_UNIX 0
|
||
#define TARGET_RT_LITTLE_ENDIAN 0
|
||
#define TARGET_RT_BIG_ENDIAN 1
|
||
#if defined(__CFM68K__)
|
||
#define TARGET_RT_MAC_CFM 1
|
||
#else
|
||
#define TARGET_RT_MAC_CFM 0
|
||
#endif
|
||
#define TARGET_RT_MAC_MACHO 0
|
||
#if defined(mc68881)
|
||
#define TARGET_RT_MAC_68881 1
|
||
#else
|
||
#define TARGET_RT_MAC_68881 0
|
||
#endif
|
||
#if TARGET_RT_MAC_CFM
|
||
#define PRAGMA_IMPORT 1
|
||
#if (__SC__ <= 0x0810)
|
||
/* old versions of SC don't support <20>#pragma import reset<65> */
|
||
#define PRAGMA_IMPORT_OFF 1
|
||
#endif
|
||
#else
|
||
#define PRAGMA_IMPORT 0
|
||
#endif
|
||
#if (__SC__ >= 0x0801)
|
||
#define PRAGMA_STRUCT_ALIGN 1
|
||
#else
|
||
#define PRAGMA_STRUCT_ALIGN 0
|
||
#endif
|
||
#define PRAGMA_ONCE 0
|
||
#define PRAGMA_STRUCT_PACK 0
|
||
#define PRAGMA_STRUCT_PACKPUSH 0
|
||
#define PRAGMA_ENUM_PACK 1
|
||
#define PRAGMA_ENUM_ALWAYSINT 0
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#define FOUR_CHAR_CODE(x) (x)
|
||
|
||
#define TYPE_LONGLONG 0
|
||
#define TYPE_EXTENDED 1
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 0
|
||
#if (__SC__ > 0x0810)
|
||
#if __option(bool)
|
||
#define TYPE_BOOL 1
|
||
#else
|
||
#define TYPE_BOOL 0
|
||
#endif
|
||
#else
|
||
#define TYPE_BOOL 0
|
||
#endif
|
||
#if TARGET_RT_MAC_CFM
|
||
#define FUNCTION_PASCAL 0
|
||
#else
|
||
#define FUNCTION_PASCAL 1
|
||
#endif
|
||
#define FUNCTION_DECLSPEC 0
|
||
#define FUNCTION_WIN32CC 0
|
||
#define SLASH_INCLUDES_UNSUPPORTED !__option(unix_includes)
|
||
|
||
|
||
#elif defined(__MWERKS__)
|
||
/*
|
||
CodeWarrior compiler from Metrowerks, Inc.
|
||
*/
|
||
#if (__MWERKS__ < 0x0900) || macintosh
|
||
#define TARGET_OS_MAC 1
|
||
#define TARGET_OS_WIN32 0
|
||
#define TARGET_OS_UNIX 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_RT_LITTLE_ENDIAN 0
|
||
#define TARGET_RT_BIG_ENDIAN 1
|
||
#if powerc
|
||
#define TARGET_CPU_PPC 1
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_RT_MAC_CFM 1
|
||
#define TARGET_RT_MAC_MACHO 0
|
||
#define TARGET_RT_MAC_68881 0
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 1
|
||
#else
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 1
|
||
#if defined(__CFM68K__)
|
||
#define TARGET_RT_MAC_CFM 1
|
||
#else
|
||
#define TARGET_RT_MAC_CFM 0
|
||
#endif
|
||
#define TARGET_RT_MAC_MACHO 0
|
||
#if __MC68881__
|
||
#define TARGET_RT_MAC_68881 1
|
||
#else
|
||
#define TARGET_RT_MAC_68881 0
|
||
#endif
|
||
#if __option(IEEEdoubles)
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 0
|
||
#else
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 1
|
||
#endif
|
||
#endif
|
||
#define PRAGMA_ONCE 1
|
||
#if (__MWERKS__ >= 0x0700)
|
||
#define PRAGMA_IMPORT TARGET_RT_MAC_CFM
|
||
#else
|
||
#define PRAGMA_IMPORT 0
|
||
#endif
|
||
#define PRAGMA_STRUCT_ALIGN 1
|
||
#define PRAGMA_STRUCT_PACK 0
|
||
#define PRAGMA_STRUCT_PACKPUSH 0
|
||
#define PRAGMA_ENUM_PACK 0
|
||
#define PRAGMA_ENUM_ALWAYSINT 1
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#if __option(enumsalwaysint) && __option(ANSI_strict)
|
||
#define FOUR_CHAR_CODE(x) ((long)(x)) /* otherwise compiler will complain about values with high bit set */
|
||
#else
|
||
#define FOUR_CHAR_CODE(x) (x)
|
||
#endif
|
||
#if TARGET_CPU_68K && !TARGET_RT_MAC_CFM
|
||
#define FUNCTION_PASCAL 1
|
||
#else
|
||
#define FUNCTION_PASCAL 1
|
||
#endif
|
||
#if (__MWERKS__ >= 0x2000)
|
||
#define FUNCTION_DECLSPEC 1
|
||
#else
|
||
#define FUNCTION_DECLSPEC 0
|
||
#endif
|
||
#define FUNCTION_WIN32CC 0
|
||
|
||
|
||
#elif (__MWERKS__ >= 0x0900) && __INTEL__
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 1
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_OS_MAC 0
|
||
#define TARGET_OS_WIN32 1
|
||
#define TARGET_OS_UNIX 0
|
||
#define TARGET_RT_LITTLE_ENDIAN 1
|
||
#define TARGET_RT_BIG_ENDIAN 0
|
||
#define __COREAUDIO_USE_FLAT_INCLUDES__ 1
|
||
#define PRAGMA_ONCE 1
|
||
#define PRAGMA_IMPORT 0
|
||
#define PRAGMA_STRUCT_ALIGN 0
|
||
#define PRAGMA_STRUCT_PACK 1
|
||
#define PRAGMA_STRUCT_PACKPUSH 1
|
||
#define PRAGMA_ENUM_PACK 0
|
||
#define PRAGMA_ENUM_ALWAYSINT 1
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#define FOUR_CHAR_CODE(x) (x)
|
||
#define FUNCTION_PASCAL 0
|
||
#ifndef FUNCTION_DECLSPEC /* allow use of __declspec(dllimport) to be enabled */
|
||
#define FUNCTION_DECLSPEC 0 /* QuickTime for Windows cannot use dllimport */
|
||
#endif
|
||
#ifndef FUNCTION_WIN32CC /* allow calling convention to be overriddden */
|
||
#define FUNCTION_WIN32CC 1
|
||
#endif
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 1
|
||
|
||
|
||
#elif (__MWERKS__ >= 0x1900) && __MIPS__
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 1
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_OS_MAC 0
|
||
#define TARGET_OS_WIN32 0
|
||
#define TARGET_OS_UNIX 1
|
||
#if __option(little_endian)
|
||
#define TARGET_RT_LITTLE_ENDIAN 1
|
||
#define TARGET_RT_BIG_ENDIAN 0
|
||
#else
|
||
#define TARGET_RT_LITTLE_ENDIAN 0
|
||
#define TARGET_RT_BIG_ENDIAN 1
|
||
#endif
|
||
#define PRAGMA_ONCE 1
|
||
#define PRAGMA_IMPORT 0
|
||
#define PRAGMA_STRUCT_ALIGN 0
|
||
#define PRAGMA_STRUCT_PACK 1
|
||
#define PRAGMA_STRUCT_PACKPUSH 0
|
||
#define PRAGMA_ENUM_PACK 0
|
||
#define PRAGMA_ENUM_ALWAYSINT 1
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#define FOUR_CHAR_CODE(x) (x)
|
||
#define FUNCTION_PASCAL 0
|
||
#define FUNCTION_DECLSPEC 0
|
||
#define FUNCTION_WIN32CC 0
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 1
|
||
|
||
|
||
#elif (__MWERKS__ >= 0x2110) && __MACH__
|
||
#define TARGET_CPU_PPC 1
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_OS_MAC 1
|
||
#define TARGET_OS_WIN32 0
|
||
#define TARGET_OS_UNIX 0
|
||
#if __option(little_endian)
|
||
#define TARGET_RT_LITTLE_ENDIAN 1
|
||
#define TARGET_RT_BIG_ENDIAN 0
|
||
#else
|
||
#define TARGET_RT_LITTLE_ENDIAN 0
|
||
#define TARGET_RT_BIG_ENDIAN 1
|
||
#endif
|
||
#define TARGET_RT_MAC_CFM 0
|
||
#define TARGET_RT_MAC_MACHO 1
|
||
#define TARGET_RT_MAC_68881 0
|
||
#define PRAGMA_ONCE 1
|
||
#define PRAGMA_IMPORT 0
|
||
#define PRAGMA_STRUCT_ALIGN 1
|
||
#define PRAGMA_STRUCT_PACK 1
|
||
#define PRAGMA_STRUCT_PACKPUSH 0
|
||
#define PRAGMA_ENUM_PACK 0
|
||
#define PRAGMA_ENUM_ALWAYSINT 1
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#define FOUR_CHAR_CODE(x) (x)
|
||
#define FUNCTION_PASCAL 1
|
||
#define FUNCTION_DECLSPEC 1
|
||
#define FUNCTION_WIN32CC 0
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 1
|
||
#else
|
||
#error unknown Metrowerks compiler
|
||
#endif
|
||
|
||
|
||
#if (__MWERKS__ >= 0x1100)
|
||
#if __option(longlong)
|
||
#define TYPE_LONGLONG 1
|
||
#else
|
||
#define TYPE_LONGLONG 0
|
||
#endif
|
||
#else
|
||
#define TYPE_LONGLONG 0
|
||
#endif
|
||
#if (__MWERKS__ >= 0x1000)
|
||
#if __option(bool)
|
||
#define TYPE_BOOL 1
|
||
#else
|
||
#define TYPE_BOOL 0
|
||
#endif
|
||
#else
|
||
#define TYPE_BOOL 0
|
||
#endif
|
||
#define TYPE_EXTENDED 0
|
||
#define SLASH_INCLUDES_UNSUPPORTED 1
|
||
|
||
|
||
#elif defined(SYMANTEC_CPLUS) || defined(SYMANTEC_C)
|
||
/*
|
||
C and C++ compiler from Symantec, Inc.
|
||
*/
|
||
#define TARGET_OS_MAC 1
|
||
#define TARGET_OS_WIN32 0
|
||
#define TARGET_OS_UNIX 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_RT_LITTLE_ENDIAN 0
|
||
#define TARGET_RT_BIG_ENDIAN 1
|
||
#if powerc
|
||
#define TARGET_CPU_PPC 1
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_RT_MAC_CFM 1
|
||
#define TARGET_RT_MAC_MACHO 0
|
||
#define TARGET_RT_MAC_68881 0
|
||
#else
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 1
|
||
#if defined(__CFM68K)
|
||
#define TARGET_RT_MAC_CFM 1
|
||
#else
|
||
#define TARGET_RT_MAC_CFM 0
|
||
#endif
|
||
#define TARGET_RT_MAC_MACHO 0
|
||
#if mc68881
|
||
#define TARGET_RT_MAC_68881 1
|
||
#else
|
||
#define TARGET_RT_MAC_68881 0
|
||
#endif
|
||
#endif
|
||
#define PRAGMA_IMPORT 0
|
||
#define PRAGMA_ONCE 1
|
||
#define PRAGMA_STRUCT_ALIGN 1
|
||
#define PRAGMA_STRUCT_PACK 0
|
||
#define PRAGMA_STRUCT_PACKPUSH 0
|
||
#define PRAGMA_ENUM_PACK 1
|
||
#define PRAGMA_ENUM_ALWAYSINT 0
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#define FOUR_CHAR_CODE(x) (x)
|
||
|
||
#if __useAppleExts__
|
||
#define TYPE_EXTENDED 1
|
||
#else
|
||
#define TYPE_EXTENDED 0
|
||
#endif
|
||
#define TYPE_LONGLONG 0
|
||
#define TYPE_BOOL 0
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 1
|
||
|
||
#define FUNCTION_PASCAL 0
|
||
#define FUNCTION_DECLSPEC 0
|
||
#define FUNCTION_WIN32CC 0
|
||
#define SLASH_INCLUDES_UNSUPPORTED 1
|
||
|
||
|
||
#elif defined(THINK_C)
|
||
/*
|
||
THINK C compiler from Symantec, Inc. << WARNING: Unsupported Compiler >>
|
||
*/
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 1
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_OS_MAC 1
|
||
#define TARGET_OS_WIN32 0
|
||
#define TARGET_OS_UNIX 0
|
||
#define TARGET_RT_LITTLE_ENDIAN 0
|
||
#define TARGET_RT_BIG_ENDIAN 1
|
||
#define TARGET_RT_MAC_CFM 0
|
||
#define TARGET_RT_MAC_MACHO 0
|
||
#if defined(mc68881)
|
||
#define TARGET_RT_MAC_68881 1
|
||
#else
|
||
#define TARGET_RT_MAC_68881 0
|
||
#endif
|
||
#define PRAGMA_IMPORT 0
|
||
#define PRAGMA_STRUCT_ALIGN 0
|
||
#define PRAGMA_ONCE 1
|
||
#define PRAGMA_STRUCT_PACK 0
|
||
#define PRAGMA_STRUCT_PACKPUSH 0
|
||
#define PRAGMA_ENUM_PACK 1
|
||
#define PRAGMA_ENUM_ALWAYSINT 0
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#define FOUR_CHAR_CODE(x) (x)
|
||
|
||
#define TYPE_EXTENDED 1
|
||
#define TYPE_LONGLONG 0
|
||
#define TYPE_BOOL 0
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 1
|
||
|
||
#define FUNCTION_PASCAL 1
|
||
#define FUNCTION_DECLSPEC 0
|
||
#define FUNCTION_WIN32CC 0
|
||
#define SLASH_INCLUDES_UNSUPPORTED 1
|
||
|
||
|
||
#elif defined(__PPCC__)
|
||
/*
|
||
PPCC compiler from Apple Computer, Inc. << WARNING: Unsupported Compiler >>
|
||
*/
|
||
#define TARGET_CPU_PPC 1
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_OS_MAC 1
|
||
#define TARGET_OS_WIN32 0
|
||
#define TARGET_OS_UNIX 0
|
||
#define TARGET_RT_LITTLE_ENDIAN 0
|
||
#define TARGET_RT_BIG_ENDIAN 1
|
||
#define TARGET_RT_MAC_CFM 1
|
||
#define TARGET_RT_MAC_MACHO 0
|
||
#define TARGET_RT_MAC_68881 0
|
||
#define PRAGMA_IMPORT 0
|
||
#define PRAGMA_STRUCT_ALIGN 1
|
||
#define PRAGMA_ONCE 0
|
||
#define PRAGMA_STRUCT_PACK 0
|
||
#define PRAGMA_STRUCT_PACKPUSH 0
|
||
#define PRAGMA_ENUM_PACK 0
|
||
#define PRAGMA_ENUM_ALWAYSINT 0
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#define FOUR_CHAR_CODE(x) (x)
|
||
|
||
#define TYPE_EXTENDED 0
|
||
#define TYPE_LONGLONG 0
|
||
#define TYPE_BOOL 0
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 1
|
||
|
||
#define FUNCTION_PASCAL 0
|
||
#define FUNCTION_DECLSPEC 0
|
||
#define FUNCTION_WIN32CC 0
|
||
#define SLASH_INCLUDES_UNSUPPORTED 1
|
||
|
||
|
||
#elif defined(applec) && !defined(__SC__)
|
||
/*
|
||
MPW C compiler from Apple Computer, Inc. << WARNING: Unsupported Compiler >>
|
||
*/
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 1
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_OS_MAC 1
|
||
#define TARGET_OS_WIN32 0
|
||
#define TARGET_OS_UNIX 0
|
||
#define TARGET_RT_LITTLE_ENDIAN 0
|
||
#define TARGET_RT_BIG_ENDIAN 1
|
||
#define TARGET_RT_MAC_CFM 0
|
||
#define TARGET_RT_MAC_MACHO 0
|
||
#if defined(mc68881)
|
||
#define TARGET_RT_MAC_68881 1
|
||
#else
|
||
#define TARGET_RT_MAC_68881 0
|
||
#endif
|
||
#define PRAGMA_IMPORT 0
|
||
#define PRAGMA_STRUCT_ALIGN 0
|
||
#define PRAGMA_ONCE 0
|
||
#define PRAGMA_STRUCT_PACK 0
|
||
#define PRAGMA_STRUCT_PACKPUSH 0
|
||
#define PRAGMA_ENUM_PACK 0
|
||
#define PRAGMA_ENUM_ALWAYSINT 0
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
/* Note: MPW C 3.2 had a bug where MACRO('xx ') would cause 'xx ' to be misevaluated */
|
||
#define FOUR_CHAR_CODE
|
||
|
||
#define TYPE_EXTENDED 1
|
||
#define TYPE_LONGLONG 0
|
||
#define TYPE_BOOL 0
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 0
|
||
|
||
#define FUNCTION_PASCAL 1
|
||
#define FUNCTION_DECLSPEC 0
|
||
#define FUNCTION_WIN32CC 0
|
||
#define SLASH_INCLUDES_UNSUPPORTED 1
|
||
|
||
|
||
#elif defined(__GNUC__) && (defined(__APPLE_CPP__) || defined(__APPLE_CC__) || defined(__NEXT_CPP__))
|
||
/*
|
||
gcc based compilers used on OpenStep -> Rhapsody -> Mac OS X
|
||
*/
|
||
#if defined(__ppc__) || defined(powerpc) || defined(ppc)
|
||
#define TARGET_CPU_PPC 1
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_RT_MAC_68881 0
|
||
#define TARGET_RT_LITTLE_ENDIAN 0
|
||
#define TARGET_RT_BIG_ENDIAN 1
|
||
#ifdef __MACH__
|
||
#define TARGET_RT_MAC_MACHO 1
|
||
#define TARGET_RT_MAC_CFM 0
|
||
#else
|
||
#define TARGET_RT_MAC_MACHO 0
|
||
#define TARGET_RT_MAC_CFM 1
|
||
#endif
|
||
#elif defined(m68k)
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 1
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_RT_MAC_CFM 0
|
||
#define TARGET_RT_MAC_MACHO 1
|
||
#define TARGET_RT_MAC_68881 0
|
||
#define TARGET_RT_LITTLE_ENDIAN 0
|
||
#define TARGET_RT_BIG_ENDIAN 1
|
||
#elif defined(sparc)
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 1
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_RT_MAC_CFM 0
|
||
#define TARGET_RT_MAC_MACHO 1
|
||
#define TARGET_RT_MAC_68881 0
|
||
#define TARGET_RT_LITTLE_ENDIAN 0
|
||
#define TARGET_RT_BIG_ENDIAN 1
|
||
#elif defined(__i386__) || defined(i386) || defined(intel)
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 1
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_RT_MAC_CFM 0
|
||
#define TARGET_RT_MAC_MACHO 1
|
||
#define TARGET_RT_MAC_68881 0
|
||
#define TARGET_RT_LITTLE_ENDIAN 1
|
||
#define TARGET_RT_BIG_ENDIAN 0
|
||
#else
|
||
#error unrecognized GNU C compiler
|
||
#endif
|
||
|
||
|
||
#ifndef TARGET_OS_MAC
|
||
#define TARGET_OS_MAC 1
|
||
#endif
|
||
#ifndef TARGET_OS_WIN32
|
||
#define TARGET_OS_WIN32 0
|
||
#endif
|
||
#ifndef TARGET_OS_UNIX
|
||
#define TARGET_OS_UNIX 0
|
||
#endif
|
||
|
||
#define PRAGMA_IMPORT 0
|
||
#define PRAGMA_STRUCT_ALIGN 1
|
||
#define PRAGMA_ONCE 0
|
||
#define PRAGMA_STRUCT_PACK 0
|
||
#define PRAGMA_STRUCT_PACKPUSH 0
|
||
#define PRAGMA_ENUM_PACK 0
|
||
#define PRAGMA_ENUM_ALWAYSINT 0
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#define FOUR_CHAR_CODE(x) (x)
|
||
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 1
|
||
#define TYPE_EXTENDED 0
|
||
#if __GNUC__ >= 2
|
||
#define TYPE_LONGLONG 1
|
||
#else
|
||
#define TYPE_LONGLONG 0
|
||
#endif
|
||
#ifdef __cplusplus
|
||
#define TYPE_BOOL 1
|
||
#else
|
||
#define TYPE_BOOL 0
|
||
#endif
|
||
|
||
#define FUNCTION_PASCAL 0
|
||
#define FUNCTION_DECLSPEC 0
|
||
#define FUNCTION_WIN32CC 0
|
||
|
||
|
||
#elif defined(__GNUC__) && defined(__linux__)
|
||
/*
|
||
gcc (egcs, really) for MkLinux. << WARNING: Unsupported Compiler >>
|
||
*/
|
||
#if #cpu(powerpc)
|
||
#define TARGET_CPU_PPC 1
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_RT_MAC_CFM 1
|
||
#define TARGET_RT_MAC_MACHO 0
|
||
#define TARGET_RT_MAC_68881 0
|
||
#elif #cpu(m68k)
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 1
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_RT_MAC_CFM 0
|
||
#define TARGET_RT_MAC_MACHO 0
|
||
#define TARGET_RT_MAC_68881 0
|
||
#else
|
||
#error unsupported GNU C compiler
|
||
#endif
|
||
|
||
#if #system(macos)
|
||
#define TARGET_OS_MAC 1
|
||
#define TARGET_OS_WIN32 0
|
||
#define TARGET_OS_UNIX 0
|
||
#elif #system(unix)
|
||
#define TARGET_OS_MAC 0
|
||
#define TARGET_OS_WIN32 0
|
||
#define TARGET_OS_UNIX 1
|
||
#else
|
||
#error unsupported GNU C compiler
|
||
#endif
|
||
|
||
|
||
|
||
#define TARGET_RT_LITTLE_ENDIAN 0
|
||
#define TARGET_RT_BIG_ENDIAN 1
|
||
#define PRAGMA_IMPORT 0
|
||
#define PRAGMA_STRUCT_ALIGN 0
|
||
#define PRAGMA_ONCE 0
|
||
#define PRAGMA_STRUCT_PACK 1
|
||
#define PRAGMA_STRUCT_PACKPUSH 0
|
||
#define PRAGMA_ENUM_PACK 0
|
||
#define PRAGMA_ENUM_ALWAYSINT 0
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#define FOUR_CHAR_CODE(x) (x)
|
||
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 1
|
||
#define TYPE_EXTENDED 0
|
||
#ifdef _LONG_LONG
|
||
#define TYPE_LONGLONG 1
|
||
#else
|
||
#define TYPE_LONGLONG 0
|
||
#endif
|
||
#define TYPE_BOOL 0
|
||
|
||
#define FUNCTION_PASCAL 0
|
||
#define FUNCTION_DECLSPEC 0
|
||
#define FUNCTION_WIN32CC 0
|
||
|
||
|
||
#elif defined(__GNUC__) && defined(__MINGW32__)
|
||
/*
|
||
Mingw gnu gcc/egcs compiler for Win32 systems (http://www.mingw.org).
|
||
*/
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 1
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_RT_MAC_CFM 0
|
||
#define TARGET_RT_MAC_MACHO 0
|
||
#define TARGET_RT_MAC_68881 0
|
||
#define TARGET_OS_MAC 0
|
||
#define TARGET_OS_WIN32 1
|
||
#define TARGET_OS_UNIX 0
|
||
#define TARGET_RT_LITTLE_ENDIAN 1
|
||
#define TARGET_RT_BIG_ENDIAN 0
|
||
#define __COREAUDIO_USE_FLAT_INCLUDES__ 1
|
||
#define PRAGMA_IMPORT 0
|
||
#define PRAGMA_STRUCT_ALIGN 0
|
||
#define PRAGMA_ONCE 0
|
||
#define PRAGMA_STRUCT_PACK 1
|
||
#define PRAGMA_STRUCT_PACKPUSH 0
|
||
#define PRAGMA_ENUM_PACK 0
|
||
#define PRAGMA_ENUM_ALWAYSINT 0
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#define FOUR_CHAR_CODE(x) (x)
|
||
#define TYPE_EXTENDED 0
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 1
|
||
#define TYPE_LONGLONG 1
|
||
#define TYPE_BOOL 1
|
||
#define FUNCTION_PASCAL 0
|
||
#define FUNCTION_DECLSPEC 0
|
||
#define FUNCTION_WIN32CC 0
|
||
|
||
|
||
#elif defined(__GNUC__)
|
||
/*
|
||
gC for MPW from Free Software Foundation, Inc.
|
||
*/
|
||
#if #cpu(powerpc)
|
||
#define TARGET_CPU_PPC 1
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_RT_MAC_CFM 1
|
||
#define TARGET_RT_MAC_MACHO 0
|
||
#define TARGET_RT_MAC_68881 0
|
||
#elif #cpu(m68k)
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 1
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_RT_MAC_CFM 0
|
||
#define TARGET_RT_MAC_MACHO 0
|
||
#define TARGET_RT_MAC_68881 0
|
||
#else
|
||
#error unsupported GNU C compiler
|
||
#endif
|
||
|
||
#if #system(macos)
|
||
#define TARGET_OS_MAC 1
|
||
#define TARGET_OS_WIN32 0
|
||
#define TARGET_OS_UNIX 0
|
||
#elif #system(unix)
|
||
#define TARGET_OS_MAC 0
|
||
#define TARGET_OS_WIN32 0
|
||
#define TARGET_OS_UNIX 1
|
||
#else
|
||
#error unsupported GNU C compiler
|
||
#endif
|
||
|
||
#define TARGET_RT_LITTLE_ENDIAN 0
|
||
#define TARGET_RT_BIG_ENDIAN 1
|
||
#define PRAGMA_IMPORT 0
|
||
#define PRAGMA_STRUCT_ALIGN 1
|
||
#define PRAGMA_ONCE 0
|
||
#define PRAGMA_STRUCT_PACK 0
|
||
#define PRAGMA_STRUCT_PACKPUSH 0
|
||
#define PRAGMA_ENUM_PACK 0
|
||
#define PRAGMA_ENUM_ALWAYSINT 0
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#define FOUR_CHAR_CODE(x) (x)
|
||
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 1
|
||
#define TYPE_EXTENDED 0
|
||
#ifdef _LONG_LONG
|
||
#define TYPE_LONGLONG 1
|
||
#else
|
||
#define TYPE_LONGLONG 0
|
||
#endif
|
||
#define TYPE_BOOL 0
|
||
|
||
#define FUNCTION_PASCAL 0
|
||
#define FUNCTION_DECLSPEC 0
|
||
#define FUNCTION_WIN32CC 0
|
||
|
||
|
||
#elif defined(__xlc) || defined(__xlC) || defined(__xlC__) || defined(__XLC121__)
|
||
/*
|
||
xlc and xlC on RS/6000 from IBM, Inc.
|
||
*/
|
||
#define TARGET_CPU_PPC 1
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#if defined(_AIX)
|
||
#define TARGET_OS_MAC 0
|
||
#define TARGET_OS_UNIX 1
|
||
#else
|
||
#define TARGET_OS_MAC 1
|
||
#define TARGET_OS_UNIX 0
|
||
#endif
|
||
#define TARGET_OS_WIN32 0
|
||
#define TARGET_RT_LITTLE_ENDIAN 0
|
||
#define TARGET_RT_BIG_ENDIAN 1
|
||
#define TARGET_RT_MAC_CFM 1
|
||
#define TARGET_RT_MAC_MACHO 0
|
||
#define TARGET_RT_MAC_68881 0
|
||
#define PRAGMA_IMPORT 0
|
||
#define PRAGMA_STRUCT_ALIGN 1
|
||
#define PRAGMA_ONCE 0
|
||
#define PRAGMA_STRUCT_PACK 0
|
||
#define PRAGMA_STRUCT_PACKPUSH 0
|
||
#define PRAGMA_ENUM_PACK 0
|
||
#define PRAGMA_ENUM_ALWAYSINT 0
|
||
#define PRAGMA_ENUM_OPTIONS 1
|
||
#define FOUR_CHAR_CODE(x) (x)
|
||
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 0
|
||
#define TYPE_EXTENDED 0
|
||
#ifdef _LONG_LONG
|
||
#define TYPE_LONGLONG 1
|
||
#else
|
||
#define TYPE_LONGLONG 0
|
||
#endif
|
||
#define TYPE_BOOL 0
|
||
|
||
#define FUNCTION_PASCAL 0
|
||
#define FUNCTION_DECLSPEC 0
|
||
#define FUNCTION_WIN32CC 0
|
||
|
||
|
||
#elif defined(_MSC_VER) && !defined(__MWERKS__)
|
||
/*
|
||
Visual Studio C/C++ from Microsoft, Inc.
|
||
*/
|
||
#if defined(_M_M68K) /* Visual C++ with Macintosh 68K target */
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 1
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_OS_MAC 1
|
||
#define TARGET_OS_WIN32 0
|
||
#define TARGET_OS_UNIX 0
|
||
#define TARGET_RT_LITTLE_ENDIAN 0
|
||
#define TARGET_RT_BIG_ENDIAN 1
|
||
#define TARGET_RT_MAC_CFM 0
|
||
#define TARGET_RT_MAC_MACHO 0
|
||
#define TARGET_RT_MAC_68881 0
|
||
#define PRAGMA_IMPORT 0
|
||
#define PRAGMA_STRUCT_ALIGN 1
|
||
#define PRAGMA_ONCE 0
|
||
#define PRAGMA_STRUCT_PACK 1
|
||
#define PRAGMA_STRUCT_PACKPUSH 1
|
||
#define PRAGMA_ENUM_PACK 0
|
||
#define PRAGMA_ENUM_ALWAYSINT 0
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#define FOUR_CHAR_CODE(x) (x)
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 1
|
||
#define TYPE_EXTENDED 0
|
||
#define TYPE_LONGLONG 0
|
||
#define TYPE_BOOL 0
|
||
#define FUNCTION_PASCAL 1
|
||
#define FUNCTION_DECLSPEC 0
|
||
#define FUNCTION_WIN32CC 0
|
||
|
||
#elif defined(_M_MPPC) /* Visual C++ with Macintosh PowerPC target */
|
||
#define TARGET_CPU_PPC 1
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_OS_MAC 1
|
||
#define TARGET_OS_WIN32 0
|
||
#define TARGET_OS_UNIX 0
|
||
#define TARGET_RT_LITTLE_ENDIAN 0
|
||
#define TARGET_RT_BIG_ENDIAN 1
|
||
#define TARGET_RT_MAC_CFM 1
|
||
#define TARGET_RT_MAC_MACHO 0
|
||
#define TARGET_RT_MAC_68881 0
|
||
#define PRAGMA_IMPORT 0
|
||
#define PRAGMA_STRUCT_ALIGN 1
|
||
#define PRAGMA_ONCE 0
|
||
#define PRAGMA_STRUCT_PACK 1
|
||
#define PRAGMA_STRUCT_PACKPUSH 1
|
||
#define PRAGMA_ENUM_PACK 0
|
||
#define PRAGMA_ENUM_ALWAYSINT 0
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#define FOUR_CHAR_CODE(x) (x)
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 1
|
||
#define TYPE_EXTENDED 0
|
||
#define TYPE_LONGLONG 0
|
||
#define TYPE_BOOL 0
|
||
#define FUNCTION_PASCAL 0
|
||
#define FUNCTION_DECLSPEC 0
|
||
#define FUNCTION_WIN32CC 0
|
||
|
||
#elif defined(_M_IX86) /* Visual Studio with Intel x86 target */
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 1
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_OS_MAC 0
|
||
#define TARGET_OS_WIN32 1
|
||
#define TARGET_OS_UNIX 0
|
||
#define TARGET_RT_LITTLE_ENDIAN 1
|
||
#define TARGET_RT_BIG_ENDIAN 0
|
||
#define __COREAUDIO_USE_FLAT_INCLUDES__ 1
|
||
#define PRAGMA_IMPORT 0
|
||
#define PRAGMA_STRUCT_ALIGN 0
|
||
#define PRAGMA_ONCE 1
|
||
#define PRAGMA_STRUCT_PACK 1
|
||
#define PRAGMA_STRUCT_PACKPUSH 1
|
||
#define PRAGMA_ENUM_PACK 0
|
||
#define PRAGMA_ENUM_ALWAYSINT 0
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#define FOUR_CHAR_CODE(x) (x)
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 1
|
||
#define TYPE_EXTENDED 0
|
||
#define TYPE_LONGLONG 1 /* note: uses __int64 instead of long long */
|
||
#define LONGLONG_TYPENAME __int64
|
||
|
||
#define LONGLONG_SIGNED_MAX (9223372036854775807i64)
|
||
#define LONGLONG_SIGNED_MIN (-9223372036854775807i64 - 1)
|
||
#define LONGLONG_UNSIGNED_MAX (0xffffffffffffffffui64)
|
||
|
||
#if defined(__cplusplus) && (_MSC_VER >= 1100)
|
||
#define TYPE_BOOL 1
|
||
#else
|
||
#define TYPE_BOOL 0
|
||
#endif
|
||
#define FUNCTION_PASCAL 0
|
||
#ifndef FUNCTION_DECLSPEC /* allow use of __declspec(dllimport) to be enabled */
|
||
#define FUNCTION_DECLSPEC 0 /* QuickTime for Windows cannot use dllimport */
|
||
#endif
|
||
#ifndef FUNCTION_WIN32CC /* allow calling convention to be overriddden */
|
||
#define FUNCTION_WIN32CC 1
|
||
#endif
|
||
/* Warning: This macros away the pascal word in source code. */
|
||
/* Very useful for code that needs to compile on Mac 68k and Windows */
|
||
/* but can silently change code */
|
||
#undef pascal
|
||
#define pascal
|
||
|
||
#elif defined(_M_ALPHA) /* Visual C++ with Dec Alpha target */
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 1
|
||
#define TARGET_OS_MAC 0
|
||
#define TARGET_OS_WIN32 1
|
||
#define TARGET_OS_UNIX 0
|
||
#define TARGET_RT_LITTLE_ENDIAN 1
|
||
#define TARGET_RT_BIG_ENDIAN 0
|
||
#define __COREAUDIO_USE_FLAT_INCLUDES__ 1
|
||
#define PRAGMA_IMPORT 0
|
||
#define PRAGMA_STRUCT_ALIGN 0
|
||
#define PRAGMA_ONCE 0
|
||
#define PRAGMA_STRUCT_PACK 1
|
||
#define PRAGMA_STRUCT_PACKPUSH 1
|
||
#define PRAGMA_ENUM_PACK 0
|
||
#define PRAGMA_ENUM_ALWAYSINT 0
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#define FOUR_CHAR_CODE(x) (((unsigned long) ((x) & 0x000000FF)) << 24) \
|
||
| (((unsigned long) ((x) & 0x0000FF00)) << 8) \
|
||
| (((unsigned long) ((x) & 0x00FF0000)) >> 8) \
|
||
| (((unsigned long) ((x) & 0xFF000000)) >> 24)
|
||
#define TYPE_EXTENDED 0
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 1
|
||
#define TYPE_LONGLONG 0
|
||
#define TYPE_BOOL 0
|
||
#define FUNCTION_PASCAL 0
|
||
#define FUNCTION_DECLSPEC 0
|
||
#define FUNCTION_WIN32CC 0
|
||
|
||
#elif defined(_M_PPC) /* Visual C++ for Windows NT on PowerPC target */
|
||
#define TARGET_CPU_PPC 1
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_OS_MAC 0
|
||
#define TARGET_OS_WIN32 1
|
||
#define TARGET_OS_UNIX 0
|
||
#define TARGET_RT_LITTLE_ENDIAN 1
|
||
#define TARGET_RT_BIG_ENDIAN 0
|
||
#define __COREAUDIO_USE_FLAT_INCLUDES__ 1
|
||
#define PRAGMA_IMPORT 0
|
||
#define PRAGMA_STRUCT_ALIGN 0
|
||
#define PRAGMA_ONCE 0
|
||
#define PRAGMA_STRUCT_PACK 1
|
||
#define PRAGMA_STRUCT_PACKPUSH 1
|
||
#define PRAGMA_ENUM_PACK 0
|
||
#define PRAGMA_ENUM_ALWAYSINT 0
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#define FOUR_CHAR_CODE(x) (((unsigned long) ((x) & 0x000000FF)) << 24) \
|
||
| (((unsigned long) ((x) & 0x0000FF00)) << 8) \
|
||
| (((unsigned long) ((x) & 0x00FF0000)) >> 8) \
|
||
| (((unsigned long) ((x) & 0xFF000000)) >> 24)
|
||
#define TYPE_EXTENDED 0
|
||
#define TYPE_LONGLONG 0
|
||
#define TYPE_BOOL 0
|
||
#define FUNCTION_PASCAL 0
|
||
#define FUNCTION_DECLSPEC 0
|
||
#define FUNCTION_WIN32CC 0
|
||
|
||
#elif defined(_M_MRX000) /* Visual C++ for Windows NT on MIPS target */
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 1
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_OS_MAC 0
|
||
#define TARGET_OS_WIN32 1
|
||
#define TARGET_OS_UNIX 0
|
||
#define TARGET_RT_LITTLE_ENDIAN 1
|
||
#define TARGET_RT_BIG_ENDIAN 0
|
||
#define __COREAUDIO_USE_FLAT_INCLUDES__ 1
|
||
#define PRAGMA_IMPORT 0
|
||
#define PRAGMA_STRUCT_ALIGN 0
|
||
#define PRAGMA_ONCE 0
|
||
#define PRAGMA_STRUCT_PACK 1
|
||
#define PRAGMA_STRUCT_PACKPUSH 1
|
||
#define PRAGMA_ENUM_PACK 0
|
||
#define PRAGMA_ENUM_ALWAYSINT 0
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#define FOUR_CHAR_CODE(x) (((unsigned long) ((x) & 0x000000FF)) << 24) \
|
||
| (((unsigned long) ((x) & 0x0000FF00)) << 8) \
|
||
| (((unsigned long) ((x) & 0x00FF0000)) >> 8) \
|
||
| (((unsigned long) ((x) & 0xFF000000)) >> 24)
|
||
#define TYPE_EXTENDED 0
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 1
|
||
#define TYPE_LONGLONG 0
|
||
#define TYPE_BOOL 0
|
||
#define FUNCTION_PASCAL 0
|
||
#define FUNCTION_DECLSPEC 0
|
||
#define FUNCTION_WIN32CC 0
|
||
#endif
|
||
|
||
|
||
#elif defined(__MOTO__)
|
||
/*
|
||
mcc from Motorola, Inc.
|
||
*/
|
||
#define TARGET_CPU_PPC 1
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_OS_MAC 1
|
||
#define TARGET_OS_WIN32 0
|
||
#define TARGET_OS_UNIX 0
|
||
#define TARGET_RT_LITTLE_ENDIAN 0
|
||
#define TARGET_RT_BIG_ENDIAN 1
|
||
#define TARGET_RT_MAC_CFM 1
|
||
#define TARGET_RT_MAC_MACHO 0
|
||
#define TARGET_RT_MAC_68881 0
|
||
#define PRAGMA_IMPORT 0 /* how is this detected ?? */
|
||
#define PRAGMA_STRUCT_ALIGN 1
|
||
#if __MOTO__ >= 40702 /* MCC version 4.7.2 */
|
||
#define PRAGMA_ONCE 1
|
||
#else
|
||
#define PRAGMA_ONCE 0
|
||
#endif
|
||
#define PRAGMA_STRUCT_PACK 0
|
||
#define PRAGMA_STRUCT_PACKPUSH 0
|
||
#define PRAGMA_ENUM_PACK 0
|
||
#define PRAGMA_ENUM_ALWAYSINT 0
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#define FOUR_CHAR_CODE(x) (x)
|
||
#define TYPE_LONGLONG 0 /* how is this detected ?? */
|
||
#ifdef _BOOL
|
||
#define TYPE_BOOL 1
|
||
#else
|
||
#define TYPE_BOOL 0
|
||
#endif
|
||
#define TYPE_EXTENDED 0
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 1
|
||
#define FUNCTION_PASCAL 0
|
||
#define FUNCTION_DECLSPEC 0
|
||
#define FUNCTION_WIN32CC 0
|
||
|
||
|
||
|
||
#elif defined(_MIPS_ISA)
|
||
/*
|
||
MIPSpro compiler from Silicon Graphics Inc.
|
||
*/
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 1
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_OS_MAC 0
|
||
#define TARGET_OS_WIN32 0
|
||
#define TARGET_OS_UNIX 1
|
||
#define TARGET_RT_LITTLE_ENDIAN 0
|
||
#define TARGET_RT_BIG_ENDIAN 1
|
||
#define PRAGMA_IMPORT 0
|
||
#define PRAGMA_STRUCT_ALIGN 0
|
||
#define PRAGMA_ONCE 0
|
||
#define PRAGMA_STRUCT_PACK 1
|
||
#define PRAGMA_STRUCT_PACKPUSH 0
|
||
#define PRAGMA_ENUM_PACK 0
|
||
#define PRAGMA_ENUM_ALWAYSINT 0
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#define FOUR_CHAR_CODE(x) (x)
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 1
|
||
#define TYPE_EXTENDED 0
|
||
#define TYPE_LONGLONG 0
|
||
#define TYPE_BOOL 0
|
||
#define FUNCTION_PASCAL 0
|
||
#define FUNCTION_DECLSPEC 0
|
||
#define FUNCTION_WIN32CC 0
|
||
|
||
|
||
#elif defined(__sparc)
|
||
/*
|
||
SPARCompiler compiler from Sun Microsystems Inc.
|
||
*/
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 1
|
||
#define TARGET_CPU_ALPHA 0
|
||
#define TARGET_OS_MAC 0
|
||
#define TARGET_OS_WIN32 0
|
||
#define TARGET_OS_UNIX 1
|
||
#define TARGET_RT_LITTLE_ENDIAN 0
|
||
#define TARGET_RT_BIG_ENDIAN 1
|
||
#define PRAGMA_IMPORT 0
|
||
#define PRAGMA_STRUCT_ALIGN 0
|
||
#define PRAGMA_ONCE 0
|
||
#define PRAGMA_STRUCT_PACK 1
|
||
#define PRAGMA_STRUCT_PACKPUSH 0
|
||
#define PRAGMA_ENUM_PACK 0
|
||
#define PRAGMA_ENUM_ALWAYSINT 0
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#define FOUR_CHAR_CODE(x) (((unsigned long) ((x) & 0x000000FF)) << 24) \
|
||
| (((unsigned long) ((x) & 0x0000FF00)) << 8) \
|
||
| (((unsigned long) ((x) & 0x00FF0000)) >> 8) \
|
||
| (((unsigned long) ((x) & 0xFF000000)) >> 24)
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 1
|
||
#define TYPE_EXTENDED 0
|
||
#define TYPE_LONGLONG 0
|
||
#define TYPE_BOOL 0
|
||
#define FUNCTION_PASCAL 0
|
||
#define FUNCTION_DECLSPEC 0
|
||
#define FUNCTION_WIN32CC 0
|
||
|
||
|
||
#else
|
||
/*
|
||
Unknown compiler, perhaps set up from the command line (e.g. -d TARGET_CPU_MIPS , etc.)
|
||
*/
|
||
#if defined(TARGET_CPU_PPC) && TARGET_CPU_PPC
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#elif defined(TARGET_CPU_68K) && TARGET_CPU_68K
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#elif defined(TARGET_CPU_X86) && TARGET_CPU_X86
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#elif defined(TARGET_CPU_MIPS) && TARGET_CPU_MIPS
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#elif defined(TARGET_CPU_SPARC) && TARGET_CPU_SPARC
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#elif defined(TARGET_CPU_ALPHA) && TARGET_CPU_ALPHA
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
|
||
|
||
#else
|
||
/*
|
||
NOTE: If your compiler errors out here then support for your compiler
|
||
has not yet been added to ConditionalMacros.h.
|
||
|
||
ConditionalMacros.h is designed to be plug-and-play. It auto detects
|
||
which compiler is being run and configures the TARGET_ conditionals
|
||
appropriately.
|
||
|
||
The short term work around is to set the TARGET_CPU_ and TARGET_OS_
|
||
on the command line to the compiler (e.g. d TARGET_CPU_MIPS -d TARGET_OS_UNIX)
|
||
|
||
The long term solution is to add a new case to this file which
|
||
auto detects your compiler and sets up the TARGET_ conditionals.
|
||
If you do this, send the changes you made to devsupport@apple.com
|
||
to get it integrated into the next release of ConditionalMacros.h.
|
||
*/
|
||
#error ConditionalMacros.h: unknown compiler (see comment above)
|
||
#define TARGET_CPU_PPC 0
|
||
#define TARGET_CPU_68K 0
|
||
#define TARGET_CPU_X86 0
|
||
#define TARGET_CPU_MIPS 0
|
||
#define TARGET_CPU_SPARC 0
|
||
#define TARGET_CPU_ALPHA 0
|
||
#endif
|
||
|
||
|
||
|
||
#if defined(TARGET_OS_MAC) && TARGET_OS_MAC
|
||
#define TARGET_OS_WIN32 0
|
||
#define TARGET_OS_UNIX 0
|
||
#elif defined(TARGET_OS_WIN32) && TARGET_OS_WIN32
|
||
#define TARGET_OS_MAC 0
|
||
#define TARGET_OS_UNIX 0
|
||
#elif defined(TARGET_OS_UNIX) && TARGET_OS_UNIX
|
||
#define TARGET_OS_MAC 0
|
||
#define TARGET_OS_WIN32 0
|
||
#elif TARGET_CPU_PPC || TARGET_CPU_68K
|
||
#define TARGET_OS_MAC 1
|
||
#define TARGET_OS_WIN32 0
|
||
#define TARGET_OS_UNIX 0
|
||
#else
|
||
#error ConditionalMacros.h: unknown target OS (see comment above)
|
||
#endif
|
||
|
||
#if !defined(TARGET_RT_BIG_ENDIAN) && !defined(TARGET_RT_LITTLE_ENDIAN)
|
||
#if TARGET_OS_MAC
|
||
#define TARGET_RT_LITTLE_ENDIAN 0
|
||
#define TARGET_RT_BIG_ENDIAN 1
|
||
#elif TARGET_OS_WIN32
|
||
#define TARGET_RT_LITTLE_ENDIAN 1
|
||
#define TARGET_RT_BIG_ENDIAN 0
|
||
#endif
|
||
#endif
|
||
|
||
#if defined(TARGET_RT_BIG_ENDIAN) && !defined(TARGET_RT_LITTLE_ENDIAN)
|
||
#define TARGET_RT_LITTLE_ENDIAN !TARGET_RT_BIG_ENDIAN
|
||
#elif !defined(TARGET_RT_BIG_ENDIAN) && defined(TARGET_RT_LITTLE_ENDIAN)
|
||
#define TARGET_RT_BIG_ENDIAN !TARGET_RT_LITTLE_ENDIAN
|
||
#endif
|
||
|
||
#if !defined(TARGET_RT_BIG_ENDIAN) && !defined(TARGET_RT_LITTLE_ENDIAN)
|
||
#error unknown endianess of target processor
|
||
#endif
|
||
|
||
#if TARGET_OS_MAC
|
||
#ifndef TARGET_RT_MAC_CFM
|
||
#define TARGET_RT_MAC_CFM TARGET_CPU_PPC
|
||
#endif
|
||
#ifndef TARGET_RT_MAC_68881
|
||
#define TARGET_RT_MAC_68881 0
|
||
#endif
|
||
#ifndef TARGET_RT_MAC_MACHO
|
||
#define TARGET_RT_MAC_MACHO !TARGET_RT_MAC_CFM
|
||
#endif
|
||
#endif
|
||
|
||
|
||
|
||
#ifndef PRAGMA_IMPORT
|
||
#define PRAGMA_IMPORT 0
|
||
#endif
|
||
#ifndef PRAGMA_STRUCT_ALIGN
|
||
#define PRAGMA_STRUCT_ALIGN 0
|
||
#endif
|
||
#ifndef PRAGMA_ONCE
|
||
#define PRAGMA_ONCE 0
|
||
#endif
|
||
#ifndef PRAGMA_STRUCT_PACK
|
||
#define PRAGMA_STRUCT_PACK 0
|
||
#endif
|
||
#ifndef PRAGMA_STRUCT_PACKPUSH
|
||
#define PRAGMA_STRUCT_PACKPUSH 0
|
||
#endif
|
||
#ifndef PRAGMA_ENUM_PACK
|
||
#define PRAGMA_ENUM_PACK 0
|
||
#endif
|
||
#ifndef PRAGMA_ENUM_ALWAYSINT
|
||
#define PRAGMA_ENUM_ALWAYSINT 0
|
||
#endif
|
||
#ifndef PRAGMA_ENUM_OPTIONS
|
||
#define PRAGMA_ENUM_OPTIONS 0
|
||
#endif
|
||
#ifndef FOUR_CHAR_CODE
|
||
#define FOUR_CHAR_CODE(x) (x)
|
||
#endif
|
||
|
||
#ifndef TYPE_LONGDOUBLE_IS_DOUBLE
|
||
#define TYPE_LONGDOUBLE_IS_DOUBLE 1
|
||
#endif
|
||
#ifndef TYPE_EXTENDED
|
||
#define TYPE_EXTENDED 0
|
||
#endif
|
||
#ifndef TYPE_LONGLONG
|
||
#define TYPE_LONGLONG 0
|
||
#endif
|
||
#ifndef TYPE_BOOL
|
||
#define TYPE_BOOL 0
|
||
#endif
|
||
#ifndef FUNCTION_PASCAL
|
||
#define FUNCTION_PASCAL 0
|
||
#endif
|
||
#ifndef FUNCTION_DECLSPEC
|
||
#define FUNCTION_DECLSPEC 0
|
||
#endif
|
||
#ifndef FUNCTION_WIN32CC
|
||
#define FUNCTION_WIN32CC 0
|
||
#endif
|
||
#endif
|
||
|
||
|
||
|
||
/****************************************************************************************************
|
||
|
||
Under MacOS, the classic 68k runtime has two calling conventions: pascal or C
|
||
Under Win32, there are two calling conventions: __cdecl or __stdcall
|
||
Headers and implementation files can use the following macros to make their
|
||
source more portable by hiding the calling convention details:
|
||
|
||
EXTERN_API*
|
||
These macros are used to specify the calling convention on a function prototype.
|
||
|
||
EXTERN_API - Classic 68k: pascal, Win32: __cdecl
|
||
EXTERN_API_C - Classic 68k: C, Win32: __cdecl
|
||
EXTERN_API_STDCALL - Classic 68k: pascal, Win32: __stdcall
|
||
EXTERN_API_C_STDCALL - Classic 68k: C, Win32: __stdcall
|
||
|
||
|
||
DEFINE_API*
|
||
These macros are used to specify the calling convention on a function definition.
|
||
|
||
DEFINE_API - Classic 68k: pascal, Win32: __cdecl
|
||
DEFINE_API_C - Classic 68k: C, Win32: __cdecl
|
||
DEFINE_API_STDCALL - Classic 68k: pascal, Win32: __stdcall
|
||
DEFINE_API_C_STDCALL - Classic 68k: C, Win32: __stdcall
|
||
|
||
|
||
CALLBACK_API*
|
||
These macros are used to specify the calling convention of a function pointer.
|
||
|
||
CALLBACK_API - Classic 68k: pascal, Win32: __stdcall
|
||
CALLBACK_API_C - Classic 68k: C, Win32: __stdcall
|
||
CALLBACK_API_STDCALL - Classic 68k: pascal, Win32: __cdecl
|
||
CALLBACK_API_C_STDCALL - Classic 68k: C, Win32: __cdecl
|
||
|
||
****************************************************************************************************/
|
||
|
||
#if FUNCTION_PASCAL && !FUNCTION_DECLSPEC && !FUNCTION_WIN32CC
|
||
/* compiler supports pascal keyword only */
|
||
#define EXTERN_API(_type) extern pascal _type
|
||
#define EXTERN_API_C(_type) extern _type
|
||
#define EXTERN_API_STDCALL(_type) extern pascal _type
|
||
#define EXTERN_API_C_STDCALL(_type) extern _type
|
||
|
||
#define DEFINE_API(_type) pascal _type
|
||
#define DEFINE_API_C(_type) _type
|
||
#define DEFINE_API_STDCALL(_type) pascal _type
|
||
#define DEFINE_API_C_STDCALL(_type) _type
|
||
|
||
#define CALLBACK_API(_type, _name) pascal _type (*_name)
|
||
#define CALLBACK_API_C(_type, _name) _type (*_name)
|
||
#define CALLBACK_API_STDCALL(_type, _name) pascal _type (*_name)
|
||
#define CALLBACK_API_C_STDCALL(_type, _name) _type (*_name)
|
||
|
||
#elif FUNCTION_PASCAL && FUNCTION_DECLSPEC && !FUNCTION_WIN32CC
|
||
/* compiler supports pascal and __declspec() */
|
||
#define EXTERN_API(_type) extern pascal __declspec(dllimport) _type
|
||
#define EXTERN_API_C(_type) extern __declspec(dllimport) _type
|
||
#define EXTERN_API_STDCALL(_type) extern pascal __declspec(dllimport) _type
|
||
#define EXTERN_API_C_STDCALL(_type) extern __declspec(dllimport) _type
|
||
|
||
#define DEFINE_API(_type) pascal __declspec(dllexport) _type
|
||
#define DEFINE_API_C(_type) __declspec(dllexport) _type
|
||
#define DEFINE_API_STDCALL(_type) pascal __declspec(dllexport) _type
|
||
#define DEFINE_API_C_STDCALL(_type) __declspec(dllexport) _type
|
||
|
||
#define CALLBACK_API(_type, _name) pascal _type (*_name)
|
||
#define CALLBACK_API_C(_type, _name) _type (*_name)
|
||
#define CALLBACK_API_STDCALL(_type, _name) pascal _type (*_name)
|
||
#define CALLBACK_API_C_STDCALL(_type, _name) _type (*_name)
|
||
|
||
#elif !FUNCTION_PASCAL && FUNCTION_DECLSPEC && !FUNCTION_WIN32CC
|
||
/* compiler supports __declspec() */
|
||
#define EXTERN_API(_type) extern __declspec(dllimport) _type
|
||
#define EXTERN_API_C(_type) extern __declspec(dllimport) _type
|
||
#define EXTERN_API_STDCALL(_type) extern __declspec(dllimport) _type
|
||
#define EXTERN_API_C_STDCALL(_type) extern __declspec(dllimport) _type
|
||
|
||
#define DEFINE_API(_type) __declspec(dllexport) _type
|
||
#define DEFINE_API_C(_type) __declspec(dllexport) _type
|
||
#define DEFINE_API_STDCALL(_type) __declspec(dllexport) _type
|
||
#define DEFINE_API_C_STDCALL(_type) __declspec(dllexport) _type
|
||
|
||
#define CALLBACK_API(_type, _name) _type ( * _name)
|
||
#define CALLBACK_API_C(_type, _name) _type ( * _name)
|
||
#define CALLBACK_API_STDCALL(_type, _name) _type ( * _name)
|
||
#define CALLBACK_API_C_STDCALL(_type, _name) _type ( * _name)
|
||
|
||
#elif !FUNCTION_PASCAL && FUNCTION_DECLSPEC && FUNCTION_WIN32CC
|
||
/* compiler supports __declspec() and __cdecl */
|
||
#define EXTERN_API(_type) __declspec(dllimport) _type __cdecl
|
||
#define EXTERN_API_C(_type) __declspec(dllimport) _type __cdecl
|
||
#define EXTERN_API_STDCALL(_type) __declspec(dllimport) _type __stdcall
|
||
#define EXTERN_API_C_STDCALL(_type) __declspec(dllimport) _type __stdcall
|
||
|
||
#define DEFINE_API(_type) __declspec(dllexport) _type __cdecl
|
||
#define DEFINE_API_C(_type) __declspec(dllexport) _type __cdecl
|
||
#define DEFINE_API_STDCALL(_type) __declspec(dllexport) _type __stdcall
|
||
#define DEFINE_API_C_STDCALL(_type) __declspec(dllexport) _type __stdcall
|
||
|
||
#define CALLBACK_API(_type, _name) _type (__cdecl * _name)
|
||
#define CALLBACK_API_C(_type, _name) _type (__cdecl * _name)
|
||
#define CALLBACK_API_STDCALL(_type, _name) _type (__stdcall * _name)
|
||
#define CALLBACK_API_C_STDCALL(_type, _name) _type (__stdcall * _name)
|
||
|
||
#elif !FUNCTION_PASCAL && !FUNCTION_DECLSPEC && FUNCTION_WIN32CC
|
||
/* compiler supports __cdecl */
|
||
#define EXTERN_API(_type) _type __cdecl
|
||
#define EXTERN_API_C(_type) _type __cdecl
|
||
#define EXTERN_API_STDCALL(_type) _type __stdcall
|
||
#define EXTERN_API_C_STDCALL(_type) _type __stdcall
|
||
|
||
#define DEFINE_API(_type) _type __cdecl
|
||
#define DEFINE_API_C(_type) _type __cdecl
|
||
#define DEFINE_API_STDCALL(_type) _type __stdcall
|
||
#define DEFINE_API_C_STDCALL(_type) _type __stdcall
|
||
|
||
#define CALLBACK_API(_type, _name) _type (__cdecl * _name)
|
||
#define CALLBACK_API_C(_type, _name) _type (__cdecl * _name)
|
||
#define CALLBACK_API_STDCALL(_type, _name) _type (__stdcall * _name)
|
||
#define CALLBACK_API_C_STDCALL(_type, _name) _type (__stdcall * _name)
|
||
|
||
#else
|
||
/* compiler supports no extensions */
|
||
#define EXTERN_API(_type) extern _type
|
||
#define EXTERN_API_C(_type) extern _type
|
||
#define EXTERN_API_STDCALL(_type) extern _type
|
||
#define EXTERN_API_C_STDCALL(_type) extern _type
|
||
|
||
#define DEFINE_API(_type) _type
|
||
#define DEFINE_API_C(_type) _type
|
||
#define DEFINE_API_STDCALL(_type) _type
|
||
#define DEFINE_API_C_STDCALL(_type) _type
|
||
|
||
#define CALLBACK_API(_type, _name) _type ( * _name)
|
||
#define CALLBACK_API_C(_type, _name) _type ( * _name)
|
||
#define CALLBACK_API_STDCALL(_type, _name) _type ( * _name)
|
||
#define CALLBACK_API_C_STDCALL(_type, _name) _type ( * _name)
|
||
#undef pascal
|
||
#define pascal
|
||
#endif
|
||
|
||
/* On classic 68k, some callbacks are register based. The only way to */
|
||
/* write them in C is to make a function with no parameters and a void */
|
||
/* return. Inside the function you manually get and set registers. */
|
||
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
|
||
#define CALLBACK_API_REGISTER68K(_type, _name, _params) CALLBACK_API(void, _name)()
|
||
#else
|
||
#define CALLBACK_API_REGISTER68K(_type, _name, _params) CALLBACK_API(_type, _name)_params
|
||
#endif
|
||
/****************************************************************************************************
|
||
|
||
Set up TARGET_API_*_* values
|
||
|
||
****************************************************************************************************/
|
||
#if TARGET_OS_MAC
|
||
#if !defined(TARGET_API_MAC_OS8) && !defined(TARGET_API_MAC_OSX) && !defined(TARGET_API_MAC_CARBON)
|
||
/* No TARGET_API_MAC_* predefined on command line */
|
||
#if TARGET_RT_MAC_MACHO
|
||
/* Looks like MachO style compiler */
|
||
#define TARGET_API_MAC_OS8 0
|
||
#define TARGET_API_MAC_CARBON 1
|
||
#define TARGET_API_MAC_OSX 1
|
||
#elif defined(TARGET_CARBON) && TARGET_CARBON
|
||
/* grandfather in use of TARGET_CARBON */
|
||
#define TARGET_API_MAC_OS8 0
|
||
#define TARGET_API_MAC_CARBON 1
|
||
#define TARGET_API_MAC_OSX 0
|
||
#elif TARGET_CPU_PPC && TARGET_RT_MAC_CFM
|
||
/* Looks like CFM style PPC compiler */
|
||
#define TARGET_API_MAC_OS8 1
|
||
#define TARGET_API_MAC_CARBON 0
|
||
#define TARGET_API_MAC_OSX 0
|
||
#else
|
||
/* 68k or some other compiler */
|
||
#define TARGET_API_MAC_OS8 1
|
||
#define TARGET_API_MAC_CARBON 0
|
||
#define TARGET_API_MAC_OSX 0
|
||
#endif /* */
|
||
|
||
#else
|
||
#ifndef TARGET_API_MAC_OS8
|
||
#define TARGET_API_MAC_OS8 0
|
||
#endif /* !defined(TARGET_API_MAC_OS8) */
|
||
|
||
#ifndef TARGET_API_MAC_OSX
|
||
#define TARGET_API_MAC_OSX TARGET_RT_MAC_MACHO
|
||
#endif /* !defined(TARGET_API_MAC_OSX) */
|
||
|
||
#ifndef TARGET_API_MAC_CARBON
|
||
#define TARGET_API_MAC_CARBON TARGET_API_MAC_OSX
|
||
#endif /* !defined(TARGET_API_MAC_CARBON) */
|
||
|
||
#endif /* !defined(TARGET_API_MAC_OS8) && !defined(TARGET_API_MAC_OSX) && !defined(TARGET_API_MAC_CARBON) */
|
||
|
||
#if TARGET_API_MAC_OS8 && TARGET_API_MAC_OSX
|
||
#error TARGET_API_MAC_OS8 and TARGET_API_MAC_OSX are mutually exclusive
|
||
#endif /* TARGET_API_MAC_OS8 && TARGET_API_MAC_OSX */
|
||
|
||
#if !TARGET_API_MAC_OS8 && !TARGET_API_MAC_CARBON && !TARGET_API_MAC_OSX
|
||
#error At least one of TARGET_API_MAC_* must be true
|
||
#endif /* !TARGET_API_MAC_OS8 && !TARGET_API_MAC_CARBON && !TARGET_API_MAC_OSX */
|
||
|
||
#else
|
||
#define TARGET_API_MAC_OS8 0
|
||
#define TARGET_API_MAC_CARBON 0
|
||
#define TARGET_API_MAC_OSX 0
|
||
#endif /* TARGET_OS_MAC */
|
||
|
||
/* Support source code still using TARGET_CARBON */
|
||
#ifndef TARGET_CARBON
|
||
#if TARGET_API_MAC_CARBON && !TARGET_API_MAC_OS8
|
||
#define TARGET_CARBON 1
|
||
#else
|
||
#define TARGET_CARBON 0
|
||
#endif /* TARGET_API_MAC_CARBON && !TARGET_API_MAC_OS8 */
|
||
|
||
#endif /* !defined(TARGET_CARBON) */
|
||
|
||
/* Set forCarbon to 0 if it's not already defined */
|
||
#ifndef forCarbon
|
||
#define forCarbon 0
|
||
#endif /* !defined(forCarbon) */
|
||
|
||
/****************************************************************************************************
|
||
Backward compatibility for clients expecting 2.x version on ConditionalMacros.h
|
||
|
||
GENERATINGPOWERPC - Compiler is generating PowerPC instructions
|
||
GENERATING68K - Compiler is generating 68k family instructions
|
||
GENERATING68881 - Compiler is generating mc68881 floating point instructions
|
||
GENERATINGCFM - Code being generated assumes CFM calling conventions
|
||
CFMSYSTEMCALLS - No A-traps. Systems calls are made using CFM and UPP's
|
||
PRAGMA_ALIGN_SUPPORTED - Compiler supports: #pragma options align=mac68k/power/reset
|
||
PRAGMA_IMPORT_SUPPORTED - Compiler supports: #pragma import on/off/reset
|
||
CGLUESUPPORTED - Clients can use all lowercase toolbox functions that take C strings instead of pascal strings
|
||
|
||
****************************************************************************************************/
|
||
#if !TARGET_API_MAC_CARBON
|
||
#define GENERATINGPOWERPC TARGET_CPU_PPC
|
||
#define GENERATING68K TARGET_CPU_68K
|
||
#define GENERATING68881 TARGET_RT_MAC_68881
|
||
#define GENERATINGCFM TARGET_RT_MAC_CFM
|
||
#define CFMSYSTEMCALLS TARGET_RT_MAC_CFM
|
||
#ifndef CGLUESUPPORTED
|
||
#define CGLUESUPPORTED 0
|
||
#endif /* !defined(CGLUESUPPORTED) */
|
||
|
||
#ifndef OLDROUTINELOCATIONS
|
||
#define OLDROUTINELOCATIONS 0
|
||
#endif /* !defined(OLDROUTINELOCATIONS) */
|
||
|
||
#define PRAGMA_ALIGN_SUPPORTED PRAGMA_STRUCT_ALIGN
|
||
#define PRAGMA_IMPORT_SUPPORTED PRAGMA_IMPORT
|
||
#else
|
||
/* Carbon code should not use old conditionals */
|
||
#define PRAGMA_ALIGN_SUPPORTED ..PRAGMA_ALIGN_SUPPORTED_is_obsolete..
|
||
#define GENERATINGPOWERPC ..GENERATINGPOWERPC_is_obsolete..
|
||
#define GENERATING68K ..GENERATING68K_is_obsolete..
|
||
#define GENERATING68881 ..GENERATING68881_is_obsolete..
|
||
#define GENERATINGCFM ..GENERATINGCFM_is_obsolete..
|
||
#define CFMSYSTEMCALLS ..CFMSYSTEMCALLS_is_obsolete..
|
||
#endif /* !TARGET_API_MAC_CARBON */
|
||
|
||
|
||
|
||
/****************************************************************************************************
|
||
|
||
OLDROUTINENAMES - "Old" names for Macintosh system calls are allowed in source code.
|
||
(e.g. DisposPtr instead of DisposePtr). The names of system routine
|
||
are now more sensitive to change because CFM binds by name. In the
|
||
past, system routine names were compiled out to just an A-Trap.
|
||
Macros have been added that each map an old name to its new name.
|
||
This allows old routine names to be used in existing source files,
|
||
but the macros only work if OLDROUTINENAMES is true. This support
|
||
will be removed in the near future. Thus, all source code should
|
||
be changed to use the new names! You can set OLDROUTINENAMES to false
|
||
to see if your code has any old names left in it.
|
||
|
||
****************************************************************************************************/
|
||
#ifndef OLDROUTINENAMES
|
||
#define OLDROUTINENAMES 0
|
||
#endif /* !defined(OLDROUTINENAMES) */
|
||
|
||
|
||
|
||
/****************************************************************************************************
|
||
The following macros isolate the use of 68K inlines in function prototypes.
|
||
On the Mac OS under the Classic 68K runtime, function prototypes were followed
|
||
by a list of 68K opcodes which the compiler inserted in the generated code instead
|
||
of a JSR. Under Classic 68K on the Mac OS, this macro will put the opcodes
|
||
in the right syntax. For all other OS's and runtimes the macro suppress the opcodes.
|
||
Example:
|
||
|
||
EXTERN_P void DrawPicture(PicHandle myPicture, const Rect *dstRect)
|
||
ONEWORDINLINE(0xA8F6);
|
||
|
||
****************************************************************************************************/
|
||
|
||
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
|
||
#define ONEWORDINLINE(w1) = w1
|
||
#define TWOWORDINLINE(w1,w2) = {w1,w2}
|
||
#define THREEWORDINLINE(w1,w2,w3) = {w1,w2,w3}
|
||
#define FOURWORDINLINE(w1,w2,w3,w4) = {w1,w2,w3,w4}
|
||
#define FIVEWORDINLINE(w1,w2,w3,w4,w5) = {w1,w2,w3,w4,w5}
|
||
#define SIXWORDINLINE(w1,w2,w3,w4,w5,w6) = {w1,w2,w3,w4,w5,w6}
|
||
#define SEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7) = {w1,w2,w3,w4,w5,w6,w7}
|
||
#define EIGHTWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8) = {w1,w2,w3,w4,w5,w6,w7,w8}
|
||
#define NINEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9) = {w1,w2,w3,w4,w5,w6,w7,w8,w9}
|
||
#define TENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10) = {w1,w2,w3,w4,w5,w6,w7,w8,w9,w10}
|
||
#define ELEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11) = {w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11}
|
||
#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}
|
||
#else
|
||
#define ONEWORDINLINE(w1)
|
||
#define TWOWORDINLINE(w1,w2)
|
||
#define THREEWORDINLINE(w1,w2,w3)
|
||
#define FOURWORDINLINE(w1,w2,w3,w4)
|
||
#define FIVEWORDINLINE(w1,w2,w3,w4,w5)
|
||
#define SIXWORDINLINE(w1,w2,w3,w4,w5,w6)
|
||
#define SEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7)
|
||
#define EIGHTWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8)
|
||
#define NINEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9)
|
||
#define TENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10)
|
||
#define ELEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11)
|
||
#define TWELVEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12)
|
||
#endif
|
||
|
||
|
||
/****************************************************************************************************
|
||
|
||
TARGET_CARBON - default: false. Switches all of the above as described. Overrides all others
|
||
- NOTE: If you set TARGET_CARBON to 1, then the other switches will be setup by
|
||
ConditionalMacros, and should not be set manually.
|
||
|
||
If you wish to do development for pre-Carbon Systems, you can set the following:
|
||
|
||
OPAQUE_TOOLBOX_STRUCTS - default: false. True for Carbon builds, hides struct fields.
|
||
OPAQUE_UPP_TYPES - default: false. True for Carbon builds, UPP types are unique and opaque.
|
||
ACCESSOR_CALLS_ARE_FUNCTIONS - default: false. True for Carbon builds, enables accessor functions.
|
||
CALL_NOT_IN_CARBON - default: true. False for Carbon builds, hides calls not supported in Carbon.
|
||
|
||
Specifically, if you are building a non-Carbon application (one that links against InterfaceLib)
|
||
but you wish to use some of the accessor functions, you can set ACCESSOR_CALLS_ARE_FUNCTIONS to 1
|
||
and link with CarbonAccessors.o, which implements just the accessor functions. This will help you
|
||
preserve source compatibility between your Carbon and non-Carbon application targets.
|
||
|
||
MIXEDMODE_CALLS_ARE_FUNCTIONS - deprecated.
|
||
|
||
****************************************************************************************************/
|
||
#if TARGET_API_MAC_CARBON && !TARGET_API_MAC_OS8
|
||
#ifndef OPAQUE_TOOLBOX_STRUCTS
|
||
#define OPAQUE_TOOLBOX_STRUCTS 1
|
||
#endif /* !defined(OPAQUE_TOOLBOX_STRUCTS) */
|
||
|
||
#ifndef OPAQUE_UPP_TYPES
|
||
#define OPAQUE_UPP_TYPES 1
|
||
#endif /* !defined(OPAQUE_UPP_TYPES) */
|
||
|
||
#ifndef ACCESSOR_CALLS_ARE_FUNCTIONS
|
||
#define ACCESSOR_CALLS_ARE_FUNCTIONS 1
|
||
#endif /* !defined(ACCESSOR_CALLS_ARE_FUNCTIONS) */
|
||
|
||
#ifndef CALL_NOT_IN_CARBON
|
||
#define CALL_NOT_IN_CARBON 0
|
||
#endif /* !defined(CALL_NOT_IN_CARBON) */
|
||
|
||
#ifndef MIXEDMODE_CALLS_ARE_FUNCTIONS
|
||
#define MIXEDMODE_CALLS_ARE_FUNCTIONS 1
|
||
#endif /* !defined(MIXEDMODE_CALLS_ARE_FUNCTIONS) */
|
||
|
||
#else
|
||
#ifndef OPAQUE_TOOLBOX_STRUCTS
|
||
#define OPAQUE_TOOLBOX_STRUCTS 0
|
||
#endif /* !defined(OPAQUE_TOOLBOX_STRUCTS) */
|
||
|
||
#ifndef OPAQUE_UPP_TYPES
|
||
#define OPAQUE_UPP_TYPES 0
|
||
#endif /* !defined(OPAQUE_UPP_TYPES) */
|
||
|
||
#ifndef ACCESSOR_CALLS_ARE_FUNCTIONS
|
||
#define ACCESSOR_CALLS_ARE_FUNCTIONS 0
|
||
#endif /* !defined(ACCESSOR_CALLS_ARE_FUNCTIONS) */
|
||
|
||
/*
|
||
* It's possible to have ACCESSOR_CALLS_ARE_FUNCTIONS set to true and OPAQUE_TOOLBOX_STRUCTS
|
||
* set to false, but not the other way around, so make sure the defines are not set this way.
|
||
*/
|
||
#if OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS
|
||
#error OPAQUE_TOOLBOX_STRUCTS cannot be true when ACCESSOR_CALLS_ARE_FUNCTIONS is false
|
||
#endif /* OPAQUE_TOOLBOX_STRUCTS && !ACCESSOR_CALLS_ARE_FUNCTIONS */
|
||
|
||
#ifndef CALL_NOT_IN_CARBON
|
||
#define CALL_NOT_IN_CARBON 1
|
||
#endif /* !defined(CALL_NOT_IN_CARBON) */
|
||
|
||
#ifndef MIXEDMODE_CALLS_ARE_FUNCTIONS
|
||
#define MIXEDMODE_CALLS_ARE_FUNCTIONS 0
|
||
#endif /* !defined(MIXEDMODE_CALLS_ARE_FUNCTIONS) */
|
||
|
||
#endif /* TARGET_API_MAC_CARBON && !TARGET_API_MAC_OS8 */
|
||
|
||
|
||
#if TARGET_RT_MAC_MACHO && TARGET_RT_LITTLE_ENDIAN
|
||
#define OLD_COMPONENT_GLUE 1
|
||
#endif
|
||
|
||
|
||
|
||
|
||
#endif /* __CONDITIONALMACROS__ */
|
||
|