os/macosx/Makefile.setup
author bjarni
Wed, 22 Mar 2006 13:06:50 +0000
changeset 3294 be3b1e6b4b74
parent 3212 60517b6883c0
child 3311 56c1c502ff6d
permissions -rw-r--r--
(svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
this have the sideeffect that 10.2.8 will still have the "failure to save with certain chars in the filename bug", but at least it can compile again
2722
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
     1
# $Id: Makefile 3214 2005-11-17 19:43:37Z bjarni $
dcbf94a5ad1a (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
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
     3
# it contains code specific to MacOS X
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
     4
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
     5
ifdef RELEASE
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
     6
ifndef STATIC
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
     7
# all OSX releases needs to be static
dcbf94a5ad1a (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
dcbf94a5ad1a (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!!!)
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    10
endif
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    11
endif
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    12
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    13
ifdef RELEASE
3085
cbcafb482b75 (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
dcbf94a5ad1a (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)
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    16
endif
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    17
endif
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    18
3212
60517b6883c0 (svn r3884) renamed TRIPPLE_BINARY to TRIPLE_BINARY
bjarni
parents: 3211
diff changeset
    19
ifdef TRIPLE_BINARY
3085
cbcafb482b75 (svn r3674) -Feature: [OSX] Added support for tripple binaries (binaries optimised for G3, G5 and i686)
bjarni
parents: 3084
diff changeset
    20
ifdef DEBUG
cbcafb482b75 (svn r3674) -Feature: [OSX] Added support for tripple binaries (binaries optimised for G3, G5 and i686)
bjarni
parents: 3084
diff changeset
    21
$(error no G5 optimisation is made in debug builds, so tripple binaries aren't possible. Use UNIVERSAL_BINARY instead if you really want a universal debug build)
cbcafb482b75 (svn r3674) -Feature: [OSX] Added support for tripple binaries (binaries optimised for G3, G5 and i686)
bjarni
parents: 3084
diff changeset
    22
endif
cbcafb482b75 (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
cbcafb482b75 (svn r3674) -Feature: [OSX] Added support for tripple binaries (binaries optimised for G3, G5 and i686)
bjarni
parents: 3084
diff changeset
    24
endif
cbcafb482b75 (svn r3674) -Feature: [OSX] Added support for tripple binaries (binaries optimised for G3, G5 and i686)
bjarni
parents: 3084
diff changeset
    25
cbcafb482b75 (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
18a4eda1aec6 (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
18a4eda1aec6 (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)
18a4eda1aec6 (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
18a4eda1aec6 (svn r3273) -Fix: [OSX] PPC part of universal binaries now target 10.3 instead of 10.4
bjarni
parents: 2722
diff changeset
    30
endif
18a4eda1aec6 (svn r3273) -Fix: [OSX] PPC part of universal binaries now target 10.3 instead of 10.4
bjarni
parents: 2722
diff changeset
    31
endif
18a4eda1aec6 (svn r3273) -Fix: [OSX] PPC part of universal binaries now target 10.3 instead of 10.4
bjarni
parents: 2722
diff changeset
    32
2722
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    33
ifdef RELEASE
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    34
ifdef DEBUG
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    35
$(warning Compiling a release build, that is a debug build)
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    36
endif
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    37
endif
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    38
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    39
# setup flags if none are defined
3211
044f84240f65 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    40
ifndef CFLAGS_JAGUAR
044f84240f65 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    41
	CFLAGS_JAGUAR:= -isysroot /Developer/SDKs/MacOSX10.2.8.sdk
2722
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    42
endif
3211
044f84240f65 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    43
ifndef LDFLAGS_JAGUAR
044f84240f65 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    44
	LDFLAGS_JAGUAR:= -Wl,-syslibroot,/Developer/SDKs/MacOSX10.2.8.sdk
2722
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    45
endif
3211
044f84240f65 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    46
044f84240f65 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    47
ifndef CFLAGS_UNIVERSAL
044f84240f65 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    48
	CFLAGS_UNIVERSAL:= -isysroot /Developer/SDKs/MacOSX10.4u.sdk
044f84240f65 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    49
endif
044f84240f65 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    50
ifndef LDFLAGS_UNIVERSAL
044f84240f65 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    51
	LDFLAGS_UNIVERSAL:= -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk
2722
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    52
endif
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    53
2834
6c29ece4f24b (svn r3382) -Feature: [OSX] added the flag JAGUAR to crosscompile for OSX 10.2.8 on 10.4
bjarni
parents: 2741
diff changeset
    54
ifdef JAGUAR
3211
044f84240f65 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    55
	CFLAGS:= $(CFLAGS_JAGUAR) -arch ppc
044f84240f65 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    56
	LDFLAGS:= $(LDFLAGS_JAGUAR)
044f84240f65 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    57
endif
044f84240f65 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    58
044f84240f65 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    59
ifndef G5_FLAGS
044f84240f65 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    60
G5_FLAGS := -mtune=970 -mcpu=970 -mpowerpc-gpopt
2834
6c29ece4f24b (svn r3382) -Feature: [OSX] added the flag JAGUAR to crosscompile for OSX 10.2.8 on 10.4
bjarni
parents: 2741
diff changeset
    61
endif
6c29ece4f24b (svn r3382) -Feature: [OSX] added the flag JAGUAR to crosscompile for OSX 10.2.8 on 10.4
bjarni
parents: 2741
diff changeset
    62
3085
cbcafb482b75 (svn r3674) -Feature: [OSX] Added support for tripple binaries (binaries optimised for G3, G5 and i686)
bjarni
parents: 3084
diff changeset
    63
ifdef UNIVERSAL_BINARY
3211
044f84240f65 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    64
TARGET_CPU_FLAGS:= -arch ppc -arch i386
044f84240f65 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    65
LDFLAGS := $(LDFLAGS_UNIVERSAL) -arch ppc -arch i386
044f84240f65 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    66
CFLAGS += $(CFLAGS_UNIVERSAL)
3212
60517b6883c0 (svn r3884) renamed TRIPPLE_BINARY to TRIPLE_BINARY
bjarni
parents: 3211
diff changeset
    67
ifdef TRIPLE_BINARY
3211
044f84240f65 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    68
LDFLAGS += -arch ppc970
2722
dcbf94a5ad1a (svn r3267) -Codechange: [OSX] universal binary makefile code cleanup
bjarni
parents:
diff changeset
    69
endif
3211
044f84240f65 (svn r3882) -Codechange: [OSX] changed the way universal and tripple binaries are build
bjarni
parents: 3090
diff changeset
    70
endif
3294
be3b1e6b4b74 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    71
be3b1e6b4b74 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    72
# setting up flags to make a binary, that fits the system it builds on
be3b1e6b4b74 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    73
ifndef UNIVERSAL_BINARY
be3b1e6b4b74 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    74
	ifndef JAGUAR
be3b1e6b4b74 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    75
		ifeq ($(shell uname), Darwin)
be3b1e6b4b74 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    76
			# it's a hardware mac, not crosscompiling
be3b1e6b4b74 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    77
			# the next line fails if it got whitespace in front of it
be3b1e6b4b74 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    78
$(shell $(CC) os/macosx/G5_detector.c -o os/macosx/G5_detector)
be3b1e6b4b74 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    79
			IS_G5:=$(shell os/macosx/G5_detector)
be3b1e6b4b74 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    80
			ifeq ($(shell uname -r), 6.8)
be3b1e6b4b74 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    81
			# 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
be3b1e6b4b74 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    82
				JAGUAR:=1
be3b1e6b4b74 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    83
			endif
be3b1e6b4b74 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    84
		endif
be3b1e6b4b74 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    85
	endif
be3b1e6b4b74 (svn r4019) -Fix: [OSX] stopped using iconv for 10.2.8, since it was added in 10.3
bjarni
parents: 3212
diff changeset
    86
endif