diff options
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 272 |
1 files changed, 272 insertions, 0 deletions
diff --git a/configure.in b/configure.in new file mode 100644 index 0000000..3aff513 --- /dev/null +++ b/configure.in @@ -0,0 +1,272 @@ +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 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="" ;; +*) 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) +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_CHECK_CRYPTO_OPENSSL +APU_CHECK_CRYPTO_NSS +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_FREETDS +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 + +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 +cp $APR_BUILD_DIR/apr_rules.mk $abs_builddir/build/rules.mk + +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 |