diff options
| author | 2008-03-05 17:38:09 +0000 | |
|---|---|---|
| committer | 2008-03-05 17:38:09 +0000 | |
| commit | 2cb49bd5137176e1445550399b6e9592607858a3 (patch) | |
| tree | e7c8933ce56ecdac588fbaa9af0c4beb03850c3e /m4/find_apr.m4 | |
| parent | fc05b4b880d4247da9353cae6be44180dee17b23 (diff) | |
Diffstat (limited to 'm4/find_apr.m4')
| -rw-r--r-- | m4/find_apr.m4 | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/m4/find_apr.m4 b/m4/find_apr.m4 new file mode 100644 index 0000000..9228c76 --- /dev/null +++ b/m4/find_apr.m4 | |||
| @@ -0,0 +1,166 @@ | |||
| 1 | dnl -------------------------------------------------------- -*- autoconf -*- | ||
| 2 | dnl Copyright 2000-2005 The Apache Software Foundation | ||
| 3 | dnl | ||
| 4 | dnl Licensed under the Apache License, Version 2.0 (the "License"); | ||
| 5 | dnl you may not use this file except in compliance with the License. | ||
| 6 | dnl You may obtain a copy of the License at | ||
| 7 | dnl | ||
| 8 | dnl http://www.apache.org/licenses/LICENSE-2.0 | ||
| 9 | dnl | ||
| 10 | dnl Unless required by applicable law or agreed to in writing, software | ||
| 11 | dnl distributed under the License is distributed on an "AS IS" BASIS, | ||
| 12 | dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| 13 | dnl See the License for the specific language governing permissions and | ||
| 14 | dnl limitations under the License. | ||
| 15 | |||
| 16 | dnl | ||
| 17 | dnl find_apr.m4 : locate the APR include files and libraries | ||
| 18 | dnl | ||
| 19 | dnl This macro file can be used by applications to find and use the APR | ||
| 20 | dnl library. It provides a standardized mechanism for using APR. It supports | ||
| 21 | dnl embedding APR into the application source, or locating an installed | ||
| 22 | dnl copy of APR. | ||
| 23 | dnl | ||
| 24 | dnl APR_FIND_APR(srcdir, builddir, implicit-install-check, acceptable-majors) | ||
| 25 | dnl | ||
| 26 | dnl where srcdir is the location of the bundled APR source directory, or | ||
| 27 | dnl empty if source is not bundled. | ||
| 28 | dnl | ||
| 29 | dnl where builddir is the location where the bundled APR will will be built, | ||
| 30 | dnl or empty if the build will occur in the srcdir. | ||
| 31 | dnl | ||
| 32 | dnl where implicit-install-check set to 1 indicates if there is no | ||
| 33 | dnl --with-apr option specified, we will look for installed copies. | ||
| 34 | dnl | ||
| 35 | dnl where acceptable-majors is a space separated list of acceptable major | ||
| 36 | dnl version numbers. Often only a single major version will be acceptable. | ||
| 37 | dnl If multiple versions are specified, and --with-apr=PREFIX or the | ||
| 38 | dnl implicit installed search are used, then the first (leftmost) version | ||
| 39 | dnl in the list that is found will be used. Currently defaults to [0 1]. | ||
| 40 | dnl | ||
| 41 | dnl Sets the following variables on exit: | ||
| 42 | dnl | ||
| 43 | dnl apr_found : "yes", "no", "reconfig" | ||
| 44 | dnl | ||
| 45 | dnl apr_config : If the apr-config tool exists, this refers to it. If | ||
| 46 | dnl apr_found is "reconfig", then the bundled directory | ||
| 47 | dnl should be reconfigured *before* using apr_config. | ||
| 48 | dnl | ||
| 49 | dnl Note: this macro file assumes that apr-config has been installed; it | ||
| 50 | dnl is normally considered a required part of an APR installation. | ||
| 51 | dnl | ||
| 52 | dnl If a bundled source directory is available and needs to be (re)configured, | ||
| 53 | dnl then apr_found is set to "reconfig". The caller should reconfigure the | ||
| 54 | dnl (passed-in) source directory, placing the result in the build directory, | ||
| 55 | dnl as appropriate. | ||
| 56 | dnl | ||
| 57 | dnl If apr_found is "yes" or "reconfig", then the caller should use the | ||
| 58 | dnl value of apr_config to fetch any necessary build/link information. | ||
| 59 | dnl | ||
| 60 | |||
| 61 | AC_DEFUN([APR_FIND_APR], [ | ||
| 62 | apr_found="no" | ||
| 63 | |||
| 64 | if test "$ac_cv_emxos2" = "yes"; then | ||
| 65 | # Scripts don't pass test -x on OS/2 | ||
| 66 | TEST_X="test -f" | ||
| 67 | else | ||
| 68 | TEST_X="test -x" | ||
| 69 | fi | ||
| 70 | |||
| 71 | ifelse([$4], [], [ | ||
| 72 | ifdef(AC_WARNING,AC_WARNING([$0: missing argument 4 (acceptable-majors): Defaulting to APR 0.x then APR 1.x])) | ||
| 73 | acceptable_majors="0 1"], | ||
| 74 | [acceptable_majors="$4"]) | ||
| 75 | |||
| 76 | apr_temp_acceptable_apr_config="" | ||
| 77 | for apr_temp_major in $acceptable_majors | ||
| 78 | do | ||
| 79 | case $apr_temp_major in | ||
| 80 | 0) | ||
| 81 | apr_temp_acceptable_apr_config="$apr_temp_acceptable_apr_config apr-config" | ||
| 82 | ;; | ||
| 83 | *) | ||
| 84 | apr_temp_acceptable_apr_config="$apr_temp_acceptable_apr_config apr-$apr_temp_major-config" | ||
| 85 | ;; | ||
| 86 | esac | ||
| 87 | done | ||
| 88 | |||
| 89 | AC_MSG_CHECKING(for APR) | ||
| 90 | AC_ARG_WITH(apr, | ||
| 91 | [ --with-apr=PATH prefix for installed APR, path to APR build tree, | ||
| 92 | or the full path to apr-config], | ||
| 93 | [ | ||
| 94 | if test "$withval" = "no" || test "$withval" = "yes"; then | ||
| 95 | AC_MSG_ERROR([--with-apr requires a directory or file to be provided]) | ||
| 96 | fi | ||
| 97 | |||
| 98 | for apr_temp_apr_config_file in $apr_temp_acceptable_apr_config | ||
| 99 | do | ||
| 100 | for lookdir in "$withval/bin" "$withval" | ||
| 101 | do | ||
| 102 | if $TEST_X "$lookdir/$apr_temp_apr_config_file"; then | ||
| 103 | apr_found="yes" | ||
| 104 | apr_config="$lookdir/$apr_temp_apr_config_file" | ||
| 105 | break 2 | ||
| 106 | fi | ||
| 107 | done | ||
| 108 | done | ||
| 109 | |||
| 110 | if test "$apr_found" != "yes" && $TEST_X "$withval" && $withval --help > /dev/null 2>&1 ; then | ||
| 111 | apr_found="yes" | ||
| 112 | apr_config="$withval" | ||
| 113 | fi | ||
| 114 | |||
| 115 | dnl if --with-apr is used, it is a fatal error for its argument | ||
| 116 | dnl to be invalid | ||
| 117 | if test "$apr_found" != "yes"; then | ||
| 118 | AC_MSG_ERROR([the --with-apr parameter is incorrect. It must specify an install prefix, a build directory, or an apr-config file.]) | ||
| 119 | fi | ||
| 120 | ],[ | ||
| 121 | dnl If we allow installed copies, check those before using bundled copy. | ||
| 122 | if test -n "$3" && test "$3" = "1"; then | ||
| 123 | for apr_temp_apr_config_file in $apr_temp_acceptable_apr_config | ||
| 124 | do | ||
| 125 | if $apr_temp_apr_config_file --help > /dev/null 2>&1 ; then | ||
| 126 | apr_found="yes" | ||
| 127 | apr_config="$apr_temp_apr_config_file" | ||
| 128 | break | ||
| 129 | else | ||
| 130 | dnl look in some standard places | ||
| 131 | for lookdir in /usr /usr/local /usr/local/apr /opt/apr /usr/local/apache2; do | ||
| 132 | if $TEST_X "$lookdir/bin/$apr_temp_apr_config_file"; then | ||
| 133 | apr_found="yes" | ||
| 134 | apr_config="$lookdir/bin/$apr_temp_apr_config_file" | ||
| 135 | break 2 | ||
| 136 | fi | ||
| 137 | done | ||
| 138 | fi | ||
| 139 | done | ||
| 140 | fi | ||
| 141 | dnl if we have not found anything yet and have bundled source, use that | ||
| 142 | if test "$apr_found" = "no" && test -d "$1"; then | ||
| 143 | apr_temp_abs_srcdir="`cd $1 && pwd`" | ||
| 144 | apr_found="reconfig" | ||
| 145 | apr_bundled_major="`sed -n '/#define.*APR_MAJOR_VERSION/s/^[^0-9]*\([0-9]*\).*$/\1/p' \"$1/include/apr_version.h\"`" | ||
| 146 | case $apr_bundled_major in | ||
| 147 | "") | ||
| 148 | AC_MSG_ERROR([failed to find major version of bundled APR]) | ||
| 149 | ;; | ||
| 150 | 0) | ||
| 151 | apr_temp_apr_config_file="apr-config" | ||
| 152 | ;; | ||
| 153 | *) | ||
| 154 | apr_temp_apr_config_file="apr-$apr_bundled_major-config" | ||
| 155 | ;; | ||
| 156 | esac | ||
| 157 | if test -n "$2"; then | ||
| 158 | apr_config="$2/$apr_temp_apr_config_file" | ||
| 159 | else | ||
| 160 | apr_config="$1/$apr_temp_apr_config_file" | ||
| 161 | fi | ||
| 162 | fi | ||
| 163 | ]) | ||
| 164 | |||
| 165 | AC_MSG_RESULT($apr_found) | ||
| 166 | ]) | ||
