645 lines
25 KiB
C
645 lines
25 KiB
C
/*
|
|
* Copyright (c) 2000-2014 by Apple Inc.. All rights reserved.
|
|
*
|
|
* @APPLE_LICENSE_HEADER_START@
|
|
*
|
|
* This file contains Original Code and/or Modifications of Original Code
|
|
* as defined in and that are subject to the Apple Public Source License
|
|
* Version 2.0 (the 'License'). You may not use this file except in
|
|
* compliance with the License. Please obtain a copy of the License at
|
|
* http://www.opensource.apple.com/apsl/ and read it before using this
|
|
* file.
|
|
*
|
|
* The Original Code and all software distributed under the License are
|
|
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
|
* EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
|
|
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
|
|
* FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
|
|
* Please see the License for the specific language governing rights and
|
|
* limitations under the License.
|
|
*
|
|
* @APPLE_LICENSE_HEADER_END@
|
|
*/
|
|
|
|
/*
|
|
File: TargetConditionals.h
|
|
|
|
Contains: Autoconfiguration of TARGET_ conditionals for Mac OS X and iPhone
|
|
|
|
Note: TargetConditionals.h in 3.4 Universal Interfaces works
|
|
with all compilers. This header only recognizes compilers
|
|
known to run on Mac OS X.
|
|
|
|
*/
|
|
|
|
#ifndef __TARGETCONDITIONALS__
|
|
#define __TARGETCONDITIONALS__
|
|
|
|
/*
|
|
*
|
|
* 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 for 32-bit mode
|
|
* TARGET_CPU_PPC64 - Compiler is generating PowerPC instructions for 64-bit mode
|
|
* TARGET_CPU_68K - Compiler is generating 680x0 instructions
|
|
* TARGET_CPU_X86 - Compiler is generating x86 instructions for 32-bit mode
|
|
* TARGET_CPU_X86_64 - Compiler is generating x86 instructions for 64-bit mode
|
|
* TARGET_CPU_ARM - Compiler is generating ARM instructions for 32-bit mode
|
|
* TARGET_CPU_ARM64 - Compiler is generating ARM instructions for 64-bit mode
|
|
* 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. Indention is used to show which conditionals are evolutionary subclasses.
|
|
*
|
|
* The MAC/WIN32/UNIX conditionals are mutually exclusive.
|
|
* The IOS/TV/WATCH conditionals are mutually exclusive.
|
|
*
|
|
*
|
|
* TARGET_OS_WIN32 - Generated code will run under WIN32 API
|
|
* TARGET_OS_WINDOWS - Generated code will run under Windows
|
|
* TARGET_OS_UNIX - Generated code will run under some Unix (not OSX)
|
|
* TARGET_OS_LINUX - Generated code will run under Linux
|
|
* TARGET_OS_MAC - Generated code will run under Mac OS X variant
|
|
* TARGET_OS_OSX - Generated code will run under OS X devices
|
|
* TARGET_OS_IPHONE - Generated code for firmware, devices, or simulator
|
|
* TARGET_OS_IOS - Generated code will run under iOS
|
|
* TARGET_OS_TV - Generated code will run under Apple TV OS
|
|
* TARGET_OS_WATCH - Generated code will run under Apple Watch OS
|
|
* TARGET_OS_BRIDGE - Generated code will run under Bridge devices
|
|
* TARGET_OS_MACCATALYST - Generated code will run under macOS
|
|
* TARGET_OS_DRIVERKIT - Generated code will run under macOS, iOS, Apple TV OS, or Apple Watch OS
|
|
* TARGET_OS_SIMULATOR - Generated code will run under a simulator
|
|
*
|
|
* TARGET_OS_EMBEDDED - DEPRECATED: Use TARGET_OS_IPHONE and/or TARGET_OS_SIMULATOR instead
|
|
* TARGET_IPHONE_SIMULATOR - DEPRECATED: Same as TARGET_OS_SIMULATOR
|
|
* TARGET_OS_NANO - DEPRECATED: Same as TARGET_OS_WATCH
|
|
*
|
|
* +---------------------------------------------------------------------------+
|
|
* | TARGET_OS_MAC |
|
|
* | +-----+ +-------------------------------------------------+ +-----------+ |
|
|
* | | | | TARGET_OS_IPHONE | | | |
|
|
* | | | | +-----------------+ +----+ +-------+ +--------+ | | | |
|
|
* | | | | | IOS | | | | | | | | | | |
|
|
* | | OSX | | | +-------------+ | | TV | | WATCH | | BRIDGE | | | DRIVERKIT | |
|
|
* | | | | | | MACCATALYST | | | | | | | | | | | |
|
|
* | | | | | +-------------+ | | | | | | | | | | |
|
|
* | | | | +-----------------+ +----+ +-------+ +--------+ | | | |
|
|
* | +-----+ +-------------------------------------------------+ +-----------+ |
|
|
* +---------------------------------------------------------------------------+
|
|
|
|
* 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. Mac OS X supports CFM and mach-o).
|
|
*
|
|
* 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_64_BIT - Generated code uses 64-bit pointers
|
|
* 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/dlyd runtime is used
|
|
*/
|
|
|
|
/*
|
|
* TARGET_OS conditionals can be enabled via clang preprocessor extensions:
|
|
*
|
|
* __is_target_arch
|
|
* __is_target_vendor
|
|
* __is_target_os
|
|
* __is_target_environment
|
|
*
|
|
* "-target=x86_64-apple-ios12-macabi"
|
|
* TARGET_OS_MAC=1
|
|
* TARGET_OS_IPHONE=1
|
|
* TARGET_OS_IOS=1
|
|
* TARGET_OS_MACCATALYST=1
|
|
*
|
|
* "-target=x86_64-apple-ios12-simulator"
|
|
* TARGET_OS_MAC=1
|
|
* TARGET_OS_IPHONE=1
|
|
* TARGET_OS_IOS=1
|
|
* TARGET_OS_SIMULATOR=1
|
|
*
|
|
* DYNAMIC_TARGETS_ENABLED indicates that the core TARGET_OS macros were enabled via clang preprocessor extensions.
|
|
* If this value is not set, the macro enablements will fall back to the static behavior.
|
|
* It is disabled by default.
|
|
*/
|
|
|
|
#if defined(__has_builtin)
|
|
#if __has_builtin(__is_target_arch)
|
|
#if __has_builtin(__is_target_vendor)
|
|
#if __has_builtin(__is_target_os)
|
|
#if __has_builtin(__is_target_environment)
|
|
|
|
/* "-target=x86_64-apple-ios12-macabi" */
|
|
/* "-target=arm64-apple-ios12-macabi" */
|
|
/* "-target=arm64e-apple-ios12-macabi" */
|
|
#if (__is_target_arch(x86_64) || __is_target_arch(arm64) || __is_target_arch(arm64e)) && __is_target_vendor(apple) && __is_target_os(ios) && __is_target_environment(macabi)
|
|
#define TARGET_OS_MAC 1
|
|
#define TARGET_OS_OSX 0
|
|
#define TARGET_OS_IPHONE 1
|
|
#define TARGET_OS_IOS 1
|
|
#define TARGET_OS_WATCH 0
|
|
|
|
#define TARGET_OS_TV 0
|
|
#define TARGET_OS_SIMULATOR 0
|
|
#define TARGET_OS_EMBEDDED 0
|
|
#define TARGET_OS_RTKIT 0
|
|
#define TARGET_OS_MACCATALYST 1
|
|
#define TARGET_OS_MACCATALYST 1
|
|
|
|
#define TARGET_OS_VISION 0
|
|
|
|
|
|
#ifndef TARGET_OS_UIKITFORMAC
|
|
#define TARGET_OS_UIKITFORMAC 1
|
|
#endif
|
|
#define TARGET_OS_DRIVERKIT 0
|
|
#define DYNAMIC_TARGETS_ENABLED 1
|
|
#endif
|
|
|
|
/* "-target=x86_64-apple-ios12-simulator" */
|
|
/* "-target=arm64-apple-ios12-simulator" */
|
|
/* "-target=arm64e-apple-ios12-simulator" */
|
|
#if (__is_target_arch(x86_64) || __is_target_arch(arm64) || __is_target_arch(arm64e)) && __is_target_vendor(apple) && __is_target_os(ios) && __is_target_environment(simulator)
|
|
#define TARGET_OS_MAC 1
|
|
#define TARGET_OS_OSX 0
|
|
#define TARGET_OS_IPHONE 1
|
|
#define TARGET_OS_IOS 1
|
|
#define TARGET_OS_WATCH 0
|
|
|
|
#define TARGET_OS_TV 0
|
|
#define TARGET_OS_SIMULATOR 1
|
|
#define TARGET_OS_EMBEDDED 0
|
|
#define TARGET_OS_RTKIT 0
|
|
#define TARGET_OS_MACCATALYST 0
|
|
#define TARGET_OS_MACCATALYST 0
|
|
|
|
#define TARGET_OS_VISION 0
|
|
|
|
|
|
#ifndef TARGET_OS_UIKITFORMAC
|
|
#define TARGET_OS_UIKITFORMAC 0
|
|
#endif
|
|
#define TARGET_OS_DRIVERKIT 0
|
|
#define DYNAMIC_TARGETS_ENABLED 1
|
|
#endif
|
|
|
|
|
|
|
|
/* "-target=arm64e-apple-xros1.0" */
|
|
#if (__is_target_arch(arm64e) || __is_target_arch(arm64)) && __is_target_vendor(apple) && __is_target_os(xros)
|
|
#define TARGET_OS_MAC 1
|
|
#define TARGET_OS_OSX 0
|
|
#define TARGET_OS_IPHONE 1
|
|
#define TARGET_OS_IOS 1
|
|
#define TARGET_OS_WATCH 0
|
|
|
|
#define TARGET_OS_TV 0
|
|
#define TARGET_OS_SIMULATOR 0
|
|
#define TARGET_OS_EMBEDDED 1
|
|
#define TARGET_OS_RTKIT 0
|
|
#define TARGET_OS_MACCATALYST 0
|
|
#define TARGET_OS_MACCATALYST 0
|
|
|
|
#define TARGET_OS_VISION 1
|
|
|
|
|
|
#ifndef TARGET_OS_UIKITFORMAC
|
|
#define TARGET_OS_UIKITFORMAC 0
|
|
#endif
|
|
#define TARGET_OS_DRIVERKIT 0
|
|
#define DYNAMIC_TARGETS_ENABLED 1
|
|
#endif
|
|
|
|
/* "-target=arm64e-apple-xros1.0-simulator" */
|
|
#if (__is_target_arch(x86_64) || __is_target_arch(arm64) || __is_target_arch(arm64e)) && __is_target_vendor(apple) && __is_target_os(xros) && __is_target_environment(simulator)
|
|
#define TARGET_OS_MAC 1
|
|
#define TARGET_OS_OSX 0
|
|
#define TARGET_OS_IPHONE 1
|
|
#define TARGET_OS_IOS 1
|
|
#define TARGET_OS_WATCH 0
|
|
|
|
#define TARGET_OS_TV 0
|
|
#define TARGET_OS_SIMULATOR 1
|
|
#define TARGET_OS_EMBEDDED 0
|
|
#define TARGET_OS_RTKIT 0
|
|
#define TARGET_OS_MACCATALYST 0
|
|
#define TARGET_OS_MACCATALYST 0
|
|
|
|
#define TARGET_OS_VISION 1
|
|
|
|
|
|
#ifndef TARGET_OS_UIKITFORMAC
|
|
#define TARGET_OS_UIKITFORMAC 0
|
|
#endif
|
|
#define TARGET_OS_DRIVERKIT 0
|
|
#define DYNAMIC_TARGETS_ENABLED 1
|
|
#endif
|
|
|
|
|
|
|
|
//FIXME: Workaround for rdar://100536146
|
|
#if (__is_target_vendor(apple) && defined(__APPLE_EXCLAVECORE__) && __APPLE_EXCLAVECORE__)
|
|
#define TARGET_OS_MAC 0
|
|
#define TARGET_OS_OSX 0
|
|
#define TARGET_OS_IPHONE 0
|
|
#define TARGET_OS_IOS 0
|
|
#define TARGET_OS_WATCH 0
|
|
|
|
#define TARGET_OS_TV 0
|
|
#define TARGET_OS_SIMULATOR 0
|
|
#define TARGET_OS_EMBEDDED 0
|
|
#define TARGET_OS_RTKIT 0
|
|
#define TARGET_OS_MACCATALYST 0
|
|
#define TARGET_OS_MACCATALYST 0
|
|
|
|
#define TARGET_OS_VISION 0
|
|
|
|
|
|
#ifndef TARGET_OS_UIKITFORMAC
|
|
#define TARGET_OS_UIKITFORMAC 0
|
|
#endif
|
|
#define TARGET_OS_DRIVERKIT 0
|
|
#define DYNAMIC_TARGETS_ENABLED 1
|
|
#endif
|
|
|
|
|
|
|
|
//FIXME: Workaround for rdar://100536146
|
|
#if (__is_target_vendor(apple) && defined(__APPLE_EXCLAVEKIT__) && __APPLE_EXCLAVEKIT__)
|
|
#define TARGET_OS_MAC 1
|
|
#define TARGET_OS_OSX 0
|
|
#define TARGET_OS_IPHONE 0
|
|
#define TARGET_OS_IOS 0
|
|
#define TARGET_OS_WATCH 0
|
|
|
|
#define TARGET_OS_TV 0
|
|
#define TARGET_OS_SIMULATOR 0
|
|
#define TARGET_OS_EMBEDDED 0
|
|
#define TARGET_OS_RTKIT 0
|
|
#define TARGET_OS_MACCATALYST 0
|
|
#define TARGET_OS_MACCATALYST 0
|
|
|
|
#define TARGET_OS_VISION 0
|
|
|
|
|
|
#ifndef TARGET_OS_UIKITFORMAC
|
|
#define TARGET_OS_UIKITFORMAC 0
|
|
#endif
|
|
#define TARGET_OS_DRIVERKIT 0
|
|
#define DYNAMIC_TARGETS_ENABLED 1
|
|
#endif
|
|
|
|
/* "-target=x86_64-apple-driverkit19.0" */
|
|
/* "-target=arm64-apple-driverkit19.0" */
|
|
/* "-target=arm64e-apple-driverkit19.0" */
|
|
#if __is_target_vendor(apple) && __is_target_os(driverkit)
|
|
#define TARGET_OS_MAC 1
|
|
#define TARGET_OS_OSX 0
|
|
#define TARGET_OS_IPHONE 0
|
|
#define TARGET_OS_IOS 0
|
|
#define TARGET_OS_WATCH 0
|
|
|
|
#define TARGET_OS_TV 0
|
|
#define TARGET_OS_SIMULATOR 0
|
|
#define TARGET_OS_EMBEDDED 0
|
|
#define TARGET_OS_RTKIT 0
|
|
#define TARGET_OS_MACCATALYST 0
|
|
#define TARGET_OS_MACCATALYST 0
|
|
|
|
#define TARGET_OS_VISION 0
|
|
|
|
|
|
#ifndef TARGET_OS_UIKITFORMAC
|
|
#define TARGET_OS_UIKITFORMAC 0
|
|
#endif
|
|
#define TARGET_OS_DRIVERKIT 1
|
|
#define DYNAMIC_TARGETS_ENABLED 1
|
|
#endif
|
|
|
|
#endif /* #if __has_builtin(__is_target_environment) */
|
|
#endif /* #if __has_builtin(__is_target_os) */
|
|
#endif /* #if __has_builtin(__is_target_vendor) */
|
|
#endif /* #if __has_builtin(__is_target_arch) */
|
|
#endif /* #if defined(__has_builtin) */
|
|
|
|
|
|
#ifndef DYNAMIC_TARGETS_ENABLED
|
|
#define DYNAMIC_TARGETS_ENABLED 0
|
|
#endif /* DYNAMIC_TARGETS_ENABLED */
|
|
|
|
/*
|
|
* gcc based compiler used on Mac OS X
|
|
*/
|
|
#if defined(__GNUC__) && ( defined(__APPLE_CPP__) || defined(__APPLE_CC__) || defined(__MACOS_CLASSIC__) )
|
|
#define TARGET_OS_WIN32 0
|
|
#define TARGET_OS_WINDOWS 0
|
|
#define TARGET_OS_UNIX 0
|
|
#define TARGET_OS_LINUX 0
|
|
|
|
#if !DYNAMIC_TARGETS_ENABLED
|
|
#define TARGET_OS_MAC 1
|
|
#define TARGET_OS_OSX 1
|
|
#define TARGET_OS_IPHONE 0
|
|
#define TARGET_OS_IOS 0
|
|
#define TARGET_OS_WATCH 0
|
|
|
|
#define TARGET_OS_TV 0
|
|
#define TARGET_OS_MACCATALYST 0
|
|
#define TARGET_OS_MACCATALYST 0
|
|
|
|
|
|
|
|
#define TARGET_OS_VISION 0
|
|
#ifndef TARGET_OS_UIKITFORMAC
|
|
#define TARGET_OS_UIKITFORMAC 0
|
|
#endif
|
|
#define TARGET_OS_SIMULATOR 0
|
|
#define TARGET_OS_EMBEDDED 0
|
|
#define TARGET_OS_RTKIT 0
|
|
#define TARGET_OS_DRIVERKIT 0
|
|
#endif
|
|
|
|
#define TARGET_IPHONE_SIMULATOR TARGET_OS_SIMULATOR /* deprecated */
|
|
#define TARGET_OS_NANO TARGET_OS_WATCH /* deprecated */
|
|
|
|
#define TARGET_ABI_USES_IOS_VALUES (!TARGET_CPU_X86_64 || (TARGET_OS_IPHONE && !TARGET_OS_MACCATALYST))
|
|
#if defined(__ppc__)
|
|
#define TARGET_CPU_PPC 1
|
|
#define TARGET_CPU_PPC64 0
|
|
#define TARGET_CPU_68K 0
|
|
#define TARGET_CPU_X86 0
|
|
#define TARGET_CPU_X86_64 0
|
|
#define TARGET_CPU_ARM 0
|
|
#define TARGET_CPU_ARM64 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
|
|
#define TARGET_RT_64_BIT 0
|
|
#ifdef __MACOS_CLASSIC__
|
|
#define TARGET_RT_MAC_CFM 1
|
|
#define TARGET_RT_MAC_MACHO 0
|
|
#else
|
|
#define TARGET_RT_MAC_CFM 0
|
|
#define TARGET_RT_MAC_MACHO 1
|
|
#endif
|
|
#elif defined(__ppc64__)
|
|
#define TARGET_CPU_PPC 0
|
|
#define TARGET_CPU_PPC64 1
|
|
#define TARGET_CPU_68K 0
|
|
#define TARGET_CPU_X86 0
|
|
#define TARGET_CPU_X86_64 0
|
|
#define TARGET_CPU_ARM 0
|
|
#define TARGET_CPU_ARM64 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
|
|
#define TARGET_RT_64_BIT 1
|
|
#define TARGET_RT_MAC_CFM 0
|
|
#define TARGET_RT_MAC_MACHO 1
|
|
#elif defined(__i386__)
|
|
#define TARGET_CPU_PPC 0
|
|
#define TARGET_CPU_PPC64 0
|
|
#define TARGET_CPU_68K 0
|
|
#define TARGET_CPU_X86 1
|
|
#define TARGET_CPU_X86_64 0
|
|
#define TARGET_CPU_ARM 0
|
|
#define TARGET_CPU_ARM64 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_LITTLE_ENDIAN 1
|
|
#define TARGET_RT_BIG_ENDIAN 0
|
|
#define TARGET_RT_64_BIT 0
|
|
#elif defined(__x86_64__)
|
|
#define TARGET_CPU_PPC 0
|
|
#define TARGET_CPU_PPC64 0
|
|
#define TARGET_CPU_68K 0
|
|
#define TARGET_CPU_X86 0
|
|
#define TARGET_CPU_X86_64 1
|
|
#define TARGET_CPU_ARM 0
|
|
#define TARGET_CPU_ARM64 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_LITTLE_ENDIAN 1
|
|
#define TARGET_RT_BIG_ENDIAN 0
|
|
#define TARGET_RT_64_BIT 1
|
|
#elif defined(__arm__)
|
|
#define TARGET_CPU_PPC 0
|
|
#define TARGET_CPU_PPC64 0
|
|
#define TARGET_CPU_68K 0
|
|
#define TARGET_CPU_X86 0
|
|
#define TARGET_CPU_X86_64 0
|
|
#define TARGET_CPU_ARM 1
|
|
#define TARGET_CPU_ARM64 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_LITTLE_ENDIAN 1
|
|
#define TARGET_RT_BIG_ENDIAN 0
|
|
#define TARGET_RT_64_BIT 0
|
|
#elif defined(__arm64__)
|
|
#define TARGET_CPU_PPC 0
|
|
#define TARGET_CPU_PPC64 0
|
|
#define TARGET_CPU_68K 0
|
|
#define TARGET_CPU_X86 0
|
|
#define TARGET_CPU_X86_64 0
|
|
#define TARGET_CPU_ARM 0
|
|
#define TARGET_CPU_ARM64 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_LITTLE_ENDIAN 1
|
|
#define TARGET_RT_BIG_ENDIAN 0
|
|
#if __LP64__
|
|
#define TARGET_RT_64_BIT 1
|
|
#else
|
|
#define TARGET_RT_64_BIT 0
|
|
#endif
|
|
#else
|
|
#error unrecognized GNU C compiler
|
|
#endif
|
|
|
|
|
|
|
|
/*
|
|
* CodeWarrior compiler from Metrowerks/Motorola
|
|
*/
|
|
#elif defined(__MWERKS__)
|
|
#define TARGET_OS_MAC 1
|
|
#define TARGET_OS_WIN32 0
|
|
#define TARGET_OS_WINDOWS 0
|
|
#define TARGET_OS_UNIX 0
|
|
#define TARGET_OS_LINUX 0
|
|
#define TARGET_OS_EMBEDDED 0
|
|
#if defined(__POWERPC__)
|
|
#define TARGET_CPU_PPC 1
|
|
#define TARGET_CPU_PPC64 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
|
|
#define TARGET_RT_LITTLE_ENDIAN 0
|
|
#define TARGET_RT_BIG_ENDIAN 1
|
|
#elif defined(__INTEL__)
|
|
#define TARGET_CPU_PPC 0
|
|
#define TARGET_CPU_PPC64 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_LITTLE_ENDIAN 1
|
|
#define TARGET_RT_BIG_ENDIAN 0
|
|
#else
|
|
#error unknown Metrowerks CPU type
|
|
#endif
|
|
#define TARGET_RT_64_BIT 0
|
|
#ifdef __MACH__
|
|
#define TARGET_RT_MAC_CFM 0
|
|
#define TARGET_RT_MAC_MACHO 1
|
|
#else
|
|
#define TARGET_RT_MAC_CFM 1
|
|
#define TARGET_RT_MAC_MACHO 0
|
|
#endif
|
|
|
|
/*
|
|
* unknown compiler
|
|
*/
|
|
#else
|
|
#if defined(TARGET_CPU_PPC) && TARGET_CPU_PPC
|
|
#define TARGET_CPU_PPC64 0
|
|
#define TARGET_CPU_68K 0
|
|
#define TARGET_CPU_X86 0
|
|
#define TARGET_CPU_X86_64 0
|
|
#define TARGET_CPU_ARM 0
|
|
#define TARGET_CPU_ARM64 0
|
|
#define TARGET_CPU_MIPS 0
|
|
#define TARGET_CPU_SPARC 0
|
|
#define TARGET_CPU_ALPHA 0
|
|
#elif defined(TARGET_CPU_PPC64) && TARGET_CPU_PPC64
|
|
#define TARGET_CPU_PPC 0
|
|
#define TARGET_CPU_68K 0
|
|
#define TARGET_CPU_X86 0
|
|
#define TARGET_CPU_X86_64 0
|
|
#define TARGET_CPU_ARM 0
|
|
#define TARGET_CPU_ARM64 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_PPC64 0
|
|
#define TARGET_CPU_X86_64 0
|
|
#define TARGET_CPU_68K 0
|
|
#define TARGET_CPU_ARM 0
|
|
#define TARGET_CPU_ARM64 0
|
|
#define TARGET_CPU_MIPS 0
|
|
#define TARGET_CPU_SPARC 0
|
|
#define TARGET_CPU_ALPHA 0
|
|
#elif defined(TARGET_CPU_X86_64) && TARGET_CPU_X86_64
|
|
#define TARGET_CPU_PPC 0
|
|
#define TARGET_CPU_PPC64 0
|
|
#define TARGET_CPU_X86 0
|
|
#define TARGET_CPU_68K 0
|
|
#define TARGET_CPU_ARM 0
|
|
#define TARGET_CPU_ARM64 0
|
|
#define TARGET_CPU_MIPS 0
|
|
#define TARGET_CPU_SPARC 0
|
|
#define TARGET_CPU_ALPHA 0
|
|
#elif defined(TARGET_CPU_ARM) && TARGET_CPU_ARM
|
|
#define TARGET_CPU_PPC 0
|
|
#define TARGET_CPU_PPC64 0
|
|
#define TARGET_CPU_X86 0
|
|
#define TARGET_CPU_X86_64 0
|
|
#define TARGET_CPU_68K 0
|
|
#define TARGET_CPU_ARM64 0
|
|
#define TARGET_CPU_MIPS 0
|
|
#define TARGET_CPU_SPARC 0
|
|
#define TARGET_CPU_ALPHA 0
|
|
#elif defined(TARGET_CPU_ARM64) && TARGET_CPU_ARM64
|
|
#define TARGET_CPU_PPC 0
|
|
#define TARGET_CPU_PPC64 0
|
|
#define TARGET_CPU_X86 0
|
|
#define TARGET_CPU_X86_64 0
|
|
#define TARGET_CPU_68K 0
|
|
#define TARGET_CPU_ARM 0
|
|
#define TARGET_CPU_MIPS 0
|
|
#define TARGET_CPU_SPARC 0
|
|
#define TARGET_CPU_ALPHA 0
|
|
#else
|
|
/*
|
|
NOTE: If your compiler errors out here then support for your compiler
|
|
has not yet been added to TargetConditionals.h.
|
|
|
|
TargetConditionals.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. -DTARGET_CPU_MIPS=1 -DTARGET_OS_UNIX=1)
|
|
|
|
The long term solution is to add a new case to this file which
|
|
auto detects your compiler and sets up the TARGET_ conditionals.
|
|
Then submit the changes to Apple Computer.
|
|
*/
|
|
#error TargetConditionals.h: unknown compiler (see comment above)
|
|
#define TARGET_CPU_PPC 0
|
|
#define TARGET_CPU_68K 0
|
|
#define TARGET_CPU_X86 0
|
|
#define TARGET_CPU_ARM 0
|
|
#define TARGET_CPU_ARM64 0
|
|
#define TARGET_CPU_MIPS 0
|
|
#define TARGET_CPU_SPARC 0
|
|
#define TARGET_CPU_ALPHA 0
|
|
#endif
|
|
#define TARGET_OS_MAC 1
|
|
#define TARGET_OS_WIN32 0
|
|
#define TARGET_OS_WINDOWS 0
|
|
#define TARGET_OS_UNIX 0
|
|
#define TARGET_OS_LINUX 0
|
|
#define TARGET_OS_EMBEDDED 0
|
|
#if TARGET_CPU_PPC || TARGET_CPU_PPC64
|
|
#define TARGET_RT_BIG_ENDIAN 1
|
|
#define TARGET_RT_LITTLE_ENDIAN 0
|
|
#else
|
|
#define TARGET_RT_BIG_ENDIAN 0
|
|
#define TARGET_RT_LITTLE_ENDIAN 1
|
|
#endif
|
|
#if TARGET_CPU_PPC64 || TARGET_CPU_X86_64
|
|
#define TARGET_RT_64_BIT 1
|
|
#else
|
|
#define TARGET_RT_64_BIT 0
|
|
#endif
|
|
#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
|
|
|
|
#endif
|
|
|
|
#endif /* __TARGETCONDITIONALS__ */
|