freebsd-dev/bootstrap

140 lines
3.5 KiB
Plaintext
Raw Normal View History

#! /bin/sh
# This "bootstrap" script performs various pre-autoreconf actions
# that are required after pulling fresh sources from the repository.
#
# --force is supported and will be passed to autoreconf
#
# NOTE: THE NTP VERSION NUMBER COMES FROM packageinfo.sh
#
# all other instances of it anywhere in the source base have propagated
# from this one source.
#
# To use the raw sources from the repository, you must have the following
# tools available to you:
#
# 1. Autoconf and Automake.
#
# 2. lynx. This is used to extract the COPYRIGHT file extracted from
# the html documentation.
#
# *** The following are no longer needed for simple builds from the repo
# 3. AutoGen. The repository does *not* contain the files generated from
# the option definition files and it does not contain the libopts
# tear-off/redistributable library.
#
# Note: AutoGen needs GNU Guile.
#
# 4. gunzip. The tear-off library is a gzipped tarball.
set -e
scripts/genver || { echo scripts/genver failed ; exit 1; }
# autoreconf says:
# The environment variables AUTOCONF, AUTOHEADER, AUTOMAKE, ACLOCAL,
# AUTOPOINT, LIBTOOLIZE, M4 are honored.
AUTORECONF=${AUTORECONF:-autoreconf}
case `hostname` in
pogo.udel.edu)
if fgrep -q 4.2.4 version.m4; then
AUTOCONF=autoconf-2.59
AUTOHEADER=autoheader-2.59
AUTOMAKE=automake-1.9
ACLOCAL=aclocal-1.9
export AUTOCONF AUTOHEADER AUTOMAKE ACLOCAL
fi
;;
esac
# 20060629: HMS: Let's try checking in libopts and the autogen-generated files
## The copy for ntp...
#rm -rf libopts*
#gunzip -c $(autoopts-config --libsrc) | (
# tar -xvf -
# mv libopts-*.*.* libopts )
## The copy for sntp...
#rm -rf sntp/libopts*
#gunzip -c $(autoopts-config --libsrc) | (
# cd sntp
# tar -xvf -
# mv libopts-*.*.* libopts )
def_files=`find [B-Za-z]* -type f -name '*.def' -print | fgrep -v /SCCS/`
prog_opt_files=`grep -l '^prog.name' $def_files`
## AutoGen stuff
#incdir=${PWD}/include
#for f in ${prog_opt_files}
#do
# ( cd $(dirname ${f})
# echo "Running autogen on $f..."
# autogen -L${incdir} $(basename ${f})
# ) || exit 1
#done
## Non-AutoGen stuff
for i in autogen-version.def version.def version.texi
do
cmp -s include/$i sntp/$i || cp -fp include/$i sntp/$i
done
# touch the stuff generated by the opt files
for f in ${prog_opt_files}
do
f=`echo $f | sed -e 's/-opts.def//'`
l=
lh=
for i in `ls -1 $f*`
do
case "$i" in
*.c|*.h|*.1|*.texi|*.menu)
l="$l $i"
;;
*.html)
lh="$lh $i"
;;
esac
done
case "$l:$lh" in
':') ;;
*) touch $l $lh
;;
esac
done
## EOAutoGen stuff
# Yacc/bison files ntp_parser.[ch] so we don't require the tool if
# ntp_parser.y hasn't been updated. At the same time, keyword-gen-utd
# and ntp_keyword.h which are derived from ntp_parser.h and
# keyword-gen.c.
touch ntpd/ntp_parser.[ch] ntpd/keyword-gen-utd ntpd/ntp_keyword.h
cp bincheck.mf sntp/
cp depsver.mf sntp/
${AUTORECONF} -i -v --no-recursive "$@"
# DH: 20101120: We are back to a single copy of libopts, and
# once again it seems we need to run autoreconf in sntp after
# the top-level run to get a correct sntp/libopts/Makefile.in.
# To reduce redundancy, the top-level autoreconf uses --no-recursive.
#
# HMS: 20060618: Now that we use separate copies of libopts
# we should only need the previous line.
#
## HMS: 20060615: the next line seems to be needed to make sure
## we get the correct srcdir path in sntp/libopts/Makefile.in
#rm -rf sntp/autom4te.cache
#
(cd sntp && ${AUTORECONF} -i -v "$@")