13
0
livetrax/tools/linux_packaging/package
2013-03-04 15:49:36 +00:00

177 lines
3.6 KiB
Bash
Executable File

#!/bin/bash
# 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"
if [ $# -eq 0 ] ; then
echo ""
echo "ERROR - Please specify build type"
echo " --public"
echo " --sae"
echo ""
exit 1
fi
while [ $# -gt 0 ] ; do
echo "arg = $1"
case $1 in
#
# top level build targets
#
--sae)
APPNAME=Ardour ;
shift ;;
--mixbus)
APPNAME=Mixbus ;
shift ;;
--public)
APPNAME=Ardour ;
shift ;;
--singlearch) SINGLE_ARCH="T" ; shift ;;
*)
#catch all for unknown arguments
echo ""
echo "!!! ERROR !!! - Unknown argument $1"
echo ""
exit 1
;;
esac
done
# 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"
fi
release_version=`grep -m 1 '[^A-Za-z_]LINUX_VERSION = ' ../../wscript | awk '{print $3}' | sed "s/'//g"`
svn_version=`grep -m 1 'svn_revision =' ../../libs/ardour/svn_revision.cc | cut -d'"' -f 2`
X86_BUNDLE="${APPNAME}_x86-${release_version}_${svn_version}"
X86_64_BUNDLE="${APPNAME}_x86_64-${release_version}_${svn_version}"
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 "Can't locate x86 bundle file ${X86_BUNDLE}.tar.bz2"
echo ""
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_BUNDLE}.tar.bz2 ]; then
echo ""
echo "Can't locate x86_64 bundle file ${X86_64_BUNDLE}.tar.bz2"
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"
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}_${svn_version}"
else
PACKAGE="${APPNAME}_64bit-${release_version}_${svn_version}"
fi
else
PACKAGE="${APPNAME}-${release_version}_${svn_version}"
fi
else
if [ "${SINGLE_ARCH}" = "T" ]; then
if [ "${X86_BUNDLE_OK}" = "T" ]; then
PACKAGE="${APPNAME}_32bit-${release_version}_${svn_version}-${BUILDTYPE}"
else
PACKAGE="${APPNAME}_64bit-${release_version}_${svn_version}-${BUILDTYPE}"
fi
else
PACKAGE="${APPNAME}-${release_version}_${svn_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
rm -rf ${PACKAGE}
echo "Creating new package dir..."
mkdir ${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}
echo "Creating tarball..."
tar -cf ${PACKAGE}.tar ${PACKAGE}
echo "Clean up"
rm -rf ${PACKAGE}
echo ""
echo "Done"
echo ""