SAE=
MIXBUS=
+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
+
while [ $# -gt 0 ] ; do
- echo "arg = $1"
- case $1 in
+ echo "arg = $1"
+ case $1 in
#
# top level build targets
#
- --sae) WITH_NLS= ;
- SAE=1 ;
- WITH_LADSPA=1;
- STRIP= ;
- PRODUCT_PKG_DIR=ArdourSAE ;
- 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 ;
- shift ;;
- --public) WITH_NLS= ;
- SAE= ;
- WITH_LADSPA=1;
- PRODUCT_PKG_DIR=Ardour;
- APPNAME=Ardour ;
- shift ;;
- --allinone) SAE= ;
- WITH_NLS= ;
- WITH_LADSPA=1;
- STRIP= ;
- PRODUCT_PKG_DIR=Ardour ;
- shift ;;
- --test) SAE= ; WITH_LADSPA=; STRIP= ; shift ;;
+ --sae)
+ SAE=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= ;
+ STRIP= ;
+ PRODUCT_PKG_DIR=Mixbus;
+ APPNAME=Mixbus ;
+ BUNDLENAME=Mixbus${major_version} ;
+ lower_case_appname=mixbus;
+ shift ;;
+ --mixbus32c) MIXBUS=1;
+ MIXBUS32C=1;
+ WITH_HARRISON_LV2=1 ;
+ WITH_X42_LV2=1 ;
+ WITH_NLS=1 ;
+ SAE= ;
+ STRIP= ;
+ PRODUCT_PKG_DIR=Mixbus32C;
+ lower_case_appname=mixbus32c;
+ APPNAME=Mixbus32C ;
+ BUNDLENAME=Mixbus32C-${major_version} ;
+ shift ;;
+ --public)
+ SAE= ;
+ 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= ;
+ STRIP= ;
+ PRODUCT_PKG_DIR=Ardour ;
+ 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 ;;
- esac
+ --chanstrip) HARRISONCHANNELSTRIP=$2 ; shift; shift ;;
+ esac
done
if test -z "$PRODUCT_PKG_DIR" -o -z "$APPNAME"; then
exit 1
fi
-. ../define_versions.sh
echo "Version is $release_version"
if [ "x$commit" != "x" ] ; then
- info_string="$release_version ($commit) built on `hostname` by `whoami` on `date`"
+ info_string="$release_version ($commit) built on `hostname` by `whoami` on `date`"
else
- info_string="$release_version built on `hostname` by `whoami` on `date`"
+ info_string="$release_version built on `hostname` by `whoami` on `date`"
fi
echo "Info string is $info_string"
# setup directory structure
-APPDIR=${APPNAME}${major_version}.app
+APPDIR=${BUNDLENAME}.app
APPROOT=$APPDIR/Contents
Frameworks=$APPROOT/lib
Resources=$APPROOT/Resources
# Since this is OS X, don't try to distinguish between etc and shared
# (machine dependent and independent data) - just put everything
# into Resources.
-#
+#
Shared=$Resources
Etc=$Resources
Locale=$Resources/locale
-#
-# Bundled Plugins live in a top level folder
-#
-Plugins=$APPROOT/Plugins
+
Surfaces=$Frameworks/surfaces
Panners=$Frameworks/panners
Backends=$Frameworks/backends
MidiMaps=$Shared/midi_maps
+PluginMetadata=$Shared/plugin_metadata
+MixerSettings=$Shared/mixer_settings
ExportFormats=$Shared/export
Templates=$Shared/templates
PatchFiles=$Shared/patchfiles
+LuaScripts=$Shared/scripts
MackieControl=$Shared/mcp
+OSC=$Shared/osc
+Themes=$Shared/themes
if [ x$PRINT_SYSDEPS != x ] ; then
#
# print system dependencies
#
-for file in $APPROOT/MacOS/* $Frameworks/* $Frameworks/modules/* $Plugins/*.so ; do
+for file in $APPROOT/MacOS/* $Frameworks/* $Frameworks/modules/* ; do
if ! file $file | grep -qs Mach-O ; then
continue
fi
- otool -L $file | awk '{print $1}' | egrep -v "(^@executable_path|^Ardour[0-9][.0-9]*.app)"
- done | sort | uniq
- exit 0
+ otool -L $file | awk '{print $1}' | egrep -v "(^@executable_path|^Ardour[0-9][.0-9]*.app)"
+ done | sort | uniq
+ exit 0
fi
echo "Removing old $APPDIR tree ..."
mkdir -p $APPROOT/MacOS
mkdir -p $APPROOT/Resources
-mkdir -p $Plugins
mkdir -p $Surfaces
mkdir -p $Panners
mkdir -p $Backends
mkdir -p $MidiMaps
mkdir -p $ExportFormats
-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="$env<key>ARDOUR_SAE</key><string>true</string>"
- #
- # current default for SAE version is German keyboard layout without a keypad
- #
- env="$env<key>ARDOUR_KEYBOARD_LAYOUT</key><string>de-nokeypad</string>"
- env="$env<key>ARDOUR_UI_CONF</key><string>ardour3_ui_sae.conf</string>"
-elif test x$MIXBUS != x ; then
- appname="Mixbus"
- EXECUTABLE=${appname}${major_version}
- env="$env<key>ARDOUR_MIXBUS</key><string>true</string>"
- #
- # current default for MIXBUS version is US keyboard layout without a keypad
- #
- env="$env<key>ARDOUR_KEYBOARD_LAYOUT</key><string>us-nokeypad</string>"
- env="$env<key>ARDOUR_UI_CONF</key><string>ardour3_ui.conf</string>"
-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="$env<key>PATH</key><string>/usr/local/bin:/opt/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>"
env="$env<key>DYLIB_FALLBACK_LIBRARY_PATH</key><string>/usr/local/lib:/opt/lib</string>"
-e "s?@VERSION@?$release_version?g" \
-e "s?@INFOSTRING@?$info_string?g" \
-e "s?@IDSUFFIX@?$EXECUTABLE?g" \
+ -e "s?@BUNDLENAME@?$BUNDLENAME?g" \
-e "s?@EXECUTABLE@?$EXECUTABLE?g" < Info.plist.in > Info.plist
# and plist strings
sed -e "s?@APPNAME@?$appname?" \
echo "Copying ardour executable ...."
cp $BUILD_ROOT/gtk2_ardour/ardour-$release_version $APPROOT/MacOS/$MAIN_EXECUTABLE
if test x$SAE != x ; then
- # cp $BUILD_ROOT/gtk2_ardour/evtest $APPROOT/MacOS/gtkevents
- cp Ardour3-SAE.icns $Resources/appIcon.icns
+ # cp $BUILD_ROOT/gtk2_ardour/evtest $APPROOT/MacOS/gtkevents
+ cp Ardour3-SAE.icns $Resources/appIcon.icns
+elif test x$MIXBUS32C != x ; then
+ cp Mixbus32C.icns $Resources/appIcon.icns
elif test x$MIXBUS != x ; then
- cp Mixbus.icns $Resources/appIcon.icns
+ cp Mixbus.icns $Resources/appIcon.icns
else
- cp Ardour.icns $Resources/appIcon.icns
+ cp Ardour.icns $Resources/appIcon.icns
fi
cp typeArdour.icns $Resources/
# copy locale files
if test x$WITH_NLS != x ; then
- echo "NLS support ..."
- echo "I hope you remembered to run waf i18n"
- LINGUAS=
-
- for pkg in gtk2_ardour libs/ardour libs/gtkmm2ext ; do
- files=`find ../../$pkg -name "*.mo"`
-
- #
- # the package name is appended with a number so that
- # it can be parallel installed during a regular install
- # with older (and newer) versions. it is just the major
- # number of the release (i.e. leading digits)
- #
-
- vsuffix=`echo $release_version | sed 's/^\([0-9][0-9]*\).*/\1/'`
-
- if [ -z "$files" ]; then
- echo ""
- echo "!!!! WARNING !!!! - Did not find any .mo files in ../../$pkg"
- echo ""
- fi
-
- for file in $files
+ echo "NLS support ..."
+ echo "I hope you remembered to run waf i18n"
+ LINGUAS=
+
+ for pkg in gtk2_ardour libs/ardour libs/gtkmm2ext ; do
+ files=`find ../../$pkg -name "*.mo"`
+
+ #
+ # the package name is appended with a number so that
+ # it can be parallel installed during a regular install
+ # with older (and newer) versions. it is just the major
+ # number of the release (i.e. leading digits)
+ #
+
+ vsuffix=`echo $release_version | sed 's/^\([0-9][0-9]*\).*/\1/'`
+
+ if [ -z "$files" ]; then
+ echo ""
+ echo "!!!! WARNING !!!! - Did not find any .mo files in ../../$pkg"
+ echo ""
+ fi
+
+ for file in $files
+ do
+ echo $file
+ lang=`basename $file | sed 's/\.mo//'`
+ mkdir -p $Locale/$lang/LC_MESSAGES
+ cp $file $Locale/$lang/LC_MESSAGES/`basename $pkg`$vsuffix.mo
+ echo copy $file to $Locale/$lang/LC_MESSAGES/`basename $pkg`$vsuffix.mo
+ if echo $LINGUAS | grep $lang >/dev/null 2>&1 ; then
+ :
+ else
+ LINGUAS="$LINGUAS $lang"
+ fi
+ done
+ done
+
+ for l in $LINGUAS
do
- echo $file
- lang=`basename $file | sed 's/\.mo//'`
- mkdir -p $Locale/$lang/LC_MESSAGES
- cp $file $Locale/$lang/LC_MESSAGES/`basename $pkg`$vsuffix.mo
- echo copy $file to $Locale/$lang/LC_MESSAGES/`basename $pkg`$vsuffix.mo
- if echo $LINGUAS | grep $lang >/dev/null 2>&1 ; then
- :
- else
- LINGUAS="$LINGUAS $lang"
- fi
+ if [ -d $GTKSTACK_ROOT/share/locale/$l ] ; then
+ echo "Copying GTK i18n files for $l..."
+ cp -r $GTKSTACK_ROOT/share/locale/$l $Locale
+ else
+ # try with just the language spec
+ just_lang=`echo $l | sed 's/_[A-Z][A-Z]$//'`
+ if [ -d $GTKSTACK_ROOT/share/locale/$just_lang ] ; then
+ echo "Copying GTK i18n files for $l..."
+ cp -r $GTKSTACK_ROOT/share/locale/$just_lang $Locale
+ fi
+ fi
done
- done
-
- for l in $LINGUAS
- do
- if [ -d $GTKSTACK_ROOT/share/locale/$l ] ; then
- echo "Copying GTK i18n files for $l..."
- cp -r $GTKSTACK_ROOT/share/locale/$l $Locale
- else
- # try with just the language spec
- just_lang=`echo $l | sed 's/_[A-Z][A-Z]$//'`
- if [ -d $GTKSTACK_ROOT/share/locale/$just_lang ] ; then
- echo "Copying GTK i18n files for $l..."
- cp -r $GTKSTACK_ROOT/share/locale/$just_lang $Locale
- fi
- fi
- done
else
- echo "Skipping NLS support"
+ echo "Skipping NLS support"
fi
#
# Copy stuff that may be dynamically loaded
-#
+#
cp -R $GTKSTACK_ROOT/etc/* $Etc
cp -R $GTKSTACK_ROOT/lib/charset.alias $Resources
(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
# Backends
for backend in jack wavesaudio dummy coreaudio; do
- cp $BUILD_ROOT/libs/backends/$backend/lib*.dylib $Backends
+ cp $BUILD_ROOT/libs/backends/$backend/lib*.dylib $Backends
done
# Export Formats/Presets
-for f in $BUILD_ROOT/../export/*.preset $BUILD_ROOT/../export/*.format ; do
- cp "$f" $ExportFormats ;
+for f in $BUILD_ROOT/../export/*.preset $BUILD_ROOT/../export/*.format ; do
+ cp "$f" $ExportFormats ;
done
-# Session and Route templates
-#for f in $BUILD_ROOT/../templates/* ; do
-# if [ -d "$f" ] ; then
-# cp -r "$f" $Templates ;
-# fi
-#done
+#Session templates
+cp -av $BUILD_ROOT/../templates $Templates
+
+# PluginMetadata
+cp -av $BUILD_ROOT/../plugin_metadata $PluginMetadata
# MidiMaps
# got to be careful with names here
for x in $BUILD_ROOT/../midi_maps/*.map ; do
- cp "$x" $MidiMaps
+ cp "$x" $MidiMaps
done
# MIDNAM Patch Files
# got to be careful with names here
for x in $BUILD_ROOT/../patchfiles/*.midnam ; do
- cp "$x" $PatchFiles
+ cp "$x" $PatchFiles
+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
# MackieControl data
# got to be careful with names here
for x in $BUILD_ROOT/../mcp/*.device $BUILD_ROOT/../mcp/*.profile ; do
- cp "$x" $MackieControl
+ 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
+
+# Mixbus MixerSettings (if any)
+for x in $BUILD_ROOT/../mixer_settings/*.lua ; do
+ mkdir -p $MixerSettings # create on demand
+ cp "$x" $MixerSettings
done
# VAMP plugins that we use
# Suil modules (new dir 'build-stack')
if test -d $GTKSTACK_ROOT/lib/suil-0/ ; then
- cp $GTKSTACK_ROOT/lib/suil-0/lib* $Frameworks
+ cp $GTKSTACK_ROOT/lib/suil-0/lib* $Frameworks
fi
# Suil modules (old dir 'build-ardour-stack')
if test -d $ARDOURSTACK_ROOT/lib/suil-0/ ; then
- cp $ARDOURSTACK_ROOT/lib/suil-0/lib* $Frameworks
+ cp $ARDOURSTACK_ROOT/lib/suil-0/lib* $Frameworks
fi
# VST scanner app and wrapper script, if they exist
if test -d $BUILD_ROOT/libs/fst ; then
- cp $BUILD_ROOT/libs/fst/ardour-vst-scanner* $Frameworks/
+ cp $BUILD_ROOT/libs/fst/ardour-vst-scanner* $Frameworks/
fi
# vfork wrapper
if test -f $BUILD_ROOT/libs/vfork/ardour-exec-wrapper ; then
- mkdir -p $Frameworks/vfork
- cp $BUILD_ROOT/libs/vfork/ardour-exec-wrapper $Frameworks/
+ mkdir -p $Frameworks/vfork
+ cp $BUILD_ROOT/libs/vfork/ardour-exec-wrapper $Frameworks/
fi
-
-while [ true ] ; do
- missing=false
- for file in $APPROOT/MacOS/* $Frameworks/* $Frameworks/modules/* $Panners/*.dylib $Backends/*.dylib $Surfaces/*.dylib $Plugins/*.so ; do
- if ! file $file | grep -qs Mach-O ; then
- continue
- fi
- # libffi contains "S" (other section symbols) that should not be stripped.
- if [[ $file == *"libffi"* ]] ; then
- continue
+# 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
- if test x$STRIP != x ; then
- strip -u -r -arch all $file &>/dev/null
+if test -x $BUILD_ROOT/tools/luadevel/luasession; then
+ BN=${lower_case_appname}${major_version}-lua
+ cp -v $BUILD_ROOT/tools/luadevel/luasession $Frameworks/$BN
+ if test x$STRIP = xall ; then
+ strip -s $Frameworks/${BN}
fi
+ ln -s ../lib/ardour-util.sh ${APPROOT}/MacOS/${BN}
+ HAVE_SESSION_UTILS=true
+fi
- deps=`otool -L $file | awk '{print $1}' | egrep "($GTKSTACK_ROOT|$ARDOURSTACK_ROOT|/opt/|/local/|libs/|libstdc\+\+)" | grep -v 'libjack\.' | grep -v "$(basename $file)"`
- # echo -n "."
- for dep in $deps ; do
- base=`basename $dep`
- if ! test -f $Frameworks/$base; then
- if echo $dep | grep -sq '^libs' ; then
- cp $BUILD_ROOT/$dep $Frameworks
- else
- cp $dep $Frameworks
+# dynamically loaded NSS/SSL libs
+nsslibs="libsoftokn3.dylib libnsspem.dylib libnssckbi.dylib libfreebl3.dylib libnssdbm3.dylib libplds4.dylib"
+for nsslib in $nsslibs; do
+ cp $GTKSTACK_ROOT/lib/$nsslib $Frameworks/ || 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\+\+'
+else
+STDCPP=
+fi
+
+while [ true ] ; do
+ missing=false
+ for file in $APPROOT/MacOS/* $Frameworks/* $Frameworks/modules/* $Panners/*.dylib $Backends/*.dylib $Surfaces/*.dylib ; do
+ if ! file $file | grep -qs Mach-O ; then
+ continue
+ fi
+ # libffi contains "S" (other section symbols) that should not be stripped.
+ if [[ $file == *"libffi"* ]] ; then
+ continue
fi
- missing=true
- fi
+
+ if test x$STRIP != x ; then
+ strip -u -r -arch all $file &>/dev/null
+ fi
+
+ deps=`otool -L $file | awk '{print $1}' | egrep "($GTKSTACK_ROOT|$ARDOURSTACK_ROOT|/opt/|/local/|libs/$STDCPP)" | grep -v 'libjack\.' | grep -v "$(basename $file)"`
+ # echo -n "."
+ for dep in $deps ; do
+ base=`basename $dep`
+ if ! test -f $Frameworks/$base; then
+ if echo $dep | grep -sq '^libs' ; then
+ cp $BUILD_ROOT/$dep $Frameworks
+ else
+ cp $dep $Frameworks
+ fi
+ missing=true
+ chmod 755 $Frameworks/$base
+ fi
+ done
done
- done
- if test x$missing = xfalse ; then
- # everything has been found
- break
- fi
+ if test x$missing = xfalse ; then
+ # everything has been found
+ break
+ fi
done
echo
echo "Copying other stuff to $APPDIR ..."
-#cp $BUILD_ROOT/gtk2_ardour/ergonomic-us.bindings $Resources
-
-cp $BUILD_ROOT/gtk2_ardour/mnemonic-us.bindings $Resources
+cp $BUILD_ROOT/gtk2_ardour/ardour.keys $Resources
cp $BUILD_ROOT/gtk2_ardour/ardour.menus $Resources
cp $BUILD_ROOT/gtk2_ardour/default_ui_config $Resources
cp $BUILD_ROOT/gtk2_ardour/clearlooks.rc $Resources
# Copied directly from source tree
+mkdir ${Resources}/icons
+mkdir ${Resources}/resources
cp ../../system_config $Resources/system_config
-cp ../../instant.xml $Resources/instant.xml
-cp ../../gtk2_ardour/step_editing.bindings $Resources
-cp ../../gtk2_ardour/mixer.bindings $Resources
-cp -r ../../gtk2_ardour/icons $Resources
-cp -r ../../gtk2_ardour/pixmaps $Resources
-cp ../../gtk2_ardour/dark.colors $Resources
-cp -R ../../gtk2_ardour/splash.png $Shared
-cp -R ../../gtk2_ardour/small-splash.png $Shared
-cp -R ../../gtk2_ardour/ArdourMono.ttf $Shared
+cp ../../gtk2_ardour/icons/*.png ${Resources}/icons/
+cp -r ../../gtk2_ardour/icons/cursor_* ${Resources}/icons/
+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
+ 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 <app>/Contents/lib/LV2/
cp -R $BUILD_ROOT/libs/LV2 $Frameworks/
echo "Fixing up executable dependency names ..."
executables=$MAIN_EXECUTABLE
if test x$SAE != x ; then
- executables="$executables"
+ 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
- EXE=$APPROOT/MacOS/$exe
- changes=""
- for lib in `otool -L $EXE | egrep "($GTKSTACK_ROOT|$ARDOURSTACK_ROOT|/opt/|/local/|libs/)" | awk '{print $1}' | grep -v 'libjack\.'` ; do
- base=`basename $lib`
- changes="$changes -change $lib @executable_path/../lib/$base"
- done
- if test "x$changes" != "x" ; then
- install_name_tool $changes $EXE
- fi
+ 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
+ base=`basename $lib`
+ changes="$changes -change $lib @executable_path/../lib/$base"
+ done
+ if test "x$changes" != "x" ; then
+ install_name_tool $changes $EXE
+ fi
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
-
- libbase=`basename $libdir`
-
- for dylib in $libdir/*.dylib $libdir/*.so ; do
-
- # skip symlinks
-
- if test -L $dylib ; then
- continue
- fi
-
- # change all the dependencies
-
- changes=""
- for lib in `otool -L $dylib | egrep "($GTKSTACK_ROOT|$ARDOURSTACK_ROOT|/opt/|/local/|libs/)" | awk '{print $1}' | grep -v 'libjack\.'` ; do
- base=`basename $lib`
- if echo $lib | grep -s libbase; then
- changes="$changes -change $lib @executable_path/../$libbase/$base"
- else
- changes="$changes -change $lib @executable_path/../lib/$base"
- fi
+for libdir in $Frameworks $Frameworks/modules $Surfaces $Panners $Backends $Frameworks/LV2/* ; do
+
+ libbase=`basename $libdir`
+
+ for dylib in $libdir/*.dylib $libdir/*.so ; do
+
+ # skip symlinks
+
+ if test -L $dylib ; then
+ continue
+ fi
+
+ # change all the dependencies
+
+ changes=""
+ for lib in `otool -L $dylib | egrep "($GTKSTACK_ROOT|$ARDOURSTACK_ROOT|/opt/|/local/|libs/$STDCPP)" | awk '{print $1}' | grep -v 'libjack\.'` ; do
+ base=`basename $lib`
+ if echo $lib | grep -s libbase; then
+ changes="$changes -change $lib @executable_path/../$libbase/$base"
+ else
+ changes="$changes -change $lib @executable_path/../lib/$base"
+ fi
+ done
+
+ if test "x$changes" != x ; then
+ if install_name_tool $changes $dylib ; then
+ :
+ else
+ exit 1
+ fi
+ fi
+
+ # now the change what the library thinks its own name is
+
+ base=`basename $dylib`
+ install_name_tool -id @executable_path/../$libbase/$base $dylib
done
-
- if test "x$changes" != x ; then
- if install_name_tool $changes $dylib ; then
- :
- else
- exit 1
- fi
- fi
-
- # now the change what the library thinks its own name is
-
- base=`basename $dylib`
- install_name_tool -id @executable_path/../$libbase/$base $dylib
- done
done
#
# and now ... the DMG
-#
+#
rm -rf $PRODUCT_PKG_DIR
mkdir $PRODUCT_PKG_DIR
DMGBACKGROUND=dmgbg
if [ x$SAE != x ] ; then
-
- # SAE packaging
-
- echo "Creating SAE packaging directory"
- mv $APPDIR $PRODUCT_PKG_DIR/Ardour3-SAE.app
- cp HowToInstallArdourSAE.pdf "$PRODUCT_PKG_DIR/How To Install Ardour SAE.pdf"
- cp SAE-de-keypad.pdf "$PRODUCT_PKG_DIR/Ardour SAE Shortcuts (keypad).pdf"
- cp SAE-de-nokeypad.pdf "$PRODUCT_PKG_DIR/Ardour SAE Shortcuts.pdf"
-
+
+ # SAE packaging
+
+ echo "Creating SAE packaging directory"
+ mv $APPDIR $PRODUCT_PKG_DIR/Ardour3-SAE.app
+ cp HowToInstallArdourSAE.pdf "$PRODUCT_PKG_DIR/How To Install Ardour SAE.pdf"
+ cp SAE-de-keypad.pdf "$PRODUCT_PKG_DIR/Ardour SAE Shortcuts (keypad).pdf"
+ cp SAE-de-nokeypad.pdf "$PRODUCT_PKG_DIR/Ardour SAE Shortcuts.pdf"
+
elif [ x$MIXBUS != x ] ; then
- # Mixbus packaging
+ # Mixbus packaging
- echo "Creating Mixbus packaging directory"
- mv $APPDIR $PRODUCT_PKG_DIR/
- DMGBACKGROUND=dmgbgMB
-else
+ echo "Creating Mixbus packaging directory"
+ mv $APPDIR $PRODUCT_PKG_DIR/
+ DMGBACKGROUND=dmgbgMB
+else
- echo "Creating $APPNAME packaging directory"
- mv $APPDIR $PRODUCT_PKG_DIR/
+ echo "Creating $APPNAME packaging directory"
+ mv $APPDIR $PRODUCT_PKG_DIR/
fi
+if file ${PRODUCT_PKG_DIR}/$APPROOT/MacOS/$MAIN_EXECUTABLE | grep -q x86_64; then
+ OSX_ARCH=x86_64
+ OSX_BENSID=osx64
+elif file ${PRODUCT_PKG_DIR}/$APPROOT/MacOS/$MAIN_EXECUTABLE | grep -q ppc; then
+ OSX_ARCH=ppc
+ OSX_BENSID=osxppc
+else
+ OSX_ARCH=i386
+ OSX_BENSID=osx32
+fi
+
if test x$WITH_HARRISON_LV2 != x ; then
- if file ${PRODUCT_PKG_DIR}/$APPROOT/MacOS/$MAIN_EXECUTABLE | grep -q x86_64; then
- OSX_ARCH=osx64
- else
- OSX_ARCH=osx32
- fi
curl -s -S --fail -# \
- -z "${CACHEDIR}/harrison_lv2s.${OSX_ARCH}.zip" \
- -o "${CACHEDIR}/harrison_lv2s.${OSX_ARCH}.zip" \
- http://www.harrisonconsoles.com/mixbus/mb3/${OSX_ARCH}/harrison_lv2s.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_ARCH}.zip"
+ "${CACHEDIR}/${HARRISONLV2}.${OSX_BENSID}.zip"
fi
if test x$WITH_HARVID != x ; then
echo "installing video tools.."
- HARVID_VERSION=$(curl -s -S http://ardour.org/files/video-tools/harvid_version.txt)
- XJADEO_VERSION=$(curl -s -S http://ardour.org/files/video-tools/xjadeo_version.txt)
+ if test $OSX_ARCH = ppc; then
+ # EOL
+ HARVID_VERSION=v0.8.2
+ XJADEO_VERSION=v0.8.8
+ else
+ HARVID_VERSION=$(curl -s -S http://ardour.org/files/video-tools/harvid_version.txt)
+ XJADEO_VERSION=$(curl -s -S http://ardour.org/files/video-tools/xjadeo_version.txt)
+ fi
MULTIARCH=osx
echo "copying harvid and xjadeo ..."
cp -r "${JADEO}/Jadeo.app" "$PRODUCT_PKG_DIR/"
hdiutil detach "${JADEO}"
+ XJCONTENT=${PRODUCT_PKG_DIR}/Jadeo.app/Contents
+ HVLIBS=${PRODUCT_PKG_DIR}/$APPROOT/lib/harvid
+
+ for file in ${XJCONTENT}/MacOS/Jadeo-bin ${XJCONTENT}/Frameworks/*.dylib ${HVLIBS}/*.dylib ${PRODUCT_PKG_DIR}/$APPROOT/MacOS/*harvid* ; do
+ lipo -extract_family ${OSX_ARCH} ${file} -output ${file}.thin && \
+ mv ${file}.thin ${file}
+ done
+
DMGWINBOTTOM=580
YPOS=$[ $DMGWINBOTTOM - 300 ]
XJADEOPOS="set position of item \"Jadeo.app\" of container window to {310, ${YPOS}}"
################################################################################
### Mixbus plugins, etc
-if test x$WITH_X42_LV2 != x ; then
- echo "bundling x42 plugins"
- if file ${PRODUCT_PKG_DIR}/$APPROOT/MacOS/$MAIN_EXECUTABLE | grep -q x86_64; then
- OSX_ARCH=x86_64
- else
- OSX_ARCH=i386
- fi
-
+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
- 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"
+ 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
- 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"
+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-stereoroute x42-eq setBfree x42-avldrums x42-whirl x42-limiter x42-tuner; 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 -thin ${OSX_ARCH} ${file} -output ${file}.thin
+ lipo -extract_family ${OSX_ARCH} ${file} -output ${file}.thin
mv ${file}.thin ${file}
done
fi
if test -n "$MIXBUS"; then
- if file ${PRODUCT_PKG_DIR}/$APPROOT/MacOS/$MAIN_EXECUTABLE | grep -q x86_64; then
- OSX_ARCH=osx64
- else
- OSX_ARCH=osx32
- fi
-
- echo "deploying harrison tools for $OSX_ARCH"
+ echo "deploying harrison channelstrip for $OSX_BENSID"
mkdir -p "${PRODUCT_PKG_DIR}/${APPROOT}/lib/ladspa/strip"
curl -s -S --fail -# \
- -z "${CACHEDIR}/harrison_channelstrip.${OSX_ARCH}.so" \
- -o "${CACHEDIR}/harrison_channelstrip.${OSX_ARCH}.so" \
- http://www.harrisonconsoles.com/mixbus/mb3/${OSX_ARCH}/harrison_channelstrip.so
+ -z "${CACHEDIR}/${HARRISONCHANNELSTRIP}.${OSX_BENSID}.so" \
+ -o "${CACHEDIR}/${HARRISONCHANNELSTRIP}.${OSX_BENSID}.so" \
+ "${HARRISONDSPURL}/${HARRISONCHANNELSTRIP}.${OSX_BENSID}.so"
+
+ cp "${CACHEDIR}/${HARRISONCHANNELSTRIP}.${OSX_BENSID}.so" \
+ "${PRODUCT_PKG_DIR}/${APPROOT}/lib/ladspa/strip/${HARRISONCHANNELSTRIP}.so"
- cp "${CACHEDIR}/harrison_channelstrip.${OSX_ARCH}.so" \
- "${PRODUCT_PKG_DIR}/${APPROOT}/lib/ladspa/strip/harrison_channelstrip.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
trap "rm -rf $MNTPATH $TMPDMG ${TMPDMG}.dmg $ICNSTMP" EXIT
-hdiutil create -megabytes $DMGMEGABYTES "$TMPDMG"
+hdiutil create -megabytes $DMGMEGABYTES -fs HFS+ -volname "${VOLNAME}" "$TMPDMG"
DiskDevice=$(hdid -nomount "$TMPDMG" | grep Apple_HFS | cut -f 1 -d ' ')
-newfs_hfs -v "${VOLNAME}" "${DiskDevice}"
mount -t hfs -o nobrowse "${DiskDevice}" "${MNTPATH}"
cp -r ${PRODUCT_PKG_DIR}/* "${MNTPATH}" || exit
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
# Create a read-only version, use zlib compression
hdiutil convert -format UDZO "${TMPDMG}" -imagekey zlib-level=9 -o "${UC_DMG}"
+if test $(sw_vers -productVersion | cut -d '.' -f 2) -gt 5; then
echo "setting file icon ..."
cp ${PRODUCT_PKG_DIR}/$Resources/appIcon.icns ${ICNSTMP}.icns
SetFile -a C "$UC_DMG"
rm ${ICNSTMP}.icns ${ICNSTMP}.rsrc
+fi
+
rm -rf ${PRODUCT_PKG_DIR}
echo