#!/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"
+GCC5ABI="F"
+MAKESELF=""
+BUILD_ROOT=../../build
+
+MAKESELFOPTS="--bzip2"
if [ $# -eq 0 ] ; then
echo ""
--mixbus)
APPNAME=Mixbus ;
shift ;;
+ --mixbus32c)
+ APPNAME=Mixbus32C ;
+ shift ;;
--public)
APPNAME=Ardour ;
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 ""
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 ] ; then
echo ""
- echo "!!! ERROR !!! - Can't locate x86 build file ${X86_BUILD}"
+ echo "Can't locate x86 bundle file ${X86_BUNDLE}.tar"
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 ]; 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"
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}-${release_version}-x86"
+ else
+ PACKAGE="${APPNAME}-${release_version}-x86_64"
+ fi
+ else
+ PACKAGE="${APPNAME}-${release_version}"
+ fi
+else
+ if [ "${SINGLE_ARCH}" = "T" ]; then
+ if [ "${X86_BUNDLE_OK}" = "T" ]; then
+ PACKAGE="${APPNAME}-${release_version}-${BUILDTYPE}-x86"
+ else
+ PACKAGE="${APPNAME}-${release_version}-${BUILDTYPE}-x86_64"
+ fi
+ else
+ 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}
echo "Creating new package dir..."
mkdir ${PACKAGE}
-mv ${X86_BUILD} ${PACKAGE}
-mv ${X86_64_BUILD} ${PACKAGE}
+
+if [ "${X86_BUNDLE_OK}" = "T" ]; then
+ mv ${X86_BUNDLE}.tar ${PACKAGE}
+ mv ${X86_BUNDLE}.size ${PACKAGE}/.${X86_BUNDLE}.size
+fi
+
+if [ "${X86_64_BUNDLE_OK}" = "T" ]; then
+ 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}
+cp stage2.run ${PACKAGE}/.stage2.run
+cp README ${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
-echo "Creating tarball..."
-tar -czf ${PACKAGE}.tar.gz ${PACKAGE}
+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"