freebsd-dev/contrib/amd/bootstrap
2015-01-28 22:55:06 +00:00

109 lines
2.6 KiB
Bash
Executable File

#!/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