update packaging tools to always use revision.cc to determine version number, not...
[ardour.git] / tools / linux_packaging / build
index 8b692de74ec5189bb811f94033ca39c9d0936c60..e8cc4d53b2d1fa7f480c1401305cd7d9b6d7845a 100755 (executable)
@@ -14,8 +14,14 @@ ARDOURSTACK_ROOT=$HOME/a3/inst
 # the waf build tree to use when copying built/generated files
 BUILD_ROOT=../../build
 
+# where harvid and xjadeo binaries are cached
+if test -z "$CACHEDIR" -o ! -d "$CACHEDIR"; then
+       CACHEDIR=`pwd`
+fi
+
 MIXBUS=
 WITH_LADSPA=0
+WITH_HARVID=
 STRIP=all
 PRINT_SYSDEPS=
 WITH_NLS=
@@ -23,6 +29,7 @@ EXTERNAL_JACK=
 VENDOR=Ardour ;
 BUILDTYPE=""
 
+
 if [ $# -eq 0 ] ; then
        echo ""  
        echo "ERROR - Please specify build type"
@@ -70,6 +77,7 @@ while [ $# -gt 0 ] ; do
        --strip) STRIP=$2 ; shift ; shift ;;
        --sysdeps) PRINT_SYSDEPS=1; shift ;;
        --nls) WITH_NLS=1 ; shift ;;
+       --harvid) WITH_HARVID=1 ; shift ;;
 
        *)
                #catch all for unknown arguments
@@ -87,10 +95,14 @@ if test x$STRIP != xall -a x$STRIP != xnone -a x$STRIP != xsome ; then
     exit 1
 fi
 
-release_version=`grep -m 1 '[^A-Za-z_]LINUX_VERSION = ' ../../wscript | awk '{ print $3 }' | sed "s/'//g"`
-revision=`grep -m 1 'revision =' ../../libs/ardour/revision.cc | cut -d'"' -f 2`
-echo "Version is $release_version / $revision"
-info_string="$release_version/$revision built on `hostname` by `whoami` on `date`"
+. ../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`"
+else
+    info_string="$release_version built on `hostname` by `whoami` on `date`"
+fi
 echo "Info string is $info_string"
 
 # Figure out our CPU type
@@ -99,11 +111,13 @@ case `uname -m` in
                echo "Architecture is x86"
                ARCH='x86'
                ARCH_BITS='32-bit'
+               MULTIARCH='i386-linux-gnu'
                ;;
        x86_64|amd64|AMD64)
                echo "Architecture is x86_64"
                ARCH='x86_64'
                ARCH_BITS='64-bit'
+               MULTIARCH='x86_64-linux-gnu'
                ;;
        *)
                echo ""
@@ -113,13 +127,6 @@ case `uname -m` in
                ;;
 esac
 
-# Figure out the Build Type
-if grep -q "DEBUG = True" ../../build/c4che/default.cache.py; then
-       DEBUG="T"
-else
-       DEBUG="F"
-fi
-
 if [ x$DEBUG = xT ]; then
     BUILDTYPE="dbg"
     if [ x$STRIP = xall ] ; then
@@ -131,11 +138,11 @@ fi
 # setup directory structure
 
 if [ -z "${BUILDTYPE}" ]; then
-       APPDIR=${APPNAME}_${ARCH}-${release_version}_${revision}
-       APP_VER_NAME=${APPNAME}-${release_version}_${revision}
+       APPDIR=${APPNAME}_${ARCH}-${release_version}
+       APP_VER_NAME=${APPNAME}-${release_version}
 else
-       APPDIR=${APPNAME}_${ARCH}-${release_version}_${revision}-${BUILDTYPE}
-       APP_VER_NAME=${APPNAME}-${release_version}_${revision}-${BUILDTYPE}
+       APPDIR=${APPNAME}_${ARCH}-${release_version}-${BUILDTYPE}
+       APP_VER_NAME=${APPNAME}-${release_version}-${BUILDTYPE}
 fi
 
 APPBIN=$APPDIR/bin
@@ -147,6 +154,7 @@ Shared=$APPDIR/share
 Plugins=$APPLIB/plugins
 Surfaces=$APPLIB/surfaces
 Panners=$APPLIB/panners
+Backends=$APPLIB/backends
 
 Modules=$Libraries/modules
 Loaders=$Libraries/loaders
@@ -194,8 +202,8 @@ mkdir -p $PatchFiles
 mkdir -p $MackieControl
 mkdir -p $ExportFormats
 mkdir -p $Panners
+mkdir -p $Backends
 mkdir -p $Templates
-mkdir -p $Shared/templates
 mkdir -p $Shared/doc
 
 # maybe set variables
@@ -224,8 +232,7 @@ echo export 'PATH=/usr/local/bin:/opt/bin:$PATH' >> $ENVIRONMENT
 
 sed -e "/^%ENV%/r $ENVIRONMENT" -e '/^%ENV%/d' -e 's/%VER%/'"${release_version}"'/' < ardour.sh.in > $APPBIN/ardour3
 rm $ENVIRONMENT && chmod 775 $APPBIN/ardour3
-# the 3.0 here is not the same as "release-version" because the latter may include "-betaN" etc.
-MAIN_EXECUTABLE=ardour-3.0
+MAIN_EXECUTABLE=ardour-${release_version}
 
 echo "Copying ardour executable ...."
 cp $BUILD_ROOT/gtk2_ardour/$MAIN_EXECUTABLE $APPBIN
@@ -301,7 +308,7 @@ fi
 
 cp -R $GTKSTACK_ROOT/etc/* $Etc
 echo "Copying all Pango modules ..."
-cp -R $GTKSTACK_ROOT/lib/pango/1.6.0/modules/*.so $Modules
+cp -R $GTKSTACK_ROOT/lib/pango/1.8.0/modules/*.so $Modules
 echo "Copying all GDK Pixbuf loaders ..."
 cp -R $GTKSTACK_ROOT/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.so $Loaders
 
@@ -309,9 +316,9 @@ cp -R $GTKSTACK_ROOT/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.so $Loaders
 
 cat > pangorc <<EOF 
 [Pango]
-ModulesPath=$GTKSTACK_ROOT/lib/pango/1.6.0/modules
+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.6.0/?@ROOTDIR@/?" > $Etc/pango.modules.in
+env PANGO_RC_FILE=pangorc $GTKSTACK_ROOT/bin/pango-querymodules | sed "s?$GTKSTACK_ROOT/lib/pango/1.8.0/?@ROOTDIR@/?" > $Etc/pango.modules.in
 rm pangorc
 
 # Ditto for gdk-pixbuf loaders
@@ -366,11 +373,11 @@ for x in $BUILD_ROOT/../mcp/*.device $BUILD_ROOT/../mcp/*.profile ; do
 done
 
 # Templates
-for f in $BUILD_ROOT/../templates/* ; do 
-    if [ -d "$f" ] ; then
-       echo Template: $f ; cp -r "$f" $Templates ; 
-    fi
-done
+#for f in $BUILD_ROOT/../templates/* ; do 
+#    if [ -d "$f" ] ; then
+#      echo Template: $f ; cp -r "$f" $Templates ; 
+#    fi
+#done
 
 # ExportFormats
 # got to be careful with names here
@@ -381,6 +388,9 @@ done
 # Panners
 cp $BUILD_ROOT/libs/panners/*/lib*.so* $Panners
 
+# Backends
+cp $BUILD_ROOT/libs/backends/*/lib*.so* $Backends
+
 # VAMP plugins that we use
 cp $BUILD_ROOT/libs/vamp-plugins/libardourvampplugins.so* $Libraries
 
@@ -525,17 +535,45 @@ fi
 # share stuff
 
 cp -R ../../gtk2_ardour/splash.png $Shared
+cp -R ../../gtk2_ardour/small-splash.png $Shared
 cp -R ../../gtk2_ardour/ArdourMono.ttf $Shared
 
+# install bundled LV2s to <app>/lib/LV2/
+cp -R $BUILD_ROOT/libs/LV2 $APPLIB/
+
 # go through and recursively remove any .svn dirs in the bundle
 for svndir in `find $APPDIR -name .svn -type d`; do
        rm -rf $svndir
 done
 
+if test x$WITH_HARVID != x ; then
+       cd $APPBIN
+       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)
+
+       rsync -Pa \
+               rsync://ardour.org/video-tools/harvid-${MULTIARCH}-${HARVID_VERSION}.tgz \
+               "$CACHEDIR/harvid-${MULTIARCH}-${HARVID_VERSION}.tgz"
+
+       rsync -Pa \
+               rsync://ardour.org/video-tools/xjadeo-${MULTIARCH}-${XJADEO_VERSION}.tgz \
+               "$CACHEDIR/xjadeo-${MULTIARCH}-${XJADEO_VERSION}.tgz"
+
+       tar -x -z \
+               --exclude=README --exclude=harvid.1 --strip-components=1 \
+               -f "$CACHEDIR/harvid-${MULTIARCH}-${HARVID_VERSION}.tgz" || exit 1
+
+       tar -x -z \
+               --exclude=README --exclude=xjadeo.1 --strip-components=1 \
+               -f "$CACHEDIR/xjadeo-${MULTIARCH}-${XJADEO_VERSION}.tgz" || exit 1
+       mv xjadeo xjremote
+       cd -
+fi
+
 #
 # Add the uninstaller
 #
-sed -e "s/%REPLACE_PGM%/${APPNAME}/" -e "s/%REPLACE_VENDOR%/${VENDOR}/" -e "s/%REPLACE_VERSION%/${release_version}/" -e "s/%REPLACE_BUILD%/${revision}/" -e "s/%REPLACE_TYPE%/${BUILDTYPE}/" < uninstall.sh.in > $APPBIN/${APP_VER_NAME}.uninstall.sh
+sed -e "s/%REPLACE_PGM%/${APPNAME}/" -e "s/%REPLACE_VENDOR%/${VENDOR}/" -e "s/%REPLACE_VERSION%/${release_version}/" -e "s/%REPLACE_TYPE%/${BUILDTYPE}/" < uninstall.sh.in > $APPBIN/${APP_VER_NAME}.uninstall.sh
 chmod a+x $APPBIN/${APP_VER_NAME}.uninstall.sh
 
 #Sanity Check file