SAE=
MIXBUS=
+MIXBUS32C=
WITH_HARVID=1
-WITH_LADSPA=1
+WITH_HARRISON_LV2=
+WITH_X42_LV2=
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
# top level build targets
#
- --sae) WITH_NLS= ;
- SAE=1 ;
- WITH_LADSPA=1;
- STRIP= ;
- PRODUCT_PKG_DIR=ArdourSAE ;
- APPNAME=Ardour ;
- shift ;;
- --mixbus) MIXBUS=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 ;;
+ --chanstrip) HARRISONCHANNELSTRIP=$2 ; shift; shift ;;
esac
done
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`"
# setup directory structure
-APPDIR=${APPNAME}.app
+APPDIR=${BUNDLENAME}.app
APPROOT=$APPDIR/Contents
Frameworks=$APPROOT/lib
Resources=$APPROOT/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
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
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="Ardour3/SAE"
- 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="Ardour3/Mixbus"
- 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="Ardour3"
-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>"
env="<key>LSEnvironment</key><dict>$env<key>ARDOUR_BUNDLED</key><string>true</string></dict>"
+
# edit plist
sed -e "s?@ENV@?$env?g" \
-e "s?@VERSION@?$release_version?g" \
- -e "s?@INFOSTRING@?$info_string?g" < Info.plist.in > Info.plist
+ -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?" \
-e "s?@ENV@?$env?g" \
#
# if we build a bundle without jack, then
-# make the Ardour3 executable a helper
+# make the Ardour executable a helper
# script that checks to see if JACK is
# installed.
#
-cp startup_script $APPROOT/MacOS/Ardour3
-chmod 775 $APPROOT/MacOS/Ardour3
-MAIN_EXECUTABLE=Ardour3.bin
+cp startup_script $APPROOT/MacOS/$EXECUTABLE
+chmod 775 $APPROOT/MacOS/$EXECUTABLE
+MAIN_EXECUTABLE=Ardour.bin ## used in startup_script
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
+elif test x$MIXBUS32C != x ; then
+ cp Mixbus32C.icns $Resources/appIcon.icns
elif test x$MIXBUS != x ; then
cp Mixbus.icns $Resources/appIcon.icns
else
- cp Ardour3.icns $Resources/appIcon.icns
+ cp Ardour.icns $Resources/appIcon.icns
fi
cp typeArdour.icns $Resources/
#
cp -R $GTKSTACK_ROOT/etc/* $Etc
-echo "Copying all Pango modules ..."
-cp -R $GTKSTACK_ROOT/lib/pango/1.8.0/modules/*.so $Frameworks/modules
-echo "Copying all GDK Pixbuf loaders ..."
-cp -R $GTKSTACK_ROOT/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.so $Frameworks/modules
-# charset alias file
cp -R $GTKSTACK_ROOT/lib/charset.alias $Resources
-# generate new Pango module file
-cat > pangorc <<EOF
-[Pango]
-ModulesPath=$GTKSTACK_ROOT/lib/pango/1.8.0/modules
-EOF
-env PANGO_RC_FILE=pangorc $GTKSTACK_ROOT/bin/pango-querymodules | sed "s?$GTKSTACK_ROOT/lib/pango/1.8.0/modules/?@executable_path/../lib/modules/?" > $Resources/pango.modules
-rm pangorc
-
-# generate a new GDK pixbufs loaders file
-gdk-pixbuf-query-loaders | sed "s?$GTKSTACK_ROOT/lib/gdk-pixbuf-2.0/2.10.0/loaders/?@executable_path/../lib/modules/?" > $Resources/gdk-pixbuf.loaders
-
# We rely on clearlooks, so include a version from our own build tree
# this one is special - we will set GTK_PATH to $Frameworks/gtkengines
(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
cp $BUILD_ROOT/libs/panners/*/lib*.dylib $Panners
# Backends
-for backend in jack wavesaudio dummy; do
+for backend in jack wavesaudio dummy coreaudio; do
cp $BUILD_ROOT/libs/backends/$backend/lib*.dylib $Backends
done
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
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
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
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
+
+# 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 $Plugins/*.so ; do
+ 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
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/)" | grep -v 'libjack\.'`
+ 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`
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
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/
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/)" | awk '{print $1}' | grep -v 'libjack\.'` ; do
+ 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
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`
# 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
+ 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"
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
+ curl -s -S --fail -# \
+ -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}/${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)
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}}"
DMGBACKGROUND=${DMGBACKGROUND}xj
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 x42-avldrums x42-whirl x42-limiter; 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 -n "$MIXBUS"; then
+ 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" \
+ "${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
+
echo "Building DMG ..."
# UC_DMG=$APPNAME-${release_version}-UC.dmg
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 "${DiskDevice}" "${MNTPATH}"
+mount -t hfs -o nobrowse "${DiskDevice}" "${MNTPATH}"
cp -r ${PRODUCT_PKG_DIR}/* "${MNTPATH}" || exit
mkdir "${MNTPATH}/.background"
activate
tell disk "${DISKNAME}"
open
+ delay 2
set current view of container window to icon view
set toolbar visible of container window to false
set statusbar visible of container window to false
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
set -e
echo "compressing Image ..."
-# Umount the image
-umount "${DiskDevice}"
-hdiutil eject "${DiskDevice}"
+# Umount the image ('eject' above may already have done that)
+umount "${DiskDevice}" || true
+hdiutil eject "${DiskDevice}" || true
# 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
echo "packaging suceeded."