|
Packit |
90a5c9 |
dnl -------------------------------------------------------- -*- autoconf -*-
|
|
Packit |
90a5c9 |
dnl Licensed to the Apache Software Foundation (ASF) under one or more
|
|
Packit |
90a5c9 |
dnl contributor license agreements. See the NOTICE file distributed with
|
|
Packit |
90a5c9 |
dnl this work for additional information regarding copyright ownership.
|
|
Packit |
90a5c9 |
dnl The ASF licenses this file to You under the Apache License, Version 2.0
|
|
Packit |
90a5c9 |
dnl (the "License"); you may not use this file except in compliance with
|
|
Packit |
90a5c9 |
dnl the License. You may obtain a copy of the License at
|
|
Packit |
90a5c9 |
dnl
|
|
Packit |
90a5c9 |
dnl http://www.apache.org/licenses/LICENSE-2.0
|
|
Packit |
90a5c9 |
dnl
|
|
Packit |
90a5c9 |
dnl Unless required by applicable law or agreed to in writing, software
|
|
Packit |
90a5c9 |
dnl distributed under the License is distributed on an "AS IS" BASIS,
|
|
Packit |
90a5c9 |
dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
Packit |
90a5c9 |
dnl See the License for the specific language governing permissions and
|
|
Packit |
90a5c9 |
dnl limitations under the License.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
dnl
|
|
Packit |
90a5c9 |
dnl find_apu.m4 : locate the APR-util (APU) include files and libraries
|
|
Packit |
90a5c9 |
dnl
|
|
Packit |
90a5c9 |
dnl This macro file can be used by applications to find and use the APU
|
|
Packit |
90a5c9 |
dnl library. It provides a standardized mechanism for using APU. It supports
|
|
Packit |
90a5c9 |
dnl embedding APU into the application source, or locating an installed
|
|
Packit |
90a5c9 |
dnl copy of APU.
|
|
Packit |
90a5c9 |
dnl
|
|
Packit |
90a5c9 |
dnl APR_FIND_APU(srcdir, builddir, implicit-install-check, acceptable-majors,
|
|
Packit |
90a5c9 |
dnl detailed-check)
|
|
Packit |
90a5c9 |
dnl
|
|
Packit |
90a5c9 |
dnl where srcdir is the location of the bundled APU source directory, or
|
|
Packit |
90a5c9 |
dnl empty if source is not bundled.
|
|
Packit |
90a5c9 |
dnl
|
|
Packit |
90a5c9 |
dnl where builddir is the location where the bundled APU will be built,
|
|
Packit |
90a5c9 |
dnl or empty if the build will occur in the srcdir.
|
|
Packit |
90a5c9 |
dnl
|
|
Packit |
90a5c9 |
dnl where implicit-install-check set to 1 indicates if there is no
|
|
Packit |
90a5c9 |
dnl --with-apr-util option specified, we will look for installed copies.
|
|
Packit |
90a5c9 |
dnl
|
|
Packit |
90a5c9 |
dnl where acceptable-majors is a space separated list of acceptable major
|
|
Packit |
90a5c9 |
dnl version numbers. Often only a single major version will be acceptable.
|
|
Packit |
90a5c9 |
dnl If multiple versions are specified, and --with-apr-util=PREFIX or the
|
|
Packit |
90a5c9 |
dnl implicit installed search are used, then the first (leftmost) version
|
|
Packit |
90a5c9 |
dnl in the list that is found will be used. Currently defaults to [0 1].
|
|
Packit |
90a5c9 |
dnl
|
|
Packit |
90a5c9 |
dnl where detailed-check is an M4 macro which sets the apu_acceptable to
|
|
Packit |
90a5c9 |
dnl either "yes" or "no". The macro will be invoked for each installed
|
|
Packit |
90a5c9 |
dnl copy of APU found, with the apu_config variable set appropriately.
|
|
Packit |
90a5c9 |
dnl Only installed copies of APU which are considered acceptable by
|
|
Packit |
90a5c9 |
dnl this macro will be considered found. If no installed copies are
|
|
Packit |
90a5c9 |
dnl considered acceptable by this macro, apu_found will be set to either
|
|
Packit |
90a5c9 |
dnl either "no" or "reconfig".
|
|
Packit |
90a5c9 |
dnl
|
|
Packit |
90a5c9 |
dnl Sets the following variables on exit:
|
|
Packit |
90a5c9 |
dnl
|
|
Packit |
90a5c9 |
dnl apu_found : "yes", "no", "reconfig"
|
|
Packit |
90a5c9 |
dnl
|
|
Packit |
90a5c9 |
dnl apu_config : If the apu-config tool exists, this refers to it. If
|
|
Packit |
90a5c9 |
dnl apu_found is "reconfig", then the bundled directory
|
|
Packit |
90a5c9 |
dnl should be reconfigured *before* using apu_config.
|
|
Packit |
90a5c9 |
dnl
|
|
Packit |
90a5c9 |
dnl Note: this macro file assumes that apr-config has been installed; it
|
|
Packit |
90a5c9 |
dnl is normally considered a required part of an APR installation.
|
|
Packit |
90a5c9 |
dnl
|
|
Packit |
90a5c9 |
dnl Note: At this time, we cannot find *both* a source dir and a build dir.
|
|
Packit |
90a5c9 |
dnl If both are available, the build directory should be passed to
|
|
Packit |
90a5c9 |
dnl the --with-apr-util switch.
|
|
Packit |
90a5c9 |
dnl
|
|
Packit |
90a5c9 |
dnl Note: the installation layout is presumed to follow the standard
|
|
Packit |
90a5c9 |
dnl PREFIX/lib and PREFIX/include pattern. If the APU config file
|
|
Packit |
90a5c9 |
dnl is available (and can be found), then non-standard layouts are
|
|
Packit |
90a5c9 |
dnl possible, since it will be described in the config file.
|
|
Packit |
90a5c9 |
dnl
|
|
Packit |
90a5c9 |
dnl If a bundled source directory is available and needs to be (re)configured,
|
|
Packit |
90a5c9 |
dnl then apu_found is set to "reconfig". The caller should reconfigure the
|
|
Packit |
90a5c9 |
dnl (passed-in) source directory, placing the result in the build directory,
|
|
Packit |
90a5c9 |
dnl as appropriate.
|
|
Packit |
90a5c9 |
dnl
|
|
Packit |
90a5c9 |
dnl If apu_found is "yes" or "reconfig", then the caller should use the
|
|
Packit |
90a5c9 |
dnl value of apu_config to fetch any necessary build/link information.
|
|
Packit |
90a5c9 |
dnl
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
AC_DEFUN([APR_FIND_APU], [
|
|
Packit |
90a5c9 |
apu_found="no"
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
if test "$target_os" = "os2-emx"; then
|
|
Packit |
90a5c9 |
# Scripts don't pass test -x on OS/2
|
|
Packit |
90a5c9 |
TEST_X="test -f"
|
|
Packit |
90a5c9 |
else
|
|
Packit |
90a5c9 |
TEST_X="test -x"
|
|
Packit |
90a5c9 |
fi
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
ifelse([$4], [],
|
|
Packit |
90a5c9 |
[
|
|
Packit |
90a5c9 |
ifdef(AC_WARNING,([$0: missing argument 4 (acceptable-majors): Defaulting to APU 0.x then APU 1.x]))
|
|
Packit |
90a5c9 |
acceptable_majors="0 1"
|
|
Packit |
90a5c9 |
], [acceptable_majors="$4"])
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
apu_temp_acceptable_apu_config=""
|
|
Packit |
90a5c9 |
for apu_temp_major in $acceptable_majors
|
|
Packit |
90a5c9 |
do
|
|
Packit |
90a5c9 |
case $apu_temp_major in
|
|
Packit |
90a5c9 |
0)
|
|
Packit |
90a5c9 |
apu_temp_acceptable_apu_config="$apu_temp_acceptable_apu_config apu-config"
|
|
Packit |
90a5c9 |
;;
|
|
Packit |
90a5c9 |
*)
|
|
Packit |
90a5c9 |
apu_temp_acceptable_apu_config="$apu_temp_acceptable_apu_config apu-$apu_temp_major-config"
|
|
Packit |
90a5c9 |
;;
|
|
Packit |
90a5c9 |
esac
|
|
Packit |
90a5c9 |
done
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
AC_MSG_CHECKING(for APR-util)
|
|
Packit |
90a5c9 |
AC_ARG_WITH(apr-util,
|
|
Packit |
90a5c9 |
[ --with-apr-util=PATH prefix for installed APU or the full path to
|
|
Packit |
90a5c9 |
apu-config],
|
|
Packit |
90a5c9 |
[
|
|
Packit |
90a5c9 |
if test "$withval" = "no" || test "$withval" = "yes"; then
|
|
Packit |
90a5c9 |
AC_MSG_ERROR([--with-apr-util requires a directory or file to be provided])
|
|
Packit |
90a5c9 |
fi
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
for apu_temp_apu_config_file in $apu_temp_acceptable_apu_config
|
|
Packit |
90a5c9 |
do
|
|
Packit |
90a5c9 |
for lookdir in "$withval/bin" "$withval"
|
|
Packit |
90a5c9 |
do
|
|
Packit |
90a5c9 |
if $TEST_X "$lookdir/$apu_temp_apu_config_file"; then
|
|
Packit |
90a5c9 |
apu_config="$lookdir/$apu_temp_apu_config_file"
|
|
Packit |
90a5c9 |
ifelse([$5], [], [], [
|
|
Packit |
90a5c9 |
apu_acceptable="yes"
|
|
Packit |
90a5c9 |
$5
|
|
Packit |
90a5c9 |
if test "$apu_acceptable" != "yes"; then
|
|
Packit |
90a5c9 |
AC_MSG_WARN([Found APU in $apu_config, but it is considered unacceptable])
|
|
Packit |
90a5c9 |
continue
|
|
Packit |
90a5c9 |
fi])
|
|
Packit |
90a5c9 |
apu_found="yes"
|
|
Packit |
90a5c9 |
break 2
|
|
Packit |
90a5c9 |
fi
|
|
Packit |
90a5c9 |
done
|
|
Packit |
90a5c9 |
done
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
if test "$apu_found" != "yes" && $TEST_X "$withval" && $withval --help > /dev/null 2>&1 ; then
|
|
Packit |
90a5c9 |
apu_config="$withval"
|
|
Packit |
90a5c9 |
ifelse([$5], [], [apu_found="yes"], [
|
|
Packit |
90a5c9 |
apu_acceptable="yes"
|
|
Packit |
90a5c9 |
$5
|
|
Packit |
90a5c9 |
if test "$apu_acceptable" = "yes"; then
|
|
Packit |
90a5c9 |
apu_found="yes"
|
|
Packit |
90a5c9 |
fi])
|
|
Packit |
90a5c9 |
fi
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
dnl if --with-apr-util is used, it is a fatal error for its argument
|
|
Packit |
90a5c9 |
dnl to be invalid
|
|
Packit |
90a5c9 |
if test "$apu_found" != "yes"; then
|
|
Packit |
90a5c9 |
AC_MSG_ERROR([the --with-apr-util parameter is incorrect. It must specify an install prefix, a build directory, or an apu-config file.])
|
|
Packit |
90a5c9 |
fi
|
|
Packit |
90a5c9 |
],[
|
|
Packit |
90a5c9 |
if test -n "$3" && test "$3" = "1"; then
|
|
Packit |
90a5c9 |
for apu_temp_apu_config_file in $apu_temp_acceptable_apu_config
|
|
Packit |
90a5c9 |
do
|
|
Packit |
90a5c9 |
if $apu_temp_apu_config_file --help > /dev/null 2>&1 ; then
|
|
Packit |
90a5c9 |
apu_config="$apu_temp_apu_config_file"
|
|
Packit |
90a5c9 |
ifelse([$5], [], [], [
|
|
Packit |
90a5c9 |
apu_acceptable="yes"
|
|
Packit |
90a5c9 |
$5
|
|
Packit |
90a5c9 |
if test "$apu_acceptable" != "yes"; then
|
|
Packit |
90a5c9 |
AC_MSG_WARN([skipped APR-util at $apu_config, version not acceptable])
|
|
Packit |
90a5c9 |
continue
|
|
Packit |
90a5c9 |
fi])
|
|
Packit |
90a5c9 |
apu_found="yes"
|
|
Packit |
90a5c9 |
break
|
|
Packit |
90a5c9 |
else
|
|
Packit |
90a5c9 |
dnl look in some standard places (apparently not in builtin/default)
|
|
Packit |
90a5c9 |
for lookdir in /usr /usr/local /usr/local/apr /opt/apr; do
|
|
Packit |
90a5c9 |
if $TEST_X "$lookdir/bin/$apu_temp_apu_config_file"; then
|
|
Packit |
90a5c9 |
apu_config="$lookdir/bin/$apu_temp_apu_config_file"
|
|
Packit |
90a5c9 |
ifelse([$5], [], [], [
|
|
Packit |
90a5c9 |
apu_acceptable="yes"
|
|
Packit |
90a5c9 |
$5
|
|
Packit |
90a5c9 |
if test "$apu_acceptable" != "yes"; then
|
|
Packit |
90a5c9 |
AC_MSG_WARN([skipped APR-util at $apu_config, version not acceptable])
|
|
Packit |
90a5c9 |
continue
|
|
Packit |
90a5c9 |
fi])
|
|
Packit |
90a5c9 |
apu_found="yes"
|
|
Packit |
90a5c9 |
break 2
|
|
Packit |
90a5c9 |
fi
|
|
Packit |
90a5c9 |
done
|
|
Packit |
90a5c9 |
fi
|
|
Packit |
90a5c9 |
done
|
|
Packit |
90a5c9 |
fi
|
|
Packit |
90a5c9 |
dnl if we have not found anything yet and have bundled source, use that
|
|
Packit |
90a5c9 |
if test "$apu_found" = "no" && test -d "$1"; then
|
|
Packit |
90a5c9 |
apu_temp_abs_srcdir="`cd \"$1\" && pwd`"
|
|
Packit |
90a5c9 |
apu_found="reconfig"
|
|
Packit |
90a5c9 |
apu_bundled_major="`sed -n '/#define.*APU_MAJOR_VERSION/s/^[^0-9]*\([0-9]*\).*$/\1/p' \"$1/include/apu_version.h\"`"
|
|
Packit |
90a5c9 |
case $apu_bundled_major in
|
|
Packit |
90a5c9 |
"")
|
|
Packit |
90a5c9 |
AC_MSG_ERROR([failed to find major version of bundled APU])
|
|
Packit |
90a5c9 |
;;
|
|
Packit |
90a5c9 |
0)
|
|
Packit |
90a5c9 |
apu_temp_apu_config_file="apu-config"
|
|
Packit |
90a5c9 |
;;
|
|
Packit |
90a5c9 |
*)
|
|
Packit |
90a5c9 |
apu_temp_apu_config_file="apu-$apu_bundled_major-config"
|
|
Packit |
90a5c9 |
;;
|
|
Packit |
90a5c9 |
esac
|
|
Packit |
90a5c9 |
if test -n "$2"; then
|
|
Packit |
90a5c9 |
apu_config="$2/$apu_temp_apu_config_file"
|
|
Packit |
90a5c9 |
else
|
|
Packit |
90a5c9 |
apu_config="$1/$apu_temp_apu_config_file"
|
|
Packit |
90a5c9 |
fi
|
|
Packit |
90a5c9 |
fi
|
|
Packit |
90a5c9 |
])
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
AC_MSG_RESULT($apu_found)
|
|
Packit |
90a5c9 |
])
|