Merge from emacs-24; up to 2014-05-15T16:55:18Z!jan.h.d@swipnet.se
[bpt/emacs.git] / autogen.sh
index c2a2c7a..32f86ab 100755 (executable)
@@ -210,27 +210,78 @@ fi
 # 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
+env_space=
+ac_dir=`aclocal --print-ac-dir` || {
+    cat <<EOF
+There was a problem running 'aclocal --print-ac-dir'.
+The aclocal program is part of automake.
+Please check your automake installation.
+EOF
+
+    exit 1
+}
+
+test -n "$ac_dir" && test -r "$ac_dir/pkg.m4" || {
+
+  # Maybe ACLOCAL_PATH is already set-up.
+  if test -n "$ACLOCAL_PATH"; then
+    oIFS=$IFS
+    IFS=:
+    for dir in $ACLOCAL_PATH; do
+      if test -r "$dir/pkg.m4"; then
+       AUTORECONF_ENV="ACLOCAL_PATH='$ACLOCAL_PATH'"
+        env_space=' '
+       break
       fi
-    fi
-  done
-  IFS=$oIFS
+    done
+    IFS=$oIFS
+  fi
+
+  if test -z "$AUTORECONF_ENV"; then
+    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'"
+          env_space=' '
+          break
+        fi
+      fi
+    done
+    IFS=$oIFS
+  fi
+
+  ## OK, maybe pkg-config is in a weird place (eg on hydra).
+  if test -z "$AUTORECONF_ENV"; then
+    oIFS=$IFS
+    IFS=:
+    for dir in $PATH; do
+      if test -x "$dir/pkg-config"; then
+        ac_dir=`echo "$dir" | sed 's|bin$|share/aclocal|'`
+        if 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'"
+          env_space=' '
+          break
+        fi
+      fi
+    done
+    IFS=$oIFS
+  fi
 
   if test -z "$AUTORECONF_ENV"; then
     cat <<EOF
@@ -244,7 +295,7 @@ EOF
 echo ok
 
 echo 'Your system has the required tools.'
-echo "Running \"${AUTORECONF_ENV}autoreconf -fi -I m4\" ..."
+echo "Running \"$AUTORECONF_ENV${env_space}autoreconf -fi -I m4\" ..."
 
 
 ## Let autoreconf figure out what, if anything, needs doing.
@@ -255,7 +306,7 @@ autoreconf -fi -I m4 || exit $?
 ## cause 'make' to needlessly run 'autoheader'.
 echo timestamp > src/stamp-h.in || exit
 
-echo "You can now run \`./configure'."
+echo "You can now run \"./configure$env_space$AUTORECONF_ENV\"."
 
 exit 0