| 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/xml.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 |
| |
| # 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. |
| case $host in |
| *-apple-darwin*) |
| LT_NO_INSTALL="" |
| ;; |
| *-mingw*) |
| LT_NO_INSTALL="-no-fast-install" |
| ;; |
| *) |
| LT_NO_INSTALL="-no-install" |
| ;; |
| 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) |
| dnl This must be synchronized to the prefix of the apr layout, to make |
| dnl configure --help print the correct default. |
| AC_PREFIX_DEFAULT([/usr/local/apr]) |
| 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_XML |
| APU_FIND_ICONV |
| |
| dnl Enable DSO build; must be last: |
| APU_CHECK_UTIL_DSO |
| |
| AC_SEARCH_LIBS(crypt, crypt ufc) |
| case "$ac_cv_search_crypt" in |
| "no"|"none required") |
| ;; |
| *) |
| APR_ADDTO(APRUTIL_LIBS, [$ac_cv_search_crypt]) |
| ;; |
| esac |
| 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(memmem, [ have_memmem="1" ], [have_memmem="0" ]) |
| |
| AC_CHECK_FUNCS(crypt_r, [ crypt_r="1" ], [ crypt_r="0" ]) |
| if test "$crypt_r" = "1"; then |
| APU_CHECK_CRYPT_R_STYLE |
| fi |
| |
| 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 |
| |
| AC_SUBST(have_memmem) |
| |
| 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 |
| 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 |
| |
| 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 |