From 1a93bcb5bb0bf733ad74d8e192478e9e4643ca7a Mon Sep 17 00:00:00 2001 From: bjarni Date: Tue, 6 Dec 2005 09:27:42 +0000 Subject: [PATCH] (svn r3262) -Fix: [OSX] universal binaries can now include the dynamic SDL lib into the bundle --- Makefile | 13 +++++++++++++ makefiledir/Makefile.config_writer | 3 ++- os/macosx/Makefile | 6 ++++-- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index a77f7c1b58..57b7ea827a 100644 --- a/Makefile +++ b/Makefile @@ -177,6 +177,7 @@ ifdef UNIVERSAL_OTHER_HALF LDFLAGS = $(LDFLAGS_UNI) SDL-CONFIG = $(SDL-CONFIG_UNI) LIBPNG-CONFIG = $(LIBPNG-CONFIG_UNI) + LIBS:= endif # this is used if there aren't any Makefile.config @@ -419,6 +420,15 @@ ifdef DEDICATED CDEFS += -DDEDICATED endif +ifdef OSX +ifdef STATIC +ifdef UNIVERSAL_OTHER_HALF + STATIC:= + DYNAMIC_SDL_IN_STATIC:=1 +endif +endif +endif + # SDL config ifdef WITH_SDL CDEFS += -DWITH_SDL @@ -430,6 +440,9 @@ LIBS += $(shell $(SDL-CONFIG) --libs) endif endif +ifdef DYNAMIC_SDL_IN_STATIC +STATIC:=1 +endif # zlib config ifdef WITH_ZLIB diff --git a/makefiledir/Makefile.config_writer b/makefiledir/Makefile.config_writer index 442eae12aa..362757e075 100644 --- a/makefiledir/Makefile.config_writer +++ b/makefiledir/Makefile.config_writer @@ -74,10 +74,11 @@ $(MAKE_CONFIG): $(call CONFIG_LINE,STATIC_ZLIB_PATH:=$(STATIC_ZLIB_PATH)) $(call CONFIG_LINE,) - $(call CONFIG_LINE,\# Lib paths for OSX. If you do not know what they do, do not touch them) + $(call CONFIG_LINE,\# Lib paths for OSX. Read os/MacOSX/Makefile for more info) $(call CONFIG_LINE,OSX_LIB_PATH:=$(OSX_LIB_PATH)) $(call CONFIG_LINE,OSX_LOCAL_LIB_PATH:=$(OSX_LOCAL_LIB_PATH)) $(call CONFIG_LINE,OSX_CHANGE_LIB_PATH:=$(OSX_CHANGE_LIB_PATH)) + $(call CONFIG_LINE,x86_SDL_LIB:=$(x86_SDL_LIB)) $(call CONFIG_LINE,) $(call CONFIG_LINE,\# OS flags) diff --git a/os/macosx/Makefile b/os/macosx/Makefile index e3c9530575..07f8722dbe 100644 --- a/os/macosx/Makefile +++ b/os/macosx/Makefile @@ -4,6 +4,7 @@ ifdef BUILD_UNIVERSAL_BINARY BUILD_UNIVERSAL_BINARY:=build_universal_binary +COPY_x86_SDL_LIB:=$(Q)cp $(x86_SDL_LIB) $(OSXAPP)/Contents/lib/libSDL-x86.dylib endif # setting the default vars for making universal binaries @@ -42,13 +43,12 @@ $(BUILD_UNIVERSAL_BINARY): $(TTD) @echo '===> Cleaning up to build for the other architecture' $(Q)make clean $(Q)make UNIVERSAL_OTHER_HALF:=1 + $(Q)install_name_tool -change $(x86_SDL_LIB) @executable_path/../lib/libSDL-x86.dylib $(TTD) $(Q)cp $(TTD) temp_binary_dir/$(TTD)_b @echo '===> Joining binaries into one universal one' $(Q)lipo temp_binary_dir/$(TTD)_a temp_binary_dir/$(TTD)_b -create -output $(TTD) $(Q)rm -rf temp_binary_dir - - # 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 @@ -58,12 +58,14 @@ $(BUILD_OSX_BUNDLE): $(TTD) $(BUILD_UNIVERSAL_BINARY) $(Q)mkdir -p "$(OSXAPP)"/Contents/Resources $(Q)mkdir -p "$(OSXAPP)"/Contents/Data $(Q)mkdir -p "$(OSXAPP)"/Contents/Lang + $(Q)mkdir -p "$(OSXAPP)"/Contents/lib $(Q)echo "APPL????" > "$(OSXAPP)"/Contents/PkgInfo $(Q)cp os/macosx/openttd.icns "$(OSXAPP)"/Contents/Resources/openttd.icns $(Q)os/macosx/plistgen.sh "$(OSXAPP)" "$(REV)" $(Q)cp data/* "$(OSXAPP)"/Contents/Data/ $(Q)cp lang/*.lng "$(OSXAPP)"/Contents/Lang/ $(Q)cp $(TTD) "$(OSXAPP)"/Contents/MacOS/$(TTD) + $(COPY_x86_SDL_LIB) # 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