diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2016-10-17 15:22:52 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2016-10-17 15:22:52 (GMT) |
commit | 7dd9b970cec6832b8f6118dc2dd91a08d2836648 (patch) | |
tree | 4b3c86596ab87f35a3c6213397da07afe1e24d3e /ast/bootstrap | |
parent | d7bf7c61e8507e3cf51f195392c0f41f27ae18d8 (diff) | |
parent | 7fde2daeed593684120d75de07598154f3ddaf2c (diff) | |
download | blt-7dd9b970cec6832b8f6118dc2dd91a08d2836648.zip blt-7dd9b970cec6832b8f6118dc2dd91a08d2836648.tar.gz blt-7dd9b970cec6832b8f6118dc2dd91a08d2836648.tar.bz2 |
Merge commit '7fde2daeed593684120d75de07598154f3ddaf2c' as 'ast'
Diffstat (limited to 'ast/bootstrap')
-rwxr-xr-x | ast/bootstrap | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/ast/bootstrap b/ast/bootstrap new file mode 100755 index 0000000..b1b79e9 --- /dev/null +++ b/ast/bootstrap @@ -0,0 +1,134 @@ +#! /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 |