mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-17 21:25:40 +00:00
(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:
parent
79b76e2397
commit
98ef748715
5
Makefile
5
Makefile
@ -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
|
||||||
|
@ -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))
|
||||||
|
@ -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)
|
||||||
|
@ -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
|
Loading…
Reference in New Issue
Block a user