mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-04 06:00:15 +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:
|
||||
#
|
||||
# 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.
|
||||
# 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
|
||||
endif
|
||||
endif
|
||||
ifdef JAGUAR
|
||||
# ensure that changing libpathnames will not overwrite anything in the binary
|
||||
LDFLAGS += -headerpad_max_install_names
|
||||
endif
|
||||
|
||||
ifndef DEDICATED
|
||||
LIBS += -framework QuickTime
|
||||
|
@ -116,6 +116,11 @@ $(MAKE_CONFIG):
|
||||
$(call CONFIG_LINE,LDFLAGS_x86:=$(LDFLAGS_x86))
|
||||
$(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,CC_TARGET:=$(CC_TARGET))
|
||||
$(call CONFIG_LINE,CC_HOST:=$(CC_HOST))
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
ifdef FAT_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
|
||||
|
||||
ifdef UNIVERSAL_x86_PART
|
||||
@ -14,6 +14,17 @@ else
|
||||
BUILD_OSX_BUNDLE:=build_OSX_bundle
|
||||
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
|
||||
# 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
|
||||
@ -33,7 +44,7 @@ $(FAT_BINARY): $(TTD)
|
||||
# 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
|
||||
|
||||
$(BUILD_OSX_BUNDLE): $(TTD) $(FAT_BINARY)
|
||||
$(BUILD_OSX_BUNDLE): $(TTD) $(FAT_BINARY) $(JAGUAR)
|
||||
@echo '===> Building application bundle'
|
||||
$(Q)rm -fr "$(OSXAPP)"
|
||||
$(Q)mkdir -p "$(OSXAPP)"/Contents/MacOS
|
||||
@ -47,7 +58,7 @@ $(BUILD_OSX_BUNDLE): $(TTD) $(FAT_BINARY)
|
||||
$(Q)cp data/* "$(OSXAPP)"/Contents/Data/
|
||||
$(Q)cp lang/*.lng "$(OSXAPP)"/Contents/Lang/
|
||||
$(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
|
||||
release: all
|
||||
@ -70,4 +81,4 @@ release: all
|
||||
|
||||
$(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
|
||||
|
||||
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
|
||||
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
|
||||
CFLAGS_PPC:= -isysroot /Developer/SDKs/MacOSX10.3.9.sdk
|
||||
endif
|
||||
ifndef LDFLAGS_PPC
|
||||
LDFLAGS_PPC:= -Wl,-syslibroot,/Developer/SDKs/MacOSX10.3.9.sdk
|
||||
endif
|
||||
ifndef PPC_CC
|
||||
PPC_CC:=powerpc-apple-darwin8-gcc-4.0.0
|
||||
endif
|
||||
ifndef CFLAGS_x86
|
||||
CFLAGS_x86:= -isysroot /Developer/SDKs/MacOSX10.4u.sdk
|
||||
endif
|
||||
@ -115,3 +128,12 @@ $(error no x86 SDL lib found)
|
||||
LDFLAGS:= $(LDFLAGS_PPC)
|
||||
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