X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=tools%2Fosx_packaging%2Fosx_build;h=3e9b587c332b2ed9df072d26febeabf92a63bed9;hb=952b8e1d74aef71815a945e95c2b4641fd1d961b;hp=e8d52f26a3def609da08f7a10bf07d7b48d75732;hpb=31ad7236b0d2fab5c82affc4daabf3fec8db275d;p=ardour.git diff --git a/tools/osx_packaging/osx_build b/tools/osx_packaging/osx_build index e8d52f26a3..3e9b587c33 100755 --- a/tools/osx_packaging/osx_build +++ b/tools/osx_packaging/osx_build @@ -20,12 +20,13 @@ MIXBUS32C= WITH_HARVID=1 WITH_HARRISON_LV2= WITH_X42_LV2= -WITH_LADSPA=1 STRIP=1 PRINT_SYSDEPS= WITH_NLS= : ${HARRISONCHANNELSTRIP=harrison_channelstrip} +: ${HARRISONLV2=harrison_lv2s-n} +: ${HARRISONDSPURL=http://www.harrisonconsoles.com/plugins/releases/public} . ../define_versions.sh @@ -39,20 +40,22 @@ while [ $# -gt 0 ] ; do --sae) SAE=1 ; - WITH_LADSPA=1; STRIP= ; PRODUCT_PKG_DIR=ArdourSAE ; APPNAME=Ardour ; + BUNDLENAME=Ardour${major_version} ; + lower_case_appname=ardour; shift ;; --mixbus) MIXBUS=1; WITH_HARRISON_LV2=1 ; WITH_X42_LV2=1 ; WITH_NLS=1 ; SAE= ; - WITH_LADSPA=; STRIP= ; PRODUCT_PKG_DIR=Mixbus; APPNAME=Mixbus ; + BUNDLENAME=Mixbus${major_version} ; + lower_case_appname=mixbus; shift ;; --mixbus32c) MIXBUS=1; MIXBUS32C=1; @@ -60,33 +63,32 @@ while [ $# -gt 0 ] ; do WITH_X42_LV2=1 ; WITH_NLS=1 ; SAE= ; - WITH_LADSPA=; STRIP= ; PRODUCT_PKG_DIR=Mixbus32C; - APPNAME=Mixbus32C-${major_version} ; - major_version="" + lower_case_appname=mixbus32c; + APPNAME=Mixbus32C ; + BUNDLENAME=Mixbus32C-${major_version} ; shift ;; --public) SAE= ; - WITH_LADSPA=1; WITH_HARRISON_LV2=1 ; WITH_X42_LV2=1 ; PRODUCT_PKG_DIR=Ardour; APPNAME=Ardour ; + BUNDLENAME=Ardour${major_version} ; + lower_case_appname=ardour; shift ;; --allinone) SAE= ; - WITH_LADSPA=1; STRIP= ; PRODUCT_PKG_DIR=Ardour ; shift ;; - --test) SAE= ; WITH_LADSPA=; STRIP= ; shift ;; + --test) SAE= ; STRIP= ; shift ;; # # specific build flags # --noharvid) WITH_HARVID= ; shift ;; - --noladspa) WITH_LADSPA= ; shift ;; --nostrip) STRIP= ; shift ;; --sysdeps) PRINT_SYSDEPS=1; shift ;; --nls) WITH_NLS=1 ; shift ;; @@ -120,7 +122,7 @@ fi # setup directory structure -APPDIR=${APPNAME}${major_version}.app +APPDIR=${BUNDLENAME}.app APPROOT=$APPDIR/Contents Frameworks=$APPROOT/lib Resources=$APPROOT/Resources @@ -145,6 +147,7 @@ Templates=$Shared/templates PatchFiles=$Shared/patchfiles LuaScripts=$Shared/scripts MackieControl=$Shared/mcp +OSC=$Shared/osc Themes=$Shared/themes if [ x$PRINT_SYSDEPS != x ] ; then @@ -181,40 +184,21 @@ mkdir -p $Templates mkdir -p $Frameworks/modules mkdir -p $Etc mkdir -p $MackieControl +mkdir -p $OSC mkdir -p $PatchFiles mkdir -p $LuaScripts mkdir -p $Themes -# maybe set variables -env="" -if test x$SAE != x ; then - appname="Ardour${major_version}-SAE" - EXECUTABLE=${appname} - env="$envARDOUR_SAEtrue" - # - # current default for SAE version is German keyboard layout without a keypad - # - env="$envARDOUR_KEYBOARD_LAYOUTde-nokeypad" - env="$envARDOUR_UI_CONFardour3_ui_sae.conf" -elif test x$MIXBUS != x ; then - appname=$APPNAME - EXECUTABLE=${appname}${major_version} - env="$envARDOUR_MIXBUStrue" - # - # current default for MIXBUS version is US keyboard layout without a keypad - # - env="$envARDOUR_KEYBOARD_LAYOUTus-nokeypad" - env="$envARDOUR_UI_CONFardour3_ui.conf" -else - appname="Ardour${major_version}" - EXECUTABLE=${appname} -fi + + +EXECUTABLE=${BUNDLENAME} # # if we're not going to bundle JACK, make sure we can find # jack in the places where it might be # +env="" env="$envPATH/usr/local/bin:/opt/bin:/usr/bin:/bin:/usr/sbin:/sbin" env="$envDYLIB_FALLBACK_LIBRARY_PATH/usr/local/lib:/opt/lib" @@ -226,7 +210,7 @@ sed -e "s?@ENV@?$env?g" \ -e "s?@VERSION@?$release_version?g" \ -e "s?@INFOSTRING@?$info_string?g" \ -e "s?@IDSUFFIX@?$EXECUTABLE?g" \ - -e "s?@BUNDLENAME@?${APPNAME}${major_version}?g" \ + -e "s?@BUNDLENAME@?$BUNDLENAME?g" \ -e "s?@EXECUTABLE@?$EXECUTABLE?g" < Info.plist.in > Info.plist # and plist strings sed -e "s?@APPNAME@?$appname?" \ @@ -348,20 +332,6 @@ cp $GTKSTACK_ROOT/lib/gtk-2.0/2.10.0/engines/libpixmap.so $Frameworks (cd $GTK_ENGINE_DIR && ln -s ../../libpixmap.so) -if test x$WITH_LADSPA != x ; then - if test x$SAE != x ; then - plugdir=sae_ladspa - elif test x$MIXBUS != x ; then - plugdir=mixbus_ladspa - else - plugdir=ladspa - fi - if [ -d $plugdir -a "x$(ls $plugdir)" != x ] ; then - echo "Copying `ls $plugdir | wc -l` plugins ..." - cp -r $plugdir/* $Plugins - fi -fi - # Control Surface shared libraries cp $BUILD_ROOT/libs/surfaces/*/libardour_*.dylib $Surfaces cp $BUILD_ROOT/libs/surfaces/control_protocol/libardourcp*.dylib $Frameworks @@ -414,6 +384,12 @@ for x in $BUILD_ROOT/../mcp/*.device $BUILD_ROOT/../mcp/*.profile ; do cp "$x" $MackieControl done +# OSC data +# got to be careful with names here +for x in $BUILD_ROOT/../osc/*.preset ; do + cp "$x" $OSC +done + # VAMP plugins that we use cp $BUILD_ROOT/libs/vamp-plugins/libardourvampplugins.dylib $Frameworks @@ -438,6 +414,18 @@ if test -f $BUILD_ROOT/libs/vfork/ardour-exec-wrapper ; then cp $BUILD_ROOT/libs/vfork/ardour-exec-wrapper $Frameworks/ fi +# session-utils +HAVE_SESSION_UTILS=false +for file in $BUILD_ROOT/session_utils/${lower_case_appname}${major_version}-*; do + BN=$(basename $file) + cp -v $file $Frameworks/ + if test x$STRIP = xall ; then + strip -s $Frameworks/${BN} + fi + ln -s ../lib/ardour-util.sh ${APPROOT}/MacOS/${BN} + HAVE_SESSION_UTILS=true +done + # TODO check if this is still needed, even when building on 10.5 if file $BUILD_ROOT/gtk2_ardour/ardour-$release_version | grep -q ppc; then STDCPP='|libstdc\+\+' @@ -493,7 +481,6 @@ cp $BUILD_ROOT/gtk2_ardour/clearlooks.rc $Resources mkdir ${Resources}/icons mkdir ${Resources}/resources cp ../../system_config $Resources/system_config -cp ../../instant.xml $Resources/instant.xml cp ../../gtk2_ardour/icons/*.png ${Resources}/icons/ cp -r ../../gtk2_ardour/icons/cursor_* ${Resources}/icons/ cp ../../gtk2_ardour/ArdourMono.ttf $Shared @@ -501,7 +488,6 @@ cp ../../gtk2_ardour/resources/${PRODUCT_PKG_DIR}-* ${Resources}/resources/ # Themes: only install those named for this app -lower_case_appname=`echo $APPNAME | tr '[:upper:]' '[:lower:]'` cp ../../gtk2_ardour/themes/*-${lower_case_appname}.colors $Themes # go through and recursively remove any .svn dirs in the bundle @@ -509,6 +495,26 @@ for svndir in `find $APPDIR -name .svn -type dir`; do rm -rf $svndir done +# session utils start script +if test "$HAVE_SESSION_UTILS" = true ; then + cat >> $Frameworks/ardour-util.sh << EOF +#!/bin/sh + +BIN_DIR=\$(dirname "\$0") +BUNDLE_DIR=\$(dirname "\$BIN_DIR") + +export ARDOUR_DATA_PATH="\$BUNDLE_DIR/share" +export ARDOUR_CONFIG_PATH="\$BUNDLE_DIR/etc" +export ARDOUR_DLL_PATH="\$BUNDLE_DIR/lib" +export VAMP_PATH="\$BUNDLE_DIR/lib"\${VAMP_PATH:+:\$VAMP_PATH} + +SELF=\$(basename "\$0") +exec "\$BUNDLE_DIR/lib/\$SELF" "\$@" +EOF + chmod +x $Frameworks/ardour-util.sh +fi + + # install bundled LV2s to /Contents/lib/LV2/ cp -R $BUILD_ROOT/libs/LV2 $Frameworks/ @@ -526,8 +532,19 @@ executables=$MAIN_EXECUTABLE if test x$SAE != x ; then executables="$executables" fi +if test "$HAVE_SESSION_UTILS" = true ; then + for file in $Frameworks/${lower_case_appname}${major_version}-*; do + BN=$(basename $file) + executables="$executables ../lib/${BN}" + done +fi + +if test -f "$Frameworks/ardour-vst-scanner"; then + executables="$executables ../lib/ardour-vst-scanner" +fi for exe in $executables; do + echo "Processing Executable: $exe" EXE=$APPROOT/MacOS/$exe changes="" for lib in `otool -L $EXE | egrep "($GTKSTACK_ROOT|$ARDOURSTACK_ROOT|/opt/|/local/|libs/$STDCPP)" | awk '{print $1}' | grep -v 'libjack\.'` ; do @@ -627,13 +644,13 @@ fi if test x$WITH_HARRISON_LV2 != x ; then curl -s -S --fail -# \ - -z "${CACHEDIR}/harrison_lv2s.${OSX_BENSID}.zip" \ - -o "${CACHEDIR}/harrison_lv2s.${OSX_BENSID}.zip" \ - "http://www.harrisonconsoles.com/mixbus/mb3/beta/harrison-dsp/harrison_lv2s.${OSX_BENSID}.zip" + -z "${CACHEDIR}/${HARRISONLV2}.${OSX_BENSID}.zip" \ + -o "${CACHEDIR}/${HARRISONLV2}.${OSX_BENSID}.zip" \ + "${HARRISONDSPURL}/${HARRISONLV2}.${OSX_BENSID}.zip" mkdir -p "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2" bsdtar -C "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2/" -xf \ - "${CACHEDIR}/harrison_lv2s.${OSX_BENSID}.zip" + "${CACHEDIR}/${HARRISONLV2}.${OSX_BENSID}.zip" fi if test x$WITH_HARVID != x ; then @@ -676,11 +693,31 @@ fi ################################################################################ ### Mixbus plugins, etc +if true; then + echo "Bundling General MIDI Synth LV2" + mkdir -p "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2" + + for proj in x42-gmsynth; do + X42_VERSION=$(curl -s -S http://x42-plugins.com/x42/osx/${proj}.latest.txt) + rsync -a -q --partial \ + rsync://x42-plugins.com/x42/osx/${proj}-lv2-osx-${X42_VERSION}.zip \ + "$CACHEDIR/${proj}-lv2-osx-${X42_VERSION}.zip" + bsdtar -C "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2/" -xf \ + "$CACHEDIR/${proj}-lv2-osx-${X42_VERSION}.zip" + done + + for file in ${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2/*/*.dylib ; do + lipo -extract_family ${OSX_ARCH} ${file} -output ${file}.thin + mv ${file}.thin ${file} + done + +fi + if test x$WITH_X42_LV2 != x ; then echo "bundling x42 plugins" mkdir -p "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2" - for proj in x42-meters x42-midifilter x42-midimap x42-stereoroute x42-eq setBfree; do + for proj in x42-meters x42-midifilter x42-midimap x42-stereoroute x42-eq setBfree x42-avldrums; do X42_VERSION=$(curl -s -S http://x42-plugins.com/x42/osx/${proj}.latest.txt) rsync -a -q --partial \ rsync://x42-plugins.com/x42/osx/${proj}-lv2-osx-${X42_VERSION}.zip \ @@ -703,7 +740,7 @@ if test -n "$MIXBUS"; then curl -s -S --fail -# \ -z "${CACHEDIR}/${HARRISONCHANNELSTRIP}.${OSX_BENSID}.so" \ -o "${CACHEDIR}/${HARRISONCHANNELSTRIP}.${OSX_BENSID}.so" \ - "http://www.harrisonconsoles.com/mixbus/mb3/beta/harrison-dsp/${HARRISONCHANNELSTRIP}.${OSX_BENSID}.so" + "${HARRISONDSPURL}/${HARRISONCHANNELSTRIP}.${OSX_BENSID}.so" cp "${CACHEDIR}/${HARRISONCHANNELSTRIP}.${OSX_BENSID}.so" \ "${PRODUCT_PKG_DIR}/${APPROOT}/lib/ladspa/strip/${HARRISONCHANNELSTRIP}.so" @@ -713,11 +750,22 @@ if test -n "$MIXBUS"; then curl -s -S --fail -# \ -z "${CACHEDIR}/harrison_vamp.${OSX_BENSID}.dylib" \ -o "${CACHEDIR}/harrison_vamp.${OSX_BENSID}.dylib" \ - "http://www.harrisonconsoles.com/mixbus/mb3/beta/harrison-dsp/harrison_vamp.${OSX_BENSID}.dylib" + "${HARRISONDSPURL}/harrison_vamp.${OSX_BENSID}.dylib" cp "${CACHEDIR}/harrison_vamp.${OSX_BENSID}.dylib" \ "${PRODUCT_PKG_DIR}/${APPROOT}/lib/harrison_vamp.dylib" fi + +################################################################################ + +if test x$DEMO_SESSION_URL != x ; then + mkdir -p $Shared/sessions + DEMO_SESSIONS=$(curl -s -S --fail $DEMO_SESSION_URL/index.txt) + for demo in $DEMO_SESSIONS; do + curl -s -S --fail -# -o $Shared/sessions/$demo $DEMO_SESSION_URL/$demo + done +fi + ################################################################################ ( cd $PRODUCT_PKG_DIR ; find . ) > file_list.txt @@ -791,7 +839,16 @@ osascript << EOF close open update without registering applications - delay 5 + delay 3 + set position of item "${APPDIR}" of container window to {90, 100} + set position of item "Applications" of container window to {310, 100} + ${MIXBUSPOS} + ${HARVIDPOS} + ${XJADEOPOS} + close + open + update without registering applications + delay 3 eject end tell end tell