Home | History | Annotate | Line # | Download | only in dist
bootstrap revision 1.1.1.2.2.2
      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 "$@")
    189