[vlc-commits] commit: extras/package/macosx/ub.sh: Allow building without an arch, and remove redundancy. (Pierre d'Herbemont )

git at videolan.org git at videolan.org
Tue Jun 22 02:20:53 CEST 2010


vlc/vlc-1.1 | branch: master | Pierre d'Herbemont <pdherbemont at free.fr> | Tue Jun 22 02:19:15 2010 +0200| [051ef22f1d89b78693c0e6bf8c4e575284c48f0d] | committer: Pierre d'Herbemont 

extras/package/macosx/ub.sh: Allow building without an arch, and remove redundancy.

> http://git.videolan.org/gitweb.cgi/vlc/vlc-1.1.git/?a=commit;h=051ef22f1d89b78693c0e6bf8c4e575284c48f0d
---

 extras/package/macosx/ub.sh |  130 +++++++++++++++++++++++++++++++++----------
 1 files changed, 101 insertions(+), 29 deletions(-)

diff --git a/extras/package/macosx/ub.sh b/extras/package/macosx/ub.sh
index a4ad009..5920502 100644
--- a/extras/package/macosx/ub.sh
+++ b/extras/package/macosx/ub.sh
@@ -1,6 +1,7 @@
 #!/bin/bash
+set -e
 
-# This script allows you to create a Universal Binary of VLC.app. It requires 
+# This script allows you to create a Universal Binary of VLC.app. It requires
 # pre-compiled binaries for Intel-, Intel64- and PowerPC-based Macs; no sources.
 # PPC64 is not supported right now, but could be added with little effort.
 # Using different OS X SDKs for both platforms is absolutely fine of course.
@@ -9,44 +10,115 @@
 
 # INTELROOT == path to VLC.app compiled on an Intel-based Mac (e.g. jones).
 # INTEL64ROOT == path to VLC.app compiled in 64bit mode (e.g. on jones with -m64).
-INTELROOT=/Applications/VLC.app
-INTEL64ROOT=/Users/fpk/VLC-release.app
 # PPCROOT   == path to VLC.app compiled on a PowerPC-based Mac (e.g. veda).
-PPCROOT=/Volumes/vlc-1.0.2/VLC.app
+# PPCROOT=/Volumes/vlc-1.0.2/VLC.app
 # Note that these roots only require read-access and won't be changed at all.
 
 # UBROOT    == path to a VLC.app bundle which will contain the Universal Binary.
-# Note that you should empty the following folders: lib, modules
-# and remove the VLC binary in MacOS
-UBROOT=/Users/fpk/VLC.app
 
-for i in `ls $INTELROOT/Contents/MacOS/lib/`
+SRCROOT=`dirname $0`/../../..
+WD=`pwd`
+cd $SRCROOT
+SRCROOT=`pwd`
+cd $WD
+
+#############################################
+# Config
+
+INTELROOT=$SRCROOT/build32/VLC-release.app
+INTEL64ROOT=$SRCROOT/build64/VLC-release.app
+# PPCROOT
+UBROOT=$SRCROOT/build-fat/VLC.app
+
+#
+#############################################
+
+echo "Creating VLC in $UBROOT"
+rm -Rf $UBROOT
+cp -Rf $INTEL64ROOT $UBROOT
+
+LIBS=Contents/MacOS/lib
+PLUGINS=Contents/MacOS/plugins
+rm -Rf $SRCROOT/build-fat/VLC.app/$LIBS/*
+rm -Rf $SRCROOT/build-fat/VLC.app/Contents/MacOS/VLC
+rm -Rf $SRCROOT/build-fat/VLC.app/$PLUGINS/*
+
+function do_lipo {
+    file="$1"
+    files=""
+    if [ "x$PPCROOT" != "x" ]; then
+        if [ -e "$PPCROOT/$file" ]; then
+            files="$PPCROOT/$file $files"
+        fi
+    fi
+    if [ "x$INTELROOT" != "x" ]; then
+        if [ -e "$INTELROOT/$file" ]; then
+            files="$INTELROOT/$file $files"
+        fi
+    fi
+    if [ "x$INTEL64ROOT" != "x" ]; then
+        if [ -e "$INTEL64ROOT/$file" ]; then
+            files="$INTEL64ROOT/$file $files"
+        fi
+    fi
+    if [ "x$files" != "x" ]; then
+        lipo $files -create -output $UBROOT/$file
+    fi;
+}
+
+echo "Installing libs"
+for i in `ls $INTELROOT/$LIBS/ | grep *.dylib`
 do
-        echo $i
-        lipo $INTELROOT/Contents/MacOS/lib/$i $INTEL64ROOT/Contents/MacOS/lib/$i $PPCROOT/Contents/MacOS/lib/$i -create -output $UBROOT/Contents/MacOS/lib/$i
+    do_lipo $LIBS/$i
 done
-for i in `ls $INTELROOT/Contents/MacOS/modules/`
+
+echo "Installing modules"
+for i in `ls $INTELROOT/$PLUGINS/ | grep *.dylib`
 do
-        echo $i
-        lipo $INTELROOT/Contents/MacOS/modules/$i $INTEL64ROOT/Contents/MacOS/modules/$i $PPCROOT/Contents/MacOS/modules/$i -create -output $UBROOT/Contents/MacOS/modules/$i
+    do_lipo $PLUGINS/$i
 done
-lipo $INTELROOT/Contents/MacOS/VLC $INTEL64ROOT/Contents/MacOS/VLC $PPCROOT/Contents/MacOS/VLC -create -output $UBROOT/Contents/MacOS/VLC
+
+
+echo "Installing VLC"
+do_lipo Contents/MacOS/VLC
+
+echo "Installing Extra modules"
 
 # The following fixes modules, which aren't available on all platforms
-lipo $INTELROOT/Contents/MacOS/lib/libSDL_image.0.dylib $PPCROOT/Contents/MacOS/lib/libSDL_image.0.dylib -create -output $UBROOT/Contents/MacOS/lib/libSDL_image.0.dylib
-lipo $INTELROOT/Contents/MacOS/lib/libSDL-1.3.0.dylib $PPCROOT/Contents/MacOS/lib/libSDL-1.3.0.dylib -create -output $UBROOT/Contents/MacOS/lib/libSDL-1.3.0.dylib
-lipo $INTELROOT/Contents/MacOS/lib/libjpeg.7.dylib $PPCROOT/Contents/MacOS/lib/libjpeg.7.dylib -create -output $UBROOT/Contents/MacOS/lib/libjpeg.7.dylib
-lipo $INTELROOT/Contents/MacOS/lib/libtiff.3.dylib $PPCROOT/Contents/MacOS/lib/libtiff.3.dylib -create -output $UBROOT/Contents/MacOS/lib/libtiff.3.dylib
-lipo $INTELROOT/Contents/MacOS/modules/libsdl_image_plugin.dylib $PPCROOT/Contents/MacOS/modules/libsdl_image_plugin.dylib -create -output $UBROOT/Contents/MacOS/modules/libsdl_image_plugin.dylib
-lipo $INTELROOT/Contents/MacOS/modules/libquartztext_plugin.dylib $PPCROOT/Contents/MacOS/modules/libquartztext_plugin.dylib -create -output $UBROOT/Contents/MacOS/modules/libquartztext_plugin.dylib
-lipo $INTELROOT/Contents/MacOS/modules/libgoom_plugin.dylib $PPCROOT/Contents/MacOS/modules/libgoom_plugin.dylib -create -output $UBROOT/Contents/MacOS/modules/libgoom_plugin.dylib
-cp $INTELROOT/Contents/MacOS/modules/*mmx* $UBROOT/Contents/MacOS/modules/
-cp $INTELROOT/Contents/MacOS/modules/*sse* $UBROOT/Contents/MacOS/modules/
-cp $INTELROOT/Contents/MacOS/modules/*3dn* $UBROOT/Contents/MacOS/modules/
-cp $PPCROOT/Contents/MacOS/modules/*altivec* $UBROOT/Contents/MacOS/modules/
-cp $PPCROOT/Contents/MacOS/lib/libvlc.dylib $UBROOT/Contents/MacOS/lib/
-cp $PPCROOT/Contents/MacOS/lib/libvlccore.dylib $UBROOT/Contents/MacOS/lib/
-
-# Now, you need to copy the resulting UBROOT bundle into VLC's build directory 
+do_lipo $LIBS/libSDL_image.0.dylib
+do_lipo $LIBS/libtiff.3.dylib
+do_lipo $LIBS/libtiff.3.dylib
+do_lipo $PLUGINS/libsdl_image_plugin.dylib
+do_lipo $PLUGINS/libquartztext_plugin.dylib
+do_lipo $PLUGINS/libgoom_plugin.dylib
+if [ "x$INTELROOT" != "x" ]; then
+    cp $INTELROOT/$PLUGINS/*mmx* $UBROOT/$PLUGINS/
+    cp $INTELROOT/$PLUGINS/*3dn* $UBROOT/$PLUGINS/
+fi
+if [ "x$INTEL64ROOT" != "x" ]; then
+    cp $INTEL64ROOT/$PLUGINS/*sse* $UBROOT/$PLUGINS/
+fi
+if [ "x$PPCROOT" != "x" ]; then
+    cp $PPCROOT/Contents/MacOS/modules/*altivec* $UBROOT/Contents/MacOS/modules/
+    cp $PPCROOT/Contents/MacOS/lib/libvlc.dylib $UBROOT/Contents/MacOS/lib/
+    cp $PPCROOT/Contents/MacOS/lib/libvlccore.dylib $UBROOT/Contents/MacOS/lib/
+fi
+
+
+echo "Copying plugins.dat"
+set +x
+
+if [ "x$PPCROOT" != "x" ]; then
+    cp $PPCROOT/$PLUGINS/plugins-*.dat $UBROOT/$PLUGINS/
+fi
+if [ "x$INTELROOT" != "x" ]; then
+    cp $INTELROOT/$PLUGINS/plugins-*.dat $UBROOT/$PLUGINS/
+fi
+if [ "x$INTEL64ROOT" != "x" ]; then
+    cp $INTEL64ROOT/$PLUGINS/plugins-*.dat $UBROOT/$PLUGINS/
+fi
+
+
+# Now, you need to copy the resulting UBROOT bundle into VLC's build directory
 # and make sure it is named "VLC-release.app".
 # Afterwards, run 'make package-macosx' and follow release_howto.txt in /doc



More information about the vlc-commits mailing list