configure.in revision 251876
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 45251876Speter# Use -no-install to link the test programs on all platforms 46251876Speter# but Darwin, where it would cause the programs to be linked 47251876Speter# against installed versions of libapr instead of those just 48251876Speter# built. 49251876Spetercase $host in 50251876Speter*-apple-darwin*) LT_NO_INSTALL="" ;; 51251876Speter*) LT_NO_INSTALL="-no-install" ;; 52251876Speteresac 53251876SpeterAC_SUBST(LT_NO_INSTALL) 54251876Speter 55251876Speterdnl 56251876Speterdnl compute the top directory of the build 57251876Speterdnl note: this is needed for LIBTOOL and exporting the bundled Expat 58251876Speterdnl 59251876Spetertop_builddir="$abs_builddir" 60251876SpeterAC_SUBST(top_builddir) 61251876SpeterAC_SUBST(abs_srcdir) 62251876SpeterAC_SUBST(abs_builddir) 63251876Speter 64251876Speterdnl Initialize mkdir -p functionality. 65251876SpeterAPR_MKDIR_P_CHECK($abs_srcdir/build/mkdir.sh) 66251876Speter 67251876Speterdnl get our version information 68251876Speterget_version="$abs_srcdir/build/get-version.sh" 69251876Speterversion_hdr="$abs_srcdir/include/apu_version.h" 70251876SpeterAPRUTIL_MAJOR_VERSION="`$get_version major $version_hdr APU`" 71251876SpeterAPRUTIL_DOTTED_VERSION="`$get_version all $version_hdr APU`" 72251876Speter 73251876SpeterAPU_LTVERSION="-version-info `$get_version libtool $version_hdr APU`" 74251876Speter 75251876SpeterAC_SUBST(APRUTIL_DOTTED_VERSION) 76251876SpeterAC_SUBST(APRUTIL_MAJOR_VERSION) 77251876SpeterAC_SUBST(APU_LTVERSION) 78251876Speter 79251876Speterecho "APR-util Version: ${APRUTIL_DOTTED_VERSION}" 80251876Speter 81251876Speterdnl Enable the layout handling code, then reparse the prefix-style 82251876Speterdnl arguments due to autoconf being a PITA. 83251876SpeterAPR_ENABLE_LAYOUT(apr-util) 84251876SpeterAPR_PARSE_ARGUMENTS 85251876Speter 86251876Speterdnl load os-specific hints for apr-util 87251876SpeterAPU_PRELOAD 88251876Speter 89251876Speterdnl 90251876Speterdnl set up the compilation flags and stuff 91251876Speterdnl 92251876Speter 93251876SpeterAPRUTIL_INCLUDES="" 94251876SpeterAPRUTIL_PRIV_INCLUDES="-I$top_builddir/include -I$top_builddir/include/private" 95251876Speterif test -n "$USE_VPATH"; then 96251876Speter APRUTIL_PRIV_INCLUDES="$APRUTIL_PRIV_INCLUDES -I$abs_srcdir/include/private -I$abs_srcdir/include" 97251876Speterfi 98251876Speter 99251876Speterdnl 100251876Speterdnl Find the APR includes directory and (possibly) the source (base) dir. 101251876Speterdnl 102251876SpeterAPU_FIND_APR 103251876Speter 104251876Speterdnl 105251876Speterdnl even though we use apr_rules.mk for building apr-util, we need 106251876Speterdnl to grab CC and CPP ahead of time so that apr-util config tests 107251876Speterdnl use the same compiler as APR; we need the same compiler options 108251876Speterdnl and feature test macros as well 109251876Speterdnl 110251876SpeterAPR_SETIFNULL(CC, `$apr_config --cc`) 111251876SpeterAPR_SETIFNULL(CPP, `$apr_config --cpp`) 112251876SpeterAPR_ADDTO(CFLAGS, `$apr_config --cflags`) 113251876SpeterAPR_ADDTO(CPPFLAGS, `$apr_config --cppflags`) 114251876Speterapr_shlibpath_var=`$apr_config --shlib-path-var` 115251876SpeterAC_SUBST(apr_shlibpath_var) 116251876Speter 117251876Speterdnl 118251876Speterdnl Find the APR-ICONV directory. 119251876Speterdnl 120251876SpeterAC_ARG_WITH(apr-iconv, 121251876Speter [ --with-apr-iconv=DIR relative path to apr-iconv source], 122251876Speter [ apu_apriconv_dir="$withval" 123251876Speter if test "$apu_apriconv_dir" != "no"; then 124251876Speter if test -d "$apu_apriconv_dir"; then 125251876Speter APR_SUBDIR_CONFIG("$apu_apriconv_dir", 126251876Speter [$apache_apr_flags \ 127251876Speter --prefix=$prefix \ 128251876Speter --exec-prefix=$exec_prefix \ 129251876Speter --libdir=$libdir \ 130251876Speter --includedir=$includedir \ 131251876Speter --bindir=$bindir \ 132251876Speter --datadir=$datadir \ 133251876Speter --with-installbuilddir=$installbuilddir], 134251876Speter [--enable-layout=*|\'--enable-layout=*]) 135251876Speter APRUTIL_EXPORT_LIBS="$abs_srcdir/$apu_apriconv_dir/lib/libapriconv.la \ 136251876Speter $APRUTIL_EXPORT_LIBS" 137251876Speter APRUTIL_INCLUDES="-I$abs_srcdir/$apu_apriconv_dir/include \ 138251876Speter $APRUTIL_INCLUDES" 139251876Speter APR_ICONV_DIR="$apu_apriconv_dir" 140251876Speter else 141251876Speter APR_ICONV_DIR="" 142251876Speter fi 143251876Speter else 144251876Speter APR_ICONV_DIR="" 145251876Speter fi 146251876Speter ]) 147251876SpeterAC_SUBST(APR_ICONV_DIR) 148251876Speter 149251876Speterdnl Find LDAP library 150251876Speterdnl Determine what DBM backend type to use. 151251876Speterdnl Find Expat 152251876Speterdnl Find an iconv library 153251876SpeterAPU_CHECK_CRYPTO 154251876SpeterAPU_CHECK_CRYPTO_OPENSSL 155251876SpeterAPU_CHECK_CRYPTO_NSS 156251876SpeterAPU_FIND_LDAP 157251876SpeterAPU_CHECK_DBM 158251876SpeterAPU_CHECK_DBD 159251876SpeterAPU_CHECK_DBD_MYSQL 160251876SpeterAPU_CHECK_DBD_SQLITE3 161251876SpeterAPU_CHECK_DBD_SQLITE2 162251876SpeterAPU_CHECK_DBD_ORACLE 163251876SpeterAPU_CHECK_DBD_FREETDS 164251876SpeterAPU_CHECK_DBD_ODBC 165251876SpeterAPU_FIND_EXPAT 166251876SpeterAPU_FIND_ICONV 167251876Speter 168251876Speterdnl Enable DSO build; must be last: 169251876SpeterAPU_CHECK_UTIL_DSO 170251876Speter 171251876SpeterAC_SEARCH_LIBS(crypt, crypt ufc) 172251876SpeterAC_MSG_CHECKING(if system crypt() function is threadsafe) 173251876Speterif test "x$apu_crypt_threadsafe" = "x1"; then 174251876Speter AC_DEFINE(APU_CRYPT_THREADSAFE, 1, [Define if the system crypt() function is threadsafe]) 175251876Speter msg="yes" 176251876Speterelse 177251876Speter msg="no" 178251876Speterfi 179251876SpeterAC_MSG_RESULT([$msg]) 180251876Speter 181251876SpeterAC_CHECK_FUNCS(crypt_r, [ crypt_r="1" ], [ crypt_r="0" ]) 182251876Speterif test "$crypt_r" = "1"; then 183251876Speter APU_CHECK_CRYPT_R_STYLE 184251876Speterfi 185251876Speter 186251876Speterso_ext=$APR_SO_EXT 187251876Speterlib_target=$APR_LIB_TARGET 188251876SpeterAC_SUBST(so_ext) 189251876SpeterAC_SUBST(lib_target) 190251876Speter 191251876SpeterAPRUTIL_LIBNAME="aprutil${libsuffix}" 192251876SpeterAC_SUBST(APRUTIL_LIBNAME) 193251876Speter 194251876Speter# Set up destination directory for DSOs. 195251876SpeterAPU_DSO_LIBDIR="\${libdir}/apr-util-${APRUTIL_MAJOR_VERSION}" 196251876Speter# Set APU_HAVE_MODULES appropriately for the Makefile 197251876Speterif test -n "$APU_MODULES"; then 198251876Speter APU_HAVE_MODULES=yes 199251876Speterelse 200251876Speter APU_HAVE_MODULES=no 201251876Speterfi 202251876Speter# Define expanded libdir for apu_config.h 203251876SpeterAPR_EXPAND_VAR(abs_dso_libdir, $APU_DSO_LIBDIR) 204251876SpeterAC_DEFINE_UNQUOTED([APU_DSO_LIBDIR], ["$abs_dso_libdir"], 205251876Speter [Define to be absolute path to DSO directory]) 206251876SpeterAC_SUBST(APU_HAVE_MODULES) 207251876SpeterAC_SUBST(APU_DSO_LIBDIR) 208251876SpeterAC_SUBST(APU_MODULES) 209251876SpeterAC_SUBST(EXTRA_OBJECTS) 210251876Speter 211251876Speterdnl 212251876Speterdnl Prep all the flags and stuff for compilation and export to other builds 213251876Speterdnl 214251876SpeterAPR_ADDTO(APRUTIL_LIBS, [$APR_LIBS]) 215251876Speter 216251876SpeterAC_SUBST(APRUTIL_EXPORT_LIBS) 217251876SpeterAC_SUBST(APRUTIL_PRIV_INCLUDES) 218251876SpeterAC_SUBST(APRUTIL_INCLUDES) 219251876SpeterAC_SUBST(APRUTIL_LDFLAGS) 220251876SpeterAC_SUBST(APRUTIL_LIBS) 221251876SpeterAC_SUBST(LDFLAGS) 222251876Speter 223251876Speterdnl copy apr's rules.mk into our build directory. 224251876Speterif test ! -d ./build; then 225251876Speter $mkdir_p build 226251876Speterfi 227251876Spetercp $APR_BUILD_DIR/apr_rules.mk $abs_builddir/build/rules.mk 228251876Speter 229251876Speterdnl 230251876Speterdnl BSD/OS (BSDi) needs to use a different include syntax in the Makefiles 231251876Speterdnl 232251876Spetercase "$host_alias" in 233251876Speter*bsdi* | BSD/OS) 234251876Speter # Check whether they've installed GNU make 235251876Speter if make --version > /dev/null 2>&1; then 236251876Speter INCLUDE_RULES="include $abs_builddir/build/rules.mk" 237251876Speter INCLUDE_OUTPUTS="include $abs_srcdir/build-outputs.mk" 238251876Speter else 239251876Speter INCLUDE_RULES=".include \"$abs_builddir/build/rules.mk\"" 240251876Speter INCLUDE_OUTPUTS=".include \"$abs_srcdir/build-outputs.mk\"" 241251876Speter fi 242251876Speter ;; 243251876Speter*) 244251876Speter INCLUDE_RULES="include $abs_builddir/build/rules.mk" 245251876Speter INCLUDE_OUTPUTS="include $abs_srcdir/build-outputs.mk" 246251876Speter ;; 247251876Speteresac 248251876SpeterAC_SUBST(INCLUDE_RULES) 249251876SpeterAC_SUBST(INCLUDE_OUTPUTS) 250251876Speter 251251876Speterfor d in include include/private; do 252251876Speter test -d $top_builddir/$d || mkdir $top_builddir/$d 253251876Speterdone 254251876Speter 255251876SpeterAC_CONFIG_FILES([Makefile export_vars.sh 256251876Speter build/pkg/pkginfo apr-util.pc 257251876Speter apu-$APRUTIL_MAJOR_VERSION-config:apu-config.in 258251876Speter include/private/apu_select_dbm.h 259251876Speter include/apr_ldap.h 260251876Speter include/apu.h include/apu_want.h]) 261251876Speter 262251876SpeterAC_CONFIG_COMMANDS([default], [ 263251876Speterchmod +x apu-$APRUTIL_MAJOR_VERSION-config 264251876Speter],[ 265251876SpeterAPRUTIL_MAJOR_VERSION=$APRUTIL_MAJOR_VERSION 266251876Speter]) 267251876Speter 268251876Speterif test -d $srcdir/test; then 269251876Speter AC_CONFIG_FILES([test/Makefile]) 270251876Speterfi 271251876Speter 272251876SpeterAC_OUTPUT 273