os/macosx/Makefile.setup
author bjarni
Wed, 22 Mar 2006 13:06:50 +0000
changeset 3294 6aab2bd8b924
parent 3212 39c32be8404c
child 3311 138e38fa6fda
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
# $Id: Makefile 3214 2005-11-17 19:43:37Z bjarni $
# This makefile is not a standalone makefile, but is called from the general one
# it contains code specific to MacOS X

ifdef RELEASE
ifndef STATIC
# all OSX releases needs to be static
# end users don't tend to have the dynamic libs installed
$(warning Compiling a dynamic release. It should be static unless you really know what you are doing!!!)
endif
endif

ifdef RELEASE
ifndef UNIVERSAL_BINARY
$(warning Compiling a release build, that is not a universal binary)
endif
endif

ifdef TRIPLE_BINARY
ifdef DEBUG
$(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)
endif
UNIVERSAL_BINARY:=1
endif

ifdef UNIVERSAL_BINARY
ifndef STATIC
$(warning Compiling a universal binary, that is not static. Adding static flag)
STATIC:=1
endif
endif

ifdef RELEASE
ifdef DEBUG
$(warning Compiling a release build, that is a debug build)
endif
endif

# setup flags if none are defined
ifndef CFLAGS_JAGUAR
	CFLAGS_JAGUAR:= -isysroot /Developer/SDKs/MacOSX10.2.8.sdk
endif
ifndef LDFLAGS_JAGUAR
	LDFLAGS_JAGUAR:= -Wl,-syslibroot,/Developer/SDKs/MacOSX10.2.8.sdk
endif

ifndef CFLAGS_UNIVERSAL
	CFLAGS_UNIVERSAL:= -isysroot /Developer/SDKs/MacOSX10.4u.sdk
endif
ifndef LDFLAGS_UNIVERSAL
	LDFLAGS_UNIVERSAL:= -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk
endif

ifdef JAGUAR
	CFLAGS:= $(CFLAGS_JAGUAR) -arch ppc
	LDFLAGS:= $(LDFLAGS_JAGUAR)
endif

ifndef G5_FLAGS
G5_FLAGS := -mtune=970 -mcpu=970 -mpowerpc-gpopt
endif

ifdef UNIVERSAL_BINARY
TARGET_CPU_FLAGS:= -arch ppc -arch i386
LDFLAGS := $(LDFLAGS_UNIVERSAL) -arch ppc -arch i386
CFLAGS += $(CFLAGS_UNIVERSAL)
ifdef TRIPLE_BINARY
LDFLAGS += -arch ppc970
endif
endif

# setting up flags to make a binary, that fits the system it builds on
ifndef UNIVERSAL_BINARY
	ifndef JAGUAR
		ifeq ($(shell uname), Darwin)
			# it's a hardware mac, not crosscompiling
			# the next line fails if it got whitespace in front of it
$(shell $(CC) os/macosx/G5_detector.c -o os/macosx/G5_detector)
			IS_G5:=$(shell os/macosx/G5_detector)
			ifeq ($(shell uname -r), 6.8)
			# 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
				JAGUAR:=1
			endif
		endif
	endif
endif