#! /bin/sh - # original bootstrap file, installed by starconf 1.3, rnum=1003000 # If you _need_ to change this file, delete `original' in the line above, # or else starconf may overwrite it with an updated version. # # bootstrap.installed. Generated from bootstrap.installed.in by configure. # # Bootstrap a checked-out component of the Starlink software tree. # Run this script in a freshly checked-out directory to bring the # system to the point where you can just type ./configure;make # # Usage: # ./bootstrap # This script should be installed, by starconf, in all `component # directories'. A `component directory' is a directory which has a # component.xml.in file in it. All component directories will have a # manifest file created and installed in .../manifests; non-component # directories will not have manifest files. Everything that's # installed should be installed as part of some component # or other. # # The ./bootstrap scripts will stop recursing when they find a # component.xml.in file. They'll warn if they find a component.xml.in # file in any AC_CONFIG_SUBDIRS directory, but ignore it, and exit # with an error if they do not find a component.xml.in file and there # are no AC_CONFIG_SUBDIRS directories in which to search further. # That is, the tree of directories which the top-level bootstrap # traverses should have component.xml.in files at or above all its # leaves. # The starconf below might update bootstrap, if a newer version is # available. Unfortunately, this confuses sh, which appears _not_ to # keep open the script it's reading, but to reopen it afresh, or reseek # within the file, for each line (or something like that!?). # So rewrite this script to a temporary file and exec it. tempfile="${TMP-/tmp}/$0-$$.tmp" rm -f $tempfile echo "trap 'rm -f $tempfile' 0" >$tempfile # remove temporary at exit sed '1,/^--TRAMPOLINE--/d' $0 >>$tempfile # strip out the trampoline exec /bin/sh $tempfile # exec the temporary --TRAMPOLINE-- echo "Bootstrapping `pwd` ..." if test ! -f configure.ac; then echo "bootstrap: No configure.ac in directory `pwd`" >&2 exit 1 fi subdirs=`autoconf --trace=AC_CONFIG_SUBDIRS:$% configure.ac` if test -f component.xml.in; then if starconf --show buildsupport >/dev/null 2>&1; then # starconf is in the path echo "...using starconf in " `starconf --show buildsupport` starconf || exit 1 else # The temptation here is to use ./starconf.status to find the # starconf that it came from and invoke that explicitly. Don't do # this, however: we don't want to be too clever, and it's better # to be consistent with the way the autotools behave (the first # one in your path is the one that works, and they don't have this # sort of `phone home' cleverness in them). echo "bootstrap error: The starconf application is not in your path" # This doesn't stop us being helpful, however. if test -f ./starconf.status; then starconf_home=`./starconf.status --show buildsupport` echo "This directory was last bootstrapped with $starconf_home/bin/starconf" fi exit 1 fi # Check that there are no component.xml.in files in any subdirectories if test -n "$subdirs"; then for d in $subdirs do if test -d "$d" && test -f "$d/component.xml.in"; then echo "bootstrap: warning: ignoring child $d/component.xml.in" >&2 fi done fi # If STAR_SUPPRESS_AUTORECONF is true in the environment, then we # suppress the call of `autoreconf'. This is here _only_ so that # the top-level bootstrap file can suppress multiple calls of this # in bootstrap scripts in its children. This mechanism must not # be used by users, as it is likely to change without warning. if ${STAR_SUPPRESS_AUTORECONF-false}; then echo "Suppressing autoreconf in" `pwd` else echo autoreconf --install --symlink autoreconf --install --symlink || exit 1 fi else # This is not a component directory, so simply recurse into the children. # ...if there are any, that is. if test -z "$subdirs"; then echo "bootstrap: error: non-component directory `pwd` has no subdirs" >&2 exit 1 fi # Bootstrap the child directories mentioned in AC_CONFIG_SUBDIRS. # These bootstrap files must exist. for d in $subdirs do if test -d "$d"; then echo "Bootstrapping $d..." if test -f $d/bootstrap; then # good... (cd $d; /bin/sh ./bootstrap) else echo "bootstrap: no file $d/bootstrap" >&2 exit 1 fi fi done fi exit 0