aboutsummaryrefslogtreecommitdiffstats
path: root/m4/find_apr.m4
diff options
context:
space:
mode:
authorGravatar Nokis Mavrogiannopoulos 2008-02-20 19:53:44 +0000
committerGravatar Nokis Mavrogiannopoulos 2008-02-20 19:53:44 +0000
commit4dd789740526f169c5acf821d220a38e35d42389 (patch)
treeb71cda083d1ed8ceb2db2fb815eadf042295c348 /m4/find_apr.m4
parentb4d4a1e816332777d3196b50b0be33fc31aef47b (diff)
added new m4 directory
Diffstat (limited to 'm4/find_apr.m4')
-rw-r--r--m4/find_apr.m4166
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 @@
1dnl -------------------------------------------------------- -*- autoconf -*-
2dnl Copyright 2000-2005 The Apache Software Foundation
3dnl
4dnl Licensed under the Apache License, Version 2.0 (the "License");
5dnl you may not use this file except in compliance with the License.
6dnl You may obtain a copy of the License at
7dnl
8dnl http://www.apache.org/licenses/LICENSE-2.0
9dnl
10dnl Unless required by applicable law or agreed to in writing, software
11dnl distributed under the License is distributed on an "AS IS" BASIS,
12dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13dnl See the License for the specific language governing permissions and
14dnl limitations under the License.
15
16dnl
17dnl find_apr.m4 : locate the APR include files and libraries
18dnl
19dnl This macro file can be used by applications to find and use the APR
20dnl library. It provides a standardized mechanism for using APR. It supports
21dnl embedding APR into the application source, or locating an installed
22dnl copy of APR.
23dnl
24dnl APR_FIND_APR(srcdir, builddir, implicit-install-check, acceptable-majors)
25dnl
26dnl where srcdir is the location of the bundled APR source directory, or
27dnl empty if source is not bundled.
28dnl
29dnl where builddir is the location where the bundled APR will will be built,
30dnl or empty if the build will occur in the srcdir.
31dnl
32dnl where implicit-install-check set to 1 indicates if there is no
33dnl --with-apr option specified, we will look for installed copies.
34dnl
35dnl where acceptable-majors is a space separated list of acceptable major
36dnl version numbers. Often only a single major version will be acceptable.
37dnl If multiple versions are specified, and --with-apr=PREFIX or the
38dnl implicit installed search are used, then the first (leftmost) version
39dnl in the list that is found will be used. Currently defaults to [0 1].
40dnl
41dnl Sets the following variables on exit:
42dnl
43dnl apr_found : "yes", "no", "reconfig"
44dnl
45dnl apr_config : If the apr-config tool exists, this refers to it. If
46dnl apr_found is "reconfig", then the bundled directory
47dnl should be reconfigured *before* using apr_config.
48dnl
49dnl Note: this macro file assumes that apr-config has been installed; it
50dnl is normally considered a required part of an APR installation.
51dnl
52dnl If a bundled source directory is available and needs to be (re)configured,
53dnl then apr_found is set to "reconfig". The caller should reconfigure the
54dnl (passed-in) source directory, placing the result in the build directory,
55dnl as appropriate.
56dnl
57dnl If apr_found is "yes" or "reconfig", then the caller should use the
58dnl value of apr_config to fetch any necessary build/link information.
59dnl
60
61AC_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])