#! /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="generate" 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;; -*) 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