~ubuntu-branches/ubuntu/feisty/apache2/feisty

« back to all changes in this revision

Viewing changes to build/find_apr.m4

  • Committer: Bazaar Package Importer
  • Author(s): Andreas Barth
  • Date: 2006-12-09 21:05:45 UTC
  • mfrom: (0.6.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20061209210545-h70s0xaqc2v8vqr2
Tags: 2.2.3-3.2
* Non-maintainer upload.
* 043_ajp_connection_reuse: Patch from upstream Bugzilla, fixing a critical
  issue with regard to connection reuse in mod_proxy_ajp.
  Closes: #396265

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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 "$target_os" = "os2-emx"; 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
])