#define UseExtendedThingResource 1
#include <CoreServices/CoreServices.r>
// this is a define used to indicate that a component has no static
data that would mean
// that no more than one instance could be open at a time - never
been true for AUs
#ifndef cmpThreadSafeOnMac
#define cmpThreadSafeOnMac 0x10000000
#endif
#undef TARGET_REZ_MAC_PPC
#ifdef ppc_YES
#define TARGET_REZ_MAC_PPC 1
#else
#define TARGET_REZ_MAC_PPC 0
#endif
#undef TARGET_REZ_MAC_X86
#ifdef i386_YES
#define TARGET_REZ_MAC_X86 1
#else
#define TARGET_REZ_MAC_X86 0
#endif
//HF
#undef TARGET_REZ_MAC_X86_64
#ifdef x86_64_YES
#define TARGET_REZ_MAC_X86_64 1
#else
#define TARGET_REZ_MAC_X86_64 0
#endif
#undef TARGET_REZ_MAC_PPC64
#ifdef ppc64_YES
#define TARGET_REZ_MAC_PPC64 1
#else
#define TARGET_REZ_MAC_PPC64 0
#endif
#if TARGET_OS_MAC
//for quad fat binaries
#ifdef TARGET_REZ_MAC_PPC && TARGET_REZ_MAC_X86 &&
TARGET_REZ_MAC_X86_64 && TARGET_REZ_MAC_PPC64
#define TARGET_REZ_FAT_COMPONENTS_4 1
#define Target_PlatformType platformPowerPCNativeEntryPoint
#define Target_SecondPlatformType platformIA32NativeEntryPoint
#define Target_ThirdPlatformType platformX86_64NativeEntryPoint
#define Target_FourthPlatformType platformPowerPC64NativeEntryPoint
//for double fat binaries
#elif TARGET_REZ_MAC_PPC && TARGET_REZ_MAC_X86
#define TARGET_REZ_FAT_COMPONENTS_2 1
#define Target_PlatformType platformPowerPCNativeEntryPoint
#define Target_SecondPlatformType platformIA32NativeEntryPoint
//for single arch binaries
#elif TARGET_REZ_MAC_X86
#define Target_PlatformType platformIA32NativeEntryPoint
#elif TARGET_REZ_MAC_X86_64
#define Target_PlatformType platformX86_64NativeEntryPoint
#elif TARGET_REZ_MAC_PPC64
#define Target_PlatformType platformPowerPC64NativeEntryPoint
#else
#define Target_PlatformType platformPowerPCNativeEntryPoint
#endif
#define Target_CodeResType 'dlle'
#define TARGET_REZ_USE_DLLE 1
#else
#error get a real platform type
#endif // not TARGET_OS_MAC
#ifndef TARGET_REZ_FAT_COMPONENTS_2
#define TARGET_REZ_FAT_COMPONENTS_2 0
#endif
#ifndef TARGET_REZ_FAT_COMPONENTS_4
#define TARGET_REZ_FAT_COMPONENTS_4 0
#endif
//
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
resource 'STR ' (RES_ID, purgeable) {
NAME
};
resource 'STR ' (RES_ID + 1, purgeable) {
DESCRIPTION
};
resource 'dlle' (RES_ID) {
ENTRY_POINT
};
//
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
resource 'thng' (RES_ID, NAME) {
COMP_TYPE,
COMP_SUBTYPE,
COMP_MANUF,
0, 0, 0, 0, // no 68K
'STR ', RES_ID,
'STR ', RES_ID + 1,
0, 0, /* icon */
VERSION,
componentHasMultiplePlatforms | componentDoAutoVersion,
0,
{
cmpThreadSafeOnMac,
Target_CodeResType, RES_ID,
Target_PlatformType,
#if TARGET_REZ_FAT_COMPONENTS_2
cmpThreadSafeOnMac,
Target_CodeResType, RES_ID,
Target_SecondPlatformType,
#elif TARGET_REZ_FAT_COMPONENTS_4
cmpThreadSafeOnMac,
Target_CodeResType, RES_ID,
Target_SecondPlatformType,
cmpThreadSafeOnMac,
Target_CodeResType, RES_ID,
Target_ThirdPlatformType,
cmpThreadSafeOnMac,
Target_CodeResType, RES_ID,
Target_FourthPlatformType,
#endif
}
};
#undef RES_ID
#undef COMP_TYPE
#undef COMP_SUBTYPE
#undef COMP_MANUF
#undef VERSION
#undef NAME
#undef DESCRIPTION
#undef ENTRY_POINT