summaryrefslogtreecommitdiffstats
path: root/bootstrap
diff options
context:
space:
mode:
Diffstat (limited to 'bootstrap')
-rwxr-xr-xbootstrap231
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