diff options
Diffstat (limited to 'contrib/amd/bootstrap')
-rwxr-xr-x | contrib/amd/bootstrap | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/contrib/amd/bootstrap b/contrib/amd/bootstrap new file mode 100755 index 0000000..6c35138 --- /dev/null +++ b/contrib/amd/bootstrap @@ -0,0 +1,108 @@ +#!/bin/sh +#set -x +# helps bootstrapping am-utils, when checked out from CVS +# requires GNU autoconf and GNU automake +# this is not meant to go into the distributions +# Erez Zadok <ezk@cs.columbia.edu> + +# test cwd +test -f ../amd/amd.c && cd .. +if [ ! -f amd/amd.c ]; then + echo "Must run $0 from the top level source directory." + exit 1 +fi + +# validate macros directory and some macro files +if [ ! -d m4/macros ]; then + echo No m4/macros directory found! + exit 1 +fi +if [ ! -f m4/macros/HEADER ]; then + echo No m4/macros/HEADER file found! + exit 1 +fi + +# remove any remaining autom4te.cache directory +rm -fr autom4te.cache autom4te-*.cache + +# generate acinclude.m4 file +echo "AMU: prepare acinclude.m4..." +test -f acinclude.m4 && mv -f acinclude.m4 acinclude.m4.old +(cd m4/macros + for i in HEADER *.m4; do + cat $i + echo + echo + done + cat TRAILER +) > acinclude.m4 + +# generate aclocal.m4 file +echo "AMU: aclocal..." +test -f aclocal.m4 && mv -f aclocal.m4 aclocal.m4.old +# show version +aclocal --version 2>&1 | head -1 +if aclocal ; then + : +else + echo "aclocal command failed. fix errors and rerun $0." + exit 2 +fi + +# produce new configure.in (temp) script +echo "AMU: autoconf..." +# show version +autoconf --version 2>&1 | head -1 +LOG=/tmp/amu-$$.log +rm -f ${LOG} +autoconf configure.in > configure.new 2> ${LOG} +# until Automake requires Autoconf 2.50, manual says to ignore this +CUTWARNMSG1="warning: AC_PROG_LEX invoked multiple times|do not use m4_(patsubst|regexp):" +egrep -v "${CUTWARNMSG1}" ${LOG} > ${LOG}.new +mv ${LOG}.new ${LOG} +if test -s ${LOG}; then + echo "AUTOCONF ERRORS (MUST FIX):" + cat ${LOG} + rm -f ${LOG} + exit 2 +fi +# now prepare the real configure script +test -f configure && mv -f configure configure.old +mv -f configure.new configure +chmod a+rx configure +rm -f configure.old + +# run autoheader to produce C header .in files +echo "AMU: autoheader..." +# show version +autoheader --version 2>&1 | head -1 +autoheader configure.in > config.h.in 2> ${LOG} +CUTWARNMSG2="autoheader: \`config.h.in' is updated" +egrep -v "${CUTWARNMSG2}" ${LOG} > ${LOG}.new +mv ${LOG}.new ${LOG} +if test -s ${LOG}; then + echo "AUTOHEADER ERRORS (MUST FIX):" + cat ${LOG} + rm -f ${LOG} + exit 2 +fi +rm -f ${LOG} + +# generate makefiles +cmd="automake --add-missing --copy --ignore-deps" +#cmd="automake --add-missing" +echo "AMU: $cmd..." +# show version +automake --version 2>&1 | head -1 +if ${cmd} ; then + : +else + echo "automake command failed. fix errors and rerun $0." + exit 2 +fi + +# save timestamp +echo "AMU: save timestamp..." +echo timestamp > stamp-h.in + +exit 0 |