source: trunk/third/autoconf/autoreconf.sh @ 13391

Revision 13391, 5.9 KB checked in by ghudson, 25 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r13390, which included commits to RCS files with non-trunk default branches.
Line 
1#! @SHELL@
2# autoreconf - remake all Autoconf configure scripts in a directory tree
3# Copyright (C) 1994 Free Software Foundation, Inc.
4
5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation; either version 2, or (at your option)
8# any later version.
9
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13# GNU General Public License for more details.
14
15# You should have received a copy of the GNU General Public License
16# along with this program; if not, write to the Free Software
17# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
18# 02111-1307, USA.
19
20usage="\
21Usage: autoreconf [-f] [-h] [--help] [-m dir] [--macrodir=dir]
22       [-l dir] [--localdir=dir] [--force] [--verbose] [--version]
23       [--cygnus] [--foreign] [--gnits] [--gnu] [-i] [--include-deps]"
24
25localdir=
26verbose=no
27show_version=no
28force=no
29automake_mode=--gnu
30automake_deps=
31
32test -z "$AC_MACRODIR" && AC_MACRODIR=@datadir@
33
34while test $# -gt 0; do
35  case "$1" in
36  -h | --help | --h*)
37    echo "$usage"; exit 0 ;;
38  --localdir=* | --l*=* )
39    localdir="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
40    shift ;;
41  -l | --localdir | --l*)
42    shift
43    test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
44    localdir="${1}"
45    shift ;;
46  --macrodir=* | --m*=* )
47    AC_MACRODIR="`echo \"$1\" | sed -e 's/^[^=]*=//'`"
48    shift ;;
49  -m | --macrodir | --m*)
50    shift
51    test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
52    AC_MACRODIR="$1"
53    shift ;;
54  --verbose | --verb*)
55    verbose=yes; shift ;;
56  -f | --force)
57    force=yes; shift ;;
58  --version | --vers*)
59    show_version=yes; shift ;;
60  --cygnus | --foreign | --gnits | --gnu)
61    automake_mode=$1; shift ;;
62  --include-deps | -i)
63    automake_deps=$1; shift ;;
64  --)     # Stop option processing.
65    shift; break ;;
66  -*) echo "$usage" 1>&2; exit 1 ;;
67  *) break ;;
68  esac
69done
70
71if test $show_version = yes; then
72  version=`sed -n 's/define.AC_ACVERSION.[      ]*\([0-9.]*\).*/\1/p' \
73    $AC_MACRODIR/acgeneral.m4`
74  echo "Autoconf version $version"
75  exit 0
76fi
77
78if test $# -ne 0; then
79  echo "$usage" 1>&2; exit 1
80fi
81
82# The paths to the autoconf and autoheader scripts, at the top of the tree.
83top_autoconf=`echo $0|sed s%autoreconf%autoconf%`
84top_autoheader=`echo $0|sed s%autoreconf%autoheader%`
85
86# Make a list of directories to process.
87# The xargs grep filters out Cygnus configure.in files.
88find . -name configure.in -print |
89xargs grep -l AC_OUTPUT |
90sed 's%/configure\.in$%%; s%^./%%' |
91while read dir; do
92  (
93  cd $dir || continue
94
95  case "$dir" in
96  .) dots= ;;
97  *) # A "../" for each directory in /$dir.
98     dots=`echo /$dir|sed 's%/[^/]*%../%g'` ;;
99  esac
100
101  case "$0" in
102  /*)  autoconf=$top_autoconf; autoheader=$top_autoheader ;;
103  */*) autoconf=$dots$top_autoconf; autoheader=$dots$top_autoheader ;;
104  *)   autoconf=$top_autoconf; autoheader=$top_autoheader ;;
105  esac
106
107  case "$AC_MACRODIR" in
108  /*)  macrodir_opt="--macrodir=$AC_MACRODIR" ;;
109  *)   macrodir_opt="--macrodir=$dots$AC_MACRODIR" ;;
110  esac
111
112  case "$localdir" in
113  "")  localdir_opt=
114       aclocal=aclocal.m4 ;;
115  /*)  localdir_opt="--localdir=$localdir"
116       aclocal=$localdir/aclocal.m4 ;;
117  *)   localdir_opt="--localdir=$dots$localdir"
118       aclocal=$dots$localdir/aclocal.m4 ;;
119  esac
120
121  # Regenerate aclocal.m4 if necessary.  FIXME: if aclocal searches
122  # nonstandard directories, we need to deal with that here.  The
123  # easiest way is to move this info into configure.in.
124  run_aclocal=no
125  if test -f "$aclocal" &&
126     grep 'generated automatically by aclocal' $aclocal > /dev/null
127  then
128     run_aclocal=yes
129  else
130     if test -f `echo $aclocal | sed 's,/*[^/]*$,,;s,^$,.,'`/acinclude.m4
131     then
132        run_aclocal=yes
133     fi
134  fi
135  if test $run_aclocal = yes
136  then
137     if test $force = no &&
138        ls -lt configure.in $aclocal \
139               `echo $aclocal | sed 's,/*[^/]*$,,;s,^$,.,'`/acinclude.m4 |
140          sed 1q |
141          grep 'aclocal\.m4$' > /dev/null
142     then
143        :
144     else
145        test $verbose = yes && echo running aclocal in $dir, creating $aclocal
146        aclocal --output=$aclocal -I `echo $aclocal | sed 's,/*[^/]*$,,;s,^$,.,'`
147     fi
148  fi
149
150  # Re-run automake if required.  Assumes that there is a Makefile.am
151  # in the topmost directory.
152  if test -f Makefile.am
153  then
154     amforce=
155     test $force = no && amforce=--no-force
156     test $verbose = yes && echo running automake`test x"$amforce" = x || echo " ($amforce)"` in $dir
157     automake $amforce $automake_mode $automake_deps
158  fi
159
160  test ! -f $aclocal && aclocal=
161
162  if test $force = no && test -f configure &&
163    ls -lt configure configure.in $aclocal | sed 1q |
164      grep 'configure$' > /dev/null
165  then
166    :
167  else
168    test $verbose = yes && echo running autoconf in $dir
169    $autoconf $macrodir_opt $localdir_opt
170  fi
171
172  if grep 'A[CM]_CONFIG_HEADER' configure.in >/dev/null; then
173    templates=`sed -n '/A[CM]_CONFIG_HEADER/ {
174        s%[^#]*A[CM]_CONFIG_HEADER[     ]*(\([^)]*\).*%\1%
175        p
176        q
177      }' configure.in`
178    tcount=`set -- $templates; echo $#`
179    template=`set -- $templates; echo $1 | sed '
180        s/.*://
181        t colon
182        s/$/.in/
183        : colon
184        s/:.*//
185      '`
186    stamp=`echo $template | sed 's,/*[^/]*$,,;s,^$,.,'`/stamp-h`test "$tcount" -gt 1 && echo "$tcount"`.in
187    if test ! -f "$template" || grep autoheader "$template" >/dev/null; then
188      if test $force = no && test -f $template &&
189         ls -lt $template configure.in $aclocal $stamp 2>/dev/null \
190                `echo $localdir_opt | sed -e 's/--localdir=//' \
191                                          -e '/./ s%$%/%'`acconfig.h |
192           sed 1q | egrep "$template$|$stamp$" > /dev/null
193      then
194        :
195      else
196        test $verbose = yes && echo running autoheader in $dir
197        $autoheader $macrodir_opt $localdir_opt &&
198        { test $verbose != yes || echo touching $stamp; } &&
199        touch $stamp
200      fi
201    fi
202  fi
203  )
204done
Note: See TracBrowser for help on using the repository browser.