summaryrefslogtreecommitdiff
path: root/autogen.sh
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2014-05-03 00:09:16 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2014-05-03 00:09:16 -0700
commitaf3e4d067ace861eb50f5e78ffb8e63e6756881a (patch)
treebca01c4aaae2635e76f6997b6c5aae60364625ba /autogen.sh
parent53a7da76db34b7fa8b3702760024865e46efbc78 (diff)
downloademacs-af3e4d067ace861eb50f5e78ffb8e63e6756881a.tar.gz
Make it easier on maintainers who use their own Automake.
* autogen.sh (ACLOCAL_PATH, AUTORECONF_ENV): New vars. Set them to avoid problems when maintainers prepend their own Automake installations to their PATH. Report an error if pkg.m4 can't be found.
Diffstat (limited to 'autogen.sh')
-rwxr-xr-xautogen.sh45
1 files changed, 42 insertions, 3 deletions
diff --git a/autogen.sh b/autogen.sh
index 84230b56016..c2a2c7af04f 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -195,7 +195,7 @@ this script.
If you know that the required versions are in your PATH, but this
script has made an error, then you can simply run
-autoreconf -i -I m4
+autoreconf -fi -I m4
instead of this script.
@@ -205,12 +205,51 @@ EOF
exit 1
fi
-echo "Your system has the required tools, running autoreconf..."
+# If automake is installed in a nonstandard location, find the standard
+# location if possible and append it to ACLOCAL_PATH. That way, it will
+# find the pkg.m4 that is installed in the standard location.
+echo "Checking for pkg.m4..."
+AUTORECONF_ENV=
+ac_dir=`aclocal --print-ac-dir` && test -r "$ac_dir/pkg.m4" || {
+ oIFS=$IFS
+ IFS=:
+ before_first_aclocal=true
+ for dir in $PATH; do
+ if test -x "$dir/aclocal"; then
+ if $before_first_aclocal; then
+ before_first_aclocal=false
+ elif ac_dir=`"$dir/aclocal" --print-ac-dir` && test -r "$ac_dir/pkg.m4"
+ then
+ case $ACLOCAL_PATH in
+ '') ACLOCAL_PATH=$ac_dir;;
+ ?*) ACLOCAL_PATH=$ACLOCAL_PATH:$ac_dir;;
+ esac
+ export ACLOCAL_PATH
+ AUTORECONF_ENV="ACLOCAL_PATH='$ACLOCAL_PATH' "
+ break
+ fi
+ fi
+ done
+ IFS=$oIFS
+
+ if test -z "$AUTORECONF_ENV"; then
+ cat <<EOF
+The version of aclocal that you are using cannot find the pkg.m4 file that
+pkg-config provides. If it is installed in some unusual directory /FOO/BAR,
+set ACLOCAL_PATH='/FOO/BAR' in the environment and run this script again.
+EOF
+ exit 1
+ fi
+}
+echo ok
+
+echo 'Your system has the required tools.'
+echo "Running \"${AUTORECONF_ENV}autoreconf -fi -I m4\" ..."
## Let autoreconf figure out what, if anything, needs doing.
## Use autoreconf's -f option in case autoreconf itself has changed.
-autoreconf -f -i -I m4 || exit $?
+autoreconf -fi -I m4 || exit $?
## Create a timestamp, so that './autogen.sh; make' doesn't
## cause 'make' to needlessly run 'autoheader'.