(svn r3262) -Fix: [OSX] universal binaries can now include the dynamic SDL lib into the bundle

This commit is contained in:
bjarni 2005-12-06 09:27:42 +00:00
parent 6023d6bfbe
commit c2153e7419
3 changed files with 19 additions and 3 deletions

View File

@ -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

View File

@ -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)

View File

@ -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