bjarni@2722: # $Id: Makefile 3214 2005-11-17 19:43:37Z bjarni $ bjarni@2722: # This makefile is not a standalone makefile, but is called from the general one bjarni@2722: # it contains code specific to MacOS X bjarni@2722: bjarni@2722: ifdef RELEASE bjarni@2722: ifndef STATIC bjarni@2722: # all OSX releases needs to be static bjarni@2722: # end users don't tend to have the dynamic libs installed bjarni@2722: $(warning Compiling a dynamic release. It should be static unless you really know what you are doing!!!) bjarni@2722: endif bjarni@2722: endif bjarni@2722: bjarni@2722: ifdef RELEASE bjarni@3085: ifndef UNIVERSAL_BINARY bjarni@2722: $(warning Compiling a release build, that is not a universal binary) bjarni@2722: endif bjarni@2722: endif bjarni@2722: bjarni@3212: ifdef TRIPLE_BINARY bjarni@3085: ifdef DEBUG bjarni@3354: $(error no G5 optimisation is made in debug builds, so triple binaries aren't possible. Use UNIVERSAL_BINARY instead if you really want a universal debug build) bjarni@3085: endif bjarni@3085: UNIVERSAL_BINARY:=1 bjarni@3085: endif bjarni@3085: bjarni@3085: ifdef UNIVERSAL_BINARY bjarni@2728: ifndef STATIC bjarni@2728: $(warning Compiling a universal binary, that is not static. Adding static flag) bjarni@2728: STATIC:=1 bjarni@2728: endif bjarni@2728: endif bjarni@2728: bjarni@2722: ifdef RELEASE bjarni@2722: ifdef DEBUG bjarni@2722: $(warning Compiling a release build, that is a debug build) bjarni@2722: endif bjarni@2722: endif bjarni@2722: bjarni@3354: ifeq ($(shell uname), Darwin) bjarni@3354: # it's a hardware mac, not crosscompiling bjarni@3354: NATIVE_OSX:=1 bjarni@2722: endif bjarni@3211: bjarni@3354: ifndef PPC_OSX_TARGET bjarni@3354: PPC_OSX_TARGET:=10.3.9 bjarni@3211: endif bjarni@3354: ifndef i386_OSX_TARGET bjarni@3354: i386_OSX_TARGET:=10.4u bjarni@3211: endif bjarni@3211: KUDr@3900: # 4-byte bools to make YAPF happy KUDr@3900: CFLAGS_PPC += -DFOUR_BYTE_BOOL KUDr@3900: bjarni@3211: ifndef G5_FLAGS bjarni@3211: G5_FLAGS := -mtune=970 -mcpu=970 -mpowerpc-gpopt bjarni@2834: endif bjarni@2834: bjarni@3085: ifdef UNIVERSAL_BINARY bjarni@3354: OTTD_PPC:=1 bjarni@3354: OTTD_i386:=1 bjarni@3354: ifdef TRIPLE_BINARY bjarni@3354: OTTD_PPC970:=1 bjarni@3354: endif bjarni@2722: endif bjarni@3354: bjarni@3354: # if any targets have been defined by now, we are crosscompiling and we will set up paths accordingly bjarni@3354: ifdef OTTD_PPC truelight@3901: ifndef OSX_NO_SYSROOT truelight@3901: CFLAGS_PPC += -isysroot /Developer/SDKs/MacOSX$(PPC_OSX_TARGET).sdk truelight@3901: LDFLAGS_PPC += -Wl,-syslibroot,/Developer/SDKs/MacOSX$(PPC_OSX_TARGET).sdk truelight@3901: endif bjarni@3354: endif bjarni@3354: bjarni@3354: ifdef OTTD_i386 truelight@3901: ifndef OSX_NO_SYSROOT truelight@3901: CFLAGS_i386 += -isysroot /Developer/SDKs/MacOSX$(i386_OSX_TARGET).sdk truelight@3901: LDFLAGS_i386 += -Wl,-syslibroot,/Developer/SDKs/MacOSX$(i386_OSX_TARGET).sdk truelight@3901: endif bjarni@3354: endif bjarni@3354: bjarni@3354: ifdef OTTD_PPC970 bjarni@3354: ifndef OTTD_PPC bjarni@3354: CFLAGS_PPC += -isysroot /Developer/SDKs/MacOSX$(PPC_OSX_TARGET).sdk bjarni@3354: LDFLAGS_PPC += -Wl,-syslibroot,/Developer/SDKs/MacOSX$(PPC_OSX_TARGET).sdk bjarni@3354: endif bjarni@3354: endif bjarni@3354: bjarni@3354: ifdef JAGUAR bjarni@3354: CFLAGS += -isysroot /Developer/SDKs/MacOSX10.2.8.sdk bjarni@3354: LDFLAGS += -Wl,-syslibroot,/Developer/SDKs/MacOSX10.2.8.sdk bjarni@3354: OTTD_PPC:=1 bjarni@3211: endif bjarni@3294: bjarni@3294: # setting up flags to make a binary, that fits the system it builds on bjarni@3354: ifdef NATIVE_OSX bjarni@3354: ifndef UNIVERSAL_BINARY bjarni@3354: # we are not crosscompiling for other macs bjarni@3354: ifndef JAGUAR bjarni@3294: # the next line fails if it got whitespace in front of it bjarni@3294: $(shell $(CC) os/macosx/G5_detector.c -o os/macosx/G5_detector) bjarni@3294: IS_G5:=$(shell os/macosx/G5_detector) bjarni@3294: ifeq ($(shell uname -r), 6.8) bjarni@3294: # OSX 10.2.8 uses Darwin 6.8, so we better set JAGUAR so we avoid the stuff that was added in 10.3 or later bjarni@3294: JAGUAR:=1 bjarni@3354: OTTD_PPC:=1 bjarni@3294: endif bjarni@3294: endif bjarni@3294: endif bjarni@3294: endif bjarni@3354: bjarni@3354: ifdef NATIVE_OSX bjarni@3354: ifndef OTTD_PPC bjarni@3354: ifndef OTTD_i386 bjarni@3354: ifndef OTTD_PPC970 bjarni@3354: # no flags have been set for target versions of OSX, so we will set it to compile for the current host bjarni@3354: ifeq ($(shell uname -p), powerpc) bjarni@3354: ifdef IS_G5 bjarni@3354: OTTD_PPC970:=1 bjarni@3354: else bjarni@3354: OTTD_PPC:=1 bjarni@3354: endif bjarni@3354: else bjarni@3354: # we are not using a PowerPC CPU, so we assume that it's an Intel mac bjarni@3354: OTTD_i386:=1 bjarni@3354: endif bjarni@3354: endif bjarni@3354: endif bjarni@3354: endif truelight@3901: endif truelight@3901: truelight@3901: ifdef OTTD_PPC truelight@3901: MACOSX_BUILD:=1 truelight@3901: endif truelight@3901: ifdef OTTD_i386 truelight@3901: MACOSX_BUILD:=1 truelight@3901: endif truelight@3901: ifdef OTTD_PPC970 truelight@3901: MACOSX_BUILD:=1 truelight@3901: endif truelight@3901: