1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188
|
#! /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
(cd sntp && ../scripts/build/genver) || {
echo scripts/build/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 sntp/m4/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
## Old way
# 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 )
## EOOld way
## Unity test runners
# the ruby generator must be older than the test files.
# the test files must be older than the runner files.
runner_files=`find [B-Za-z]* -type f -name 'run-*' -print | fgrep -v /SCCS/`
l=
lt=
lr=
for f in ${runner_files}
do
fb=`echo $f | sed -e 's/run-//'`
lt="$lt $fb"
lr="$lr $f" # Yes, lr and runner_files are eventually the same
done
touch $lt
echo "Touching <$lt>"
sleep 1
touch $lr
echo "Touching <$lr>"
## EOUnity test runners
## AutoGen stuff
def_files=`find [B-Za-z]* -type f -name '*.def' -print | fgrep -v /SCCS/`
prog_opt_files=`grep -l '^prog.name' $def_files`
# touch the stuff generated by the opt files
l=
lh=
li=
for f in ${prog_opt_files}
do
f=`echo $f | sed -e 's/-opts.def//' -e 's/.def//'`
dfi=`dirname $f`
dfi=`echo $dfi | sed -e 's:$:/invoke-*:'`
for i in `ls -1 $f* $dfi`
do
case "$i" in
*invoke-*)
li="$li $i"
;;
*.c|*.h|*.[1-9]*man|*.[1-9]*mdoc|*.man.in|*.mdoc.in|*-opts|*.texi|*.menu)
l="$l $i"
;;
*.html)
lh="$lh $i"
;;
esac
done
done
case "$l" in
'') ;;
*) touch $l
echo "Touching <$l>"
sleep 1
;;
esac
case "$li" in
'') ;;
*) touch $li
echo "Touching <$li>"
sleep 1
;;
esac
case "$lh" in
'') ;;
*) touch $lh
echo "Touching <$lh>"
;;
esac
## EOAutoGen stuff
## Yacc/bison files
# 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
## EOYacc/bison files
cp bincheck.mf sntp/
cp depsver.mf sntp/
${AUTORECONF} -i -v "$@"
# Because some systems do not support 'test a -nt b'
case `ls -1tr config.h.in aclocal.m4 | tail -1` in
aclocal.m4) touch config.h.in ;;
esac
case `ls -1tr sntp/config.h.in sntp/aclocal.m4 | tail -1` in
sntp/aclocal.m4) touch sntp/config.h.in ;;
esac
case `ls -1tr sntp/libevent/config.h.in sntp/libevent/aclocal.m4 | tail -1` in
sntp/libevent/aclocal.m4) touch sntp/libevent/config.h.in ;;
esac
# DH: 20110118: Due to our workaround for the AM_COND_IF bug that was
# triggering the buggy recursive autoreconf, we can once again use a
# single autoreconf invocation. See
# http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7860
# 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 "$@")
|