#!/bin/sh # $Id$ #### barf on errors set -e # may be used to force a certain automake-version e.g. 1.7 AMVERS=1.8 # everybody who checks out the CVS wants the maintainer-mode to be enabled # (should be off for source distributions, this should happen automatically) # DEFAULTCONFOPT="--enable-maintainer-mode" # default values DEBUG=1 OPTIM=0 usage () { echo "Usage: ./autogen.sh [options]" echo " -i, --intel use intel compiler" echo " -g, --gnu use gnu compiler (default)" echo " --opts=FILE use compiler-options from FILE" echo " -d, --debug switch debug-opts on" echo " -n, --nodebug switch debug-opts off" echo " -o, --optim switch optimization on" echo " --with-dune=PATH directory with dune/ inside" echo " -h, --help you already found this :)" echo echo "Parameters not in the list above are directly passed to configure. See" echo echo " ./configure --help" echo echo "for a list of additional options" } # no compiler set yet COMPSET=0 for OPT in $* ; do set +e # stolen from configure... # when no option is set, this returns an error code arg=`expr "x$OPT" : 'x[^=]*=\(.*\)'` set -e case "$OPT" in -i|--intel) . ./icc.opts ; COMPSET=1 ;; -g|--gnu) . ./gcc.opts ; COMPSET=1 ;; --opts=*) if [ -r $arg ] ; then echo "reading options from $arg..." . ./$arg ; COMPSET=1; else echo "Cannot open compiler options file $arg!" ; exit 1; fi ;; -d|--debug) DEBUG=1 ;; -n|--nodebug) DEBUG=0 ;; -o|--optim) OPTIM=1 ;; -h|--help) usage ; exit 0 ;; # special hack: use the with-dune-dir for aclocal-includes --with-dune=*) eval DUNEDIR=$arg # add the option anyway CONFOPT="$CONFOPT $OPT" ;; # pass unknown opts to ./configure *) CONFOPT="$CONFOPT $OPT" ;; esac done # set special m4-path if --with-dune is set if [ x$DUNEDIR != x ] ; then # aclocal from automake 1.8 seems to need an absolute path for inclusion FULLDIR=`cd $DUNEDIR && pwd` # automagically use directory above if complete Dune-dir was supplied if test `basename $FULLDIR` = "dune" ; then FULLDIR=`cd $FULLDIR/.. && pwd` fi ACLOCALOPT="-I $FULLDIR/dune/m4/" fi # use the free compiler as default :-) if [ "$COMPSET" != "1" ] ; then echo "No compiler set, using GNU compiler as default" . ./gcc.opts fi # create flags COMPFLAGS="$FLAGS" # maybe add debug flag if [ "$DEBUG" = "1" ] ; then COMPFLAGS="$COMPFLAGS $DEBUGFLAGS" fi # maybe add optimization flag if [ "$OPTIM" = "1" ] ; then COMPFLAGS="$COMPFLAGS $OPTIMFLAGS" fi # check if automake-version was set if test "x$AMVERS" != x ; then echo Warning: explicitly using automake version $AMVERS # binaries are called automake-$AMVERS AMVERS="-$AMVERS" fi #### create all autotools-files echo "--> libtoolize..." # force to write new versions of files, otherwise upgrading libtools # doesn't do anything... libtoolize --force echo "--> aclocal..." aclocal$AMVERS $ACLOCALOPT # sanity check to catch missing --with-dune if ! grep DUNE aclocal.m4 > /dev/null ; then echo "aclocal.m4 doesn't contain any DUNE-macros, this would crash autoconf" echo "or automake later. Maybe you should provide a --with-dune=PATH parameter" exit 1 fi echo "--> autoheader..." autoheader echo "--> automake..." automake$AMVERS --add-missing echo "--> autoconf..." autoconf #### start configure with special environment export CC="$COMP" export CXX="$CXXCOMP" export CPP="$COMP -E" export CFLAGS="$COMPFLAGS" export CXXFLAGS="$COMPFLAGS" #./configure $DEFAULTCONFOPT $CONFOPT