X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=tools%2Fosx_packaging%2Fosx_build;h=3e9b587c332b2ed9df072d26febeabf92a63bed9;hb=952b8e1d74aef71815a945e95c2b4641fd1d961b;hp=a63821aa913358dc8252baa11ed0dc506b7a74b8;hpb=cbe476521a03eb76eb73467dda39cd7bfea7a16d;p=ardour.git
diff --git a/tools/osx_packaging/osx_build b/tools/osx_packaging/osx_build
index a63821aa91..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,31 +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 ;;
@@ -118,7 +122,7 @@ fi
# setup directory structure
-APPDIR=${APPNAME}${major_version}.app
+APPDIR=${BUNDLENAME}.app
APPROOT=$APPDIR/Contents
Frameworks=$APPROOT/lib
Resources=$APPROOT/Resources
@@ -143,6 +147,8 @@ Templates=$Shared/templates
PatchFiles=$Shared/patchfiles
LuaScripts=$Shared/scripts
MackieControl=$Shared/mcp
+OSC=$Shared/osc
+Themes=$Shared/themes
if [ x$PRINT_SYSDEPS != x ] ; then
#
@@ -178,39 +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"
@@ -222,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?" \
@@ -344,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
@@ -397,6 +371,10 @@ done
# Lua Script Files
# got to be careful with names here
for x in $BUILD_ROOT/../scripts/*.lua ; do
+ BN=$(basename $x)
+ if test "${BN:0:1}" = "_"; then
+ continue;
+ fi
cp "$x" $LuaScripts
done
@@ -406,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
@@ -430,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\+\+'
@@ -485,18 +481,40 @@ 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/*.colors $Resources
cp ../../gtk2_ardour/ArdourMono.ttf $Shared
cp ../../gtk2_ardour/resources/${PRODUCT_PKG_DIR}-* ${Resources}/resources/
+
+# Themes: only install those named for this app
+cp ../../gtk2_ardour/themes/*-${lower_case_appname}.colors $Themes
+
# go through and recursively remove any .svn dirs in the bundle
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/
@@ -514,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
@@ -529,7 +558,7 @@ done
echo "Fixing up library names ..."
# now do the same for all the libraries we include
-for libdir in $Frameworks $Frameworks/modules $Surfaces $Panners $Backends ; do
+for libdir in $Frameworks $Frameworks/modules $Surfaces $Panners $Backends $Frameworks/LV2/* ; do
libbase=`basename $libdir`
@@ -615,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
@@ -664,37 +693,38 @@ fi
################################################################################
### Mixbus plugins, etc
-if test x$WITH_X42_LV2 != x ; then
- echo "bundling x42 plugins"
+if true; then
+ echo "Bundling General MIDI Synth LV2"
mkdir -p "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2"
- METERS_VERSION=$(curl -s -S http://x42-plugins.com/x42/osx/x42-meters.latest.txt)
- rsync -a -q --partial \
- rsync://x42-plugins.com/x42/osx/x42-meters-lv2-osx-${METERS_VERSION}.zip \
- "$CACHEDIR/x42-meters-lv2-osx-${METERS_VERSION}.zip"
- bsdtar -C "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2/" -xf \
- "$CACHEDIR/x42-meters-lv2-osx-${METERS_VERSION}.zip"
+ 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
- EQ_VERSION=$(curl -s -S http://x42-plugins.com/x42/osx/x42-eq.latest.txt)
- rsync -a -q --partial \
- rsync://x42-plugins.com/x42/osx/x42-eq-lv2-osx-${EQ_VERSION}.zip \
- "$CACHEDIR/x42-eq-lv2-osx-${EQ_VERSION}.zip"
- bsdtar -C "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2/" -xf \
- "$CACHEDIR/x42-eq-lv2-osx-${EQ_VERSION}.zip"
+ 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
- SETBFREE_VERSION=$(curl -s -S http://x42-plugins.com/x42/osx/setBfree.latest.txt)
- rsync -a -q --partial \
- rsync://x42-plugins.com/x42/osx/setBfree-lv2-osx-${SETBFREE_VERSION}.zip \
- "$CACHEDIR/setBfree-lv2-osx-${SETBFREE_VERSION}.zip"
- bsdtar -C "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2/" -xf \
- "$CACHEDIR/setBfree-lv2-osx-${SETBFREE_VERSION}.zip"
+fi
- MIDIFILTER_VERSION=$(curl -s -S http://x42-plugins.com/x42/osx/x42-midifilter.latest.txt)
- rsync -a -q --partial \
- rsync://x42-plugins.com/x42/osx/x42-midifilter-lv2-osx-${MIDIFILTER_VERSION}.zip \
- "$CACHEDIR/x42-midifilter-lv2-osx-${MIDIFILTER_VERSION}.zip"
- bsdtar -C "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2/" -xf \
- "$CACHEDIR/x42-midifilter-lv2-osx-${MIDIFILTER_VERSION}.zip"
+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 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 \
+ "$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
@@ -703,18 +733,39 @@ if test x$WITH_X42_LV2 != x ; then
fi
if test -n "$MIXBUS"; then
- echo "deploying harrison tools for $OSX_BENSID"
+ echo "deploying harrison channelstrip for $OSX_BENSID"
mkdir -p "${PRODUCT_PKG_DIR}/${APPROOT}/lib/ladspa/strip"
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"
+
+ echo "deploying harrison vamp plugins for $OSX_BENSID"
+
+ curl -s -S --fail -# \
+ -z "${CACHEDIR}/harrison_vamp.${OSX_BENSID}.dylib" \
+ -o "${CACHEDIR}/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
@@ -788,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