2013-06-18 03:59:55 +02:00
|
|
|
dnl
|
|
|
|
dnl Process this file with autoconf to produce a configure script
|
|
|
|
dnl
|
|
|
|
|
|
|
|
AC_PREREQ(2.59)
|
|
|
|
AC_INIT(export_vars.sh.in)
|
|
|
|
|
|
|
|
AC_CONFIG_HEADER(include/private/apu_config.h)
|
|
|
|
AC_CONFIG_AUX_DIR(build)
|
|
|
|
|
|
|
|
sinclude(build/apu-conf.m4)
|
|
|
|
sinclude(build/apu-iconv.m4)
|
|
|
|
sinclude(build/apu-hints.m4)
|
|
|
|
sinclude(build/apr_common.m4)
|
|
|
|
sinclude(build/find_apr.m4)
|
|
|
|
sinclude(build/crypto.m4)
|
|
|
|
sinclude(build/dbm.m4)
|
|
|
|
sinclude(build/dbd.m4)
|
|
|
|
sinclude(build/dso.m4)
|
|
|
|
|
|
|
|
dnl Generate ./config.nice for reproducing runs of configure
|
|
|
|
dnl
|
|
|
|
APR_CONFIG_NICE(config.nice)
|
|
|
|
|
|
|
|
dnl # Some initial steps for configuration. We setup the default directory
|
|
|
|
dnl # and which files are to be configured.
|
|
|
|
|
|
|
|
dnl Absolute source/build directory
|
|
|
|
abs_srcdir=`(cd $srcdir && pwd)`
|
|
|
|
abs_builddir=`pwd`
|
|
|
|
|
|
|
|
if test "$abs_builddir" != "$abs_srcdir"; then
|
|
|
|
USE_VPATH=1
|
|
|
|
APU_CONFIG_LOCATION=build
|
|
|
|
else
|
|
|
|
APU_CONFIG_LOCATION=source
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_SUBST(APU_CONFIG_LOCATION)
|
|
|
|
|
|
|
|
AC_CANONICAL_SYSTEM
|
|
|
|
|
|
|
|
AC_PROG_INSTALL
|
|
|
|
|
2013-07-28 07:14:54 +02:00
|
|
|
# Use -no-install or -no-fast-install to link the test
|
|
|
|
# programs on all platforms but Darwin, where it would cause
|
|
|
|
# the programs to be linked against installed versions of
|
|
|
|
# libapr instead of those just built.
|
2013-06-18 03:59:55 +02:00
|
|
|
case $host in
|
2013-07-28 07:14:54 +02:00
|
|
|
*-apple-darwin*)
|
|
|
|
LT_NO_INSTALL=""
|
|
|
|
;;
|
|
|
|
*-mingw*)
|
|
|
|
LT_NO_INSTALL="-no-fast-install"
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
LT_NO_INSTALL="-no-install"
|
|
|
|
;;
|
2013-06-18 03:59:55 +02:00
|
|
|
esac
|
|
|
|
AC_SUBST(LT_NO_INSTALL)
|
|
|
|
|
|
|
|
dnl
|
|
|
|
dnl compute the top directory of the build
|
|
|
|
dnl note: this is needed for LIBTOOL and exporting the bundled Expat
|
|
|
|
dnl
|
|
|
|
top_builddir="$abs_builddir"
|
|
|
|
AC_SUBST(top_builddir)
|
|
|
|
AC_SUBST(abs_srcdir)
|
|
|
|
AC_SUBST(abs_builddir)
|
|
|
|
|
|
|
|
dnl Initialize mkdir -p functionality.
|
|
|
|
APR_MKDIR_P_CHECK($abs_srcdir/build/mkdir.sh)
|
|
|
|
|
|
|
|
dnl get our version information
|
|
|
|
get_version="$abs_srcdir/build/get-version.sh"
|
|
|
|
version_hdr="$abs_srcdir/include/apu_version.h"
|
|
|
|
APRUTIL_MAJOR_VERSION="`$get_version major $version_hdr APU`"
|
|
|
|
APRUTIL_DOTTED_VERSION="`$get_version all $version_hdr APU`"
|
|
|
|
|
|
|
|
APU_LTVERSION="-version-info `$get_version libtool $version_hdr APU`"
|
|
|
|
|
|
|
|
AC_SUBST(APRUTIL_DOTTED_VERSION)
|
|
|
|
AC_SUBST(APRUTIL_MAJOR_VERSION)
|
|
|
|
AC_SUBST(APU_LTVERSION)
|
|
|
|
|
|
|
|
echo "APR-util Version: ${APRUTIL_DOTTED_VERSION}"
|
|
|
|
|
|
|
|
dnl Enable the layout handling code, then reparse the prefix-style
|
|
|
|
dnl arguments due to autoconf being a PITA.
|
|
|
|
APR_ENABLE_LAYOUT(apr-util)
|
|
|
|
APR_PARSE_ARGUMENTS
|
|
|
|
|
|
|
|
dnl load os-specific hints for apr-util
|
|
|
|
APU_PRELOAD
|
|
|
|
|
|
|
|
dnl
|
|
|
|
dnl set up the compilation flags and stuff
|
|
|
|
dnl
|
|
|
|
|
|
|
|
APRUTIL_INCLUDES=""
|
|
|
|
APRUTIL_PRIV_INCLUDES="-I$top_builddir/include -I$top_builddir/include/private"
|
|
|
|
if test -n "$USE_VPATH"; then
|
|
|
|
APRUTIL_PRIV_INCLUDES="$APRUTIL_PRIV_INCLUDES -I$abs_srcdir/include/private -I$abs_srcdir/include"
|
|
|
|
fi
|
|
|
|
|
|
|
|
dnl
|
|
|
|
dnl Find the APR includes directory and (possibly) the source (base) dir.
|
|
|
|
dnl
|
|
|
|
APU_FIND_APR
|
|
|
|
|
|
|
|
dnl
|
|
|
|
dnl even though we use apr_rules.mk for building apr-util, we need
|
|
|
|
dnl to grab CC and CPP ahead of time so that apr-util config tests
|
|
|
|
dnl use the same compiler as APR; we need the same compiler options
|
|
|
|
dnl and feature test macros as well
|
|
|
|
dnl
|
|
|
|
APR_SETIFNULL(CC, `$apr_config --cc`)
|
|
|
|
APR_SETIFNULL(CPP, `$apr_config --cpp`)
|
|
|
|
APR_ADDTO(CFLAGS, `$apr_config --cflags`)
|
|
|
|
APR_ADDTO(CPPFLAGS, `$apr_config --cppflags`)
|
|
|
|
apr_shlibpath_var=`$apr_config --shlib-path-var`
|
|
|
|
AC_SUBST(apr_shlibpath_var)
|
|
|
|
|
|
|
|
dnl
|
|
|
|
dnl Find the APR-ICONV directory.
|
|
|
|
dnl
|
|
|
|
AC_ARG_WITH(apr-iconv,
|
|
|
|
[ --with-apr-iconv=DIR relative path to apr-iconv source],
|
|
|
|
[ apu_apriconv_dir="$withval"
|
|
|
|
if test "$apu_apriconv_dir" != "no"; then
|
|
|
|
if test -d "$apu_apriconv_dir"; then
|
|
|
|
APR_SUBDIR_CONFIG("$apu_apriconv_dir",
|
|
|
|
[$apache_apr_flags \
|
|
|
|
--prefix=$prefix \
|
|
|
|
--exec-prefix=$exec_prefix \
|
|
|
|
--libdir=$libdir \
|
|
|
|
--includedir=$includedir \
|
|
|
|
--bindir=$bindir \
|
|
|
|
--datadir=$datadir \
|
|
|
|
--with-installbuilddir=$installbuilddir],
|
|
|
|
[--enable-layout=*|\'--enable-layout=*])
|
|
|
|
APRUTIL_EXPORT_LIBS="$abs_srcdir/$apu_apriconv_dir/lib/libapriconv.la \
|
|
|
|
$APRUTIL_EXPORT_LIBS"
|
|
|
|
APRUTIL_INCLUDES="-I$abs_srcdir/$apu_apriconv_dir/include \
|
|
|
|
$APRUTIL_INCLUDES"
|
|
|
|
APR_ICONV_DIR="$apu_apriconv_dir"
|
|
|
|
else
|
|
|
|
APR_ICONV_DIR=""
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
APR_ICONV_DIR=""
|
|
|
|
fi
|
|
|
|
])
|
|
|
|
AC_SUBST(APR_ICONV_DIR)
|
|
|
|
|
|
|
|
dnl Find LDAP library
|
|
|
|
dnl Determine what DBM backend type to use.
|
|
|
|
dnl Find Expat
|
|
|
|
dnl Find an iconv library
|
|
|
|
APU_CHECK_CRYPTO
|
|
|
|
APU_FIND_LDAP
|
|
|
|
APU_CHECK_DBM
|
|
|
|
APU_CHECK_DBD
|
|
|
|
APU_CHECK_DBD_MYSQL
|
|
|
|
APU_CHECK_DBD_SQLITE3
|
|
|
|
APU_CHECK_DBD_SQLITE2
|
|
|
|
APU_CHECK_DBD_ORACLE
|
|
|
|
APU_CHECK_DBD_ODBC
|
|
|
|
APU_FIND_EXPAT
|
|
|
|
APU_FIND_ICONV
|
|
|
|
|
|
|
|
dnl Enable DSO build; must be last:
|
|
|
|
APU_CHECK_UTIL_DSO
|
|
|
|
|
|
|
|
AC_SEARCH_LIBS(crypt, crypt ufc)
|
|
|
|
AC_MSG_CHECKING(if system crypt() function is threadsafe)
|
|
|
|
if test "x$apu_crypt_threadsafe" = "x1"; then
|
|
|
|
AC_DEFINE(APU_CRYPT_THREADSAFE, 1, [Define if the system crypt() function is threadsafe])
|
|
|
|
msg="yes"
|
|
|
|
else
|
|
|
|
msg="no"
|
|
|
|
fi
|
|
|
|
AC_MSG_RESULT([$msg])
|
|
|
|
|
|
|
|
AC_CHECK_FUNCS(crypt_r, [ crypt_r="1" ], [ crypt_r="0" ])
|
|
|
|
if test "$crypt_r" = "1"; then
|
|
|
|
APU_CHECK_CRYPT_R_STYLE
|
|
|
|
fi
|
|
|
|
|
2018-10-08 10:30:10 +02:00
|
|
|
AC_CACHE_CHECK([whether the compiler handles weak symbols], [apu_cv_weak_symbols],
|
|
|
|
[AC_TRY_RUN([
|
|
|
|
__attribute__ ((weak))
|
|
|
|
int weak_noop(void)
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
int main()
|
|
|
|
{
|
|
|
|
return weak_noop();
|
|
|
|
}], [apu_cv_weak_symbols=yes], [apu_cv_weak_symbols=no], [apu_cv_weak_symbols=no])])
|
|
|
|
|
|
|
|
if test "$apu_cv_weak_symbols" = "yes"; then
|
|
|
|
AC_DEFINE(HAVE_WEAK_SYMBOLS, 1, [Define if compiler handles weak symbols])
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_CACHE_CHECK([for memset_s support], [apu_cv_memset_s],
|
|
|
|
[AC_TRY_RUN([
|
|
|
|
#ifdef HAVE_STRING_H
|
|
|
|
#define __STDC_WANT_LIB_EXT1__ 1
|
|
|
|
#include <string.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
int main(int argc, const char **argv)
|
|
|
|
{
|
|
|
|
char buf[1] = {1};
|
|
|
|
return memset_s(buf, sizeof buf, 0, sizeof buf) != 0 || *buf != '\0';
|
|
|
|
}], [apu_cv_memset_s=yes], [apu_cv_memset_s=no], [apu_cv_memset_s=no])])
|
|
|
|
|
|
|
|
if test "$apu_cv_memset_s" = "yes"; then
|
|
|
|
AC_DEFINE([HAVE_MEMSET_S], 1, [Define if memset_s function is supported])
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_CACHE_CHECK([for explicit_bzero support], [apu_cv_explicit_bzero],
|
|
|
|
[AC_TRY_RUN([
|
|
|
|
#ifdef HAVE_STRING_H
|
|
|
|
#include <string.h>
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_STRINGS_H
|
|
|
|
#include <strings.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
int main(int argc, const char **argv)
|
|
|
|
{
|
|
|
|
char buf[1] = {1};
|
|
|
|
explicit_bzero(buf, sizeof buf);
|
|
|
|
return *buf != '\0';
|
|
|
|
}], [apu_cv_explicit_bzero=yes], [apu_cv_explicit_bzero=no], [apu_cv_explicit_bzero=no])])
|
|
|
|
|
|
|
|
if test "$apu_cv_explicit_bzero" = "yes"; then
|
|
|
|
AC_DEFINE([HAVE_EXPLICIT_BZERO], 1, [Define if explicit_bzero function is supported])
|
|
|
|
fi
|
|
|
|
|
2013-06-18 03:59:55 +02:00
|
|
|
so_ext=$APR_SO_EXT
|
|
|
|
lib_target=$APR_LIB_TARGET
|
|
|
|
AC_SUBST(so_ext)
|
|
|
|
AC_SUBST(lib_target)
|
|
|
|
|
|
|
|
APRUTIL_LIBNAME="aprutil${libsuffix}"
|
|
|
|
AC_SUBST(APRUTIL_LIBNAME)
|
|
|
|
|
|
|
|
# Set up destination directory for DSOs.
|
|
|
|
APU_DSO_LIBDIR="\${libdir}/apr-util-${APRUTIL_MAJOR_VERSION}"
|
|
|
|
# Set APU_HAVE_MODULES appropriately for the Makefile
|
|
|
|
if test -n "$APU_MODULES"; then
|
|
|
|
APU_HAVE_MODULES=yes
|
|
|
|
else
|
|
|
|
APU_HAVE_MODULES=no
|
|
|
|
fi
|
|
|
|
# Define expanded libdir for apu_config.h
|
|
|
|
APR_EXPAND_VAR(abs_dso_libdir, $APU_DSO_LIBDIR)
|
|
|
|
AC_DEFINE_UNQUOTED([APU_DSO_LIBDIR], ["$abs_dso_libdir"],
|
|
|
|
[Define to be absolute path to DSO directory])
|
|
|
|
AC_SUBST(APU_HAVE_MODULES)
|
|
|
|
AC_SUBST(APU_DSO_LIBDIR)
|
|
|
|
AC_SUBST(APU_MODULES)
|
|
|
|
AC_SUBST(EXTRA_OBJECTS)
|
|
|
|
|
|
|
|
dnl
|
|
|
|
dnl Prep all the flags and stuff for compilation and export to other builds
|
|
|
|
dnl
|
|
|
|
APR_ADDTO(APRUTIL_LIBS, [$APR_LIBS])
|
|
|
|
|
|
|
|
AC_SUBST(APRUTIL_EXPORT_LIBS)
|
|
|
|
AC_SUBST(APRUTIL_PRIV_INCLUDES)
|
|
|
|
AC_SUBST(APRUTIL_INCLUDES)
|
|
|
|
AC_SUBST(APRUTIL_LDFLAGS)
|
|
|
|
AC_SUBST(APRUTIL_LIBS)
|
|
|
|
AC_SUBST(LDFLAGS)
|
|
|
|
|
|
|
|
dnl copy apr's rules.mk into our build directory.
|
|
|
|
if test ! -d ./build; then
|
|
|
|
$mkdir_p build
|
|
|
|
fi
|
2013-07-28 07:14:54 +02:00
|
|
|
dnl
|
|
|
|
dnl MinGW: If APR is shared, APR_DECLARE_EXPORT will be defined in the
|
|
|
|
dnl internal CPPFLAGS, but APR-Util needs APU_DECLARE_EXPORT instead.
|
|
|
|
dnl If APR is static, APR_DECLARE_STATIC will be defined in the
|
|
|
|
dnl internal CPPFLAGS, but APR-Util needs APU_DECLARE_STATIC too.
|
|
|
|
dnl
|
|
|
|
case $host in
|
|
|
|
*-mingw*)
|
|
|
|
sed -e 's/-DAPR_DECLARE_EXPORT/-DAPU_DECLARE_EXPORT/' \
|
|
|
|
-e 's/-DAPR_DECLARE_STATIC/-DAPU_DECLARE_STATIC -DAPR_DECLARE_STATIC/' \
|
|
|
|
< $APR_BUILD_DIR/apr_rules.mk > $abs_builddir/build/rules.mk
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
cp $APR_BUILD_DIR/apr_rules.mk $abs_builddir/build/rules.mk
|
|
|
|
;;
|
|
|
|
esac
|
2013-06-18 03:59:55 +02:00
|
|
|
|
|
|
|
dnl
|
|
|
|
dnl BSD/OS (BSDi) needs to use a different include syntax in the Makefiles
|
|
|
|
dnl
|
|
|
|
case "$host_alias" in
|
|
|
|
*bsdi* | BSD/OS)
|
|
|
|
# Check whether they've installed GNU make
|
|
|
|
if make --version > /dev/null 2>&1; then
|
|
|
|
INCLUDE_RULES="include $abs_builddir/build/rules.mk"
|
|
|
|
INCLUDE_OUTPUTS="include $abs_srcdir/build-outputs.mk"
|
|
|
|
else
|
|
|
|
INCLUDE_RULES=".include \"$abs_builddir/build/rules.mk\""
|
|
|
|
INCLUDE_OUTPUTS=".include \"$abs_srcdir/build-outputs.mk\""
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
INCLUDE_RULES="include $abs_builddir/build/rules.mk"
|
|
|
|
INCLUDE_OUTPUTS="include $abs_srcdir/build-outputs.mk"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
AC_SUBST(INCLUDE_RULES)
|
|
|
|
AC_SUBST(INCLUDE_OUTPUTS)
|
|
|
|
|
|
|
|
for d in include include/private; do
|
|
|
|
test -d $top_builddir/$d || mkdir $top_builddir/$d
|
|
|
|
done
|
|
|
|
|
|
|
|
AC_CONFIG_FILES([Makefile export_vars.sh
|
|
|
|
build/pkg/pkginfo apr-util.pc
|
|
|
|
apu-$APRUTIL_MAJOR_VERSION-config:apu-config.in
|
|
|
|
include/private/apu_select_dbm.h
|
|
|
|
include/apr_ldap.h
|
|
|
|
include/apu.h include/apu_want.h])
|
|
|
|
|
|
|
|
AC_CONFIG_COMMANDS([default], [
|
|
|
|
chmod +x apu-$APRUTIL_MAJOR_VERSION-config
|
|
|
|
],[
|
|
|
|
APRUTIL_MAJOR_VERSION=$APRUTIL_MAJOR_VERSION
|
|
|
|
])
|
|
|
|
|
|
|
|
if test -d $srcdir/test; then
|
|
|
|
AC_CONFIG_FILES([test/Makefile])
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_OUTPUT
|