summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbjarni <bjarni@openttd.org>2005-12-06 09:27:42 +0000
committerbjarni <bjarni@openttd.org>2005-12-06 09:27:42 +0000
commitc2153e7419673e5096b196a9b380a4234d464e3e (patch)
tree4ba3970f99ec1415b93974ea8cedfa94d3bbc470
parent6023d6bfbef03f63ddd08a847c1007ab2bd8b25a (diff)
downloadopenttd-c2153e7419673e5096b196a9b380a4234d464e3e.tar.xz
(svn r3262) -Fix: [OSX] universal binaries can now include the dynamic SDL lib into the bundle
-rw-r--r--Makefile13
-rw-r--r--makefiledir/Makefile.config_writer3
-rw-r--r--os/macosx/Makefile6
3 files changed, 19 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index a77f7c1b5..57b7ea827 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 442eae12a..362757e07 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 e3c953057..07f8722db 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