dnl dnl Process this file with autoconf to produce a configure script dnl AC_PREREQ(2.13) 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/dbm.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 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`" AC_SUBST(APRUTIL_DOTTED_VERSION) AC_SUBST(APRUTIL_MAJOR_VERSION) 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`) dnl Find LDAP library dnl Determine what DBM backend type to use. dnl Find Expat dnl Find an iconv library APU_FIND_LDAP APU_CHECK_DBM APU_FIND_EXPAT APU_FIND_ICONV 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) EXTRA_OS_LINK="" host_alias=`uname -s` case "$host_alias" in dnl ### BeOS requires that ALL symbols resolve at LINK time! dnl ### dnl ### So, if we're building on BeOS then we need to add in the dnl ### apr and expat libraries to the build or it'll die a truly horrible dnl ### death. We now use the apr-config tool to determine the correct dnl ### library to link against :) *AIX*|*Darwin*|*BeOS*) dnl need such stuff as -liconv to be specified when building libaprutil.la EXTRA_OS_LINK='$(APRUTIL_LDFLAGS) $(APRUTIL_LIBS)' ;; *) ;; esac AC_SUBST(EXTRA_OS_LINK) 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) if test -d ./test; then test_Makefile="test/Makefile" fi if test ! -d "$top_builddir/include/private"; then mkdir $top_builddir/include mkdir $top_builddir/include/private fi dnl dnl everthing is done. MAKEFILES="Makefile $test_Makefile" AC_OUTPUT([ export_vars.sh apu-config apr-util.pc include/private/apu_select_dbm.h include/apr_ldap.h include/apu.h include/apu_want.h $MAKEFILES ],[ chmod +x apu-config ])