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