1#! /bin/sh 2 3# This "bootstrap" script performs various pre-autoreconf actions 4# that are required after pulling fresh sources from the repository. 5# 6# --force is supported and will be passed to autoreconf 7# 8# NOTE: THE NTP VERSION NUMBER COMES FROM packageinfo.sh 9# 10# all other instances of it anywhere in the source base have propagated 11# from this one source. 12# 13# To use the raw sources from the repository, you must have the following 14# tools available to you: 15# 16# 1. Autoconf and Automake. 17# 18# 2. lynx. This is used to extract the COPYRIGHT file extracted from 19# the html documentation. 20# 21# *** The following are no longer needed for simple builds from the repo 22# 3. AutoGen. The repository does *not* contain the files generated from 23# the option definition files and it does not contain the libopts 24# tear-off/redistributable library. 25# 26# Note: AutoGen needs GNU Guile. 27# 28# 4. gunzip. The tear-off library is a gzipped tarball. 29 30set -e 31 32(cd sntp && ../scripts/build/genver) || { 33 echo scripts/build/genver failed ; exit 1; } 34 35# autoreconf says: 36# The environment variables AUTOCONF, AUTOHEADER, AUTOMAKE, ACLOCAL, 37# AUTOPOINT, LIBTOOLIZE, M4 are honored. 38 39AUTORECONF=${AUTORECONF:-autoreconf} 40 41# case `hostname` in 42# pogo.udel.edu) 43# if fgrep -q 4.2.4 sntp/m4/version.m4; then 44# AUTOCONF=autoconf-2.59 45# AUTOHEADER=autoheader-2.59 46# AUTOMAKE=automake-1.9 47# ACLOCAL=aclocal-1.9 48# export AUTOCONF AUTOHEADER AUTOMAKE ACLOCAL 49# fi 50# ;; 51# esac 52 53## Old way 54# 20060629: HMS: Let's try checking in libopts and the autogen-generated files 55## The copy for ntp... 56#rm -rf libopts* 57#gunzip -c $(autoopts-config --libsrc) | ( 58# tar -xvf - 59# mv libopts-*.*.* libopts ) 60 61## The copy for sntp... 62#rm -rf sntp/libopts* 63#gunzip -c $(autoopts-config --libsrc) | ( 64# cd sntp 65# tar -xvf - 66# mv libopts-*.*.* libopts ) 67 68## EOOld way 69 70## Unity test runners 71# the ruby generator must be older than the test files. 72# the test files must be older than the runner files. 73 74runner_files=`find [B-Za-z]* -type f -name 'run-*' -print | fgrep -v /SCCS/` 75l= 76lt= 77lr= 78for f in ${runner_files} 79do 80 fb=`echo $f | sed -e 's/run-//'` 81 lt="$lt $fb" 82 lr="$lr $f" # Yes, lr and runner_files are eventually the same 83done 84touch $lt 85echo "Touching <$lt>" 86sleep 1 87touch $lr 88echo "Touching <$lr>" 89 90## EOUnity test runners 91 92## AutoGen stuff 93 94def_files=`find [B-Za-z]* -type f -name '*.def' -print | fgrep -v /SCCS/` 95prog_opt_files=`grep -l '^prog.name' $def_files` 96 97# touch the stuff generated by the opt files 98 99l= 100lh= 101li= 102for f in ${prog_opt_files} 103do 104 f=`echo $f | sed -e 's/-opts.def//' -e 's/.def//'` 105 dfi=`dirname $f` 106 dfi=`echo $dfi | sed -e 's:$:/invoke-*:'` 107 for i in `ls -1 $f* $dfi` 108 do 109 case "$i" in 110 *invoke-*) 111 li="$li $i" 112 ;; 113 *.c|*.h|*.[1-9]*man|*.[1-9]*mdoc|*.man.in|*.mdoc.in|*-opts|*.texi|*.menu) 114 l="$l $i" 115 ;; 116 *.html) 117 lh="$lh $i" 118 ;; 119 esac 120 done 121done 122case "$l" in 123 '') ;; 124 *) touch $l 125 echo "Touching <$l>" 126 sleep 1 127 ;; 128esac 129case "$li" in 130 '') ;; 131 *) touch $li 132 echo "Touching <$li>" 133 sleep 1 134 ;; 135esac 136case "$lh" in 137 '') ;; 138 *) touch $lh 139 echo "Touching <$lh>" 140 ;; 141esac 142 143## EOAutoGen stuff 144 145## Yacc/bison files 146 147# Yacc/bison files ntp_parser.[ch] so we don't require the tool if 148# ntp_parser.y hasn't been updated. At the same time, keyword-gen-utd 149# and ntp_keyword.h which are derived from ntp_parser.h and 150# keyword-gen.c. 151 152touch ntpd/ntp_parser.[ch] ntpd/keyword-gen-utd ntpd/ntp_keyword.h 153 154## EOYacc/bison files 155 156cp bincheck.mf sntp/ 157cp depsver.mf sntp/ 158 159${AUTORECONF} -i -v "$@" 160 161# Because some systems do not support 'test a -nt b' 162case `ls -1tr config.h.in aclocal.m4 | tail -1` in 163 aclocal.m4) touch config.h.in ;; 164esac 165case `ls -1tr sntp/config.h.in sntp/aclocal.m4 | tail -1` in 166 sntp/aclocal.m4) touch sntp/config.h.in ;; 167esac 168case `ls -1tr sntp/libevent/config.h.in sntp/libevent/aclocal.m4 | tail -1` in 169 sntp/libevent/aclocal.m4) touch sntp/libevent/config.h.in ;; 170esac 171 172# DH: 20110118: Due to our workaround for the AM_COND_IF bug that was 173# triggering the buggy recursive autoreconf, we can once again use a 174# single autoreconf invocation. See 175# http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7860 176# DH: 20101120: We are back to a single copy of libopts, and 177# once again it seems we need to run autoreconf in sntp after 178# the top-level run to get a correct sntp/libopts/Makefile.in. 179# To reduce redundancy, the top-level autoreconf uses --no-recursive. 180# 181# HMS: 20060618: Now that we use separate copies of libopts 182# we should only need the previous line. 183# 184## HMS: 20060615: the next line seems to be needed to make sure 185## we get the correct srcdir path in sntp/libopts/Makefile.in 186#rm -rf sntp/autom4te.cache 187# 188# (cd sntp && ${AUTORECONF} -i -v "$@") 189