MIXBUS=
WITH_HARRISON_LV2=
WITH_X42_LV2=
-WITH_LADSPA=0
WITH_HARVID=
STRIP=all
PRINT_SYSDEPS=
BUILDTYPE=""
NOSTRIP="libsuil|libserd|libsord|liblilv|libsratom|liblrdf|libardour|libpbd|libevoral"
+: ${HARRISONCHANNELSTRIP=harrison_channelstrip}
+: ${HARRISONLV2=harrison_lv2s-n}
+: ${HARRISONDSPURL=http://www.harrisonconsoles.com/plugins/releases/public}
if [ $# -eq 0 ] ; then
echo ""
WITH_HARRISON_LV2=1 ;
WITH_X42_LV2=1 ;
WITH_NLS=1 ;
- WITH_LADSPA=;
STRIP=all
APPNAME=Mixbus ;
VENDOR=Harrison ;
EXENAME=mixbus ;
shift ;;
+ --mixbus32c)
+ MIXBUS=1;
+ WITH_HARRISON_LV2=1 ;
+ WITH_X42_LV2=1 ;
+ WITH_NLS=1 ;
+ STRIP=all
+ APPNAME=Mixbus32C ;
+ VENDOR=Harrison ;
+ EXENAME=mixbus32c ;
+ major_version=""
+ shift ;;
--public)
+ WITH_HARRISON_LV2=1 ;
WITH_NLS=1 ;
- WITH_LADSPA=;
STRIP=all ;
APPNAME=Ardour ;
shift ;;
--allinone)
WITH_NLS= ;
- WITH_LADSPA=1;
STRIP=all;
shift ;;
- --test) WITH_LADSPA=; STRIP= ; shift ;;
+ --test) STRIP= ; shift ;;
#
# specific build flags
#
--nojack) INTERNAL_JACK= ; shift ;;
- --noladspa) WITH_LADSPA= ; shift ;;
--strip) STRIP=$2 ; shift ; shift ;;
--sysdeps) PRINT_SYSDEPS=1; shift ;;
--nls) WITH_NLS=1 ; shift ;;
--harvid) WITH_HARVID=1 ; shift ;;
--gcc5abi) GCC5ABI=true ; shift ;;
+ --chanstrip) HARRISONCHANNELSTRIP=$2 ; shift; shift ;;
*)
#catch all for unknown arguments
fi
. ../define_versions.sh
+lower_case_appname=`echo $APPNAME | tr '[:upper:]' '[:lower:]'`
echo "Version is $release_version"
if [ "x$commit" != "x" ] ; then
Panners=$APPLIB/panners
Backends=$APPLIB/backends
+Themes=$Shared/themes
Templates=$Shared/templates
ExportFormats=$Shared/export
Locale=$Shared/locale
MidiMaps=$Shared/midi_maps
PatchFiles=$Shared/patchfiles
+LuaScripts=$Shared/scripts
MackieControl=$Shared/mcp
+OSC=$Shared/osc
if [ x$PRINT_SYSDEPS != x ] ; then
#
mkdir -p $APPLIB
mkdir -p $Etc
mkdir -p $Shared
+mkdir -p $Themes
mkdir -p $Locale
mkdir -p $Surfaces
mkdir -p $MidiMaps
mkdir -p $PatchFiles
+mkdir -p $LuaScripts
mkdir -p $MackieControl
+mkdir -p $OSC
mkdir -p $ExportFormats
mkdir -p $Panners
mkdir -p $Backends
cp $GTKSTACK_ROOT/lib/gtk-2.0/2.10.0/engines/libpixmap.so $Libraries
(cd $GTK_ENGINE_DIR && ln -s ../../libpixmap.so . )
-# LADSPA
-if test x$WITH_LADSPA != x ; then
- if test x$MIXBUS != x ; then
- plugdir=mixbus_ladspa
- else
- plugdir=ladspa
- fi
- echo "Copying `ls $plugdir | wc -l` plugins ..."
- if [ -d $plugdir ] ; then
- mkdir -p $Plugins
- cp -r $plugdir/* $Plugins
- fi
-fi
-
# Control Surfaces
cp $BUILD_ROOT/libs/surfaces/*/libardour_*.so* $Surfaces
cp $BUILD_ROOT/libs/surfaces/control_protocol/libardourcp.so* $Libraries
cp "$x" $PatchFiles
done
+# Lua Scripts 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
+
# Templates
#for f in $BUILD_ROOT/../templates/* ; do
# if [ -d "$f" ] ; then
fi
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 $APPLIB/
+ if test x$STRIP = xall ; then
+ strip -s $APPLIB/${BN}
+ fi
+ ln -s ../lib/ardour-util.sh $APPBIN/${BN}
+ HAVE_SESSION_UTILS=true
+done
+
+if test "$HAVE_SESSION_UTILS" = true ; then
+ cat >> $APPLIB/ardour-util.sh << EOF
+#!/bin/sh
+
+BIN_DIR=\$(dirname \$(readlink -f \$0))
+INSTALL_DIR=\$(dirname \$BIN_DIR)
+
+export LD_LIBRARY_PATH=\$INSTALL_DIR/lib\${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH}
+
+export ARDOUR_DATA_PATH=\$INSTALL_DIR/share
+export ARDOUR_CONFIG_PATH=\$INSTALL_DIR/etc
+export ARDOUR_DLL_PATH=\$INSTALL_DIR/lib
+export VAMP_PATH=\$INSTALL_DIR/lib\${VAMP_PATH:+:\$VAMP_PATH}
+
+SELF=\$(basename \$0)
+exec "\$INSTALL_DIR/lib/\$SELF" "\$@"
+EOF
+ chmod +x $APPLIB/ardour-util.sh
+fi
+
OURLIBDIR=$BUILD_ROOT/libs
-OURLIBS=$OURLIBDIR/vamp-sdk:$OURLIBDIR/surfaces/control_protocol:$OURLIBDIR/ardour:$OURLIBDIR/midi++2:$OURLIBDIR/pbd:$OURLIBDIR/rubberband:$OURLIBDIR/soundtouch:$OURLIBDIR/gtkmm2ext:$OURLIBDIR/sigc++2:$OURLIBDIR/glibmm2:$OURLIBDIR/gtkmm2/atk:$OURLIBDIR/gtkmm2/pango:$OURLIBDIR/gtkmm2/gdk:$OURLIBDIR/gtkmm2/gtk:$OURLIBDIR/canvas:$OURLIBDIR/libsndfile:$OURLIBDIR/evoral:$OURLIBDIR/evoral/src/libsmf:$OURLIBDIR/audiographer:$OURLIBDIR/timecode:$OURLIBDIR/taglib:$OURLIBDIR/libltc:$OURLIBDIR/qm-dsp:$OURLIBDIR/ardouralsautil:$OURLIBDIR/ptformat:$BUILD_ROOT/gtk2_ardour
+OURLIBS=$OURLIBDIR/surfaces/control_protocol:$OURLIBDIR/ardour:$OURLIBDIR/midi++2:$OURLIBDIR/pbd:$OURLIBDIR/gtkmm2ext:$OURLIBDIR/glibmm2:$OURLIBDIR/canvas:$OURLIBDIR/widgets:$OURLIBDIR/waveview:$OURLIBDIR/evoral:$OURLIBDIR/evoral/src/libsmf:$OURLIBDIR/audiographer:$OURLIBDIR/timecode:$OURLIBDIR/libltc:$OURLIBDIR/qm-dsp:$OURLIBDIR/ardouralsautil:$OURLIBDIR/ptformat:$BUILD_ROOT/gtk2_ardour
echo $OURLIBS${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
checkedIdx=0
-deplibs=
+
+# these are dynamically loaded by NSS
+deplibs="libfreeblpriv3.so libsoftokn3.so libnsspem.so"
+cp -v $GTKSTACK_ROOT/lib/libsoftokn3.so $Libraries/
+cp -v $GTKSTACK_ROOT/lib/libfreeblpriv3.so $Libraries/
+cp -v $GTKSTACK_ROOT/lib/libnsspem.so $Libraries/
+chrpath -r foo $Libraries/libsoftokn3.so
+chrpath -r foo $Libraries/libfreeblpriv3.so
+chrpath -r foo $Libraries/libnsspem.so
while [ true ] ; do
missing=false
checkIdx=$(($checkIdx + 1))
# ignore suil/qt wrappers - the plugin will pull in QT4.
- if echo $file | grep -qs 'libsuil_.*qt4' ; then continue; fi
+ if echo $file | grep -qs 'libsuil_.*qt[45]' ; then continue; fi
# do not include libjack, nor libwine
deps=`LD_LIBRARY_PATH=$OURLIBS${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} ldd $file | grep -v libwine.so | awk '{print $3}'`
if echo $dep | grep -qs 'libc\.' ; then continue; fi
# don't include libstdc++
if echo $dep | grep -qs libstdc++ ; then continue; fi
- # don't include libdbus
+ # don't include libdbus (alsa request device)
if echo $dep | grep -qs libdbus ; then continue; fi
+ # nor libudev (hidapi)
+ if echo $dep | grep -qs libudev ; then continue; fi
base=`basename $dep`
if ! test -f $Libraries/$base; then
echo "Copying other stuff to $APPDIR ..."
# these are all generated by waf
-cp $BUILD_ROOT/gtk2_ardour/mnemonic-us.bindings $Etc
+cp $BUILD_ROOT/gtk2_ardour/ardour.keys $Etc
cp $BUILD_ROOT/gtk2_ardour/ardour.menus $Etc
cp $BUILD_ROOT/gtk2_ardour/clearlooks.rc $Etc
cp $BUILD_ROOT/gtk2_ardour/default_ui_config $Etc
# Copied directly from source tree
+mkdir ${Shared}/icons
+mkdir ${Shared}/resources
cp ../../system_config $Etc/system_config
-cp ../../gtk2_ardour/dark.colors $Etc
-cp ../../instant.xml $Shared/instant.xml
-cp ../../gtk2_ardour/step_editing.bindings $Etc
-cp ../../gtk2_ardour/mixer.bindings $Etc
-cp -r ../../gtk2_ardour/icons $Shared
-cp -r ../../gtk2_ardour/pixmaps $Shared
-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 ${Shared}/icons
+cp -r ../../gtk2_ardour/icons/cursor_* ${Shared}/icons/
+cp ../../gtk2_ardour/ArdourMono.ttf $Shared
+cp ../../gtk2_ardour/resources/${APPNAME}-* ${Shared}/resources/
+
+# Themes: only install those named for this app
+cp ../../gtk2_ardour/themes/*-${lower_case_appname}.colors $Themes
#
# put sooper sekrit ingredients here and they will be copied
mkdir -p $APPLIB/LV2
curl -s -S --fail -# \
- -z "${CACHEDIR}/harrison_lv2s.${HARCH}.zip" \
- -o "${CACHEDIR}/harrison_lv2s.${HARCH}.zip" \
- "http://www.harrisonconsoles.com/mixbus/mb3/beta/harrison-dsp/harrison_lv2s.${HARCH}.zip"
- unzip -q -d "$APPLIB/LV2/" "${CACHEDIR}/harrison_lv2s.${HARCH}.zip"
+ -z "${CACHEDIR}/${HARRISONLV2}.${HARCH}.zip" \
+ -o "${CACHEDIR}/${HARRISONLV2}.${HARCH}.zip" \
+ "${HARRISONDSPURL}/${HARRISONLV2}.${HARCH}.zip"
+ unzip -q -d "$APPLIB/LV2/" "${CACHEDIR}/${HARRISONLV2}.${HARCH}.zip"
fi
if test -n "$MIXBUS"; then
mkdir -p $APPLIB/ladspa/strip/
curl -s -S --fail -# \
- -z "${CACHEDIR}/harrison_channelstrip.${HARCH}.so" \
- -o "${CACHEDIR}/harrison_channelstrip.${HARCH}.so" \
- "http://www.harrisonconsoles.com/mixbus/mb3/beta/harrison-dsp/harrison_channelstrip.${HARCH}.so"
+ -z "${CACHEDIR}/${HARRISONCHANNELSTRIP}.${HARCH}.so" \
+ -o "${CACHEDIR}/${HARRISONCHANNELSTRIP}.${HARCH}.so" \
+ "${HARRISONDSPURL}/${HARRISONCHANNELSTRIP}.${HARCH}.so"
+
+ cp "${CACHEDIR}/${HARRISONCHANNELSTRIP}.${HARCH}.so" \
+ $APPLIB/ladspa/strip/${HARRISONCHANNELSTRIP}.so
+ chmod +x $APPLIB/ladspa/strip/${HARRISONCHANNELSTRIP}.so
+
+ echo "Adding Harrison Vamp Plugins"
+
+ if test "$GCC5ABI" = "true"; then
+ VAMPARCH="${HARCH}gcc5"
+ else
+ VAMPARCH="${HARCH}"
+ fi
+ curl -s -S --fail -# \
+ -z "${CACHEDIR}/harrison_vamp.${VAMPARCH}.so" \
+ -o "${CACHEDIR}/harrison_vamp.${VAMPARCH}.so" \
+ "${HARRISONDSPURL}/harrison_vamp.${VAMPARCH}.so"
+
+ cp "${CACHEDIR}/harrison_vamp.${VAMPARCH}.so" \
+ $APPLIB/harrison_vamp.so
+ chmod +x $APPLIB/harrison_vamp.so
+fi
+
+if true ; then
+ mkdir -p $APPLIB/LV2
+
+ echo "Adding General MIDI Synth LV2"
- cp "${CACHEDIR}/harrison_channelstrip.${HARCH}.so" \
- $APPLIB/ladspa/strip/harrison_channelstrip.so
- chmod +x $APPLIB/ladspa/strip/harrison_channelstrip.so
+ for proj in x42-gmsynth ; do
+ X42_VERSION=$(curl -s -S http://x42-plugins.com/x42/linux/${proj}.latest.txt)
+ rsync -a -q --partial \
+ rsync://x42-plugins.com/x42/linux/${proj}-lv2-linux-${WARCH}-${X42_VERSION}.zip \
+ "${CACHEDIR}/${proj}-lv2-linux-${WARCH}-${X42_VERSION}.zip"
+ unzip -q -d "$APPLIB/LV2/" "${CACHEDIR}/${proj}-lv2-linux-${WARCH}-${X42_VERSION}.zip"
+ done
fi
+
if test x$WITH_X42_LV2 != x ; then
- METERS_VERSION=$(curl -s -S http://x42-plugins.com/x42/linux/x42-meters.latest.txt)
- rsync -a -q --partial \
- rsync://x42-plugins.com/x42/linux/x42-meters-lv2-linux-${WARCH}-${METERS_VERSION}.zip \
- "${CACHEDIR}/x42-meters-lv2-linux-${WARCH}-${METERS_VERSION}.zip"
- unzip -q -d "$APPLIB/LV2/" "${CACHEDIR}/x42-meters-lv2-linux-${WARCH}-${METERS_VERSION}.zip"
-
- SETBFREE_VERSION=$(curl -s -S http://x42-plugins.com/x42/linux/setBfree.latest.txt)
- rsync -a -q --partial \
- rsync://x42-plugins.com/x42/linux/setBfree-lv2-linux-${WARCH}-${SETBFREE_VERSION}.zip \
- "${CACHEDIR}/setBfree-lv2-linux-${WARCH}-${SETBFREE_VERSION}.zip"
- unzip -q -d "$APPLIB/LV2/" "${CACHEDIR}/setBfree-lv2-linux-${WARCH}-${SETBFREE_VERSION}.zip"
-
- MIDIFILTER_VERSION=$(curl -s -S http://x42-plugins.com/x42/linux/x42-midifilter.latest.txt)
- rsync -a -q --partial \
- rsync://x42-plugins.com/x42/linux/x42-midifilter-lv2-linux-${WARCH}-${MIDIFILTER_VERSION}.zip \
- "${CACHEDIR}/x42-midifilter-lv2-linux-${WARCH}-${MIDIFILTER_VERSION}.zip"
- unzip -q -d "$APPLIB/LV2/" "${CACHEDIR}/x42-midifilter-lv2-linux-${WARCH}-${MIDIFILTER_VERSION}.zip"
+ mkdir -p $APPLIB/LV2
+
+ echo "Adding x42 Plugins"
+ 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/linux/${proj}.latest.txt)
+ rsync -a -q --partial \
+ rsync://x42-plugins.com/x42/linux/${proj}-lv2-linux-${WARCH}-${X42_VERSION}.zip \
+ "${CACHEDIR}/${proj}-lv2-linux-${WARCH}-${X42_VERSION}.zip"
+ unzip -q -d "$APPLIB/LV2/" "${CACHEDIR}/${proj}-lv2-linux-${WARCH}-${X42_VERSION}.zip"
+ done
fi
-################################################################################
+################################################################################
if test x$WITH_HARVID != x ; then
cd $APPBIN
cd -
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
+
+################################################################################
+
#
# Add the uninstaller
#
echo "Building tarball ..."
-rm -f $APPDIR.tar.bz2
-tar -cjf $APPDIR.tar.bz2 $APPDIR
+rm -f $APPDIR.tar
+tar -cf $APPDIR.tar $APPDIR
echo "Calculating bundle size"
du -sb $APPDIR/ | awk '{print $1}' > $APPDIR.size