#!/bin/sh # $Source: runtime/gasnet/Bootstrap $ # $Date: Sun, 10 Jul 2005 13:09:58 -0700 $ # $Revision: 1.8.1.6 $ # Description: GASNet developer Bootstrap script # Copyright 2004, Dan Bonachea # Terms of use are as specified in license.txt set -e srcdir=`dirname $0` autoheaderfilter="2>&1 | perl -0 -pe 's/^(autoheader.*?: )?WARN.+auxiliary files(.|\n)+WARN.+documentation.\n//m'" if [ \ -r $srcdir/gasnet_config.h.in \ -a -r $srcdir/Makefile.in \ -a -r $srcdir/aclocal.m4 \ -a -r $srcdir/configure \ -a "$1" != "y" \ ]; then echo 'The "Bootstrap" script need only be used on a' echo 'completely clean, fresh source tree. After the' echo 'first build, you should just use "make" or "gmake".' echo echo 'It looks as though you have already bootstrapped' echo 'this source tree. You should only bootstrap it' echo 'again if the makefiles or configuration files are' echo 'broken and "make" or "gmake" do not work properly.' echo echo 'Are you sure you want to re-bootstrap this tree?' echo case `echo -n` in '') n='-n' c='' ;; *) n='' c='\c' ;; esac echo $n "[y/n]: $c" read redo case $redo in y* ) ;; * ) exit 1; esac fi if test "$2" != "n" ; then missing= for autotool in autoconf autoheader automake aclocal m4 ; do info=`( $autotool --version 2>/dev/null || echo 'Not found' ) | head -1` if test "$info" != "Not found" ; then info="$info, in `which $autotool`" elif "$autotool" != "m4" ; then missing="$missing$autotool " fi echo "$autotool: $info" done if test "$missing" != ""; then echo "The following GNU autotools are missing from your PATH:" echo " $missing" if test -r $srcdir/gasnet_config.h.in \ -a -r $srcdir/Makefile.in \ -a -r $srcdir/aclocal.m4 \ -a -r $srcdir/configure ; then echo "However, it appears this directory has already been Bootstrapped." echo "You should skip Bootstrap and instead do: configure ; gmake" else echo "Please download them from ftp://ftp.gnu.org/gnu" fi exit 1 fi fi set -x ( cd $srcdir rm -Rf autom4te*.cache aclocal ) set +x echo '+ autoheader $autoheaderfilter' eval autoheader $autoheaderfilter set -x ( autoconf # Perform some postprocessing to fix bugs in the configure script: # 1) caching: # Our configure script requires caching, and autoconf 2.5 stupidly disables # caching by default. Caching may open some dangers of stale values, but # the alternative is worse - automake reconfiguring in the absence of # precious environment variables leads to silent incorrect behavior that # can't be detected or fixed because there's no cache! # Restore ./config.cache as the default cache # 2) recursive configure: # When $top_builddir contains a space, the configure script tries to cd # back to $top_builddir w/o quoting it. # Add quotes around the offending command. mv configure .configure-orig sed -e 's/^cache_file=\/dev\/null$/cache_file=.\/config.cache/' \ -e 's/cd $ac_popdir/cd "$ac_popdir"/' \ .configure-orig > configure chmod +x configure rm -f .configure-orig automake -a rm -Rf autom4te*.cache ) rm -f config.cache