MIXBUS=
WITH_HARVID=1
WITH_HARRISON_LV2=
+WITH_X42_LV2=
WITH_LADSPA=1
STRIP=1
PRINT_SYSDEPS=
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;
+ PRODUCT_PKG_DIR=Mixbus;
APPNAME=Mixbus ;
shift ;;
--public) WITH_NLS= ;
# setup directory structure
-APPDIR=${APPNAME}.app
+APPDIR=${APPNAME}${major_version}.app
APPROOT=$APPDIR/Contents
Frameworks=$APPROOT/lib
Resources=$APPROOT/Resources
# maybe set variables
env=""
if test x$SAE != x ; then
- appname="Ardour3/SAE"
+ 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_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="Ardour3"
+ appname="Ardour${major_version}"
+ EXECUTABLE=${appname}
fi
#
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@?${APPNAME}${major_version}?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
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
cp $BUILD_ROOT/libs/vfork/ardour-exec-wrapper $Frameworks/
fi
+# 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
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\.' | grep -v "$(basename $file)"`
+ 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`
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
+ 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
# 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=ppc
+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 http://www.harrisonconsoles.com/mixbus/mb3/${OSX_ARCH}/harrison_lv2s.zip \
- | bsdtar -C "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2/" -xf -
+ curl -s -S --fail -# \
+ -z "${CACHEDIR}/harrison_lv2s.${OSX_BENSID}.zip" \
+ -o "${CACHEDIR}/harrison_lv2s.${OSX_BENSID}.zip" \
+ http://www.harrisonconsoles.com/mixbus/mb3/${OSX_BENSID}/harrison_lv2s.zip
+
+ mkdir -p "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2"
+ bsdtar -C "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2/" -xf \
+ "${CACHEDIR}/harrison_lv2s.${OSX_BENSID}.zip"
fi
if test x$WITH_HARVID != x ; then
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 test -n "$MIXBUS"; then
+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
-
mkdir -p "${PRODUCT_PKG_DIR}/${APPROOT}/lib/LV2"
- METERS_VERSION=$(curl -s -S http://gareus.org/x42/osx/x42-meters.latest.txt)
+ METERS_VERSION=$(curl -s -S http://x42-plugins.com/x42/osx/x42-meters.latest.txt)
rsync -a -q --partial \
- rsync://gareus.org/x42/osx/x42-meters-lv2-osx-${METERS_VERSION}.zip \
+ 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"
- SETBFREE_VERSION=$(curl -s -S http://gareus.org/x42/osx/setBfree.latest.txt)
+ SETBFREE_VERSION=$(curl -s -S http://x42-plugins.com/x42/osx/setBfree.latest.txt)
rsync -a -q --partial \
- rsync://gareus.org/x42/osx/setBfree-lv2-osx-${SETBFREE_VERSION}.zip \
+ 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"
- MIDIFILTER_VERSION=$(curl -s -S http://gareus.org/x42/osx/x42-midifilter.latest.txt)
+ MIDIFILTER_VERSION=$(curl -s -S http://x42-plugins.com/x42/osx/x42-midifilter.latest.txt)
rsync -a -q --partial \
- rsync://gareus.org/x42/osx/x42-midifilter-lv2-osx-${MIDIFILTER_VERSION}.zip \
+ 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"
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
+ echo "deploying harrison tools for $OSX_BENSID"
+
+ mkdir -p "${PRODUCT_PKG_DIR}/${APPROOT}/lib/ladspa/strip"
+ curl -s -S --fail -# \
+ -z "${CACHEDIR}/harrison_channelstrip.${OSX_BENSID}.so" \
+ -o "${CACHEDIR}/harrison_channelstrip.${OSX_BENSID}.so" \
+ http://www.harrisonconsoles.com/mixbus/mb3/${OSX_BENSID}/harrison_channelstrip.so
+
+ cp "${CACHEDIR}/harrison_channelstrip.${OSX_BENSID}.so" \
+ "${PRODUCT_PKG_DIR}/${APPROOT}/lib/ladspa/strip/harrison_channelstrip.so"
fi
################################################################################
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
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
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."