# This file defines a bunch of useful functions to automatize the build of SimGrid. # get_version: define the version number of the svn into a version variable get_version() { if [ x$version = x ] ; then cd ${SIMGRID_SVN_ROOT} svn up version="simgrid-3.3.4-svn-r"`svnversion` export version fi } # wait_archive: wait until the archive gets defined into the right position wait_archive() { while [ ! -e ${SIMGRID_BASEDIR}/${version}.tar.gz ] ; do echo ${SIMGRID_BASEDIR}/${version}.tar.gz not found. Wait five seconds. sleep 5 done } # make_dist: rebuild an archive from the svn make_dist() { get_version if [ ! -e ${SIMGRID_BASEDIR}/${version}.tar.gz ] ; then cd ${SIMGRID_BASEDIR} echo "rebuild the missing files for compilation" if [ ! -e configure ] ; then ./bootstrap fi if [ ! -e Makefile ] ; then # Disable compilation optim to make it built faster ./configure --enable-maintainer-mode --disable-compile-optimizations fi echo "Make the archive" make all dist echo "Copy the archive in position" mkdir -p ${SIMGRID_BASEDIR} mv ${version}.tar.gz ${SIMGRID_BASEDIR} else echo "${SIMGRID_BASEDIR}/${version}.tar.gz already exists. Don't rebuild" fi } # clean_node: remove everything about this node clean_node() { OS=`uname` node=`uname -n` # OS specific working directory BUILDDIR=${SIMGRID_BASEDIR}/$OS/$node/$version export BUILDDIR # Clean any leftover from previous install if [ -e $BUILDDIR ] ; then echo "remove old directory $BUILDDIR" rm -rf $BUILDDIR fi mkdir -p $BUILDDIR } # open_archive: wait for archive to be built, cleanup previous open_archive() { get_version clean_node wait_archive cd $BUILDDIR/.. tar xfz ${SIMGRID_BASEDIR}/${version}.tar.gz cd $BUILDDIR }