1251876Speterdnl 2251876Speterdnl Process this file with autoconf to produce a configure script 3251876Speterdnl 4251876Speter 5251876SpeterAC_PREREQ(2.59) 6251876SpeterAC_INIT(export_vars.sh.in) 7251876Speter 8251876SpeterAC_CONFIG_HEADER(include/private/apu_config.h) 9251876SpeterAC_CONFIG_AUX_DIR(build) 10251876Speter 11251876Spetersinclude(build/apu-conf.m4) 12251876Spetersinclude(build/apu-iconv.m4) 13251876Spetersinclude(build/apu-hints.m4) 14251876Spetersinclude(build/apr_common.m4) 15251876Spetersinclude(build/find_apr.m4) 16251876Spetersinclude(build/crypto.m4) 17251876Spetersinclude(build/dbm.m4) 18251876Spetersinclude(build/dbd.m4) 19251876Spetersinclude(build/dso.m4) 20251876Speter 21251876Speterdnl Generate ./config.nice for reproducing runs of configure 22251876Speterdnl 23251876SpeterAPR_CONFIG_NICE(config.nice) 24251876Speter 25251876Speterdnl # Some initial steps for configuration. We setup the default directory 26251876Speterdnl # and which files are to be configured. 27251876Speter 28251876Speterdnl Absolute source/build directory 29251876Speterabs_srcdir=`(cd $srcdir && pwd)` 30251876Speterabs_builddir=`pwd` 31251876Speter 32251876Speterif test "$abs_builddir" != "$abs_srcdir"; then 33251876Speter USE_VPATH=1 34251876Speter APU_CONFIG_LOCATION=build 35251876Speterelse 36251876Speter APU_CONFIG_LOCATION=source 37251876Speterfi 38251876Speter 39251876SpeterAC_SUBST(APU_CONFIG_LOCATION) 40251876Speter 41251876SpeterAC_CANONICAL_SYSTEM 42251876Speter 43251876SpeterAC_PROG_INSTALL 44251876Speter 45253734Speter# Use -no-install or -no-fast-install to link the test 46253734Speter# programs on all platforms but Darwin, where it would cause 47253734Speter# the programs to be linked against installed versions of 48253734Speter# libapr instead of those just built. 49251876Spetercase $host in 50253734Speter *-apple-darwin*) 51253734Speter LT_NO_INSTALL="" 52253734Speter ;; 53253734Speter *-mingw*) 54253734Speter LT_NO_INSTALL="-no-fast-install" 55253734Speter ;; 56253734Speter *) 57253734Speter LT_NO_INSTALL="-no-install" 58253734Speter ;; 59251876Speteresac 60251876SpeterAC_SUBST(LT_NO_INSTALL) 61251876Speter 62251876Speterdnl 63251876Speterdnl compute the top directory of the build 64251876Speterdnl note: this is needed for LIBTOOL and exporting the bundled Expat 65251876Speterdnl 66251876Spetertop_builddir="$abs_builddir" 67251876SpeterAC_SUBST(top_builddir) 68251876SpeterAC_SUBST(abs_srcdir) 69251876SpeterAC_SUBST(abs_builddir) 70251876Speter 71251876Speterdnl Initialize mkdir -p functionality. 72251876SpeterAPR_MKDIR_P_CHECK($abs_srcdir/build/mkdir.sh) 73251876Speter 74251876Speterdnl get our version information 75251876Speterget_version="$abs_srcdir/build/get-version.sh" 76251876Speterversion_hdr="$abs_srcdir/include/apu_version.h" 77251876SpeterAPRUTIL_MAJOR_VERSION="`$get_version major $version_hdr APU`" 78251876SpeterAPRUTIL_DOTTED_VERSION="`$get_version all $version_hdr APU`" 79251876Speter 80251876SpeterAPU_LTVERSION="-version-info `$get_version libtool $version_hdr APU`" 81251876Speter 82251876SpeterAC_SUBST(APRUTIL_DOTTED_VERSION) 83251876SpeterAC_SUBST(APRUTIL_MAJOR_VERSION) 84251876SpeterAC_SUBST(APU_LTVERSION) 85251876Speter 86251876Speterecho "APR-util Version: ${APRUTIL_DOTTED_VERSION}" 87251876Speter 88251876Speterdnl Enable the layout handling code, then reparse the prefix-style 89251876Speterdnl arguments due to autoconf being a PITA. 90251876SpeterAPR_ENABLE_LAYOUT(apr-util) 91251876SpeterAPR_PARSE_ARGUMENTS 92251876Speter 93251876Speterdnl load os-specific hints for apr-util 94251876SpeterAPU_PRELOAD 95251876Speter 96251876Speterdnl 97251876Speterdnl set up the compilation flags and stuff 98251876Speterdnl 99251876Speter 100251876SpeterAPRUTIL_INCLUDES="" 101251876SpeterAPRUTIL_PRIV_INCLUDES="-I$top_builddir/include -I$top_builddir/include/private" 102251876Speterif test -n "$USE_VPATH"; then 103251876Speter APRUTIL_PRIV_INCLUDES="$APRUTIL_PRIV_INCLUDES -I$abs_srcdir/include/private -I$abs_srcdir/include" 104251876Speterfi 105251876Speter 106251876Speterdnl 107251876Speterdnl Find the APR includes directory and (possibly) the source (base) dir. 108251876Speterdnl 109251876SpeterAPU_FIND_APR 110251876Speter 111251876Speterdnl 112251876Speterdnl even though we use apr_rules.mk for building apr-util, we need 113251876Speterdnl to grab CC and CPP ahead of time so that apr-util config tests 114251876Speterdnl use the same compiler as APR; we need the same compiler options 115251876Speterdnl and feature test macros as well 116251876Speterdnl 117251876SpeterAPR_SETIFNULL(CC, `$apr_config --cc`) 118251876SpeterAPR_SETIFNULL(CPP, `$apr_config --cpp`) 119251876SpeterAPR_ADDTO(CFLAGS, `$apr_config --cflags`) 120251876SpeterAPR_ADDTO(CPPFLAGS, `$apr_config --cppflags`) 121251876Speterapr_shlibpath_var=`$apr_config --shlib-path-var` 122251876SpeterAC_SUBST(apr_shlibpath_var) 123251876Speter 124251876Speterdnl 125251876Speterdnl Find the APR-ICONV directory. 126251876Speterdnl 127251876SpeterAC_ARG_WITH(apr-iconv, 128251876Speter [ --with-apr-iconv=DIR relative path to apr-iconv source], 129251876Speter [ apu_apriconv_dir="$withval" 130251876Speter if test "$apu_apriconv_dir" != "no"; then 131251876Speter if test -d "$apu_apriconv_dir"; then 132251876Speter APR_SUBDIR_CONFIG("$apu_apriconv_dir", 133251876Speter [$apache_apr_flags \ 134251876Speter --prefix=$prefix \ 135251876Speter --exec-prefix=$exec_prefix \ 136251876Speter --libdir=$libdir \ 137251876Speter --includedir=$includedir \ 138251876Speter --bindir=$bindir \ 139251876Speter --datadir=$datadir \ 140251876Speter --with-installbuilddir=$installbuilddir], 141251876Speter [--enable-layout=*|\'--enable-layout=*]) 142251876Speter APRUTIL_EXPORT_LIBS="$abs_srcdir/$apu_apriconv_dir/lib/libapriconv.la \ 143251876Speter $APRUTIL_EXPORT_LIBS" 144251876Speter APRUTIL_INCLUDES="-I$abs_srcdir/$apu_apriconv_dir/include \ 145251876Speter $APRUTIL_INCLUDES" 146251876Speter APR_ICONV_DIR="$apu_apriconv_dir" 147251876Speter else 148251876Speter APR_ICONV_DIR="" 149251876Speter fi 150251876Speter else 151251876Speter APR_ICONV_DIR="" 152251876Speter fi 153251876Speter ]) 154251876SpeterAC_SUBST(APR_ICONV_DIR) 155251876Speter 156251876Speterdnl Find LDAP library 157251876Speterdnl Determine what DBM backend type to use. 158251876Speterdnl Find Expat 159251876Speterdnl Find an iconv library 160251876SpeterAPU_CHECK_CRYPTO 161251876SpeterAPU_FIND_LDAP 162251876SpeterAPU_CHECK_DBM 163251876SpeterAPU_CHECK_DBD 164251876SpeterAPU_CHECK_DBD_MYSQL 165251876SpeterAPU_CHECK_DBD_SQLITE3 166251876SpeterAPU_CHECK_DBD_SQLITE2 167251876SpeterAPU_CHECK_DBD_ORACLE 168251876SpeterAPU_CHECK_DBD_FREETDS 169251876SpeterAPU_CHECK_DBD_ODBC 170251876SpeterAPU_FIND_EXPAT 171251876SpeterAPU_FIND_ICONV 172251876Speter 173251876Speterdnl Enable DSO build; must be last: 174251876SpeterAPU_CHECK_UTIL_DSO 175251876Speter 176251876SpeterAC_SEARCH_LIBS(crypt, crypt ufc) 177251876SpeterAC_MSG_CHECKING(if system crypt() function is threadsafe) 178251876Speterif test "x$apu_crypt_threadsafe" = "x1"; then 179251876Speter AC_DEFINE(APU_CRYPT_THREADSAFE, 1, [Define if the system crypt() function is threadsafe]) 180251876Speter msg="yes" 181251876Speterelse 182251876Speter msg="no" 183251876Speterfi 184251876SpeterAC_MSG_RESULT([$msg]) 185251876Speter 186251876SpeterAC_CHECK_FUNCS(crypt_r, [ crypt_r="1" ], [ crypt_r="0" ]) 187251876Speterif test "$crypt_r" = "1"; then 188251876Speter APU_CHECK_CRYPT_R_STYLE 189251876Speterfi 190251876Speter 191251876Speterso_ext=$APR_SO_EXT 192251876Speterlib_target=$APR_LIB_TARGET 193251876SpeterAC_SUBST(so_ext) 194251876SpeterAC_SUBST(lib_target) 195251876Speter 196251876SpeterAPRUTIL_LIBNAME="aprutil${libsuffix}" 197251876SpeterAC_SUBST(APRUTIL_LIBNAME) 198251876Speter 199251876Speter# Set up destination directory for DSOs. 200251876SpeterAPU_DSO_LIBDIR="\${libdir}/apr-util-${APRUTIL_MAJOR_VERSION}" 201251876Speter# Set APU_HAVE_MODULES appropriately for the Makefile 202251876Speterif test -n "$APU_MODULES"; then 203251876Speter APU_HAVE_MODULES=yes 204251876Speterelse 205251876Speter APU_HAVE_MODULES=no 206251876Speterfi 207251876Speter# Define expanded libdir for apu_config.h 208251876SpeterAPR_EXPAND_VAR(abs_dso_libdir, $APU_DSO_LIBDIR) 209251876SpeterAC_DEFINE_UNQUOTED([APU_DSO_LIBDIR], ["$abs_dso_libdir"], 210251876Speter [Define to be absolute path to DSO directory]) 211251876SpeterAC_SUBST(APU_HAVE_MODULES) 212251876SpeterAC_SUBST(APU_DSO_LIBDIR) 213251876SpeterAC_SUBST(APU_MODULES) 214251876SpeterAC_SUBST(EXTRA_OBJECTS) 215251876Speter 216251876Speterdnl 217251876Speterdnl Prep all the flags and stuff for compilation and export to other builds 218251876Speterdnl 219251876SpeterAPR_ADDTO(APRUTIL_LIBS, [$APR_LIBS]) 220251876Speter 221251876SpeterAC_SUBST(APRUTIL_EXPORT_LIBS) 222251876SpeterAC_SUBST(APRUTIL_PRIV_INCLUDES) 223251876SpeterAC_SUBST(APRUTIL_INCLUDES) 224251876SpeterAC_SUBST(APRUTIL_LDFLAGS) 225251876SpeterAC_SUBST(APRUTIL_LIBS) 226251876SpeterAC_SUBST(LDFLAGS) 227251876Speter 228251876Speterdnl copy apr's rules.mk into our build directory. 229251876Speterif test ! -d ./build; then 230251876Speter $mkdir_p build 231251876Speterfi 232253734Speterdnl 233253734Speterdnl MinGW: If APR is shared, APR_DECLARE_EXPORT will be defined in the 234253734Speterdnl internal CPPFLAGS, but APR-Util needs APU_DECLARE_EXPORT instead. 235253734Speterdnl If APR is static, APR_DECLARE_STATIC will be defined in the 236253734Speterdnl internal CPPFLAGS, but APR-Util needs APU_DECLARE_STATIC too. 237253734Speterdnl 238253734Spetercase $host in 239253734Speter *-mingw*) 240253734Speter sed -e 's/-DAPR_DECLARE_EXPORT/-DAPU_DECLARE_EXPORT/' \ 241253734Speter -e 's/-DAPR_DECLARE_STATIC/-DAPU_DECLARE_STATIC -DAPR_DECLARE_STATIC/' \ 242253734Speter < $APR_BUILD_DIR/apr_rules.mk > $abs_builddir/build/rules.mk 243253734Speter ;; 244253734Speter *) 245253734Speter cp $APR_BUILD_DIR/apr_rules.mk $abs_builddir/build/rules.mk 246253734Speter ;; 247253734Speteresac 248251876Speter 249251876Speterdnl 250251876Speterdnl BSD/OS (BSDi) needs to use a different include syntax in the Makefiles 251251876Speterdnl 252251876Spetercase "$host_alias" in 253251876Speter*bsdi* | BSD/OS) 254251876Speter # Check whether they've installed GNU make 255251876Speter if make --version > /dev/null 2>&1; then 256251876Speter INCLUDE_RULES="include $abs_builddir/build/rules.mk" 257251876Speter INCLUDE_OUTPUTS="include $abs_srcdir/build-outputs.mk" 258251876Speter else 259251876Speter INCLUDE_RULES=".include \"$abs_builddir/build/rules.mk\"" 260251876Speter INCLUDE_OUTPUTS=".include \"$abs_srcdir/build-outputs.mk\"" 261251876Speter fi 262251876Speter ;; 263251876Speter*) 264251876Speter INCLUDE_RULES="include $abs_builddir/build/rules.mk" 265251876Speter INCLUDE_OUTPUTS="include $abs_srcdir/build-outputs.mk" 266251876Speter ;; 267251876Speteresac 268251876SpeterAC_SUBST(INCLUDE_RULES) 269251876SpeterAC_SUBST(INCLUDE_OUTPUTS) 270251876Speter 271251876Speterfor d in include include/private; do 272251876Speter test -d $top_builddir/$d || mkdir $top_builddir/$d 273251876Speterdone 274251876Speter 275251876SpeterAC_CONFIG_FILES([Makefile export_vars.sh 276251876Speter build/pkg/pkginfo apr-util.pc 277251876Speter apu-$APRUTIL_MAJOR_VERSION-config:apu-config.in 278251876Speter include/private/apu_select_dbm.h 279251876Speter include/apr_ldap.h 280251876Speter include/apu.h include/apu_want.h]) 281251876Speter 282251876SpeterAC_CONFIG_COMMANDS([default], [ 283251876Speterchmod +x apu-$APRUTIL_MAJOR_VERSION-config 284251876Speter],[ 285251876SpeterAPRUTIL_MAJOR_VERSION=$APRUTIL_MAJOR_VERSION 286251876Speter]) 287251876Speter 288251876Speterif test -d $srcdir/test; then 289251876Speter AC_CONFIG_FILES([test/Makefile]) 290251876Speterfi 291251876Speter 292251876SpeterAC_OUTPUT 293