(svn r3274) -Fix: [OSX] added JAGUAR flag to crosscompile for OSX 10.2 (codenamed jaguar)

JAGUAR and FAT_BINARY can't be used at the same time
	JAGUAR will disable network support due to missing libs in 10.2
This commit is contained in:
bjarni 2005-12-09 12:15:52 +00:00
parent 79b76e2397
commit 98ef748715
4 changed files with 50 additions and 7 deletions

View File

@ -107,6 +107,7 @@
# Special for crosscompiling there are some commands available: # Special for crosscompiling there are some commands available:
# #
# FAT_BINARY: builds a universal binary for OSX. Make sure you got both PPC and x86 libs # FAT_BINARY: builds a universal binary for OSX. Make sure you got both PPC and x86 libs
# JAGUAR: Make the binary suited for MacOS X 10.2 (codenamed jaguar). It will not include network support
# #
# ENDIAN_FORCE: forces the endian-check to give a certain result. Can be BE, LE or PREPROCESSOR. # ENDIAN_FORCE: forces the endian-check to give a certain result. Can be BE, LE or PREPROCESSOR.
# PREPROCESSOR is always used on all OSX targets and will make the preprocessor pick the right endian. # PREPROCESSOR is always used on all OSX targets and will make the preprocessor pick the right endian.
@ -514,6 +515,10 @@ ifdef OSX
LDFLAGS += -headerpad_max_install_names LDFLAGS += -headerpad_max_install_names
endif endif
endif endif
ifdef JAGUAR
# ensure that changing libpathnames will not overwrite anything in the binary
LDFLAGS += -headerpad_max_install_names
endif
ifndef DEDICATED ifndef DEDICATED
LIBS += -framework QuickTime LIBS += -framework QuickTime

View File

@ -116,6 +116,11 @@ $(MAKE_CONFIG):
$(call CONFIG_LINE,LDFLAGS_x86:=$(LDFLAGS_x86)) $(call CONFIG_LINE,LDFLAGS_x86:=$(LDFLAGS_x86))
$(call CONFIG_LINE,) $(call CONFIG_LINE,)
$(call CONFIG_LINE,\# For OSX 10.2 support)
$(call CONFIG_LINE,CFLAGS_JAGUAR:=$(CFLAGS_JAGUAR))
$(call CONFIG_LINE,LDFLAGS_JAGUAR:=$(LDFLAGS_JAGUAR))
$(call CONFIG_LINE,)
$(call CONFIG_LINE,\# For cross-compiling) $(call CONFIG_LINE,\# For cross-compiling)
$(call CONFIG_LINE,CC_TARGET:=$(CC_TARGET)) $(call CONFIG_LINE,CC_TARGET:=$(CC_TARGET))
$(call CONFIG_LINE,CC_HOST:=$(CC_HOST)) $(call CONFIG_LINE,CC_HOST:=$(CC_HOST))

View File

@ -4,7 +4,7 @@
ifdef FAT_BINARY ifdef FAT_BINARY
FAT_BINARY:=build_universal_binary FAT_BINARY:=build_universal_binary
COPY_x86_SDL_LIB:=$(Q)cp $(x86_SDL_LIB) $(OSXAPP)/Contents/lib/libSDL-x86.dylib POST_BUNDLE_BUILDING:=$(Q)cp $(x86_SDL_LIB) $(OSXAPP)/Contents/lib/libSDL-x86.dylib
endif endif
ifdef UNIVERSAL_x86_PART ifdef UNIVERSAL_x86_PART
@ -14,6 +14,17 @@ else
BUILD_OSX_BUNDLE:=build_OSX_bundle BUILD_OSX_BUNDLE:=build_OSX_bundle
endif endif
ifdef JAGUAR
JAGUAR:=jaguar
POST_BUNDLE_BUILDING:=$(Q)cp /usr/lib/libmx.A.dylib $(OSXAPP)/Contents/lib/libmx.A.dylib
endif
# MacOS X got some issues in OpenTTD, so we got a workaround target to solve them
# only network support will not be fixed this way, so we will have a binary without network support
$(JAGUAR):
$(Q)install_name_tool -change /usr/lib/libmx.A.dylib @executable_path/../lib/libmx.A.dylib $(TTD)
# building an universal binary # building an universal binary
# since we can only compile for PPC or x86 at any one time, we compile one and then # since we can only compile for PPC or x86 at any one time, we compile one and then
# we make clean and compile the other one. In the end we use lipo to join them together # we make clean and compile the other one. In the end we use lipo to join them together
@ -33,7 +44,7 @@ $(FAT_BINARY): $(TTD)
# build the bundle. OSX wants to keep apps in bundles, so we will give it one # build the bundle. OSX wants to keep apps in bundles, so we will give it one
# the good thing about bundles is that you can keep extra files in them, so we keep lng files and a data dir in it # the good thing about bundles is that you can keep extra files in them, so we keep lng files and a data dir in it
$(BUILD_OSX_BUNDLE): $(TTD) $(FAT_BINARY) $(BUILD_OSX_BUNDLE): $(TTD) $(FAT_BINARY) $(JAGUAR)
@echo '===> Building application bundle' @echo '===> Building application bundle'
$(Q)rm -fr "$(OSXAPP)" $(Q)rm -fr "$(OSXAPP)"
$(Q)mkdir -p "$(OSXAPP)"/Contents/MacOS $(Q)mkdir -p "$(OSXAPP)"/Contents/MacOS
@ -47,7 +58,7 @@ $(BUILD_OSX_BUNDLE): $(TTD) $(FAT_BINARY)
$(Q)cp data/* "$(OSXAPP)"/Contents/Data/ $(Q)cp data/* "$(OSXAPP)"/Contents/Data/
$(Q)cp lang/*.lng "$(OSXAPP)"/Contents/Lang/ $(Q)cp lang/*.lng "$(OSXAPP)"/Contents/Lang/
$(Q)cp $(TTD) "$(OSXAPP)"/Contents/MacOS/$(TTD) $(Q)cp $(TTD) "$(OSXAPP)"/Contents/MacOS/$(TTD)
$(COPY_x86_SDL_LIB) $(POST_BUNDLE_BUILDING)
# make the release disk image. Should only be used with releases and is a good and fast way to make sure to remember all the needed files # make the release disk image. Should only be used with releases and is a good and fast way to make sure to remember all the needed files
release: all release: all
@ -70,4 +81,4 @@ release: all
$(OSX): $(TTD) $(BUILD_OSX_BUNDLE) $(OSX): $(TTD) $(BUILD_OSX_BUNDLE)
.PHONY: release $(BUILD_OSX_BUNDLE) $(FAT_BINARY) .PHONY: release $(BUILD_OSX_BUNDLE) $(FAT_BINARY) $(JAGUAR)

View File

@ -29,16 +29,29 @@ $(warning Compiling a release build, that is a debug build)
endif endif
endif endif
ifdef JAGUAR
ifdef FAT_BINARY
$(error FAT_BINARY and JAGUAR can't be used at the same time)
endif
endif
# setup flags if none are defined # 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 PPC_CC
PPC_CC:=powerpc-apple-darwin8-gcc-4.0.0
endif
ifndef CFLAGS_PPC ifndef CFLAGS_PPC
CFLAGS_PPC:= -isysroot /Developer/SDKs/MacOSX10.3.9.sdk CFLAGS_PPC:= -isysroot /Developer/SDKs/MacOSX10.3.9.sdk
endif endif
ifndef LDFLAGS_PPC ifndef LDFLAGS_PPC
LDFLAGS_PPC:= -Wl,-syslibroot,/Developer/SDKs/MacOSX10.3.9.sdk LDFLAGS_PPC:= -Wl,-syslibroot,/Developer/SDKs/MacOSX10.3.9.sdk
endif endif
ifndef PPC_CC
PPC_CC:=powerpc-apple-darwin8-gcc-4.0.0
endif
ifndef CFLAGS_x86 ifndef CFLAGS_x86
CFLAGS_x86:= -isysroot /Developer/SDKs/MacOSX10.4u.sdk CFLAGS_x86:= -isysroot /Developer/SDKs/MacOSX10.4u.sdk
endif endif
@ -115,3 +128,12 @@ $(error no x86 SDL lib found)
LDFLAGS:= $(LDFLAGS_PPC) LDFLAGS:= $(LDFLAGS_PPC)
endif endif
endif endif
ifdef JAGUAR
CFLAGS:=$(CFLAGS_JAGUAR)
LDFLAGS:=$(LDFLAGS_JAGUAR)
# network support is broken is jaguar (OSX 10.2)
WITH_NETWORK:=
# crosscompiling for jaguar should always be static
STATIC:=1
endif