replace ::cast_dynamic() with relevant ActionManager::get_*_action() calls
[ardour.git] / tools / linux_packaging / package
index 9dec97b06458d4d66c08b5f9cdc86f0b32471278..1fb9fc8adece902711f471658e8363837759be21 100755 (executable)
@@ -5,12 +5,15 @@
 # This will collect up the x86 and x86_64 bundles created by build
 # and package them together with an installer script.
 
-STRIP=1
 BUILDTYPE=""
 SINGLE_ARCH="F"
 X86_BUNDLE_OK="F"
 X86_64_BUNDLE_OK="F"
+GCC5ABI="F"
+MAKESELF=""
+BUILD_ROOT=../../build
 
+MAKESELFOPTS="--bzip2"
 
 if [ $# -eq 0 ] ; then
        echo ""  
@@ -35,13 +38,23 @@ while [ $# -gt 0 ] ; do
        --mixbus)
                APPNAME=Mixbus ;
                shift ;;
+       --mixbus32c)
+               APPNAME=Mixbus32C ;
+               shift ;;
        --public)
                APPNAME=Ardour ;
                shift ;;
 
-       --nostrip) STRIP= ; shift ;;
+       --makeself)
+               MAKESELF=`which makeself`;
+               shift ;;
+
        --singlearch) SINGLE_ARCH="T" ; shift ;;
 
+       --gcc5abi) GCC5ABI="T" ; shift ;;
+
+       --xz) MAKESELFOPTS="--xz --complevel 9" ; shift ;;
+
        *)
                #catch all for unknown arguments
                echo ""
@@ -52,45 +65,39 @@ while [ $# -gt 0 ] ; do
        esac
 done
 
-release_version=`grep -m 1 '^VERSION' ../../wscript | awk '{print $3}' | sed "s/'//g"`
-svn_version=`grep -m 1 'svn_revision =' ../../libs/ardour/svn_revision.cc | cut -d"'" -f 2`
-
-# Figure out the Build Type
-if grep -q "DEBUG = True" ../../build/c4che/default.cache.py; then
-       DEBUG="T"
-else
-       DEBUG="F"
-fi
+. ../define_versions.sh
 
-if [ x$DEBUG != x ]; then
-       if [ x$STRIP != x ]; then
-               BUILDTYPE="strip"
-       else
-               BUILDTYPE="dbg"
-       fi
+if [ x$DEBUG = xT ]; then
+       BUILDTYPE="dbg"
 fi
 
+X86_BUNDLE="${APPNAME}_x86-${release_version}"
+X86_64_BUNDLE="${APPNAME}_x86_64-${release_version}"
 
-if [ -z ${BUILDTYPE} ]; then
-       X86_BUILD="${APPNAME}_x86-${release_version}_${svn_version}.tar.bz2"
-       X86_64_BUILD="${APPNAME}_x86_64-${release_version}_${svn_version}.tar.bz2"
-else
-       X86_BUILD="${APPNAME}_x86-${release_version}_${svn_version}-${BUILDTYPE}.tar.bz2"
-       X86_64_BUILD="${APPNAME}_x86_64-${release_version}_${svn_version}-${BUILDTYPE}.tar.bz2"
+if [ ! -z ${BUILDTYPE} ]; then
+       X86_BUNDLE="${X86_BUNDLE}-${BUILDTYPE}"
+       X86_64_BUNDLE="${X86_64_BUNDLE}-${BUILDTYPE}"
 fi 
 
-
-if [ ! -e ${X86_BUILD} ]; then
+if [ ! -e ${X86_BUNDLE}.tar ] ; then
+       echo ""
+       echo "Can't locate x86 bundle file ${X86_BUNDLE}.tar"
+       echo ""
+elif [ ! -e ${X86_BUNDLE}.size ] ; then
        echo ""
-       echo "Can't locate x86 bundle file ${X86_BUILD}"
+       echo "Can't locate x86 bundle size file ${X86_BUNDLE}.size"
        echo ""
 else
        X86_BUNDLE_OK="T"
 fi
 
-if [ ! -e ${X86_64_BUILD} ]; then
+if [ ! -e ${X86_64_BUNDLE}.tar ]; then
        echo ""
-       echo "Can't locate x86_64 bundle file ${X86_64_BUILD}"
+       echo "Can't locate x86_64 bundle file ${X86_64_BUNDLE}.tar"
+       echo ""
+elif [ ! -e ${X86_64_BUNDLE}.size ]; then
+       echo ""
+       echo "Can't locate x86 bundle size file ${X86_BUNDLE}.size"
        echo ""
 else
        X86_64_BUNDLE_OK="T"
@@ -100,7 +107,7 @@ fi
 if [ "${X86_BUNDLE_OK}" = "F" ] || [ "${X86_64_BUNDLE_OK}" = "F" ]; then
        if [ "${X86_BUNDLE_OK}" = "${X86_64_BUNDLE_OK}" ]; then
                echo ""
-               echo "!!! ERROR !!! - Can't locate bundle files ${X86_BUILD} or ${X86_64_BUILD}"
+               echo "!!! ERROR !!! - Can't locate bundle files ${X86_BUNDLE} or ${X86_64_BUNDLE}"
                echo ""
                exit 1
        elif [ "${SINGLE_ARCH}" = "T" ]; then
@@ -120,29 +127,32 @@ fi
 if [ -z ${BUILDTYPE} ]; then
        if [ "${SINGLE_ARCH}" = "T" ]; then
                if [ "${X86_BUNDLE_OK}" = "T" ]; then
-                       PACKAGE="${APPNAME}_32bit-${release_version}_${svn_version}"
+                       PACKAGE="${APPNAME}-${release_version}-x86"
                else
-                       PACKAGE="${APPNAME}_64bit-${release_version}_${svn_version}"
+                       PACKAGE="${APPNAME}-${release_version}-x86_64"
                fi
        else
-               PACKAGE="${APPNAME}-${release_version}_${svn_version}"
+               PACKAGE="${APPNAME}-${release_version}"
        fi
 else
        if [ "${SINGLE_ARCH}" = "T" ]; then
                if [ "${X86_BUNDLE_OK}" = "T" ]; then
-                       PACKAGE="${APPNAME}_32bit-${release_version}_${svn_version}-${BUILDTYPE}"
+                       PACKAGE="${APPNAME}-${release_version}-${BUILDTYPE}-x86"
                else
-                       PACKAGE="${APPNAME}_64bit-${release_version}_${svn_version}-${BUILDTYPE}"
+                       PACKAGE="${APPNAME}-${release_version}-${BUILDTYPE}-x86_64"
                fi
        else
-               PACKAGE="${APPNAME}-${release_version}_${svn_version}-${BUILDTYPE}"
+               PACKAGE="${APPNAME}-${release_version}-${BUILDTYPE}"
        fi
 fi 
 
+if [ "$GCC5ABI" = "T" ]; then
+       PACKAGE="${PACKAGE}-gcc5"
+fi
 
 echo "Cleaning up any old package files for this build"
 #Get rid of any old packages of this same name.
-rm -f ${PACKAGE}.tar.bz2
+rm -f ${PACKAGE}.tar
 rm -rf ${PACKAGE}
 
 
@@ -150,22 +160,40 @@ echo "Creating new package dir..."
 mkdir ${PACKAGE}
 
 if [ "${X86_BUNDLE_OK}" = "T" ]; then
-       mv ${X86_BUILD} ${PACKAGE}
+       mv ${X86_BUNDLE}.tar ${PACKAGE}
+       mv ${X86_BUNDLE}.size ${PACKAGE}/.${X86_BUNDLE}.size
 fi
 
 if [ "${X86_64_BUNDLE_OK}" = "T" ]; then
-       mv ${X86_64_BUILD} ${PACKAGE}
+       mv ${X86_64_BUNDLE}.tar ${PACKAGE}
+       mv ${X86_64_BUNDLE}.size ${PACKAGE}/.${X86_64_BUNDLE}.size
 fi
 
 cp install.sh ${PACKAGE}
 cp stage2.run ${PACKAGE}/.stage2.run
 cp README ${PACKAGE}
 
-echo "Creating tarball..."
-tar -cf ${PACKAGE}.tar ${PACKAGE}
+# gcc4/5 ABI test tool
+if [ -e $BUILD_ROOT/tools/gccabicheck/gcc-glibmm-abi-check ]; then
+       cp $BUILD_ROOT/tools/gccabicheck/gcc-glibmm-abi-check ${PACKAGE}/.gcc-glibmm-abi-check
+else
+       echo "!!!ERROR !!! gcc-glibmm-abi-check program is missing. packager will exit without being complete"
+       rm -rf ${PACKAGE}
+       rm -f stage2.run
+       exit 1
+fi
+
+if test -n "$MAKESELF"; then
+       echo "Creating self-extracting installer"
+       $MAKESELF ${MAKESELFOPTS} ${PACKAGE}/ ${PACKAGE}.run ${APPNAME} ./install.sh
+else
+       echo "Creating tarball..."
+       tar -cf ${PACKAGE}.tar ${PACKAGE}
+fi
 
 echo "Clean up"
 rm -rf ${PACKAGE}
+rm -f stage2.run
 
 echo ""
 echo "Done"