..and another packaging typo
[ardour.git] / tools / linux_packaging / package
index f405ad386b0c6b9e29953665c7e5d5cd29db31ff..cf11346eb8f2399476508f825478c9744429d90a 100755 (executable)
@@ -1,6 +1,16 @@
 #!/bin/bash
 
-# bundle
+# package
+
+# This will collect up the x86 and x86_64 bundles created by build
+# and package them together with an installer script.
+
+BUILDTYPE=""
+SINGLE_ARCH="F"
+X86_BUNDLE_OK="F"
+X86_64_BUNDLE_OK="F"
+MAKESELF=""
+
 
 if [ $# -eq 0 ] ; then
        echo ""  
@@ -29,6 +39,12 @@ while [ $# -gt 0 ] ; do
                APPNAME=Ardour ;
                shift ;;
 
+       --makeself)
+               MAKESELF=`which makeself`;
+               shift ;;
+
+       --singlearch) SINGLE_ARCH="T" ; shift ;;
+
        *)
                #catch all for unknown arguments
                echo ""
@@ -39,27 +55,88 @@ 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`
+. ../define_versions.sh
+
+if [ x$DEBUG = xT ]; then
+       BUILDTYPE="dbg"
+fi
 
-X86_BUILD="${APPNAME}_x86-${release_version}_${svn_version}.tar.bz2"
-X86_64_BUILD="${APPNAME}_x86_64-${release_version}_${svn_version}.tar.bz2"
-PACKAGE="${APPNAME}-${release_version}_${svn_version}"
+X86_BUNDLE="${APPNAME}_x86-${release_version}"
+X86_64_BUNDLE="${APPNAME}_x86_64-${release_version}"
 
-if [ ! -e ${X86_BUILD} ]; then
+if [ ! -z ${BUILDTYPE} ]; then
+       X86_BUNDLE="${X86_BUNDLE}-${BUILDTYPE}"
+       X86_64_BUNDLE="${X86_64_BUNDLE}-${BUILDTYPE}"
+fi 
+
+if [ ! -e ${X86_BUNDLE}.tar.bz2 ] ; then
        echo ""
-       echo "!!! ERROR !!! - Can't locate x86 build file ${X86_BUILD}"
+       echo "Can't locate x86 bundle file ${X86_BUNDLE}.tar.bz2"
        echo ""
-       exit 1
+elif [ ! -e ${X86_BUNDLE}.size ] ; then
+       echo ""
+       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.bz2 ]; then
        echo ""
-       echo "!!! ERROR !!! - Can't locate x86_64 build file ${X86_64_BUILD}"
+       echo "Can't locate x86_64 bundle file ${X86_64_BUNDLE}.tar.bz2"
        echo ""
-       exit 1
+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"
 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_BUNDLE} or ${X86_64_BUNDLE}"
+               echo ""
+               exit 1
+       elif [ "${SINGLE_ARCH}" = "T" ]; then
+               echo ""
+               echo "!!! Warning !!! - A single architecture package has been selected"
+               echo ""
+       else
+               echo ""
+               echo "!!! ERROR !!! - Missing bundle files."
+               echo ""
+               exit 1
+       fi
+fi
+
+
+
+if [ -z ${BUILDTYPE} ]; then
+       if [ "${SINGLE_ARCH}" = "T" ]; then
+               if [ "${X86_BUNDLE_OK}" = "T" ]; then
+                       PACKAGE="${APPNAME}_32bit-${release_version}"
+               else
+                       PACKAGE="${APPNAME}_64bit-${release_version}"
+               fi
+       else
+               PACKAGE="${APPNAME}-${release_version}"
+       fi
+else
+       if [ "${SINGLE_ARCH}" = "T" ]; then
+               if [ "${X86_BUNDLE_OK}" = "T" ]; then
+                       PACKAGE="${APPNAME}_32bit-${release_version}-${BUILDTYPE}"
+               else
+                       PACKAGE="${APPNAME}_64bit-${release_version}-${BUILDTYPE}"
+               fi
+       else
+               PACKAGE="${APPNAME}-${release_version}-${BUILDTYPE}"
+       fi
+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
@@ -68,16 +145,32 @@ rm -rf ${PACKAGE}
 
 echo "Creating new package dir..."
 mkdir ${PACKAGE}
-mv ${X86_BUILD} ${PACKAGE}
-mv ${X86_64_BUILD} ${PACKAGE}
-cp install.sh ${PACKAGE}
-cp stage2.run ${PACKAGE}
 
-echo "Creating tarball..."
-tar -czf ${PACKAGE}.tar.gz ${PACKAGE}
+if [ "${X86_BUNDLE_OK}" = "T" ]; then
+       mv ${X86_BUNDLE}.tar.bz2 ${PACKAGE}
+       mv ${X86_BUNDLE}.size ${PACKAGE}/.${X86_BUNDLE}.size
+fi
+
+if [ "${X86_64_BUNDLE_OK}" = "T" ]; then
+       mv ${X86_64_BUNDLE}.tar.bz2 ${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}
+
+if test -n "$MAKESELF"; then
+       echo "Creating self-extracting installer"
+       $MAKESELF --nocomp ${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"