os/macosx/Makefile.setup
author tron
Tue, 25 Apr 2006 07:32:33 +0000
changeset 3657 eb28d97d3d18
parent 3354 245157a5eafe
child 3900 2c84ed52709d
permissions -rw-r--r--
(svn r4572) Remove vehicle_leave_tile_proc
There's exactly one implemented function (unbarring a level crossing) and one place where it can be triggered (a train leaves a level crossing)
It's a bit overkill, so just handle this one case where it can happen
2722
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
     1
# $Id: Makefile 3214 2005-11-17 19:43:37Z bjarni $
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
     2
# This makefile is not a standalone makefile, but is called from the general one
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
     3
# it contains code specific to MacOS X
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
     4
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
     5
ifdef RELEASE
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
     6
ifndef STATIC
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
     7
# all OSX releases needs to be static
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
     8
# end users don't tend to have the dynamic libs installed
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
     9
$(warning Compiling a dynamic release. It should be static unless you really know what you are doing!!!)
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    10
endif
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    11
endif
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    12
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    13
ifdef RELEASE
3085
d56874235364 (svn r3674) -Feature: [OSX] Added support for tripple binaries (binaries optimised for G3, G5 and i686)
bjarni
parents: 3084
diff changeset
    14
ifndef UNIVERSAL_BINARY
2722
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    15
$(warning Compiling a release build, that is not a universal binary)
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    16
endif
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    17
endif
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    18
3212
39c32be8404c (svn r3884) renamed TRIPPLE_BINARY to TRIPLE_BINARY
bjarni
parents: 3211
diff changeset
    19
ifdef TRIPLE_BINARY
3085
d56874235364 (svn r3674) -Feature: [OSX] Added support for tripple binaries (binaries optimised for G3, G5 and i686)
bjarni
parents: 3084
diff changeset
    20
ifdef DEBUG
3354
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    21
$(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)
3085
d56874235364 (svn r3674) -Feature: [OSX] Added support for tripple binaries (binaries optimised for G3, G5 and i686)
bjarni
parents: 3084
diff changeset
    22
endif
d56874235364 (svn r3674) -Feature: [OSX] Added support for tripple binaries (binaries optimised for G3, G5 and i686)
bjarni
parents: 3084
diff changeset
    23
UNIVERSAL_BINARY:=1
d56874235364 (svn r3674) -Feature: [OSX] Added support for tripple binaries (binaries optimised for G3, G5 and i686)
bjarni
parents: 3084
diff changeset
    24
endif
d56874235364 (svn r3674) -Feature: [OSX] Added support for tripple binaries (binaries optimised for G3, G5 and i686)
bjarni
parents: 3084
diff changeset
    25
d56874235364 (svn r3674) -Feature: [OSX] Added support for tripple binaries (binaries optimised for G3, G5 and i686)
bjarni
parents: 3084
diff changeset
    26
ifdef UNIVERSAL_BINARY
2728
8f50c839cd17 (svn r3273) -Fix: [OSX] PPC part of universal binaries now target 10.3 instead of 10.4
bjarni
parents: 2722
diff changeset
    27
ifndef STATIC
8f50c839cd17 (svn r3273) -Fix: [OSX] PPC part of universal binaries now target 10.3 instead of 10.4
bjarni
parents: 2722
diff changeset
    28
$(warning Compiling a universal binary, that is not static. Adding static flag)
8f50c839cd17 (svn r3273) -Fix: [OSX] PPC part of universal binaries now target 10.3 instead of 10.4
bjarni
parents: 2722
diff changeset
    29
STATIC:=1
8f50c839cd17 (svn r3273) -Fix: [OSX] PPC part of universal binaries now target 10.3 instead of 10.4
bjarni
parents: 2722
diff changeset
    30
endif
8f50c839cd17 (svn r3273) -Fix: [OSX] PPC part of universal binaries now target 10.3 instead of 10.4
bjarni
parents: 2722
diff changeset
    31
endif
8f50c839cd17 (svn r3273) -Fix: [OSX] PPC part of universal binaries now target 10.3 instead of 10.4
bjarni
parents: 2722
diff changeset
    32
2722
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    33
ifdef RELEASE
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    34
ifdef DEBUG
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    35
$(warning Compiling a release build, that is a debug build)
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    36
endif
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    37
endif
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    38
3354
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    39
ifeq ($(shell uname), Darwin)
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    40
	# it's a hardware mac, not crosscompiling
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    41
	NATIVE_OSX:=1
2722
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    42
endif
3211
a0f00b66cfad (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    43
3354
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    44
ifndef PPC_OSX_TARGET
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    45
PPC_OSX_TARGET:=10.3.9
3211
a0f00b66cfad (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    46
endif
3354
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    47
ifndef i386_OSX_TARGET
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    48
i386_OSX_TARGET:=10.4u
3211
a0f00b66cfad (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    49
endif
a0f00b66cfad (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    50
a0f00b66cfad (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    51
ifndef G5_FLAGS
a0f00b66cfad (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    52
G5_FLAGS := -mtune=970 -mcpu=970 -mpowerpc-gpopt
2834
edb722907b73 (svn r3382) -Feature: [OSX] added the flag JAGUAR to crosscompile for OSX 10.2.8 on 10.4
bjarni
parents: 2741
diff changeset
    53
endif
edb722907b73 (svn r3382) -Feature: [OSX] added the flag JAGUAR to crosscompile for OSX 10.2.8 on 10.4
bjarni
parents: 2741
diff changeset
    54
3085
d56874235364 (svn r3674) -Feature: [OSX] Added support for tripple binaries (binaries optimised for G3, G5 and i686)
bjarni
parents: 3084
diff changeset
    55
ifdef UNIVERSAL_BINARY
3354
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    56
	OTTD_PPC:=1
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    57
	OTTD_i386:=1
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    58
	ifdef TRIPLE_BINARY
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    59
		OTTD_PPC970:=1
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    60
	endif
2722
d2ab10ffc5e7 (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    61
endif
3354
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    62
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    63
# if any targets have been defined by now, we are crosscompiling and we will set up paths accordingly
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    64
ifdef OTTD_PPC
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    65
	CFLAGS_PPC   += -isysroot /Developer/SDKs/MacOSX$(PPC_OSX_TARGET).sdk
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    66
	LDFLAGS_PPC  += -Wl,-syslibroot,/Developer/SDKs/MacOSX$(PPC_OSX_TARGET).sdk
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    67
endif
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    68
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    69
ifdef OTTD_i386
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    70
	CFLAGS_i386  += -isysroot /Developer/SDKs/MacOSX$(i386_OSX_TARGET).sdk
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    71
	LDFLAGS_i386 += -Wl,-syslibroot,/Developer/SDKs/MacOSX$(i386_OSX_TARGET).sdk
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    72
endif
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    73
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    74
ifdef OTTD_PPC970
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    75
	ifndef OTTD_PPC
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    76
		CFLAGS_PPC   += -isysroot /Developer/SDKs/MacOSX$(PPC_OSX_TARGET).sdk
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    77
		LDFLAGS_PPC  += -Wl,-syslibroot,/Developer/SDKs/MacOSX$(PPC_OSX_TARGET).sdk
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    78
	endif
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    79
endif
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    80
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    81
ifdef JAGUAR
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    82
	CFLAGS  += -isysroot /Developer/SDKs/MacOSX10.2.8.sdk
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    83
	LDFLAGS += -Wl,-syslibroot,/Developer/SDKs/MacOSX10.2.8.sdk
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    84
	OTTD_PPC:=1
3211
a0f00b66cfad (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    85
endif
3294
6aab2bd8b924 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    86
6aab2bd8b924 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    87
# setting up flags to make a binary, that fits the system it builds on
3354
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    88
ifdef NATIVE_OSX
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    89
	ifndef UNIVERSAL_BINARY
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    90
		# we are not crosscompiling for other macs
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    91
		ifndef JAGUAR
3294
6aab2bd8b924 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    92
			# the next line fails if it got whitespace in front of it
6aab2bd8b924 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    93
$(shell $(CC) os/macosx/G5_detector.c -o os/macosx/G5_detector)
6aab2bd8b924 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    94
			IS_G5:=$(shell os/macosx/G5_detector)
6aab2bd8b924 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    95
			ifeq ($(shell uname -r), 6.8)
6aab2bd8b924 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    96
			# 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
6aab2bd8b924 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    97
				JAGUAR:=1
3354
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
    98
				OTTD_PPC:=1
3294
6aab2bd8b924 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    99
			endif
6aab2bd8b924 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
   100
		endif
6aab2bd8b924 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
   101
	endif
6aab2bd8b924 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
   102
endif
3354
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
   103
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
   104
ifdef NATIVE_OSX
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
   105
	ifndef OTTD_PPC
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
   106
		ifndef OTTD_i386
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
   107
			ifndef OTTD_PPC970
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
   108
				# no flags have been set for target versions of OSX, so we will set it to compile for the current host
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
   109
				ifeq ($(shell uname -p), powerpc)
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
   110
					ifdef IS_G5
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
   111
						OTTD_PPC970:=1
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
   112
					else
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
   113
						OTTD_PPC:=1
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
   114
					endif
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
   115
				else
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
   116
					# we are not using a PowerPC CPU, so we assume that it's an Intel mac
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
   117
					OTTD_i386:=1
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
   118
				endif
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
   119
			endif
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
   120
		endif
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
   121
	endif
245157a5eafe (svn r4149) -Codechange: [OSX] rewrite of how universal binaries are compiled
bjarni
parents: 3313
diff changeset
   122
endif