diff --git a/bootstrap b/bootstrap index 14440fc7..053b1153 100755 --- a/bootstrap +++ b/bootstrap @@ -9,133 +9,104 @@ # Copyright (c) 2005 Marcus R. Brown # Copyright (c) 2005 James Forshaw # Copyright (c) 2005 John Kelley +# Copyright (c) 2020 Carsten Teibes # progname=`basename $0` top_srcdir=`dirname $0` -verbose=""; -quiet="false" -mode="generate" +verbose="" +quiet=0 +generate=1 -usage() -{ +usage() { echo echo "usage: ${progname} [-h|-q|-v|-c]" echo echo "options:" - echo " -h .. display this message and exit"; - echo " -q .. quiet, don't display directories"; - echo " -v .. verbose, pass -v to automake when invoking automake" - echo " -c .. clean, remove all aclocal/autoconf/automake generated files" + echo " -h .. display this message and exit" + echo " -q .. quiet, don't display messages" + echo " -v .. verbose, report processed files/directories" + echo " -c .. clean, remove all autotools generated files" echo - exit 1; + exit 1 } -if test ! -f $top_srcdir/VERSION; then +msg() { + [ $quiet -eq 0 ] && echo $1 +} + +if [ ! -f $top_srcdir/VERSION ]; then echo "${progname}:" echo " Installation problem: Can't find file VERSION" - exit 1; + 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;; --*) echo "unknown option $1" ; - usage ;; -*) echo "invalid parameter $1" ; - usage ;; -esac +while [ $# -gt 0 ]; do + case $1 in + -h|--help) + usage ;; + -q|--quiet) + quiet=1 + shift ;; + -v|--verbose) + verbose="--verbose" + shift ;; + -c|--clean) + generate=0 + shift ;; + -*) + echo "Unknown option: $1" + usage ;; + *) + echo "Invalid parameter: $1" + usage ;; + esac done -case $mode in -generate) +# default mode is generation +if [ $generate -eq 1 ]; then + msg "Running aclocal:" + aclocal --install + msg "Running autoconf:" + autoconf + msg "Running autoheader:" + autoheader + msg "Running automake:" + automake --add-missing --copy - case $top_srcdir in - /* ) aclocal_dir=$top_srcdir - ;; - *) aclocal_dir=`pwd`/$top_srcdir - ;; - esac + exit +fi - 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; - pat="s,\$(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 -f Makefile.am && automake -a -c --foreign $verbose ; - test "$verbose" = "-v" && echo "autoconf"; - autoconf; - test -f Makefile.am && test -n "`grep 'stamp-h\.in' Makefile.in`" \ - && echo timestamp > stamp-h.in - ) - done +# cleanup mode +if [ -f Makefile ]; then + msg "running distclean" + make distclean +fi +msg "removing automake generated Makefile[.in] files:" +files=`find . -name 'Makefile.am' -print | sed -e 's%\.am%\.in%g'` +files="$files `echo $files | sed -e 's%\.in%%g'`" +for i in $files; do if test -f $i; then + rm $verbose -f $i +fi; done - # HACK: Fixup the version in the generated configure script. This would be less of - # hack if it wasn't pspsdk-specific. I'm doing this because I don't want to look - # into how to do it the autoconf way. - version=`cat "$top_srcdir/VERSION"` - cat configure | sed "s/PSPSDK_VERSION/$version/g" > configure.out - cp configure.out configure - rm -f configure.out - ;; +msg "removing configure files:" +files="configure compile depcomp install-sh missing stamp-h1" +for i in $files; do if test -f $i; then + rm $verbose -f $i +fi; 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 +msg "removing aclocal.m4" +rm -f aclocal.m4 - 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.guess config.sub depcomp install-sh mdate-sh missing \ - mkinstalldirs texinfo.tex - 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 +msg "removing autom4te.cache" +rm -fr autom4te.cache - test "$quiet" = "true" || echo "removing autom4te.cache" - rm -fr autom4te.cache - - find . -name '*~' -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 'config.h.in' -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 - ;; -esac +msg "removing additional files:" +find . -name '*~' -print | xargs rm $verbose -f +rm $verbose -f config.status +rm $verbose -f config.log +rm $verbose -f config.h +rm $verbose -f config.h.in +find . -name '.deps' -print | xargs rm -rf +find . -name '.libs' -print | xargs rm -rf