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