diff options
Diffstat (limited to 'bootstrap')
-rwxr-xr-x | bootstrap | 231 |
1 files changed, 231 insertions, 0 deletions
diff --git a/bootstrap b/bootstrap new file mode 100755 index 0000000000..df5cd4fc18 --- /dev/null +++ b/bootstrap @@ -0,0 +1,231 @@ +#! /bin/sh +# +# helps bootstrapping, when checked out from CVS +# requires GNU autoconf and GNU automake +# +# $Id$ + +# this is not meant to be exported outside the source tree + +# NOTE: Inspired by libtool's autogen script + +# to be run from the toplevel directory of RTEMS' +# source tree + +progname=`basename $0` +top_srcdir=`dirname $0` + +verbose=""; +quiet="false" +mode="autoreconf" + +usage() +{ + echo + echo "usage: ${progname} [-c|-p|-h] [-q][-v]" + echo + echo "options:" + echo " -c .. clean, remove all aclocal/autoconf/automake generated files" + echo " -h .. display this message and exit" + echo " -p .. regenerate preinstall.am files" + echo " -q .. quiet, don't display directories" + echo " -v .. verbose, pass -v to autotools" + echo + exit 1; +} + +generate_bspdir_acinclude() +{ +cat << EOF > acinclude.m4~ +# RTEMS_CHECK_BSPDIR(RTEMS_BSP_FAMILY) +AC_DEFUN([RTEMS_CHECK_BSPDIR], +[ + case "\$1" in +EOF + +for i in */bsp_specs; do + d=`dirname $i` +cat << EOF >> acinclude.m4~ + $d ) + AC_CONFIG_SUBDIRS([$d]);; +EOF +done +cat << EOF >> acinclude.m4~ + *) + AC_MSG_ERROR([Invalid BSP]);; + esac +]) +EOF +if cmp -s acinclude.m4 acinclude.m4~ 2>/dev/null; then + echo "acinclude.m4 is unchanged"; +else + cp acinclude.m4~ acinclude.m4 +fi +rm -f acinclude.m4~ +} + +if test ! -f $top_srcdir/aclocal/version.m4; then + echo "${progname}:" + echo " Installation problem: Can't find file aclocal/version.m4" + exit 1; +fi + +while test $# -gt 0; do +case $1 in +-h|--he|--hel|--help) + usage ;; +-q|--qu|--qui|--quie|--quiet) + quiet="true"; + shift;; +-v|--ve|--ver|--verb|--verbo|--verbos|--verbose) + verbose="-v"; + shift;; +-c|--cl|--cle|--clea|--clean) + mode="clean"; + shift;; +-p|--pr|--pre|--prei|--prein|--preins|--preinst) + mode="preinstall"; + shift;; +-r|--re|--rec|--reco|--recon|--reconf) + mode="autoreconf"; + shift;; +-g|--ge|--gen|--gene|--gener|--genera|--generat|--generate) + mode="generate"; + shift;; +-*) echo "unknown option $1" ; + usage ;; +*) echo "invalid parameter $1" ; + usage ;; +esac +done + +case $mode in +preinstall) + confs=`find . -name Makefile.am -exec grep -l 'include .*/preinstall\.am' {} \;` + for i in $confs; do + dir=$(dirname $i); + test "$quite" = "true" || echo "Generating $dir/preinstall.am" + ${top_srcdir}/ampolish3 "$dir/Makefile.am" > "$dir/preinstall.am" + done + ;; + +generate) + AUTOCONF=${AUTOCONF-autoconf} + if test -z "$AUTOCONF"; then + echo "You must have autoconf installed to run $program" + exit 1 + fi + + AUTOHEADER=${AUTOHEADER-autoheader} + if test -z "$AUTOHEADER"; then + echo "You must have autoconf installed to run $program" + exit 1 + fi + + AUTOMAKE=${AUTOMAKE-automake} + if test -z "$AUTOMAKE"; then + echo "You must have automake installed to run $program" + exit 1 + fi + + ACLOCAL=${ACLOCAL-aclocal} + if test -z "$ACLOCAL"; then + echo "You must have automake installed to run $program" + exit 1 + fi + + case $top_srcdir in + /* ) aclocal_dir=$top_srcdir + ;; + *) aclocal_dir=`pwd`/$top_srcdir + ;; + esac + + confs=`find . \( -name 'configure.in' -o -name 'configure.ac' \) -print` + for i in $confs; do + dir=`dirname $i`; + configure=`basename $i`; + ( test "$quiet" = "true" || echo "$dir"; + cd $dir; + test -n "`grep RTEMS_CHECK_BSPDIR ${configure}`" && \ + generate_bspdir_acinclude; + pat="s,\$(RTEMS_TOPdir),${aclocal_dir},g" + aclocal_args=`grep '^[ ]*ACLOCAL_AMFLAGS' Makefile.am | \ + sed -e 's%.*ACLOCAL_AMFLAGS.*\=[ ]*%%g' -e $pat ` ; + test "$verbose" = "-v" && echo "${ACLOCAL} $aclocal_args" + ${ACLOCAL} $aclocal_args; + test -n "`grep CONFIG_HEADER ${configure}`" && ${AUTOHEADER} \ + && test "$verbose" = "-v" && echo "${AUTOHEADER}"; + test -n "`grep RTEMS_BSP_CONFIGURE ${configure}`" && ${AUTOHEADER} \ + && test "$verbose" = "-v" && echo "${AUTOHEADER}"; + test -f Makefile.am && ${AUTOMAKE} -a -c $verbose ; + ${AUTOCONF}; + test -f Makefile.am && test -n "`grep 'stamp-h\.in' Makefile.in`" \ + && echo timestamp > stamp-h.in + ) + done + ;; + +autoreconf) + AUTORECONF=${AUTORECONF-autoreconf} + if test -z "$AUTORECONF"; then + echo "You must have autoreconf installed to run $program" + exit 1 + fi + + confs=`find . -name 'configure.ac' -print` + for i in $confs; do + dir=`dirname $i`; + configure=`basename $i`; + ( test "$quiet" = "true" || echo "$dir"; + cd $dir; + test -n "`grep RTEMS_CHECK_BSPDIR ${configure}`" && \ + generate_bspdir_acinclude; + ${AUTORECONF} -i --no-recursive $verbose; + test -f Makefile.am && test -n "`grep 'stamp-h\.in' Makefile.in`" \ + && echo timestamp > stamp-h.in + ) + done + ;; + +clean) + test "$quiet" = "true" || echo "removing automake generated Makefile.in files" + files=`find . -name 'Makefile.am' -print | sed -e 's%\.am%\.in%g'` ; + for i in $files; do if test -f $i; then + rm -f $i + test "$verbose" = "-v" && echo "$i" + fi; done + + test "$quiet" = "true" || echo "removing configure files" + files=`find . -name 'configure' -print` ; + test "$verbose" = "-v" && test -n "$files" && echo "$files" ; + for i in $files; do if test -f $i; then + rm -f $i config.sub config.guess depcomp install-sh mdate-sh missing \ + mkinstalldirs texinfo.tex compile + test "$verbose" = "-v" && echo "$i" + fi; done + + test "$quiet" = "true" || echo "removing aclocal.m4 files" + files=`find . -name 'aclocal.m4' -print` ; + test "$verbose" = "-v" && test -n "$files" && echo "$files" ; + for i in $files; do if test -f $i; then + rm -f $i + test "$verbose" = "-v" && echo "$i" + fi; done + + find . -name '*~' -print | xargs rm -f + find . -name 'bspopts.h.in' -print | xargs rm -f + find . -name '*.orig' -print | xargs rm -f + find . -name '*.rej' -print | xargs rm -f + find . -name 'config.status' -print | xargs rm -f + find . -name 'config.log' -print | xargs rm -f + find . -name 'config.cache' -print | xargs rm -f + find . -name 'Makefile' -print | xargs rm -f + find . -name '.deps' -print | xargs rm -rf + find . -name '.libs' -print | xargs rm -rf + find . -name 'stamp-h.in' | xargs rm -rf + find . -name 'autom4te*.cache' | xargs rm -rf + ;; +esac + +exit 0 |