#!/bin/sh # # Copyright (C) 2004 Jean-Paul Chaput # License: GPL (http://www.gnu.org/copyleft/gpl.html) # # $Id: mkasim,v 1.3 2004/07/23 23:49:35 alliance Exp $ # # /------------------------------------------------------------------\ # | | # | A l l i a n c e C A D S y s t e m | # | A S I M G l o b a l I n s t a l l e r | # | | # | Author : Jean-Paul Chaput | # | E-mail : alliance-users@asim.lip6.fr | # | ================================================================ | # | sh script : "./mkasim" | # | **************************************************************** | # | U p d a t e s | # | | # | 16 Jun 2004 : | # | Major update by Jean-Paul Chaput. | # | | # \------------------------------------------------------------------/ # #set -x #set -v # -------------------------------------------------------------------- # Internal variables. LINUX_RH71_TARGET="fa" LINUX_RH71_CC="gcc3" LINUX_RH71_CXX="g++3" LINUX_FC2_TARGET="purcell" LINUX_FC2_CC="gcc" LINUX_FC2_CXX="g++" SOLARIS_TARGET="funk" SOLARIS_CC="/usr/local/bin/gcc" SOLARIS_CXX="/usr/local/bin/g++" DISTRIBDIR=/users/outil/alliance/distrib ALLIANCE_ROOT=/users/outil/alliance CVSROOT=/users/outil/alliance/cvsroot MKASIM_PID="$$" # MKASIM_PID="26882" ARCHS="Linux.FC2 Linux.RH71 Solaris" # ARCHS="Linux.RH71 Solaris" TARGETLOGFILE=/tmp/alliance-asim-build.$MKASIM_PID LOGFILE="$DISTRIBDIR/mkasim-run.log" TMPDIR=tmp-asim-$MKASIM_PID TMPBUILDDIR=build-asim-$MKASIM_PID ARCH="unset" TARGET="unset" ALLIANCE_TOP="unset" CXX="unset" CC="unset" export CVSROOT # /------------------------------------------------------------------\ # | Functions Definitions | # \------------------------------------------------------------------/ # -------------------------------------------------------------------- # Function : "fail()". fail () { echo -e "\ \n\ \n\ @@@@@@@@@ @ @@@@@@ @@@@@@ \n\ @@ @ @ @@ @@ \n\ @@ @ @@@ @@ @@ \n\ @@ @@@ @@ @@ \n\ @@ @ @ @@ @@ @@ \n\ @@@@@@ @ @@ @@ @@ \n\ @@ @ @ @@ @@ @@ \n\ @@ @@@@@@@ @@ @@ \n\ @@ @ @@ @@ @@ @\n\ @@ @ @@ @@ @@ @ \n\ @@@@@@ @@@@ @@@@ @@@@@@ @@@@@@@@@@ " echo "" } # -------------------------------------------------------------------- # Function : "pass()". pass () { echo -e "\ \n\ \n\ @@@@@@@ @ @@@@ @ @@@@ @ \n\ @@ @@ @ @ @@ @ @@ \n\ @@ @@ @@@ @@ @ @@ @ \n\ @@ @@ @@@ @@@ @@@ \n\ @@ @@ @ @@ @@@@ @@@@ \n\ @@@@@ @ @@ @@@@ @@@@ \n\ @@ @ @@ @@@ @@@ \n\ @@ @@@@@@@ @ @@ @ @@\n\ @@ @ @@ @@ @@ @@ @@\n\ @@ @ @@ @@@ @ @@@ @ \n\ @@@@@@ @@@@ @@@@ @ @@@@ @ @@@@ " echo "" } # -------------------------------------------------------------------- # Function : "part()". part () { echo "" echo "----------------------------------------------------------------------" echo "$*" echo "" } # -------------------------------------------------------------------- # Function : "try()". try () { echo "Running Command :" echo " $*" $* EXITCODE=$? if [ $EXITCODE != 0 ]; then echo "[ERROR] Command failed :" echo " $*" fail exit $EXITCODE fi } # -------------------------------------------------------------------- # Function : `guessArch()'. guessArch () { case $1 in "Linux.RH71") TARGET=$LINUX_RH71_TARGET CXX=$LINUX_RH71_CXX CC=$LINUX_RH71_CC ;; "Linux.FC2") TARGET=$LINUX_FC2_TARGET CXX=$LINUX_FC2_CXX CC=$LINUX_FC2_CC ;; "Solaris") TARGET=$SOLARIS_TARGET CXX=$SOLARIS_CXX CC=$SOLARIS_CC ;; *) echo "[ERROR] Command failed :" echo " Unsupported architecture := \"`uname -sr`\"" fail exit 1 ;; esac ALLIANCE_TOP="$ALLIANCE_ROOT/$ARCH" } # /------------------------------------------------------------------\ # | Main Part of the Shell Script | # \------------------------------------------------------------------/ ((( part "mkasim Started." try cd $DISTRIBDIR part "Removing Any Previous Run." mkdir $TMPDIR mv alliance $TMPBUILDDIR $TMPDIR rm -rf $TMPDIR & part "Checkout Sources From CVS." try cvs co -P alliance/src # Remove undistributed tools. try ./alliance/src/.asim perl -pi -e "s§AC_DEFINE_UNQUOTED.*ALLIANCE_VERSION.*§AC_DEFINE_UNQUOTED(ALLIANCE_VERSION, \"$VERSION \[$RELEASE\]\")§" alliance/src/alliance.m4 part "Making shared autostuff." try cd alliance/src try ./autostuff cd ../.. for ARCH in $ARCHS do guessArch $ARCH part "Full ASIM reinstall on Target $TARGET." echo " ALLIANCE_TOP=$ALLIANCE_TOP" echo " TARGET=$TARGET" echo " ARCH=$ARCH" echo " CXX=$CXX" echo " CC=$CC" try mkdir -p $TMPBUILDDIR/$TARGET ssh -n $TARGET \ "cd $DISTRIBDIR/$TMPBUILDDIR/$TARGET; \ ALLIANCE_TOP=$ALLIANCE_TOP; export ALLIANCE_TOP; \ CXX=$CXX; export CXX; \ CC=$CC; export CC; \ MAKE=gmake; export MAKE; \ PATH=${PATH}:/usr/ccs/bin; export PATH; \ ../../alliance/src/configure --prefix=$ALLIANCE_TOP --enable-alc-shared; \ gmake install && echo Alliance_compilation_OK" 2>&1 | tee $TARGETLOGFILE try grep Alliance_compilation_OK $TARGETLOGFILE try rm -rf $DISTRIBDIR/$TMPBUILDDIR/$TARGET done try rmdir $DISTRIBDIR/$TMPBUILDDIR ) | perl -ne '$|=1; printf("%s%s", "", $_)' \ ) 2>&1 | perl -ne '$|=1; printf("%s%s%s", "", $_, "")' ) 2>&1 > $LOGFILE