Sync with latest find_apr.m4 and find_apu.m4 to pick up ap{ru}-<major>-config.


git-svn-id: https://svn.apache.org/repos/asf/httpd/test/trunk/flood@104778 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/CHANGES b/CHANGES
index 7911857..48644c7 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,8 @@
 Changes since 1.0:
 
+* Sync with latest find_apr.m4 and find_apu.m4 to detect 1.0 APR and APR-util.
+  [Justin Erenkrantz]
+
 * Add <proxyurl> child element to <urllist> to request against a proxy.
   [Justin Erenkrantz]
 
diff --git a/build/find_apr.m4 b/build/find_apr.m4
index ee3b175..555fca5 100644
--- a/build/find_apr.m4
+++ b/build/find_apr.m4
@@ -6,14 +6,22 @@
 dnl embedding APR into the application source, or locating an installed
 dnl copy of APR.
 dnl
-dnl APR_FIND_APR([srcdir [, builddir]])
+dnl APR_FIND_APR(srcdir, builddir, implicit-install-check, acceptable-majors)
 dnl
 dnl   where srcdir is the location of the bundled APR source directory, or
 dnl   empty if source is not bundled.
 dnl
-dnl   where blddir is the location where the bundled APR will will be built,
+dnl   where builddir is the location where the bundled APR will will be built,
 dnl   or empty if the build will occur in the srcdir.
 dnl
+dnl   where implicit-install-check set to 1 indicates if there is no
+dnl   --with-apr option specified, we will look for installed copies.
+dnl
+dnl   where acceptable-majors is a space separated list of acceptable major
+dnl   version numbers. Often only a single major version will be acceptable.
+dnl   If multiple versions are specified, and --with-apr=PREFIX or the
+dnl   implicit installed search are used, then the first (leftmost) version
+dnl   in the list that is found will be used.  Currently defaults to [0 1].
 dnl
 dnl Sets the following variables on exit:
 dnl
@@ -35,7 +43,7 @@
 dnl value of apr_config to fetch any necessary build/link information.
 dnl
 
-AC_DEFUN(APR_FIND_APR, [
+AC_DEFUN([APR_FIND_APR], [
   apr_found="no"
 
   if test "$ac_cv_emxos2" = "yes"; then
@@ -45,64 +53,96 @@
     TEST_X="test -x"
   fi
 
+  ifelse([$4], [], [
+         ifdef(AC_WARNING,AC_WARNING([$0: missing argument 4 (acceptable-majors): Defaulting to APR 0.x then APR 1.x]))
+         acceptable_majors="0 1"],
+         [acceptable_majors="$4"])
+
+  apr_temp_acceptable_apr_config=""
+  for apr_temp_major in $acceptable_majors
+  do
+    case $apr_temp_major in
+      0)
+      apr_temp_acceptable_apr_config="$apr_temp_acceptable_apr_config apr-config"
+      ;;
+      *)
+      apr_temp_acceptable_apr_config="$apr_temp_acceptable_apr_config apr-$apr_temp_major-config"
+      ;;
+    esac
+  done
+
   AC_MSG_CHECKING(for APR)
   AC_ARG_WITH(apr,
-  [  --with-apr=DIR|FILE     prefix for installed APR, path to APR build tree,
+  [  --with-apr=PATH         prefix for installed APR, path to APR build tree,
                           or the full path to apr-config],
   [
     if test "$withval" = "no" || test "$withval" = "yes"; then
-      AC_MSG_ERROR([--with-apr requires a directory to be provided])
+      AC_MSG_ERROR([--with-apr requires a directory or file to be provided])
     fi
 
-    if $TEST_X "$withval/bin/apr-config"; then
-      apr_found="yes"
-      apr_config="$withval/bin/apr-config"
-    elif $TEST_X "$withval/apr-config"; then
-      apr_found="yes"
-      apr_config="$withval/apr-config"
-    elif $TEST_X "$withval" && $withval --help > /dev/null 2>&1 ; then
+    for apr_temp_apr_config_file in $apr_temp_acceptable_apr_config
+    do
+      for lookdir in "$withval/bin" "$withval"
+      do
+        if $TEST_X "$lookdir/$apr_temp_apr_config_file"; then
+          apr_found="yes"
+          apr_config="$lookdir/$apr_temp_apr_config_file"
+          break 2
+        fi
+      done
+    done
+
+    if test "$apr_found" != "yes" && $TEST_X "$withval" && $withval --help > /dev/null 2>&1 ; then
       apr_found="yes"
       apr_config="$withval"
     fi
 
-    dnl if --with-apr is used, then the target prefix/directory must be valid
+    dnl if --with-apr is used, it is a fatal error for its argument
+    dnl to be invalid
     if test "$apr_found" != "yes"; then
-      AC_MSG_ERROR([the --with-apr parameter is incorrect. It must specify an install prefix, a
-build directory, or an apr-config file.])
+      AC_MSG_ERROR([the --with-apr parameter is incorrect. It must specify an install prefix, a build directory, or an apr-config file.])
     fi
   ],[
-    dnl always look in the builtin/default places
-    if apr-config --help > /dev/null 2>&1 ; then
-      apr_found="yes"
-      apr_config="apr-config"
-    else
-      dnl look in some standard places (apparently not in builtin/default)
-      for lookdir in /usr /usr/local /opt/apr ; do
-        if $TEST_X "$lookdir/bin/apr-config"; then
-          apr_found="yes"
-          apr_config="$lookdir/bin/apr-config"
-          break
-        fi
-      done
-    fi
-    dnl if we have a bundled source directory, then we may have more work
+    dnl if we have a bundled source directory, use it
     if test -d "$1"; then
       apr_temp_abs_srcdir="`cd $1 && pwd`"
-      if test "$apr_found" = "yes" \
-         && test "`$apr_config --srcdir`" = "$apr_temp_abs_srcdir"; then
-        dnl the installed apr-config represents our source directory, so
-        dnl pretend we didn't see it and just use our bundled source
-        apr_found="no"
+      apr_found="reconfig"
+      apr_bundled_major="`sed -n '/#define.*APR_MAJOR_VERSION/s/^[^0-9]*\([0-9]*\).*$/\1/p' \"$1/include/apr_version.h\"`"
+      case $apr_bundled_major in
+        "")
+          AC_MSG_ERROR([failed to find major version of bundled APR])
+        ;;
+        0)
+          apr_temp_apr_config_file="apr-config"
+        ;;
+        *)
+          apr_temp_apr_config_file="apr-$apr_bundled_major-config"
+        ;;
+      esac
+      if test -n "$2"; then
+        apr_config="$2/$apr_temp_apr_config_file"
+      else
+        apr_config="$1/$apr_temp_apr_config_file"
       fi
-      dnl We could not find an apr-config; use the bundled one
-      if test "$apr_found" = "no"; then
-        apr_found="reconfig"
-        if test -n "$2"; then
-          apr_config="$2/apr-config"
+    fi
+    if test "$apr_found" = "no" && test -n "$3" && test "$3" = "1"; then
+      for apr_temp_apr_config_file in $apr_temp_acceptable_apr_config
+      do
+        if $apr_temp_apr_config_file --help > /dev/null 2>&1 ; then
+          apr_found="yes"
+          apr_config="$apr_temp_apr_config_file"
+          break
         else
-          apr_config="$1/apr-config"
+          dnl look in some standard places (apparently not in builtin/default)
+          for lookdir in /usr /usr/local /opt/apr /usr/local/apache2 ; do
+            if $TEST_X "$lookdir/bin/$apr_temp_apr_config_file"; then
+              apr_found="yes"
+              apr_config="$lookdir/bin/$apr_temp_apr_config_file"
+              break 2
+            fi
+          done
         fi
-      fi
+      done
     fi
   ])
 
diff --git a/build/find_apu.m4 b/build/find_apu.m4
index 6048ed8..ed8f558 100644
--- a/build/find_apu.m4
+++ b/build/find_apu.m4
@@ -6,12 +6,22 @@
 dnl embedding APU into the application source, or locating an installed
 dnl copy of APU.
 dnl
-dnl APR_FIND_APU([srcdir, path])
+dnl APR_FIND_APU(srcdir, builddir, implicit-install-check, acceptable-majors)
 dnl
 dnl   where srcdir is the location of the bundled APU source directory, or
 dnl   empty if source is not bundled.
-dnl   where path is the prefix to the location where the bundled APU will
-dnl   will be built.
+dnl
+dnl   where builddir is the location where the bundled APU will be built,
+dnl   or empty if the build will occur in the srcdir.
+dnl
+dnl   where implicit-install-check set to 1 indicates if there is no
+dnl   --with-apr-util option specified, we will look for installed copies.
+dnl
+dnl   where acceptable-majors is a space separated list of acceptable major
+dnl   version numbers. Often only a single major version will be acceptable.
+dnl   If multiple versions are specified, and --with-apr-util=PREFIX or the
+dnl   implicit installed search are used, then the first (leftmost) version
+dnl   in the list that is found will be used.  Currently defaults to [0 1].
 dnl
 dnl Sets the following variables on exit:
 dnl
@@ -21,6 +31,9 @@
 dnl                apu_found is "reconfig", then the bundled directory
 dnl                should be reconfigured *before* using apu_config.
 dnl
+dnl Note: this macro file assumes that apr-config has been installed; it
+dnl       is normally considered a required part of an APR installation.
+dnl
 dnl Note: At this time, we cannot find *both* a source dir and a build dir.
 dnl       If both are available, the build directory should be passed to
 dnl       the --with-apr-util switch.
@@ -39,68 +52,107 @@
 dnl value of apu_config to fetch any necessary build/link information.
 dnl
 
-AC_DEFUN(APR_FIND_APU, [
+AC_DEFUN([APR_FIND_APU], [
   apu_found="no"
 
+  if test "$ac_cv_emxos2" = "yes"; then
+    # Scripts don't pass test -x on OS/2
+    TEST_X="test -f"
+  else
+    TEST_X="test -x"
+  fi
+
+  ifelse([$4], [],
+  [
+    ifdef(AC_WARNING,([$0: missing argument 4 (acceptable-majors): Defaulting to APU 0.x then APU 1.x]))
+    acceptable_majors="0 1"
+  ], [acceptable_majors="$4"])
+
+  apu_temp_acceptable_apu_config=""
+  for apu_temp_major in $acceptable_majors
+  do
+    case $apu_temp_major in
+      0)
+      apu_temp_acceptable_apu_config="$apu_temp_acceptable_apu_config apu-config"
+      ;;
+      *)
+      apu_temp_acceptable_apu_config="$apu_temp_acceptable_apu_config apu-$apu_temp_major-config"
+      ;;
+    esac
+  done
+
   AC_MSG_CHECKING(for APR-util)
   AC_ARG_WITH(apr-util,
-  [  --with-apr-util=DIR     prefix for installed APU, or path to APU build tree],
+  [  --with-apr-util=PATH    prefix for installed APU, path to APU build tree,
+                          or the full path to apu-config],
   [
     if test "$withval" = "no" || test "$withval" = "yes"; then
-      AC_MSG_ERROR([--with-apr-util requires a directory to be provided])
+      AC_MSG_ERROR([--with-apr-util requires a directory or file to be provided])
     fi
 
-    if test -x "$withval/bin/apu-config"; then
-       apu_found="yes"
-       apu_config="$withval/bin/apu-config"
-    elif test -x "$withval/apu-config"; then
-       dnl Already configured build dir
-       apu_found="yes"
-       apu_config="$withval/apu-config"
-    elif test -x "$withval" && $withval --help > /dev/null 2>&1 ; then
-       apu_found="yes"
-       apu_config="$withval"
-    fi
-
-    dnl if --with-apr-util is used, then the target prefix/directory must
-    dnl be valid
-    if test "$apu_found" != "yes"; then
-      AC_MSG_ERROR([
-The directory given to --with-apr-util does not specify a prefix for an 
-installed APU, nor an APR-util build directory.])
-    fi
-  ],[
-    if apu-config --help > /dev/null 2>&1 ; then
-      apu_found="yes"
-      apu_config="apu-config"
-    else
-      dnl look in the some standard places (apparently not in builtin/default)
-      for lookdir in /usr /usr/local /opt/apr ; do
-        if test -x "$lookdir/bin/apu-config"; then
+    for apu_temp_apu_config_file in $apu_temp_acceptable_apu_config
+    do
+      for lookdir in "$withval/bin" "$withval"
+      do
+        if $TEST_X "$lookdir/$apu_temp_apu_config_file"; then
           apu_found="yes"
-          apu_config="$lookdir/bin/apu-config"
-          break
+          apu_config="$lookdir/$apu_temp_apu_config_file"
+          break 2
         fi
       done
+    done
+
+    if test "$apu_found" != "yes" && $TEST_X "$withval" && $withval --help > /dev/null 2>&1 ; then
+      apu_found="yes"
+      apu_config="$withval"
     fi
-    dnl if we have a bundled source directory, then we may have more work
+
+    dnl if --with-apr-util is used, it is a fatal error for its argument
+    dnl to be invalid
+    if test "$apu_found" != "yes"; then
+      AC_MSG_ERROR([the --with-apr-util parameter is incorrect. It must specify an install prefix, a build directory, or an apu-config file.])
+    fi
+  ],[
+    dnl if we have a bundled source directory, use it
     if test -d "$1"; then
       apu_temp_abs_srcdir="`cd $1 && pwd`"
-      if test "$apu_found" = "yes" \
-         && test "`$apu_config --srcdir`" = "$apu_temp_abs_srcdir"; then
-        dnl the installed apu-config represents our source directory, so
-        dnl pretend we didn't see it and just use our bundled source
-        apu_found="no"
+      apu_found="reconfig"
+      apu_bundled_major="`sed -n '/#define.*APU_MAJOR_VERSION/s/^[^0-9]*\([0-9]*\).*$/\1/p' \"$1/include/apu_version.h\"`"
+      case $apu_bundled_major in
+        "")
+          AC_MSG_ERROR([failed to find major version of bundled APU])
+        ;;
+        0)
+          apu_temp_apu_config_file="apu-config"
+        ;;
+        *)
+          apu_temp_apu_config_file="apu-$apu_bundled_major-config"
+        ;;
+      esac
+      if test -n "$2"; then
+        apu_config="$2/$apu_temp_apu_config_file"
+      else
+        apu_config="$1/$apu_temp_apu_config_file"
       fi
-      dnl We could not find an apu-config; use the bundled one
-      if test "$apu_found" = "no"; then
-        apu_found="reconfig"
-        if test -n "$2"; then
-          apu_config="$2/apu-config"
+    fi
+    if test "$apu_found" = "no" && test -n "$3" && test "$3" = "1"; then
+      for apu_temp_apu_config_file in $apu_temp_acceptable_apu_config
+      do
+        if $apu_temp_apu_config_file --help > /dev/null 2>&1 ; then
+          apu_found="yes"
+          apu_config="$apu_temp_apu_config_file"
+          break
         else
-          apu_config="$1/apu-config"
+          dnl look in some standard places (apparently not in builtin/default)
+          for lookdir in /usr /usr/local /opt/apr /usr/local/apache2 ; do
+            if $TEST_X "$lookdir/bin/$apu_temp_apu_config_file"; then
+              apu_found="yes"
+              apu_config="$lookdir/bin/$apu_temp_apu_config_file"
+              break 2
+            fi
+          done
         fi
-      fi
+      done
     fi
   ])
 
diff --git a/configure.in b/configure.in
index 40e5142..80e869a 100644
--- a/configure.in
+++ b/configure.in
@@ -109,7 +109,7 @@
     ])
 fi
 
-APR_FIND_APR(./apr)
+APR_FIND_APR(./apr,,,[1 0])
 
 if test "$apr_found" = "no"; then
   AC_MSG_ERROR([APR not found.  Please read the documentation.])
@@ -127,7 +127,7 @@
 LIBTOOL_LIBS="$LIBTOOL_LIBS `$apr_config --link-libtool --libs`"
 APR_CONFIG="$apr_config"
 
-APR_FIND_APU(./apr-util)
+APR_FIND_APU(./apr-util,,,[1 0])
 
 if test "$apu_found" = "no"; then
   AC_MSG_ERROR([APR-util not found.  Please read the documentation.])