# crontabs to build nightly releases (default). Can also be invoked
# manually to build a tagged release (-r) in the current directory.
#
-# $Id: build.sh,v 1.18 2004/10/30 16:01:03 mlhuang Exp $
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2003-2005 The Trustees of Princeton University
+#
+# $Id: build.sh,v 1.30 2005/05/04 20:34:59 mlhuang Exp $
#
# Set defaults
-CVSROOT=:pserver:anon@build.planet-lab.org:/cvs
+CVSROOT=:pserver:anon@cvs.planet-lab.org:/cvs
CVS_RSH=ssh
MODULE=build
TAG=HEAD
BASE=$PWD
+MAKEFILE=Makefile
-# Alpha node repository
-ALPHA_BOOT=build@boot.planet-lab.org
-ALPHA_ROOT=/www/planetlab/install-rpms/archive/planetlab-alpha
-ALPHA_RPMS=/www/planetlab/install-rpms/planetlab-alpha
+# cron does not set USER?
+[ -z "$USER" ] && export USER=$LOGNAME
# Export certain variables
export CVS_RSH
# Get options
-while getopts "d:r:m:b:x:h" opt ; do
+while getopts "d:r:m:f:b:x:h" opt ; do
case $opt in
d)
CVSROOT=$OPTARG
m)
MAILTO=$OPTARG
;;
+ f)
+ MAKEFILE=$OPTARG
+ ;;
b)
BASE=$OPTARG
;;
;;
esac
done
+shift $(($OPTIND - 1))
# Base operations in specified directory
mkdir -p $BASE
# Build
cvs -d ${CVSROOT} export -r ${TAG} -d ${BASE} ${MODULE}
-make -C ${BASE}
+make -f ${MAKEFILE} -C ${BASE} && \
+make -f ${MAKEFILE} -C ${BASE} install BASE=$BASE BUILDS=$BUILDS
rc=$?
if [ $rc -ne 0 ] ; then
exit $rc
fi
-# Create package manifest
-URLBASE=$(cd ${BASE} && pwd -P)
-URLBASE="http://build.planet-lab.org/${URLBASE##$HOME/}/SRPMS"
-${BASE}/packages.sh -b ${URLBASE} ${BASE}/SRPMS > ${BASE}/SRPMS/packages.xml
-
-# Usually only the nightly build specifies -x
-if [ -n "$BUILDS" ] ; then
- # Remove old nightly runs
- echo "cd ${ALPHA_ROOT} && ls -t | sed -n ${BUILDS}~1p | xargs rm -rf" | ssh ${ALPHA_BOOT} /bin/bash -s
- # Update alpha node repository
- for i in RPMS SRPMS ; do
- ssh ${ALPHA_BOOT} mkdir -p ${ALPHA_ROOT}/${BASE}/${i}
- find ${BASE}/${i} -type f | xargs -i scp {} ${ALPHA_BOOT}:${ALPHA_ROOT}/${BASE}/${i}
- ssh ${ALPHA_BOOT} yum-arch ${ALPHA_ROOT}/${BASE}/${i} >/dev/null
- done
- # Update symlink
- ssh ${ALPHA_BOOT} ln -nsf ${ALPHA_ROOT}/${BASE}/RPMS/ ${ALPHA_RPMS}
-fi
-
exit 0