]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/ntp/bootstrap
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / ntp / bootstrap
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
30 set -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
39 AUTORECONF=${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
74 runner_files=`find [B-Za-z]* -type f -name 'run-*' -print | fgrep -v /SCCS/`
75 l=
76 lt=
77 lr=
78 for f in ${runner_files}
79 do
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
83 done
84 touch $lt
85 echo "Touching <$lt>"
86 sleep 1
87 touch $lr
88 echo "Touching <$lr>"
89
90 ## EOUnity test runners
91
92 ## AutoGen stuff
93
94 def_files=`find [B-Za-z]* -type f -name '*.def' -print | fgrep -v /SCCS/`
95 prog_opt_files=`grep -l '^prog.name' $def_files`
96
97 # touch the stuff generated by the opt files
98
99 l=
100 lh=
101 li=
102 for f in ${prog_opt_files}
103 do
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
121 done
122 case "$l" in
123  '') ;;
124  *) touch $l
125     echo "Touching <$l>"
126     sleep 1
127     ;;
128 esac
129 case "$li" in
130  '') ;;
131  *) touch $li
132     echo "Touching <$li>"
133     sleep 1
134     ;;
135 esac
136 case "$lh" in
137  '') ;;
138  *) touch $lh
139     echo "Touching <$lh>"
140     ;;
141 esac
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
152 touch ntpd/ntp_parser.[ch] ntpd/keyword-gen-utd ntpd/ntp_keyword.h
153
154 ## EOYacc/bison files
155
156 cp bincheck.mf sntp/
157 cp depsver.mf sntp/
158
159 ${AUTORECONF} -i -v "$@"
160
161 # Because some systems do not support 'test a -nt b'
162 case `ls -1tr config.h.in aclocal.m4 | tail -1` in
163  aclocal.m4) touch config.h.in ;;
164 esac
165 case `ls -1tr sntp/config.h.in sntp/aclocal.m4 | tail -1` in
166  sntp/aclocal.m4) touch sntp/config.h.in ;;
167 esac
168 case `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 ;;
170 esac
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 "$@")