summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/conditionalmacros.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/conditionalmacros.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'common/quicktime_win32/conditionalmacros.h')
-rw-r--r--common/quicktime_win32/conditionalmacros.h1866
1 files changed, 1866 insertions, 0 deletions
diff --git a/common/quicktime_win32/conditionalmacros.h b/common/quicktime_win32/conditionalmacros.h
new file mode 100644
index 0000000..2c18904
--- /dev/null
+++ b/common/quicktime_win32/conditionalmacros.h
@@ -0,0 +1,1866 @@
+/*
+ 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 �#pragma import reset� */
+ #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 [email protected]
+ 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__ */
+