summaryrefslogtreecommitdiffstats
path: root/configure.in
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--configure.in354
1 files changed, 354 insertions, 0 deletions
diff --git a/configure.in b/configure.in
new file mode 100644
index 0000000..a4384a8
--- /dev/null
+++ b/configure.in
@@ -0,0 +1,354 @@
+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
+
+# 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_EXPAT
+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(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
+
+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