Add a release packaging script

This commit is contained in:
David 'Digit' Turner
2009-05-07 21:58:22 +02:00
parent 3ff832786d
commit f2b70edc0d

76
ndk/build/tools/make-release.sh Executable file
View File

@@ -0,0 +1,76 @@
#!/bin/sh
#
# This script is used to build complete Android NDK release packages
# from the git repository and a set of prebuilt cross-toolchain tarballs
#
# location of the root ndk directory. we assume this script is under build/tools
NDK_ROOT_DIR=`dirname $0`/../..
NDK_ROOT_DIR=`cd $NDK_ROOT_DIR && pwd`
# the release name
RELEASE=1.5_r1
# the directory containing the prebuilt toolchain tarballs
PREBUILT_DIR=/home/digit/android/ndk
# the prefix of prebuilt toolchain tarballs in $PREBUILT_DIR
PREBUILT_PREFIX=android-ndk-prebuilt-20090323
# the list of supported host development systems
PREBUILT_SYSTEMS="linux-x86 linux-x86_64 darwin-x86 windows"
# the list of git files to copy into the archives
GIT_FILES=`cd $NDK_ROOT_DIR && git-ls-files`
# temporary directory used for packaging
TMPDIR=/tmp/ndk-release
RELEASE_PREFIX=android-ndk-$RELEASE
rm -rf $TMPDIR && mkdir -p $TMPDIR
# first create the reference ndk directory from the git reference
echo "Creating reference from git files"
REFERENCE=$TMPDIR/reference &&
mkdir -p $REFERENCE &&
for ff in $GIT_FILES; do install -pD $ff $REFERENCE/$ff; done &&
rm -f $REFERENCE/Android.mk
if [ $? != 0 ] ; then
echo "Could not create git reference. Aborting."
exit 2
fi
# now, for each system, create a preview package
#
for SYSTEM in $PREBUILT_SYSTEMS; do
echo "Preparing package for system $SYSTEM."
BIN_RELEASE=$RELEASE_PREFIX-$SYSTEM
PREBUILT=$PREBUILT_DIR/$PREBUILT_PREFIX-$SYSTEM
DSTDIR=$TMPDIR/$RELEASE_PREFIX
rm -rf $DSTDIR && mkdir -p $DSTDIR &&
cp -rp $REFERENCE/* $DSTDIR
if [ $? != 0 ] ; then
echo "Could not copy reference. Aborting."
exit 2
fi
echo "Unpacking $PREBUILT.tar.bz2"
(cd $DSTDIR && tar xjf $PREBUILT.tar.bz2)
if [ $? != 0 ] ; then
echo "Could not unpack prebuilt for system $SYSTEM. Aborting."
exit 1
fi
echo "Creating $BIN_RELEASE.tar.bz2"
(cd $TMPDIR && tar cjf $BIN_RELEASE.tar.bz2 $RELEASE_PREFIX && rm -rf $DSTDIR)
if [ $? != 0 ] ; then
echo "Could not create archive. Aborting."
exit 1
fi
done
echo "Cleaning up."
rm -rf $TMPDIR/reference
echo "Done, please see packages in $TMPDIR:"
ls -l $TMPDIR