Skip to content
Snippets Groups Projects
autogen.sh 3.61 KiB
Newer Older
  • Learn to ignore specific revisions
  • #!/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"
    
    
    Oliver Sander's avatar
    Oliver Sander committed
    #./configure $DEFAULTCONFOPT $CONFOPT