Add apache-apr-util 1.2.12 source.

Change-Id: Ia2f9f785cfd65902f61b0cccf1e01840e2f4f90c
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..ff6170f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,31 @@
+/build
+/source/build
+*.mode1v3
+*.pbxuser
+*.pbxindex/
+!user.pbxuser
+/*.log
+*.user
+*.ncb
+*.suo
+*.pdb
+*.pdf
+*.html
+*.idb
+*.o
+*.lo
+*.a
+*.so
+*.so.0
+*.la
+.deps
+.libs
+*.pyc
+.DS_Store
+# Emacs and other editor backup files
+*~
+
+# builds on Windows
+Debug/
+Release/
+release/
diff --git a/CHANGES b/CHANGES
new file mode 100644
index 0000000..97f55c7
--- /dev/null
+++ b/CHANGES
@@ -0,0 +1,680 @@
+                                                     -*- coding: utf-8 -*-
+
+Changes with APR-util 1.2.12
+
+  *) Wakeup threads waiting for a reslist resource after a resource was
+     invalidated. [Ruediger Pluem]
+
+  *) Fix GMT offset for several date formats and add a new format.
+     [Maxime Petazzoni <maxime.petazzoni bulix.org>]
+
+  *) Numerous fixes to the test/ framework, including better handling of
+     long size_t comparisons and more consistent Makefile.(in|win) setup
+     for authoring new tests.  [William Rowe]
+
+  *) Win32 build fixes including a Makefile.win scheme, fixes for 64P
+     model x86_64 compiles and VC8 builds.  [William Rowe]
+
+  *) Type mismatch between apr_datum_t and GDBM's datum type could
+     yield a corrupt apr_datum_t when reading from a GDBM database.
+     PR 43025.  [Björn Wiberg <Bjorn.Wiberg its.uu.se>, Davi Arnaut]
+
+  *) Add the #define APR_LDAP_SIZELIMIT that is set appropriately
+     for the LDAP SDK that is being used. Also include ZOS as an
+     LDAP Platform.
+     PR 37814.  [David Jones <oscaremma gmail com>, Davi Arnaut]
+
+  *) Fix exported LDFLAGS with new expat detection.  PR 43337.
+     [Justin Erenkrantz]
+
+  *) Add MySQL DBD driver [Nick Kew, Bojan Smojver]
+
+Changes with APR-util 1.2.10
+
+  *) Support BerkeleyDB 4.6.  [Arfrever Frehtes Taifersar Arahesis]
+
+  *) Test improvements to validate testmd4 and testdbm, unattended.
+     [Bojan Smojver]
+
+Changes with APR-util 1.2.9
+
+  *) Ensure that an apr_reslist shrinks back to SMAX via the TTL by
+     reorganising the resource list from a queue to a stack.
+     PR 40348.  [Christian BOITEL <christian_boitel yahoo.fr>]
+
+  *) Fix Solaris 2.8+ fdatasync() detection. The fdatasync() function
+     is marked as part of the Realtime library functions.
+     PR 37343.  [Davi Arnaut]
+
+  *) Change configure's expat detection to use standard linker-based
+     tests, fixing build on e.g. biarch Linux systems.  PR 28205.
+     [Joe Orton, Ruediger Pluem]     
+
+  *) Portably implement testdate's long-time constants to solve
+     compilation faults where #LL isn't valid.  [Curt Arnold]
+
+  *) APR_FIND_APU macro no longer checks /usr/local/apache2/.
+     PR 42089.  [Colm MacCárthaigh]
+
+  *) Fix handling of attribute namespaces in apr_xml_to_text() when
+     a namespace map is provided.  PR 41908.  [Joe Orton]
+
+Changes with APR-util 1.2.8
+
+  *) Add support for Berkeley DB 4.5 to the configure scripts.
+     [Garrett Rooney]
+
+  *) Allow apr_queue.h to be included before other APR headers.
+     PR 40891 [Henry Jen <henryjen ztune.net>]
+
+  *) Provide folding in autogenerated .manifest files for Win32 builders
+     using VisualStudio 2005  [William Rowe]
+
+  *) Implement prepared statement support in SQLite3 DBD driver
+     [Bojan Smojver]
+
+  *) Fix to ensure that "deprecated" LDAP interfaces are still 
+     exposed if using OpenLDAP 2.3.  [Joe Orton]
+
+  *) Fix incorrect byte order and incorrect timestamp type
+     in the fallback UUID generator used when no external UUID
+     generator is detected by APR.  PR 37342.  [Max Bowsher]
+
+Changes with APR-util 1.2.7
+
+  *) Fix apr_dbd_init to be safe to call multiple times
+     [Bojan Smojver <bojan rexursive com>, Nick Kew]
+
+  *) Win32 / Netware - add missing apu_version.c for apu_version_string()
+     to the Windows and Netware specific builds.  Unix platforms supported
+     this API since 0.9.1.  [William Rowe, Brad Nicholes].
+
+Changes with APR-util 1.2.6
+
+  *) Stop trying to link against Berkeley DB by default.  To enable use
+     of Berkeley DB users must now explicitly pass --with-berkeley-db to
+     configure, since Berkeley DB is released under a viral license that
+     requires distribution of source code for any program that uses it.
+     [Garrett Rooney]
+
+  *) Stop trying to link against GDBM by default.  To enable use of GDBM
+     users must now explicitly pass --with-gdbm to configure, since GDBM
+     is licensed under the GPL.
+     [Garrett Rooney]
+
+  *) Fix VPATH builds, and symlink builds where apr and apr-util
+     reside in parallel as symlinks to directories with more explicit
+     names, e.g. apr-1.x and apr-util-1.x.  This solves various breakage
+     on Solaris in particular with ./buildconf and ./configure.  Also
+     eliminated the nested ../apr-iconv/buildconf, given that apr-util
+     didn't bother with ../apr/buildconf, and this was inconsistant.
+     [William Rowe]
+
+  *) Fix the escape implementations for the sqlite2 and sqlite3 dbd
+     back ends.
+     [Ronen Mizrahi <ronen tversity.com>, Garrett Rooney]
+
+  *) Add support for Berkeley DB 4.4 to the configure scripts.
+     [Garrett Rooney]
+
+  *) Fix bug in test suite that cause testbuckets to write 8GB file
+     on Mac OS X.  [Justin Erenkrantz]
+
+Changes with APR-util 1.2.2
+
+  *) Teach configure how to find the Novell LDAP SDK. [Graham Leggett]
+ 
+  *) Fix usage of ldapssl_init/ldap_sslinit on platforms that support
+     these API's including Win32.  Support APR_HAS_LDAP_START_TLS_S
+     flag in the Win32 LDAP API, to drop usage of ldap_start_ssl_s
+     and ldap_stop_ssl_s on Win32 by default (change the flag in apr_ldap.hw
+     to enable if supported on a given OS level). [William Rowe]
+
+Changes with APR-util 1.2.1
+
+  *) Fix apr_rmm_realloc() offset calculation bug.  [Keith Kelleman
+     <keith.kelleman oracle.com>]
+
+  *) Add sqlite3 support to APR DBD. [Rick Keiner <rick_keiner yahoo.com>]
+
+  *) Fix build failure with non-threaded APR on AIX.  PR 34655.
+     [Ryan Murray <rmurray+apache cyberhqz.com>]
+
+  *) Add sqlite2 support to APR DBD. [Ryan Phillips <ryan trolocsis.com>]
+
+  *) Introduction of APR DBD layer.  [Nick Kew]
+
+Changes with APR-util 1.1.2
+
+  *) Fix libaprutil.rc for Win32 builds [William Rowe, Justin Erenkrantz]
+
+Changes with APR-util 1.1.1
+
+  *) Fix memory leak in buckets when using APR_POOL_DEBUG mode. [Joe Schaefer]
+
+  *) find_apu.m4: Try installed APR-util before bundled copy if --with-apr-util
+     not passed to configure.  [Justin Erenkrantz] 
+
+Changes with APR-util 1.1.0
+
+  *) LDAP: Move all certificate initialisation, and the creation of SSL
+     and TLS connections into the apr_ldap_set_option() API. Add support
+     for client certificates. [Graham Leggett]
+ 
+  *) Emit the run-time link path option in apu-config after installation
+     if the user is linking with libtool.  [Justin Erenkrantz]
+
+  *) Port testmd4 and testmd5 to the new test suite. [Thom May]
+
+  *) Allow passing NULL inbuf/inbytes_left parameters to
+     apr_xlate_conv_buffer(), required to correctly terminate the
+     output buffer for some stateful character set encodings.
+     [Joe Orton]
+
+  *) Link libaprutil against the libraries on which it depends.
+     PR 11122.  [Joe Orton]
+
+  *) Add apr_brigade_insert_file() function, to safely insert a file
+     into a brigade, regardless of size.  [Joe Orton]
+
+Changes with APR-util 1.0.2
+
+  *) Teach apr_ldap_init() how to handle STARTTLS in addition to the existing
+     SSL support. Add apr_ldap_option API. [Graham Leggett]
+
+  *) Rework the LDAP toolkit detection to be more accurate than "OpenLDAP
+     detected regardless", while remaining backwards compatible with v1.0.
+     [Graham Leggett]
+
+  *) Added the apr_ldap_ssl_add_cert() API to allow multiple certificates
+     to be stored and used when establishing an SSL connection to different
+     LDAP servers. [Brad Nicholes]
+
+  *) Fix the detection of ldap.h on Solaris - it needs lber.h to be
+     defined first. [Graham Leggett]
+
+  *) Add a build script to create a solaris package. [Graham Leggett]
+
+Changes with APR-util 1.0.1
+
+  *) Add support for Berkeley DB 4.3.  [Jani Averbach <jaa jaa.iki.fi>]
+
+  *) SECURITY: CAN-2004-0786 (cve.mitre.org)
+     Fix input validation in apr_uri_parse() to avoid passing negative
+     length to memcpy for malformed IPv6 literal addresses.
+     [Joe Orton]
+
+Changes with APR-util 1.0
+
+  *) Only install apu-$MAJOR-config and add appropriate detection code to
+     find_apu.m4 (APU_FIND_APU).  [Max Bowsher <maxb ukf.net>]
+
+  *) Overhaul support for LDAP URL parsing. Instead of using incompatible
+     URL parsers and memory that needs freeing, apr-util provides a parser
+     which parses the URL and allocates memory from a pool. [Graham Leggett]
+
+  *) Remove support for LDAP v2.0 SDK toolkits. This will be added
+     back properly later assuming there is demand for it. In the mean
+     time, please use an LDAP v3.0 SDK toolkit. [Graham Leggett]
+
+  *) Add an apr_ldap_err_t structure to handle the return of LDAP
+     specific error codes. [Graham Leggett, Brad Nicholes]
+
+  *) Add APR functions to do the job of ldap_init(), hiding toolkit
+     specific SSL/TLS handling. Code derived from httpd util_ldap.
+     [Graham Leggett]
+
+  *) Add an RPM spec file derived from Fedora Core.
+     [Graham Leggett, Joe Orton]
+
+  *) The whole codebase was relicensed and is now available under
+     the Apache License, Version 2.0 (http://www.apache.org/licenses).
+     [Apache Software Foundation]
+
+  *) A new function, apr_reslist_invalidate, was added so that invalid
+     resources can be removed from a reslist instead of being returned
+     to the reslist in a broken state.  [Nick Kew <nick webthing.com>]
+
+  *) Switch to a single, top-level make. [Greg Stein]
+
+  *) Add timeout feature to apr_reslist_acquire().  
+     [Mladen Turk <mturk apache.org>]
+
+  *) Pass error codes returned from constructors all the way back to
+     the reslist consumer. Also fix a minor reslist memory leak that could
+     happen when a constructor returns an error code.  PR 23492.
+     [Snke Tesch <st@kino-fahrplan.de>, Aaron Bannert]
+
+  *) The following header files have been removed:
+
+     apu_compat.h
+
+Changes with APR-util 0.9.5
+
+  *) Fix corrupt output from the apr_xlate_* interfaces on AIX 4.x.
+     [Joe Orton]
+
+  *) Change the order in which ldap.h and lber.h are defined, to fix
+     a compile bug in Solaris v2.8 which requires lber.h then ldap.h.
+     PR 27379.  [Andrew Connors <andy.connors idea.com>]
+ 
+  *) Restore support for SHA1 passwords in apr_validate_password.
+     PR 17343.  [Paul Querna <chip force-elite.com>]
+
+  *) Fix DESTDIR install for bundled expat library.  PR 14076
+     [David S. Madole <david madole.net>]
+
+  *) Fix occasional crash in apr_rmm_realloc().  PR 22915.
+     [Jay Shrauner <shrauner inktomi.com>]
+
+  *) Fix apr_dbm_exists() for sdbm when sizeof(int) != sizeof(size_t). 
+     [Joe Orton]
+
+  *) The whole codebase was relicensed and is now available under
+     the Apache License, Version 2.0 (http://www.apache.org/licenses).
+     [Apache Software Foundation]
+
+  *) Fix xlate.c compile failure on AIX 5.2.  PR 25701.  [Jeff Trawick]
+
+  *) Fixed a bug in apr_rmm that would cause it to mishandle blocks of
+     a size close to the one requested from the allocator.
+     [Kevin Wang <xwang_tech yahoo.com>]
+
+Changes with APR-util 0.9.4
+
+  *) Changed apr_bucket_alloc_create() so that it uses the allocator
+     from the pool that was passed in rather than creating its own.
+     Also, the bucket_allocator is now allocated from the apr_allocator_t
+     rather than using apr_palloc().  Added apr_bucket_alloc_create_ex()
+     which takes an apr_allocator_t* directly rather than an apr_pool_t*.
+     [Cliff Woolley, Jean-Jacques Clar]
+
+  *) Added debugging consistency checks to the buckets code.  Add
+     -DAPR_BUCKET_DEBUG to the build flags to enable.
+     [Cliff Woolley]
+
+  *) Make the version of the db library APU built against visible.
+     [Thom May]
+
+  *) Fix a problem with VPATH builds copying the APR rules.mk into the
+     source directory rather than the build directory.  [Justin Erenkrantz]
+
+  *) SECURITY [httpd incident CAN-2003-0189] Address a thread safety
+     issue with apr_password_validate() on AIX, Linux, Mac OS X, and
+     possibly other platforms.  [Jeff Trawick, Justin Erenkrantz]
+
+  *) Fix a problem with LDAP configuration which caused subsequent
+     configure tests to fail since LIBS contained LDAP libraries for
+     subsequent tests but LDFLAGS no longer included the path to such 
+     LDAP libraries.  [Jeff Trawick]
+
+  *) Fix a problem preventing the use of the bundled Expat when APR-util
+     is built stand-alone.  [Jeff Trawick]
+
+  *) Use the same compiler and preprocessor for the APR-util config tests
+     which were used by APR.  The user can override this via CC and CPP.
+     This was done all along for the actual build, but not necessarily
+     for the config tests.  [Jeff Trawick]
+
+  *) Fix apr_uuid_parse() on EBCDIC machines.  [Jeff Trawick]
+
+  *) Fix alignment problem when allocating memory using apr_rmm. The problem
+     showed up while trying to write a double in the memory allocated.
+     [Madhusudan Mathihalli]
+
+Changes with APR-util 0.9.3
+
+  *) Allow apr_date_parse_rfc to parse 'Sun, 06-Nov-1994 08:49:37 GMT' as a
+     valid date.  [Dmitri Tikhonov <dmitri@netilla.com>]
+
+  *) Fix error in apu-config when symlinks are involved.
+     [Garrett Rooney <rooneg@electricjellyfish.net>]
+
+Changes with APR-util 0.9.2
+
+  *) Fix the APR_BUCKET_IS_foo() macros so they parenthesize their parameter.
+     This fixes compile problems with some types of parameters.
+     [Jim Carlson <jcarlson@jnous.com>]
+
+  *) Queue overwrite, we now return the item pushed, not a reference to it. 
+     [Paul Marquis <PMarquis@pobox.com, Jacob Lewallen <jlwalle@cs.ucr.edu>]
+
+  *) Remove include/apr_ldap.h on distclean.  PR 15592.  [Justin Erenkrantz]
+
+  *) Fix race conditions in apr_queue.
+     [Jacob Lewallen <jlwalle@cs.ucr.edu>]
+
+  *) Stop buildconf copying rules.mk, copy it at configure time. 
+     [Thom May]
+
+  *) Make buildconf copy rules.mk as well. 
+     [Garrett Rooney <rooneg@electricjellyfish.net>]
+
+  *) Add --includedir flag to apu-config.  [Justin Erenkrantz]
+
+  *) Fix brokenness in sdbm when sizeof(int) != sizeof(size_t)
+     (e.g., 64-bit AIX, 64-bit Solaris).  PR 14861.  [Jeff Trawick]
+
+  *) Have buildconf copy required files from apr so that apr-util can build
+     on its own.  [Craig Rodrigues <rodrigc@attbi.com>]
+
+  *) Detect OpenLDAP when used with Solaris 9. PR 13427.
+     [Gary Algier <gaa@ulticom.com>]
+
+  *) Detect Berkeley DB 4.1 when compiled with --with-uniquenames
+     [Thom May]
+
+  *) Allow apu-config to work in symlinked install directories when
+     'realpath' is available.  [Justin Erenkrantz]
+
+  *) Fix bug in apr_strmatch when used with case-insensitive patterns.
+     [Justin Erenkrantz]
+
+  *) Allow apr_queue to have greater than int number of elements.
+     [Justin Erenkrantz]
+
+  *) Detect Berkeley DB 4.0 compiled with --with-uniquenames.
+     [Philip Martin <philip@codematters.co.uk>]
+
+  *) Allocate brigades from a bucket allocator rather than a pool. [Brian Pane]
+
+  *) Update with the latest APR renames [Thom May]
+
+  *) Update doxygen tags.  [Justin Erenkrantz]
+
+  *) Add apr_ldap.hw for Windows build.
+     [Andre Schild <A.Schild@aarboard.ch>]
+
+  *) Add IPv6 literal address support to apr_uri_parse(), apr_uri_unparse(), 
+     and apr_uri_parse_hostinfo().  PR 11887  [Jeff Trawick]
+
+  *) Add apr_brigade_writev()  [Brian Pane]
+
+  *) Add support for Berkeley DB 4.1.  [Justin Erenkrantz]
+
+  *) Add --bindir option to apu-config.  [Justin Erenkrantz]
+
+Changes with APR-util 0.9.1
+
+  *) Add versioning infrastructure.
+     [Justin Erenkrantz]
+
+  *) Running "make check" in the toplevel directory or the test/ directory
+     will build and run all test programs.  [Aaron Bannert]
+
+  *) Bug #9789 : NDBM support 
+     [Toomas Soome <tsoome@muhv.pri.ee>, Ian Holsman]
+
+  *) Added a Thread safe FIFO bounded buffer (apr_queue) [Ian Holsman]
+
+  *) Changed file_bucket_setaside() to use apr_file_setaside() instead
+     of turning the file bucket into an mmap bucket.  [Brian Pane]
+
+  *) Install libaprutil support libraries before installing libaprutil
+     itself, since on some platforms libaprutil is relinked during
+     make install and the support libraries need to exist already.
+     [Jeff Trawick]
+
+  *) Added a Resource List API for threadsafe access to persistent
+     and dynamically created user-defined resources.  [Aaron Bannert]
+
+  *) Adopted apr-util/xlate from apr/i18n for inclusion of apr-iconv
+     as required by missing libiconv.  [William Rowe]
+
+  *) Adopted apr-util/crypto/ uuid and md5 from apr.  [William Rowe]
+
+  *) Look for expat in lib64 directories.  [Peter Poeml <poeml@suse.de>]
+
+  *) Faster implementation of apr_brigade_puts()  [Brian Pane]
+
+  *) Fixed a segfault in apr_date_parse_rfc() for some date formats
+     where it was trying to overlay a potentially static input
+     string even though it didn't really need to.
+     [Cliff Woolley, Doug MacEachern]
+
+  *) Ensure that apu-config does not print libtool libraries when
+     using --libs.  [Justin Erenkrantz]
+
+  *) Added apr_bucket_file_enable_mmap() function to the bucket
+     API to let an application control whether a file bucket may
+     be turned into an mmap bucket upon read.  (The default remains
+     to do the mmap, but this function lets the app prevent the
+     mmap in contexts where mmap would be a bad idea.  Examples
+     include multiprocessors where mmap doesn't scale well and
+     NFS-mounted filesystems where a bus error can result if
+     a memory-mapped file is removed or truncated.) [Brian Pane]
+
+  *) Added string-matching API (apr_strmatch.h)  [Brian Pane]
+
+  *) Rearrange INCLUDES so that APRUTIL_PRIV_INCLUDES is always
+     first.  [Garrett Rooney <rooneg@electricjellyfish.net>]
+
+  *) Add --old-expat option to apu-config to allow users of apr-util to
+     determine what expat it should expect to be installed.  If the
+     flag is set to yes, it should include xmlparse.h.  If it is set to
+     no, it should include expat.h.  [Justin Erenkrantz]
+
+  *) Fix exporting of includes in apu-config.  [Justin Erenkrantz]
+
+  *) Change bucket brigades API to allow a "bucket allocator" to be
+     passed in at certain points.  This allows us to implement freelists
+     so that we can stop using malloc/free so frequently.
+     [Cliff Woolley, Brian Pane]
+
+  *) add apr_rmm_realloc() function
+     [Madhusudan Mathihalli <madhusudan_mathihalli@hp.com>]
+
+  *) renames: apr_ansi_time_to_apr_time becomes apr_time_ansi_put
+     ap_exploded_time_t becomes apr_time_exp_t
+     [Thom May <thom@planetarytramp.net>]
+
+  *) Add detection support for FreeBSD's expat and expat2 ports.
+     [Justin Erenkrantz]
+
+  *) Deprecate check_brigade_flush(), which had several nasty bugs, and
+     which was causing apr_brigade_write()'s logic to be less than obvious.
+     Everything is now done in a slightly rearranged apr_brigade_write().
+     [Cliff Woolley]
+
+  *) Don't add /usr/include to the INCLUDES variable on expat's account.
+     [Joe Orton <joe@manyfish.co.uk>]
+
+  *) Remove the autoconf 2.5x cache directory in buildconf.
+     [Joe Orton <joe@manyfish.co.uk>]
+
+  *) BerkleyDB should NULL out the key if it is @EOF in vt_db_nextkey
+     [Ian Holsman]
+
+  *) Add ability to natively fetch and split brigades based on LF lines.
+     [Justin Erenkrantz]
+
+  *) add --with-berkeley-db=DIR & --with-gdbm  configure flags
+     [Ian Holsman/Justin Erenkrantz]
+
+  *) Fix expat detection to recognize installed versions.
+     [Eric Gillespie, Jr. <epg@pretzelnet.org>]
+
+  *) Add find_apu.m4 to allow third-party programs that use APR-util
+     to have a standard m4 macro for detection.  [Justin Erenkrantz]
+
+  *) Add apu-config - a shell script to allow third-party programs
+     easy access to APR configuration parameters.  [Justin Erenkrantz]
+
+  *) Add GMT offset calculation to apr_date_parse_rfc().  
+     [Justin Erenkrantz]
+
+  *) Introduce the apr_rmm api, to allow relocatable memory management
+     of address-independent data stores, such as shared memory.
+     [William Rowe]
+
+  *) Rework and fix VPATH-build support.  [Justin Erenkrantz]
+
+  *) Add support for Berkeley DB4.  [Justin Erenkrantz]
+
+  *) Improve testdbm help.  [Justin Erenkrantz]
+
+  *) Improve autoconf detection of DBMs.  [Justin Erenkrantz]
+
+  *) BerkeleyDBM v2 now checks minor level for cursor ops [Ian Holsman]
+
+  *) Reading a file bucket bigger than APR_MMAP_LIMIT (4MB) now yields
+     a string of 4MB mmap buckets, rather than a string of 8KB heap buckets
+     plus a 4MB mmap bucket.  To accomodate this, the mmap bucket destroy
+     function explicitly deletes the apr_mmap_t after last reference
+     to avoid having too much of a large file mapped at once if possible.
+     [Cliff Woolley]
+
+  *) Multi-DBM support (via apr_dbm_open_ex).  [Ian Holsman]
+
+  *) Use apr_mmap_dup in mmap_setaside().  [Brian Pane <bpane@pacbell.net>]
+
+  *) Dropped the "w" parameter from apr_bucket_heap_create() and
+     apr_bucket_heap_make().  That parameter was originally intended
+     to return the amount of data copied into the bucket, but it
+     ended up being unnecessary because that amount is invariant from
+     the size of the data and is available as b->length in the
+     resulting bucket anyway.  [Cliff Woolley]
+
+  *) Fix Makefile conversion for BSD/OS.  [Cliff Woolley]
+
+  *) Use APR_XtOffsetOf instead of offsetof() in the ring macros for
+     portability.  [Cliff Woolley]
+
+  *) We now create exports.c and export_vars.h, which in turn create
+     exports.c.  From this we generate two more files with different
+     purposes: aprutil.exp - list of exported symbols; and exports.lo
+     (exports.o) - an object file that can be linked with an executable
+     to force resolution of all apr-util symbols.   [Aaron Bannert]
+
+  *) Fix Berkley DBM support [Ian Holsman <ianh@apache.org>]
+
+  *) Fix apr_brigade_vprintf so that it can handle more than
+     4k of data at one time.  [Cody Sherr <csherr@covalent.net>]
+
+  *) prefix UNP_* flags with APR_URI_
+
+     rename:
+     apr_uri_components                  -> apr_uri_t
+     apr_uri_unparse_components          -> apr_uri_unparse
+     apr_uri_parse_components            -> apr_uri_parse
+     apr_uri_parse_hostinfo_components   -> apr_uri_parse_hostinfo
+
+     s/APU_URI_/APR_URI_/g
+     [Perl]
+
+  *) Landed the link-to-LDAP to the build process, and the LDAP v2/v3
+     compatibility functions.
+     [Dave Carrigan <dave@rudedog.org>, Graham Leggett]
+
+  *) Fix URI unparse function to handle the case where it would place a @
+     when both the username and password were present but omitted.
+     [Jon Travis <jtravis@covalent.net]
+
+  *) Added apr_xml_parse_file() routine and a testxml program.
+     [Ian Holsman <ianh@cnet.com>]
+
+  *) Extend apr_bucket struct to add a pointer to a function used
+     to free the bucket. This change enables custom buckets to
+     completely specify how they are to be allocated and freed.
+     Before this change, custom buckets were required to use the 
+     same memory allocation scheme as the standard APR buckets.
+     [Saeid Sakhitab, Bill Stoddard, Cliff Woolley, Roy Fielding]
+
+  *) Install Expat when installing APR-util.  [Justin Erenkrantz]
+
+  *) Make APR-util configure script rely on APR.  This removes the locally
+     generated copy of libtool and uses the one in APR.  Fix up how we
+     call the expat configure script.  Generate config.nice file.
+     [Justin Erenkrantz]
+
+  *) The apr_bucket lengths are now consistently apr_size_t, while any
+     apr_brigade lengths (short of a read) are consistently apr_off_t.
+     This is required for APR_HAS_LARGE_FILES handling.  [William Rowe]
+
+  *) apr_bucket_file_create() and apr_bucket_file_make() now take a pool
+     parameter which is the pool into which any needed data structures
+     should be created during file_read().  This is used for MMAPing the
+     file and reopening the file if the original apr_file_t is in XTHREAD
+     mode.  [Cliff Woolley]
+
+  *) apr_brigade_partition() now returns an apr_status_t. [Cliff Woolley]
+
+  *) Add MD4 implementation in crypto.  [Sander Striker, Justin Erenkrantz]
+
+  *) Moved httpd 2.0.18's util_date to apr_date and enhanced its parsing
+     capabilities.  [Justin Erenkrantz]
+
+  *) Moved httpd 2.0.18's util_uri to apr_uri and name-protected its
+     symbols and functions.  [Justin Erenkrantz, Roy Fielding]
+
+  *) Rename field "private" in struct apr_xml_elem to "priv" for C++
+     compatibility.  PR #7727  [Joshua MacDonald <jmacd@cs.berkeley.edu>]
+
+  *) Make APR_IMPLEMENT_EXTERNAL_HOOK_BASE generate a 
+     ${namespace}_hook_get_${hookname} function to fetch the
+     list of registered hooks [Doug MacEachern]
+
+  *) Allow LTFLAGS to be overridden by the configure command-line
+     (default="--silent") and introduce LT_LDFLAGS.  [Roy Fielding]
+
+  *) Add APR_SHARELOCK support to apr_sdbm_open(), locking read operations
+     with a shared lock and all write ops with an excl lock.  [Will Rowe]
+
+  *) Namespace protect apr_sdbm, and normalize the return values (including
+     the apr_sdbm_fetch, apr_sdbm_firstkey and apr_sdbm_nextkey functions).
+     Normalized the get/clear error function names, and stores the actual 
+     apr error for apr_sdbm_error_get. [Will Rowe]
+
+  *) Introduce an apr_fileperms_t argument to apr_dbm_open(). [Will Rowe]
+
+  *) Removed apr_bucket_do_create() macro, which was causing warnings
+     about unreachable code in some compilers (notably MSVC).  What
+     used to be done by this macro is now done inline in the various
+     apr_bucket_foo_create() functions.  [Cliff Woolley]
+
+  *) Make clean, distclean, and extraclean consistently according to the
+     Gnu makefile guidelines.  [Justin Erenkrantz <jerenkrantz@ebuilt.com>]
+
+  *) Migrate the --disable-libtool changes from APR to APR-util.
+     This cleans things up, and allows more flexibility when building
+     programs.  [Ryan Bloom]
+
+  *) Allow APR-util to be compiled without libtool.  The default is
+     to use libtool, but it can turned off with --disable-libtool
+     on the configure command.  [Ryan Bloom]
+
+  *) Repair calling convention for apr_register_optional_fn to
+     eliminate GP fault on Win32.  [William Rowe]
+
+  *) Substantial changes to correct linkage and declarations for
+     generic hooks on dso architectures.  [Ben Laurie, Will Rowe]
+
+  *) apr_bucket_shared_destroy() now returns a boolean value.
+     [Cliff Woolley]
+
+  *) We have to initialize the heap buckets to the correct length.
+     we were seeing heap buckets with 17 chars in them reporting
+     a length of 9017, because they were initialized to the amount
+     of memory allocated, instead of the amount of memory used.
+     This was only an issue for heap buckets created by the
+     apr_brigade_* functions.   [Ryan Bloom]
+
+  *) apr_bucket_init_types() and apr_bucket_insert_type() have been
+     removed... they're not needed anymore. [Cliff Woolley]
+
+  *) The apr_bucket_shared and apr_bucket_simple structures have been
+     removed as an API simplification/optimization.  This should be
+     transparent outside APR-util except to callers who attempt to
+     directly manipulate the buckets' internal structure (which is
+     not recommended anyway) and to callers who create their own
+     bucket types. [Cliff Woolley]
+
+  *) apr_bucket_simple_split() and apr_bucket_simple_copy() are now
+     exported functions, which could be helpful in implementing
+     external bucket types. [Cliff Woolley]
+
+  *) The third parameter to apr_bucket_shared_make() is now
+     'apr_off_t length' rather than 'apr_off_t end', since the
+     end usually had to be computed by the caller and all we
+     really want is the length anyway. [Cliff Woolley]
+
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..2813d26
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,404 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+
+
+APACHE PORTABLE RUNTIME SUBCOMPONENTS: 
+
+The Apache Portable Runtime includes a number of subcomponents with
+separate copyright notices and license terms. Your use of the source
+code for the these subcomponents is subject to the terms and
+conditions of the following licenses. 
+
+For the include\apr_md5.h component: 
+/*
+ * This is work is derived from material Copyright RSA Data Security, Inc.
+ *
+ * The RSA copyright statement and Licence for that original material is
+ * included below. This is followed by the Apache copyright statement and
+ * licence for the modifications made to that material.
+ */
+
+/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
+   rights reserved.
+
+   License to copy and use this software is granted provided that it
+   is identified as the "RSA Data Security, Inc. MD5 Message-Digest
+   Algorithm" in all material mentioning or referencing this software
+   or this function.
+
+   License is also granted to make and use derivative works provided
+   that such works are identified as "derived from the RSA Data
+   Security, Inc. MD5 Message-Digest Algorithm" in all material
+   mentioning or referencing the derived work.
+
+   RSA Data Security, Inc. makes no representations concerning either
+   the merchantability of this software or the suitability of this
+   software for any particular purpose. It is provided "as is"
+   without express or implied warranty of any kind.
+
+   These notices must be retained in any copies of any part of this
+   documentation and/or software.
+ */
+
+For the passwd\apr_md5.c component:
+
+/*
+ * This is work is derived from material Copyright RSA Data Security, Inc.
+ *
+ * The RSA copyright statement and Licence for that original material is
+ * included below. This is followed by the Apache copyright statement and
+ * licence for the modifications made to that material.
+ */
+
+/* MD5C.C - RSA Data Security, Inc., MD5 message-digest algorithm
+ */
+
+/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
+   rights reserved.
+
+   License to copy and use this software is granted provided that it
+   is identified as the "RSA Data Security, Inc. MD5 Message-Digest
+   Algorithm" in all material mentioning or referencing this software
+   or this function.
+
+   License is also granted to make and use derivative works provided
+   that such works are identified as "derived from the RSA Data
+   Security, Inc. MD5 Message-Digest Algorithm" in all material
+   mentioning or referencing the derived work.
+
+   RSA Data Security, Inc. makes no representations concerning either
+   the merchantability of this software or the suitability of this
+   software for any particular purpose. It is provided "as is"
+   without express or implied warranty of any kind.
+
+   These notices must be retained in any copies of any part of this
+   documentation and/or software.
+ */
+/*
+ * The apr_md5_encode() routine uses much code obtained from the FreeBSD 3.0
+ * MD5 crypt() function, which is licenced as follows:
+ * ----------------------------------------------------------------------------
+ * "THE BEER-WARE LICENSE" (Revision 42):
+ * <phk@login.dknet.dk> wrote this file.  As long as you retain this notice you
+ * can do whatever you want with this stuff. If we meet some day, and you think
+ * this stuff is worth it, you can buy me a beer in return.  Poul-Henning Kamp
+ * ----------------------------------------------------------------------------
+ */
+
+For the crypto\apr_md4.c component:
+
+ * This is derived from material copyright RSA Data Security, Inc.
+ * Their notice is reproduced below in its entirety.
+ *
+ * Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
+ * rights reserved.
+ *
+ * License to copy and use this software is granted provided that it
+ * is identified as the "RSA Data Security, Inc. MD4 Message-Digest
+ * Algorithm" in all material mentioning or referencing this software
+ * or this function.
+ *
+ * License is also granted to make and use derivative works provided
+ * that such works are identified as "derived from the RSA Data
+ * Security, Inc. MD4 Message-Digest Algorithm" in all material
+ * mentioning or referencing the derived work.
+ *
+ * RSA Data Security, Inc. makes no representations concerning either
+ * the merchantability of this software or the suitability of this
+ * software for any particular purpose. It is provided "as is"
+ * without express or implied warranty of any kind.
+ *
+ * These notices must be retained in any copies of any part of this
+ * documentation and/or software.
+ */
+
+For the include\apr_md4.h component:
+
+ *
+ * This is derived from material copyright RSA Data Security, Inc.
+ * Their notice is reproduced below in its entirety.
+ *
+ * Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
+ * rights reserved.
+ *
+ * License to copy and use this software is granted provided that it
+ * is identified as the "RSA Data Security, Inc. MD4 Message-Digest
+ * Algorithm" in all material mentioning or referencing this software
+ * or this function.
+ *
+ * License is also granted to make and use derivative works provided
+ * that such works are identified as "derived from the RSA Data
+ * Security, Inc. MD4 Message-Digest Algorithm" in all material
+ * mentioning or referencing the derived work.
+ *
+ * RSA Data Security, Inc. makes no representations concerning either
+ * the merchantability of this software or the suitability of this
+ * software for any particular purpose. It is provided "as is"
+ * without express or implied warranty of any kind.
+ *
+ * These notices must be retained in any copies of any part of this
+ * documentation and/or software.
+ */
+
+For the test\testmd4.c component:
+
+ *
+ * This is derived from material copyright RSA Data Security, Inc.
+ * Their notice is reproduced below in its entirety.
+ *
+ * Copyright (C) 1990-2, RSA Data Security, Inc. Created 1990. All
+ * rights reserved.
+ *
+ * RSA Data Security, Inc. makes no representations concerning either
+ * the merchantability of this software or the suitability of this
+ * software for any particular purpose. It is provided "as is"
+ * without express or implied warranty of any kind.
+ *
+ * These notices must be retained in any copies of any part of this
+ * documentation and/or software.
+ */
+
+For the xml\expat\conftools\install-sh component:
+
+#
+# install - install a program, script, or datafile
+# This comes from X11R5 (mit/util/scripts/install.sh).
+#
+# Copyright 1991 by the Massachusetts Institute of Technology
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of M.I.T. not be used in advertising or
+# publicity pertaining to distribution of the software without specific,
+# written prior permission.  M.I.T. makes no representations about the
+# suitability of this software for any purpose.  It is provided "as is"
+# without express or implied warranty.
+#
+
+For the expat xml parser component:
+
+Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
+                               and Clark Cooper
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+	
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+	
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+====================================================================
diff --git a/Makefile.in b/Makefile.in
new file mode 100644
index 0000000..c33574e
--- /dev/null
+++ b/Makefile.in
@@ -0,0 +1,91 @@
+#
+# Top-level Makefile for APRUTIL
+#
+CPP = @CPP@
+
+# gets substituted into some targets
+APRUTIL_MAJOR_VERSION=@APRUTIL_MAJOR_VERSION@
+APRUTIL_DOTTED_VERSION=@APRUTIL_DOTTED_VERSION@
+
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+INCLUDES = @APRUTIL_PRIV_INCLUDES@ @APR_INCLUDES@ @APRUTIL_INCLUDES@
+APRUTIL_LDFLAGS = @APRUTIL_LDFLAGS@
+APRUTIL_LIBS = @APRUTIL_LIBS@
+
+TARGET_LIB = lib@APRUTIL_LIBNAME@.la
+INSTALL_SUBDIRS = @APR_ICONV_DIR@ @APR_XML_DIR@
+EXTRA_SOURCE_DIRS = @APR_ICONV_DIR@ @APR_XML_DIR@
+APRUTIL_PCFILE = apr-util-$(APRUTIL_MAJOR_VERSION).pc
+APU_CONFIG = apu-$(APRUTIL_MAJOR_VERSION)-config
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+
+TARGETS = $(TARGET_LIB) aprutil.exp
+
+# bring in rules.mk for standard functionality
+@INCLUDE_RULES@
+@INCLUDE_OUTPUTS@
+
+CLEAN_SUBDIRS = test @APR_ICONV_DIR@
+
+CLEAN_TARGETS = exports.c export_vars.c aprutil.exp .make.dirs apu-config.out
+DISTCLEAN_TARGETS = config.cache config.log config.status libtool \
+	include/private/apu_config.h include/private/apu_private.h \
+	include/private/apu_select_dbm.h include/apr_ldap.h include/apu.h \
+	export_vars.sh $(APU_CONFIG) build/rules.mk include/apu_want.h \
+	apr-util.pc build/pkg/pkginfo
+EXTRACLEAN_TARGETS = configure aclocal.m4 include/private/apu_config.h.in \
+	exports.c build-outputs.mk \
+	build/apr_common.m4 build/find_apr.m4 build/install.sh \
+	build/config.guess build/config.sub
+
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+bindir=@bindir@
+libdir=@libdir@
+includedir=@includedir@
+top_srcdir=@abs_srcdir@
+top_blddir=@abs_builddir@
+
+# Create apu-config script suitable for the install tree
+apu-config.out: $(APU_CONFIG)
+	sed 's,^\(location=\).*$$,\1installed,' < $(APU_CONFIG) > $@
+
+install: $(TARGET_LIB) apu-config.out
+	$(APR_MKDIR) $(DESTDIR)$(includedir) $(DESTDIR)$(libdir)/pkgconfig \
+		     $(DESTDIR)$(libdir) $(DESTDIR)$(bindir)
+	for f in $(top_srcdir)/include/*.h $(top_blddir)/include/*.h; do \
+		$(INSTALL_DATA) $${f} $(DESTDIR)$(includedir); \
+	done
+	$(INSTALL_DATA) apr-util.pc $(DESTDIR)$(libdir)/pkgconfig/$(APRUTIL_PCFILE)
+	list='$(INSTALL_SUBDIRS)'; for i in $$list; do \
+		( cd $$i ; $(MAKE) DESTDIR=$(DESTDIR) install ); \
+	done
+	$(LIBTOOL) --mode=install $(INSTALL) -m 755 $(TARGET_LIB) $(DESTDIR)$(libdir)
+	$(INSTALL_DATA) aprutil.exp $(DESTDIR)$(libdir)
+	$(INSTALL) -m 755 apu-config.out $(DESTDIR)$(bindir)/$(APU_CONFIG)
+
+$(TARGET_LIB): $(OBJECTS)
+	$(LINK) @lib_target@ $(ALL_LIBS) $(APRUTIL_LDFLAGS) $(APRUTIL_LIBS)
+
+exports.c: $(HEADERS)
+	$(APR_MKEXPORT) $(HEADERS) > $@
+
+export_vars.c: $(HEADERS)
+	$(APR_MKVAREXPORT) $(HEADERS) > $@
+
+aprutil.exp: exports.c export_vars.c
+	@echo "#! lib@APRUTIL_LIBNAME@.so" > $@
+	@echo "* This file was AUTOGENERATED at build time." >> $@
+	@echo "* Please do not edit by hand." >> $@
+	$(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) exports.c | grep "ap_hack_" | sed -e 's/^.*[)]\(.*\);$$/\1/' >> $@
+	$(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) export_vars.c | sed -e 's/^\#[^!]*//' | sed -e '/^$$/d' >> $@
+
+dox:
+	doxygen $(top_srcdir)/docs/doxygen.conf
+
+test: check
+check: $(TARGET_LIB)
+	cd test && $(MAKE) check
diff --git a/Makefile.win b/Makefile.win
new file mode 100644
index 0000000..ba2c55a
--- /dev/null
+++ b/Makefile.win
@@ -0,0 +1,278 @@
+# Makefile.win for Win32 APR + APR-iconv + APR-util
+#
+# Targets are:
+#
+#     buildall - compile everything
+#     checkall - run APR + APR-util regression tests
+#     install  - compile everything
+#     clean    - mop up everything
+#
+# You can override the build mechansim, choose only one;
+#
+#     USEMAK=1 - compile from exported make files
+#     USEDSW=1 - compile from .dsw / .dsp VC6 projects
+#     USESLN=1 - compile from converted .sln / .vcproj VC7+ files
+#
+# Define ARCH to your desired preference (your PATH must point
+# to the correct compiler tools!)  Choose only one;
+#
+#     ARCH="Win32 Release"
+#     ARCH="Win32 Debug"
+#     ARCH="Win32 ReleaseNT"
+#     ARCH="Win32 DebugNT"
+#     ARCH="x64 Release"
+#     ARCH="x64 Debug"
+#
+# Provide the APR_PATH, API_PATH and APU_PATH entirely relative 
+# to one another!  At this time, building the libraries themselves
+# is only expected to work if the defaults (../apr, ../apr-iconv 
+# and ../apr-util) are used, or if they are built with USEMAK=1.
+#
+#     APR_PATH=..\apr-1.2.12
+#     API_PATH=..\apr-iconv-1.2.1
+#     APU_PATH=..\apr-util-1.2.12
+#
+# For example;
+#
+#   nmake -f Makefile.win PREFIX=C:\APR buildall checkall installall clean
+#
+
+!IF EXIST("aprutil.sln") && ([devenv /help > NUL 2>&1] == 0) \
+    && !defined(USEMAK) && !defined(USEDSW)
+USESLN=1
+USEMAK=0
+USEDSW=0
+!ELSEIF EXIST("aprutil.mak") && !defined(USEDSW)
+USESLN=0
+USEMAK=1
+USEDSW=0
+!ELSE
+USESLN=0
+USEMAK=0
+USEDSW=1
+!ENDIF
+
+PREFIX=..\apr-dist
+
+!IF [$(COMSPEC) /c cl /nologo /? | find "x64" >NUL ] == 0
+ARCH=x64 Release
+!ELSE
+ARCH=Win32 Release
+!ENDIF
+
+APR_PATH=..\apr
+API_PATH=..\apr-iconv
+APU_PATH=..\apr-util
+
+!MESSAGE ARCH        = $(ARCH)
+!MESSAGE APR_PATH    = $(APR_PATH)
+!MESSAGE API_PATH    = $(API_PATH)  (apr-iconv)
+!MESSAGE APU_PATH    = $(APU_PATH)  (apr-util)
+!MESSAGE PREFIX      = $(PREFIX)  (install path)
+
+
+# Utility and Translation things, nothing here for the user
+#
+!IF "$(ARCH)" == "Win32 Release"
+SLNARCH=Release|Win32
+ARCHPATH=Release
+LIBSPATH=LibR
+ARCHOSPATH=Release
+LIBSOSPATH=LibR
+!ELSEIF "$(ARCH)" == "Win32 Debug"
+SLNARCH=Debug|Win32
+ARCHPATH=Debug
+LIBSPATH=LibD
+ARCHOSPATH=Debug
+LIBSOSPATH=LibD
+!ELSEIF "$(ARCH)" == "Win32 ReleaseNT"
+SLNARCH=ReleaseNT|Win32
+ARCHPATH=Release
+LIBSPATH=LibR
+ARCHOSPATH=NT\Release
+LIBSOSPATH=NT\LibR
+!ELSEIF "$(ARCH)" == "Win32 DebugNT"
+SLNARCH=DebugNT|Win32
+ARCHPATH=Debug
+LIBSPATH=LibD
+ARCHOSPATH=NT\Debug
+LIBSOSPATH=NT\LibD
+!ELSEIF "$(ARCH)" == "x64 Release"
+SLNARCH=Release|x64
+ARCHPATH=x64\Release
+LIBSPATH=x64\LibR
+ARCHOSPATH=x64\Release
+LIBSOSPATH=x64\LibR
+!ELSEIF "$(ARCH)" == "x64 Debug"
+SLNARCH=Debug|x64
+ARCHPATH=x64\Debug
+LIBSPATH=x64\LibD
+ARCHOSPATH=x64\Debug
+LIBSOSPATH=x64\LibD
+!ENDIF
+
+!IFNDEF MAKEOPT
+# Only default the behavior if MAKEOPT= is omitted
+!IFDEF _NMAKE_VER
+# Microsoft NMake options
+MAKEOPT=-nologo
+!ELSEIF "$(MAKE)" == "make"
+# Borland make options?  Not really supported (yet)
+MAKEOPT=-s -N
+!ENDIF
+!ENDIF
+
+
+# Sanity Checks
+#
+!IF !EXIST("$(APR_PATH)\apr.dsp") || !EXIST("$(API_PATH)\apriconv.dsp") \
+ || !EXIST("$(APU_PATH)\aprutil.dsp")
+!MESSAGE Please check out or download and unpack the Apache Portability Runtime
+!MESSAGE sources (apr, apr-iconv and apr-util) under a single parent dir,
+!MESSAGE or provide APR_PATH, API_PATH and APU_PATH (all relative to each other,
+!MESSAGE or all absolute paths).
+!MESSAGE Apache cannot build without these libraries!
+!MESSAGE 
+!ERROR Need apr and apr-iconv alongside apr-util to build!
+!ENDIF
+
+
+all: buildall checkall
+
+# To help win32 pick up the locations where they don't fall in the usual
+# path locations.  This may not be completely effective for USESLN/USEDSP
+# oriented builds, just yet
+#
+LIB=$(APR_PATH)\$(ARCHOSPATH);$(APR_PATH)\$(LIBSOSPATH);$(API_PATH)\$(ARCHPATH);$(API_PATH)\$(LIBSPATH);$(APU_PATH)\$(ARCHPATH);$(APU_PATH)\$(LIBSPATH);$(LIB)
+INCLUDE=$(APR_PATH)\include;$(API_PATH)\include;$(INCLUDE)
+
+!IF $(USEMAK) == 1
+
+clean:
+	$(MAKE) $(MAKEOPT) -f Makefile.win ARCH="$(ARCH)" \
+		CTARGET=CLEAN buildall
+
+buildall:
+	cd $(APR_PATH)
+	 $(MAKE) $(MAKEOPT) -f apr.mak         CFG="apr - $(ARCH)" RECURSE=0 $(CTARGET)
+	 $(MAKE) $(MAKEOPT) -f libapr.mak      CFG="libapr - $(ARCH)" RECURSE=0 $(CTARGET)
+	 cd build
+	  $(MAKE) $(MAKEOPT) -f apr_app.mak     CFG="apr_app - $(ARCH)" RECURSE=0 $(CTARGET)
+	  $(MAKE) $(MAKEOPT) -f libapr_app.mak  CFG="libapr_app - $(ARCH)" RECURSE=0 $(CTARGET)
+	 cd ..
+	cd $(API_PATH)
+	 $(MAKE) $(MAKEOPT) -f apriconv.mak    CFG="apriconv - $(ARCH)" RECURSE=0 $(CTARGET)
+	 $(MAKE) $(MAKEOPT) -f libapriconv.mak CFG="libapriconv - $(ARCH)" RECURSE=0 $(CTARGET)
+!IF "$(CTARGET)" == "CLEAN"
+	 $(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
+		BUILD_MODE="$(ARCH)" BIND_MODE=shared API_SOURCE=.
+!ELSE
+	 cd ccs
+	  $(MAKE) $(MAKEOPT) -f Makefile.win all \
+		BUILD_MODE="$(ARCH)" BIND_MODE=shared
+	 cd ..\ces
+	  $(MAKE) $(MAKEOPT) -f Makefile.win all \
+		BUILD_MODE="$(ARCH)" BIND_MODE=shared
+	 cd ..
+!ENDIF
+	cd $(APU_PATH)\xml\expat\lib
+	 $(MAKE) $(MAKEOPT) -f xml.mak         CFG="xml - $(ARCH)" RECURSE=0 $(CTARGET)
+	cd ..\..\..
+	 $(MAKE) $(MAKEOPT) -f aprutil.mak     CFG="aprutil - $(ARCH)" RECURSE=0 $(CTARGET)
+	 $(MAKE) $(MAKEOPT) -f libaprutil.mak  CFG="libaprutil - $(ARCH)" RECURSE=0 $(CTARGET)
+
+!ELSEIF $(USESLN) == 1
+
+clean:
+	-devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project libaprutil
+	-devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project libapr_app
+	-devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project aprutil
+	-devenv aprutil.sln /useenv /clean "$(SLNARCH)" /project apr_app
+	cd $(API_PATH)
+	 $(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
+		BUILD_MODE="$(ARCH)" BIND_MODE=shared API_SOURCE=.
+	cd $(APU_PATH)
+
+buildall:
+	devenv aprutil.sln /useenv /build "$(SLNARCH)" /project apr_app
+	devenv aprutil.sln /useenv /build "$(SLNARCH)" /project aprutil
+	devenv aprutil.sln /useenv /build "$(SLNARCH)" /project libapr_app
+	devenv aprutil.sln /useenv /build "$(SLNARCH)" /project libaprutil
+
+!ELSE
+#	$(USEDSP) == 1
+
+clean:
+	-msdev aprutil.dsw /USEENV /MAKE "libaprutil - $(ARCH)" /CLEAN
+	-msdev aprutil.dsw /USEENV /MAKE "libapr_app - $(ARCH)" /CLEAN
+	-msdev aprutil.dsw /USEENV /MAKE "aprutil - $(ARCH)" /CLEAN
+	-msdev aprutil.dsw /USEENV /MAKE "apr_app - $(ARCH)" /CLEAN
+	cd $(API_PATH)
+	 $(MAKE) $(MAKEOPT) -f build\modules.mk.win clean \
+		BUILD_MODE="$(ARCH)" BIND_MODE=shared API_SOURCE=.
+	cd $(APU_PATH)
+
+buildall:
+	@msdev aprutil.dsw /USEENV /MAKE "apr_app - $(ARCH)"
+	@msdev aprutil.dsw /USEENV /MAKE "aprutil - $(ARCH)"
+	@msdev aprutil.dsw /USEENV /MAKE "libapr_app - $(ARCH)"
+	@msdev aprutil.dsw /USEENV /MAKE "libaprutil - $(ARCH)"
+
+!ENDIF
+
+
+checkapr:
+	cd $(APR_PATH)\test
+	 $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=static \
+		OUTDIR=$(LIBSOSPATH) check
+	 $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=dynamic \
+		OUTDIR=$(ARCHOSPATH) check
+	 cd ..
+	cd $(APU_PATH)
+
+checkapu:
+	cd $(APU_PATH)
+	cd test
+	 $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=static \
+		OUTDIR=$(LIBSPATH) APROUTDIR=$(LIBSOSPATH) \
+		APR_PATH=..\$(APR_PATH) API_PATH=..\$(API_PATH) check
+	 $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=dynamic \
+		OUTDIR=$(ARCHPATH) APROUTDIR=$(ARCHOSPATH) \
+		APR_PATH=..\$(APR_PATH) API_PATH=..\$(API_PATH) check
+	cd ..
+
+checkall: checkapr checkapu
+
+
+install:
+	echo Y >.y
+	echo A >.A
+	@if NOT EXIST "$(PREFIX)\." mkdir "$(PREFIX)"
+	@if NOT EXIST "$(PREFIX)\bin\." mkdir "$(PREFIX)\bin"
+	@if NOT EXIST "$(PREFIX)\bin\iconv\." mkdir "$(PREFIX)\bin\iconv"
+	@if NOT EXIST "$(PREFIX)\include\." mkdir "$(PREFIX)\include"
+	@if NOT EXIST "$(PREFIX)\lib\." mkdir "$(PREFIX)\lib"
+	copy CHANGES "$(PREFIX)\CHANGES.txt" <.y
+	copy LICENSE "$(PREFIX)\LICENSE.txt" <.y
+	copy NOTICE  "$(PREFIX)\NOTICE.txt"  <.y
+	xcopy $(APR_PATH)\include\*.h		"$(PREFIX)\include\" /d < .a
+	xcopy $(APU_PATH)\include\*.h		"$(PREFIX)\include\" /d < .a
+	copy $(APR_PATH)\$(LIBSOSPATH)\apr-1.lib	"$(PREFIX)\lib\" <.y
+	copy $(APR_PATH)\$(LIBSOSPATH)\apr-1.pdb	"$(PREFIX)\lib\" <.y
+	copy $(APU_PATH)\$(LIBSPATH)\aprutil-1.lib	"$(PREFIX)\lib\" <.y
+	copy $(APU_PATH)\$(LIBSPATH)\aprutil-1.pdb	"$(PREFIX)\lib\" <.y
+	copy $(APR_PATH)\$(ARCHOSPATH)\libapr-1.lib	"$(PREFIX)\lib\" <.y
+	copy $(APR_PATH)\$(ARCHOSPATH)\libapr-1.exp	"$(PREFIX)\lib\" <.y
+	copy $(APU_PATH)\$(ARCHPATH)\libaprutil-1.lib	"$(PREFIX)\lib\" <.y
+	copy $(APU_PATH)\$(ARCHPATH)\libaprutil-1.exp	"$(PREFIX)\lib\" <.y
+	copy $(APR_PATH)\$(ARCHOSPATH)\libapr-1.dll	"$(PREFIX)\bin\" <.y
+	copy $(APR_PATH)\$(ARCHOSPATH)\libapr-1.pdb	"$(PREFIX)\bin\" <.y
+	copy $(API_PATH)\$(ARCHPATH)\libapriconv-1.dll	"$(PREFIX)\bin\" <.y
+	copy $(API_PATH)\$(ARCHPATH)\libapriconv-1.pdb	"$(PREFIX)\bin\" <.y
+	copy $(APU_PATH)\$(ARCHPATH)\libaprutil-1.dll	"$(PREFIX)\bin\" <.y
+	copy $(APU_PATH)\$(ARCHPATH)\libaprutil-1.pdb	"$(PREFIX)\bin\" <.y
+	xcopy $(API_PATH)\$(ARCHPATH)\iconv\*.so  "$(PREFIX)\bin\iconv\" /d < .a
+	xcopy $(API_PATH)\$(ARCHPATH)\iconv\*.pdb "$(PREFIX)\bin\iconv\" /d < .a
+	del .y
+	del .a
+
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000..9ccc9d7
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,11 @@
+This product includes software developed by
+The Apache Software Foundation (http://www.apache.org/).
+
+Portions of this software were developed at the National Center
+for Supercomputing Applications (NCSA) at the University of
+Illinois at Urbana-Champaign.
+
+This software contains code derived from the RSA Data Security
+Inc. MD5 Message-Digest Algorithm, including various
+modifications by Spyglass Inc., Carnegie Mellon University, and
+Bell Communications Research, Inc (Bellcore).
diff --git a/NWGNUmakefile b/NWGNUmakefile
new file mode 100644
index 0000000..39c5738
--- /dev/null
+++ b/NWGNUmakefile
@@ -0,0 +1,297 @@
+#
+# Declare the sub-directories to be built here
+#
+
+SUBDIRS = \
+	ldap \
+	xml \
+	$(EOLIST) 
+
+ifdef WITH_APR_DBD
+SUBDIRS += \
+	dbd \
+	$(EOLIST) 
+endif
+
+#
+# Get the 'head' of the build environment.  This includes default targets and
+# paths to tools
+#
+
+include $(APR_WORK)\build\NWGNUhead.inc
+
+#
+# Make sure all needed macro's are defined
+#
+
+#
+# These directories will be at the beginning of the include list, followed by
+# INCDIRS
+#
+XINCDIRS	+= \
+			$(APR)/include \
+			$(APR)/include/arch/NetWare \
+			$(APRUTIL)/include \
+			$(APRUTIL)/uri \
+			$(APRUTIL)/dbm/sdbm \
+			$(APRUTIL)/include/private \
+			$(APRUTIL)/xml/expat/lib \
+			$(LDAPSDK)/inc \
+			$(EOLIST)
+
+#
+# These flags will come after CFLAGS
+#
+XCFLAGS		+= \
+			$(EOLIST)
+
+#
+# These defines will come after DEFINES
+#
+XDEFINES	+= \
+			$(EOLIST)
+
+#
+# These flags will be added to the link.opt file
+#
+XLFLAGS		+= \
+			$(EOLIST)
+
+#
+# These values will be appended to the correct variables based on the value of
+# RELEASE
+#
+ifeq "$(RELEASE)" "debug"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+ifeq "$(RELEASE)" "noopt"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+ifeq "$(RELEASE)" "release"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+#
+# These are used by the link target if an NLM is being generated
+# This is used by the link 'name' directive to name the nlm.  If left blank
+# TARGET_nlm (see below) will be used.
+#
+NLM_NAME		= 
+
+#
+# This is used by the link '-desc ' directive. 
+# If left blank, NLM_NAME will be used.
+#
+NLM_DESCRIPTION	= 
+
+#
+# This is used by the '-threadname' directive.  If left blank,
+# NLM_NAME Thread will be used.
+#
+NLM_THREAD_NAME	= 
+#
+# If this is specified, it will override VERSION value in 
+# $(APR_WORK)\build\NWGNUenvironment.inc
+#
+NLM_VERSION		=
+
+#
+# If this is specified, it will override the default of 64K
+#
+NLM_STACK_SIZE	= 
+
+#
+# If this is specified it will be used by the link '-entry' directive
+#
+NLM_ENTRY_SYM	= 
+
+#
+# If this is specified it will be used by the link '-exit' directive
+#
+NLM_EXIT_SYM	= 
+
+#
+# If this is specified it will be used by the link '-check' directive
+#
+NLM_CHECK_SYM	=
+
+#
+# If this is specified it will be used by the link '-flags' directive
+#
+NLM_FLAGS		=
+
+#
+# If this is specified it will be linked in with the XDCData option in the def 
+# file instead of the default of $(APR)/misc/netware/apache.xdc.  XDCData can 
+# be disabled by setting APACHE_UNIPROC in the environment
+#
+XDCDATA         = 
+
+#
+# Declare all target files (you must add your files here)
+#
+
+#
+# If there is an NLM target, put it here
+#
+TARGET_nlm = \
+	$(EOLIST)
+
+#
+# If there is an LIB target, put it here
+#
+TARGET_lib = \
+	$(OBJDIR)/aprutil.lib \
+	$(EOLIST)
+
+#
+# These are the OBJ files needed to create the NLM target above.
+# Paths must all use the '/' character
+#
+FILES_nlm_objs = \
+	$(EOLIST)
+
+#
+# These are the LIB files needed to create the NLM target above.
+# These will be added as a library command in the link.opt file.
+#
+FILES_nlm_libs = \
+	$(EOLIST)
+
+#
+# These are the modules that the above NLM target depends on to load.
+# These will be added as a module command in the link.opt file.
+#
+FILES_nlm_modules = \
+	$(EOLIST)
+
+#
+# If the nlm has a msg file, put it's path here
+#
+FILE_nlm_msg =
+ 
+#
+# If the nlm has a hlp file put it's path here
+#
+FILE_nlm_hlp =
+
+#
+# If this is specified, it will override $(NWOS)\copyright.txt.
+#
+FILE_nlm_copyright =
+
+#
+# Any additional imports go here
+#
+FILES_nlm_Ximports = \
+	$(EOLIST)
+ 
+#   
+# Any symbols exported to here
+#
+FILES_nlm_exports = \
+	$(EOLIST)
+	
+#   
+# These are the OBJ files needed to create the LIB target above.
+# Paths must all use the '/' character
+#
+FILES_lib_objs = \
+	$(OBJDIR)/apr_base64.o \
+	$(OBJDIR)/apr_brigade.o \
+	$(OBJDIR)/apr_buckets.o \
+	$(OBJDIR)/apr_buckets_alloc.o \
+	$(OBJDIR)/apr_buckets_eos.o \
+	$(OBJDIR)/apr_buckets_file.o \
+	$(OBJDIR)/apr_buckets_flush.o \
+	$(OBJDIR)/apr_buckets_heap.o \
+	$(OBJDIR)/apr_buckets_mmap.o \
+	$(OBJDIR)/apr_buckets_pipe.o \
+	$(OBJDIR)/apr_buckets_pool.o \
+	$(OBJDIR)/apr_buckets_refcount.o \
+	$(OBJDIR)/apr_buckets_simple.o \
+	$(OBJDIR)/apr_buckets_socket.o \
+	$(OBJDIR)/apr_date.o \
+	$(OBJDIR)/apr_dbm.o \
+	$(OBJDIR)/apr_dbd.o \
+	$(OBJDIR)/apr_dbm_berkeleydb.o \
+	$(OBJDIR)/apr_dbm_sdbm.o \
+	$(OBJDIR)/apr_hooks.o \
+	$(OBJDIR)/apr_md4.o \
+	$(OBJDIR)/apr_md5.o \
+	$(OBJDIR)/apr_queue.o \
+	$(OBJDIR)/apr_reslist.o \
+	$(OBJDIR)/apr_rmm.o \
+	$(OBJDIR)/apr_sha1.o \
+	$(OBJDIR)/apu_version.o \
+	$(OBJDIR)/getuuid.o \
+	$(OBJDIR)/uuid.o \
+	$(OBJDIR)/apr_strmatch.o \
+	$(OBJDIR)/apr_uri.o \
+	$(OBJDIR)/sdbm.o \
+	$(OBJDIR)/sdbm_hash.o \
+	$(OBJDIR)/sdbm_lock.o \
+	$(OBJDIR)/sdbm_pair.o \
+	$(OBJDIR)/xlate.o \
+	$(EOLIST)
+
+#
+# implement targets and dependancies (leave this section alone)
+#
+
+libs :: $(OBJDIR) $(TARGET_lib)
+
+nlms :: libs $(TARGET_nlm)
+
+#
+# Updated this target to create necessary directories and copy files to the 
+# correct place.  (See $(APR_WORK)\build\NWGNUhead.inc for examples)
+#
+install :: nlms FORCE
+
+#
+# Any specialized rules here
+#
+
+vpath %.c buckets:crypto:dbd:dbm:dbm/sdbm:encoding:hooks:ldap:misc:strmatch:uri:xlate:xml
+
+#
+# Include the 'tail' makefile that has targets that depend on variables defined
+# in this makefile
+#
+
+include $(APR_WORK)\build\NWGNUtail.inc
+
+
diff --git a/README.MySQL b/README.MySQL
new file mode 100644
index 0000000..e3af348
--- /dev/null
+++ b/README.MySQL
@@ -0,0 +1,3 @@
+As of apr-util version 1.2.11, MySQL DBD driver is shipped as part of the
+distribution. However, unless you specify --with-mysql option to configure,
+MySQL DBD driver will NOT be built to avoid ABI breakage.
diff --git a/apr-util-1.2.12.xcodeproj/project.pbxproj b/apr-util-1.2.12.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..0dc7a9f
--- /dev/null
+++ b/apr-util-1.2.12.xcodeproj/project.pbxproj
@@ -0,0 +1,760 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 45;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		B00B8CF70BD003D1007535DA /* apr_brigade.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C0C0BD003D1007535DA /* apr_brigade.c */; };
+		B00B8CF80BD003D1007535DA /* apr_buckets.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C0D0BD003D1007535DA /* apr_buckets.c */; };
+		B00B8CF90BD003D1007535DA /* apr_buckets_alloc.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C0E0BD003D1007535DA /* apr_buckets_alloc.c */; };
+		B00B8CFA0BD003D1007535DA /* apr_buckets_eos.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C0F0BD003D1007535DA /* apr_buckets_eos.c */; };
+		B00B8CFB0BD003D1007535DA /* apr_buckets_file.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C100BD003D1007535DA /* apr_buckets_file.c */; };
+		B00B8CFC0BD003D1007535DA /* apr_buckets_flush.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C110BD003D1007535DA /* apr_buckets_flush.c */; };
+		B00B8CFD0BD003D1007535DA /* apr_buckets_heap.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C120BD003D1007535DA /* apr_buckets_heap.c */; };
+		B00B8CFE0BD003D1007535DA /* apr_buckets_mmap.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C130BD003D1007535DA /* apr_buckets_mmap.c */; };
+		B00B8CFF0BD003D1007535DA /* apr_buckets_pipe.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C140BD003D1007535DA /* apr_buckets_pipe.c */; };
+		B00B8D000BD003D1007535DA /* apr_buckets_pool.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C150BD003D1007535DA /* apr_buckets_pool.c */; };
+		B00B8D010BD003D1007535DA /* apr_buckets_refcount.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C160BD003D1007535DA /* apr_buckets_refcount.c */; };
+		B00B8D020BD003D1007535DA /* apr_buckets_simple.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C170BD003D1007535DA /* apr_buckets_simple.c */; };
+		B00B8D030BD003D1007535DA /* apr_buckets_socket.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C180BD003D1007535DA /* apr_buckets_socket.c */; };
+		B00B8D040BD003D1007535DA /* apr_md4.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C440BD003D1007535DA /* apr_md4.c */; };
+		B00B8D050BD003D1007535DA /* apr_md5.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C450BD003D1007535DA /* apr_md5.c */; };
+		B00B8D060BD003D1007535DA /* apr_sha1.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C460BD003D1007535DA /* apr_sha1.c */; };
+		B00B8D070BD003D1007535DA /* getuuid.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C470BD003D1007535DA /* getuuid.c */; };
+		B00B8D080BD003D1007535DA /* uuid.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C480BD003D1007535DA /* uuid.c */; };
+		B00B8D090BD003D1007535DA /* apr_dbd.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C4A0BD003D1007535DA /* apr_dbd.c */; };
+		B00B8D0A0BD003D1007535DA /* apr_dbd_pgsql.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C4B0BD003D1007535DA /* apr_dbd_pgsql.c */; };
+		B00B8D0B0BD003D1007535DA /* apr_dbd_sqlite2.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C4C0BD003D1007535DA /* apr_dbd_sqlite2.c */; };
+		B00B8D0C0BD003D1007535DA /* apr_dbd_sqlite3.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C4D0BD003D1007535DA /* apr_dbd_sqlite3.c */; };
+		B00B8D0D0BD003D1007535DA /* apr_dbm.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C4F0BD003D1007535DA /* apr_dbm.c */; };
+		B00B8D0E0BD003D1007535DA /* apr_dbm_berkeleydb.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C500BD003D1007535DA /* apr_dbm_berkeleydb.c */; };
+		B00B8D0F0BD003D1007535DA /* apr_dbm_gdbm.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C510BD003D1007535DA /* apr_dbm_gdbm.c */; };
+		B00B8D100BD003D1007535DA /* apr_dbm_ndbm.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C520BD003D1007535DA /* apr_dbm_ndbm.c */; };
+		B00B8D110BD003D1007535DA /* apr_dbm_sdbm.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C530BD003D1007535DA /* apr_dbm_sdbm.c */; };
+		B00B8D120BD003D1007535DA /* sdbm.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C550BD003D1007535DA /* sdbm.c */; };
+		B00B8D130BD003D1007535DA /* sdbm_hash.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C560BD003D1007535DA /* sdbm_hash.c */; };
+		B00B8D140BD003D1007535DA /* sdbm_lock.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C570BD003D1007535DA /* sdbm_lock.c */; };
+		B00B8D150BD003D1007535DA /* sdbm_pair.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C580BD003D1007535DA /* sdbm_pair.c */; };
+		B00B8D160BD003D1007535DA /* sdbm_pair.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C590BD003D1007535DA /* sdbm_pair.h */; };
+		B00B8D170BD003D1007535DA /* sdbm_private.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C5A0BD003D1007535DA /* sdbm_private.h */; };
+		B00B8D180BD003D1007535DA /* sdbm_tune.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C5B0BD003D1007535DA /* sdbm_tune.h */; };
+		B00B8D190BD003D1007535DA /* apr_base64.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C5F0BD003D1007535DA /* apr_base64.c */; };
+		B00B8D1A0BD003D1007535DA /* apr_hooks.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C620BD003D1007535DA /* apr_hooks.c */; };
+		B00B8D1B0BD003D1007535DA /* apr_anylock.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C640BD003D1007535DA /* apr_anylock.h */; };
+		B00B8D1C0BD003D1007535DA /* apr_base64.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C650BD003D1007535DA /* apr_base64.h */; };
+		B00B8D1D0BD003D1007535DA /* apr_buckets.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C660BD003D1007535DA /* apr_buckets.h */; };
+		B00B8D1E0BD003D1007535DA /* apr_date.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C670BD003D1007535DA /* apr_date.h */; };
+		B00B8D1F0BD003D1007535DA /* apr_dbd.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C680BD003D1007535DA /* apr_dbd.h */; };
+		B00B8D200BD003D1007535DA /* apr_dbm.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C690BD003D1007535DA /* apr_dbm.h */; };
+		B00B8D210BD003D1007535DA /* apr_hooks.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C6A0BD003D1007535DA /* apr_hooks.h */; };
+		B00B8D220BD003D1007535DA /* apr_ldap.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C6B0BD003D1007535DA /* apr_ldap.h */; };
+		B00B8D230BD003D1007535DA /* apr_ldap_init.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C6F0BD003D1007535DA /* apr_ldap_init.h */; };
+		B00B8D240BD003D1007535DA /* apr_ldap_option.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C700BD003D1007535DA /* apr_ldap_option.h */; };
+		B00B8D250BD003D1007535DA /* apr_ldap_url.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C710BD003D1007535DA /* apr_ldap_url.h */; };
+		B00B8D260BD003D1007535DA /* apr_md4.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C720BD003D1007535DA /* apr_md4.h */; };
+		B00B8D270BD003D1007535DA /* apr_md5.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C730BD003D1007535DA /* apr_md5.h */; };
+		B00B8D280BD003D1007535DA /* apr_optional.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C740BD003D1007535DA /* apr_optional.h */; };
+		B00B8D290BD003D1007535DA /* apr_optional_hooks.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C750BD003D1007535DA /* apr_optional_hooks.h */; };
+		B00B8D2A0BD003D1007535DA /* apr_queue.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C760BD003D1007535DA /* apr_queue.h */; };
+		B00B8D2B0BD003D1007535DA /* apr_reslist.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C770BD003D1007535DA /* apr_reslist.h */; };
+		B00B8D2C0BD003D1007535DA /* apr_rmm.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C780BD003D1007535DA /* apr_rmm.h */; };
+		B00B8D2D0BD003D1007535DA /* apr_sdbm.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C790BD003D1007535DA /* apr_sdbm.h */; };
+		B00B8D2E0BD003D1007535DA /* apr_sha1.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C7A0BD003D1007535DA /* apr_sha1.h */; };
+		B00B8D2F0BD003D1007535DA /* apr_strmatch.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C7B0BD003D1007535DA /* apr_strmatch.h */; };
+		B00B8D300BD003D1007535DA /* apr_uri.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C7C0BD003D1007535DA /* apr_uri.h */; };
+		B00B8D310BD003D1007535DA /* apr_uuid.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C7D0BD003D1007535DA /* apr_uuid.h */; };
+		B00B8D320BD003D1007535DA /* apr_xlate.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C7E0BD003D1007535DA /* apr_xlate.h */; };
+		B00B8D330BD003D1007535DA /* apr_xml.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C7F0BD003D1007535DA /* apr_xml.h */; };
+		B00B8D340BD003D1007535DA /* apu.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C800BD003D1007535DA /* apu.h */; };
+		B00B8D350BD003D1007535DA /* apu_version.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C840BD003D1007535DA /* apu_version.h */; };
+		B00B8D360BD003D1007535DA /* apu_want.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C850BD003D1007535DA /* apu_want.h */; };
+		B00B8D370BD003D1007535DA /* apr_dbd_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C8A0BD003D1007535DA /* apr_dbd_internal.h */; };
+		B00B8D380BD003D1007535DA /* apr_dbm_private.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C8B0BD003D1007535DA /* apr_dbm_private.h */; };
+		B00B8D390BD003D1007535DA /* apu_config.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C8C0BD003D1007535DA /* apu_config.h */; };
+		B00B8D3A0BD003D1007535DA /* apu_select_dbm.h in Headers */ = {isa = PBXBuildFile; fileRef = B00B8C8F0BD003D1007535DA /* apu_select_dbm.h */; };
+		B00B8D3B0BD003D1007535DA /* apr_ldap_init.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C940BD003D1007535DA /* apr_ldap_init.c */; };
+		B00B8D3C0BD003D1007535DA /* apr_ldap_option.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C950BD003D1007535DA /* apr_ldap_option.c */; };
+		B00B8D3D0BD003D1007535DA /* apr_ldap_url.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C960BD003D1007535DA /* apr_ldap_url.c */; };
+		B00B8D3E0BD003D1007535DA /* apr_date.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C9D0BD003D1007535DA /* apr_date.c */; };
+		B00B8D3F0BD003D1007535DA /* apr_queue.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C9E0BD003D1007535DA /* apr_queue.c */; };
+		B00B8D400BD003D1007535DA /* apr_reslist.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8C9F0BD003D1007535DA /* apr_reslist.c */; };
+		B00B8D410BD003D1007535DA /* apr_rmm.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8CA00BD003D1007535DA /* apr_rmm.c */; };
+		B00B8D420BD003D1007535DA /* apu_version.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8CA10BD003D1007535DA /* apu_version.c */; };
+		B00B8D430BD003D1007535DA /* apr_strmatch.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8CA60BD003D1007535DA /* apr_strmatch.c */; };
+		B00B8D5C0BD003D1007535DA /* apr_uri.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8CC60BD003D1007535DA /* apr_uri.c */; };
+		B00B8D5D0BD003D1007535DA /* xlate.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8CC90BD003D1007535DA /* xlate.c */; };
+		B00B8D5E0BD003D1007535DA /* apr_xml.c in Sources */ = {isa = PBXBuildFile; fileRef = B00B8CCB0BD003D1007535DA /* apr_xml.c */; };
+		B070565F0BD00ABB00D257E3 /* expat.h in Headers */ = {isa = PBXBuildFile; fileRef = B070565E0BD00ABB00D257E3 /* expat.h */; };
+		B0B5F4640BD006EC00237B3C /* apr_proc_mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F42F0BD006EC00237B3C /* apr_proc_mutex.h */; };
+		B0B5F4650BD006EC00237B3C /* sha2.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4300BD006EC00237B3C /* sha2.h */; };
+		B0B5F4660BD006EC00237B3C /* apr_hash.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4310BD006EC00237B3C /* apr_hash.h */; };
+		B0B5F4670BD006EC00237B3C /* apr_arch_networkio.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4320BD006EC00237B3C /* apr_arch_networkio.h */; };
+		B0B5F4680BD006EC00237B3C /* apr_network_io.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4330BD006EC00237B3C /* apr_network_io.h */; };
+		B0B5F4690BD006EC00237B3C /* apr_arch_inherit.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4340BD006EC00237B3C /* apr_arch_inherit.h */; };
+		B0B5F46A0BD006EC00237B3C /* apr_thread_proc.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4350BD006EC00237B3C /* apr_thread_proc.h */; };
+		B0B5F46B0BD006EC00237B3C /* apr_getopt.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4360BD006EC00237B3C /* apr_getopt.h */; };
+		B0B5F46C0BD006EC00237B3C /* apr_thread_rwlock.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4370BD006EC00237B3C /* apr_thread_rwlock.h */; };
+		B0B5F46D0BD006EC00237B3C /* apr_version.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4380BD006EC00237B3C /* apr_version.h */; };
+		B0B5F46E0BD006EC00237B3C /* apr_thread_cond.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4390BD006EC00237B3C /* apr_thread_cond.h */; };
+		B0B5F46F0BD006EC00237B3C /* apr_file_info.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F43A0BD006EC00237B3C /* apr_file_info.h */; };
+		B0B5F4700BD006EC00237B3C /* apr.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F43B0BD006EC00237B3C /* apr.h */; };
+		B0B5F4710BD006EC00237B3C /* apr_atomic.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F43C0BD006EC00237B3C /* apr_atomic.h */; };
+		B0B5F4720BD006EC00237B3C /* apr_fnmatch.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F43D0BD006EC00237B3C /* apr_fnmatch.h */; };
+		B0B5F4730BD006EC00237B3C /* apr_arch_proc_mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F43E0BD006EC00237B3C /* apr_arch_proc_mutex.h */; };
+		B0B5F4740BD006EC00237B3C /* apr_inherit.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F43F0BD006EC00237B3C /* apr_inherit.h */; };
+		B0B5F4750BD006EC00237B3C /* apr_strings.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4400BD006EC00237B3C /* apr_strings.h */; };
+		B0B5F4760BD006EC00237B3C /* apr_private_common.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4410BD006EC00237B3C /* apr_private_common.h */; };
+		B0B5F4770BD006EC00237B3C /* apr_signal.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4420BD006EC00237B3C /* apr_signal.h */; };
+		B0B5F4780BD006EC00237B3C /* apr_random.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4430BD006EC00237B3C /* apr_random.h */; };
+		B0B5F4790BD006EC00237B3C /* apr_arch_global_mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4440BD006EC00237B3C /* apr_arch_global_mutex.h */; };
+		B0B5F47A0BD006EC00237B3C /* apr_file_io.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4450BD006EC00237B3C /* apr_file_io.h */; };
+		B0B5F47B0BD006EC00237B3C /* apr_poll.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4460BD006EC00237B3C /* apr_poll.h */; };
+		B0B5F47C0BD006EC00237B3C /* apr_errno.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4470BD006EC00237B3C /* apr_errno.h */; };
+		B0B5F47D0BD006EC00237B3C /* apr_dso.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4480BD006EC00237B3C /* apr_dso.h */; };
+		B0B5F47E0BD006EC00237B3C /* apr_portable.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4490BD006EC00237B3C /* apr_portable.h */; };
+		B0B5F47F0BD006EC00237B3C /* apr_allocator.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F44A0BD006EC00237B3C /* apr_allocator.h */; };
+		B0B5F4800BD006EC00237B3C /* apr_time.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F44B0BD006EC00237B3C /* apr_time.h */; };
+		B0B5F4810BD006EC00237B3C /* apr_arch_threadproc.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F44C0BD006EC00237B3C /* apr_arch_threadproc.h */; };
+		B0B5F4820BD006EC00237B3C /* apr_lib.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F44D0BD006EC00237B3C /* apr_lib.h */; };
+		B0B5F4830BD006EC00237B3C /* apr_user.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F44E0BD006EC00237B3C /* apr_user.h */; };
+		B0B5F4840BD006EC00237B3C /* apr_arch_misc.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F44F0BD006EC00237B3C /* apr_arch_misc.h */; };
+		B0B5F4850BD006EC00237B3C /* apr_private.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4500BD006EC00237B3C /* apr_private.h */; };
+		B0B5F4860BD006EC00237B3C /* apr_env.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4510BD006EC00237B3C /* apr_env.h */; };
+		B0B5F4870BD006EC00237B3C /* apr_arch_thread_mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4520BD006EC00237B3C /* apr_arch_thread_mutex.h */; };
+		B0B5F4880BD006EC00237B3C /* apr_shm.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4530BD006EC00237B3C /* apr_shm.h */; };
+		B0B5F4890BD006EC00237B3C /* apr_general.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4540BD006EC00237B3C /* apr_general.h */; };
+		B0B5F48A0BD006EC00237B3C /* apr_support.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4550BD006EC00237B3C /* apr_support.h */; };
+		B0B5F48B0BD006EC00237B3C /* apr_thread_mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4560BD006EC00237B3C /* apr_thread_mutex.h */; };
+		B0B5F48C0BD006EC00237B3C /* apr_pools.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4570BD006EC00237B3C /* apr_pools.h */; };
+		B0B5F48D0BD006EC00237B3C /* apr_arch_thread_rwlock.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4580BD006EC00237B3C /* apr_arch_thread_rwlock.h */; };
+		B0B5F48E0BD006EC00237B3C /* apr_tables.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4590BD006EC00237B3C /* apr_tables.h */; };
+		B0B5F48F0BD006EC00237B3C /* apr_global_mutex.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F45A0BD006EC00237B3C /* apr_global_mutex.h */; };
+		B0B5F4900BD006EC00237B3C /* apr_arch_shm.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F45B0BD006EC00237B3C /* apr_arch_shm.h */; };
+		B0B5F4910BD006EC00237B3C /* apr_arch_file_io.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F45C0BD006EC00237B3C /* apr_arch_file_io.h */; };
+		B0B5F4920BD006EC00237B3C /* apr_mmap.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F45D0BD006EC00237B3C /* apr_mmap.h */; };
+		B0B5F4930BD006EC00237B3C /* apr_want.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F45E0BD006EC00237B3C /* apr_want.h */; };
+		B0B5F4940BD006EC00237B3C /* apr_arch_dso.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F45F0BD006EC00237B3C /* apr_arch_dso.h */; };
+		B0B5F4950BD006EC00237B3C /* apr_arch_poll_private.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4600BD006EC00237B3C /* apr_arch_poll_private.h */; };
+		B0B5F4960BD006EC00237B3C /* apr_arch_thread_cond.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4610BD006EC00237B3C /* apr_arch_thread_cond.h */; };
+		B0B5F4970BD006EC00237B3C /* apr_ring.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4620BD006EC00237B3C /* apr_ring.h */; };
+		B0B5F4980BD006EC00237B3C /* apr_arch_internal_time.h in Headers */ = {isa = PBXBuildFile; fileRef = B0B5F4630BD006EC00237B3C /* apr_arch_internal_time.h */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		B00B8C0C0BD003D1007535DA /* apr_brigade.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_brigade.c; path = buckets/apr_brigade.c; sourceTree = "<group>"; };
+		B00B8C0D0BD003D1007535DA /* apr_buckets.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_buckets.c; path = buckets/apr_buckets.c; sourceTree = "<group>"; };
+		B00B8C0E0BD003D1007535DA /* apr_buckets_alloc.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_buckets_alloc.c; path = buckets/apr_buckets_alloc.c; sourceTree = "<group>"; };
+		B00B8C0F0BD003D1007535DA /* apr_buckets_eos.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_buckets_eos.c; path = buckets/apr_buckets_eos.c; sourceTree = "<group>"; };
+		B00B8C100BD003D1007535DA /* apr_buckets_file.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_buckets_file.c; path = buckets/apr_buckets_file.c; sourceTree = "<group>"; };
+		B00B8C110BD003D1007535DA /* apr_buckets_flush.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_buckets_flush.c; path = buckets/apr_buckets_flush.c; sourceTree = "<group>"; };
+		B00B8C120BD003D1007535DA /* apr_buckets_heap.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_buckets_heap.c; path = buckets/apr_buckets_heap.c; sourceTree = "<group>"; };
+		B00B8C130BD003D1007535DA /* apr_buckets_mmap.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_buckets_mmap.c; path = buckets/apr_buckets_mmap.c; sourceTree = "<group>"; };
+		B00B8C140BD003D1007535DA /* apr_buckets_pipe.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_buckets_pipe.c; path = buckets/apr_buckets_pipe.c; sourceTree = "<group>"; };
+		B00B8C150BD003D1007535DA /* apr_buckets_pool.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_buckets_pool.c; path = buckets/apr_buckets_pool.c; sourceTree = "<group>"; };
+		B00B8C160BD003D1007535DA /* apr_buckets_refcount.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_buckets_refcount.c; path = buckets/apr_buckets_refcount.c; sourceTree = "<group>"; };
+		B00B8C170BD003D1007535DA /* apr_buckets_simple.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_buckets_simple.c; path = buckets/apr_buckets_simple.c; sourceTree = "<group>"; };
+		B00B8C180BD003D1007535DA /* apr_buckets_socket.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_buckets_socket.c; path = buckets/apr_buckets_socket.c; sourceTree = "<group>"; };
+		B00B8C440BD003D1007535DA /* apr_md4.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_md4.c; path = crypto/apr_md4.c; sourceTree = "<group>"; };
+		B00B8C450BD003D1007535DA /* apr_md5.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_md5.c; path = crypto/apr_md5.c; sourceTree = "<group>"; };
+		B00B8C460BD003D1007535DA /* apr_sha1.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_sha1.c; path = crypto/apr_sha1.c; sourceTree = "<group>"; };
+		B00B8C470BD003D1007535DA /* getuuid.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = getuuid.c; path = crypto/getuuid.c; sourceTree = "<group>"; };
+		B00B8C480BD003D1007535DA /* uuid.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = uuid.c; path = crypto/uuid.c; sourceTree = "<group>"; };
+		B00B8C4A0BD003D1007535DA /* apr_dbd.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_dbd.c; path = dbd/apr_dbd.c; sourceTree = "<group>"; };
+		B00B8C4B0BD003D1007535DA /* apr_dbd_pgsql.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_dbd_pgsql.c; path = dbd/apr_dbd_pgsql.c; sourceTree = "<group>"; };
+		B00B8C4C0BD003D1007535DA /* apr_dbd_sqlite2.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_dbd_sqlite2.c; path = dbd/apr_dbd_sqlite2.c; sourceTree = "<group>"; };
+		B00B8C4D0BD003D1007535DA /* apr_dbd_sqlite3.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_dbd_sqlite3.c; path = dbd/apr_dbd_sqlite3.c; sourceTree = "<group>"; };
+		B00B8C4F0BD003D1007535DA /* apr_dbm.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_dbm.c; path = dbm/apr_dbm.c; sourceTree = "<group>"; };
+		B00B8C500BD003D1007535DA /* apr_dbm_berkeleydb.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_dbm_berkeleydb.c; path = dbm/apr_dbm_berkeleydb.c; sourceTree = "<group>"; };
+		B00B8C510BD003D1007535DA /* apr_dbm_gdbm.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_dbm_gdbm.c; path = dbm/apr_dbm_gdbm.c; sourceTree = "<group>"; };
+		B00B8C520BD003D1007535DA /* apr_dbm_ndbm.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_dbm_ndbm.c; path = dbm/apr_dbm_ndbm.c; sourceTree = "<group>"; };
+		B00B8C530BD003D1007535DA /* apr_dbm_sdbm.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_dbm_sdbm.c; path = dbm/apr_dbm_sdbm.c; sourceTree = "<group>"; };
+		B00B8C550BD003D1007535DA /* sdbm.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = sdbm.c; path = dbm/sdbm/sdbm.c; sourceTree = "<group>"; };
+		B00B8C560BD003D1007535DA /* sdbm_hash.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = sdbm_hash.c; path = dbm/sdbm/sdbm_hash.c; sourceTree = "<group>"; };
+		B00B8C570BD003D1007535DA /* sdbm_lock.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = sdbm_lock.c; path = dbm/sdbm/sdbm_lock.c; sourceTree = "<group>"; };
+		B00B8C580BD003D1007535DA /* sdbm_pair.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = sdbm_pair.c; path = dbm/sdbm/sdbm_pair.c; sourceTree = "<group>"; };
+		B00B8C590BD003D1007535DA /* sdbm_pair.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sdbm_pair.h; path = dbm/sdbm/sdbm_pair.h; sourceTree = "<group>"; };
+		B00B8C5A0BD003D1007535DA /* sdbm_private.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sdbm_private.h; path = dbm/sdbm/sdbm_private.h; sourceTree = "<group>"; };
+		B00B8C5B0BD003D1007535DA /* sdbm_tune.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sdbm_tune.h; path = dbm/sdbm/sdbm_tune.h; sourceTree = "<group>"; };
+		B00B8C5F0BD003D1007535DA /* apr_base64.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_base64.c; path = encoding/apr_base64.c; sourceTree = "<group>"; };
+		B00B8C620BD003D1007535DA /* apr_hooks.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_hooks.c; path = hooks/apr_hooks.c; sourceTree = "<group>"; };
+		B00B8C640BD003D1007535DA /* apr_anylock.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_anylock.h; path = include/apr_anylock.h; sourceTree = "<group>"; };
+		B00B8C650BD003D1007535DA /* apr_base64.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_base64.h; path = include/apr_base64.h; sourceTree = "<group>"; };
+		B00B8C660BD003D1007535DA /* apr_buckets.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_buckets.h; path = include/apr_buckets.h; sourceTree = "<group>"; };
+		B00B8C670BD003D1007535DA /* apr_date.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_date.h; path = include/apr_date.h; sourceTree = "<group>"; };
+		B00B8C680BD003D1007535DA /* apr_dbd.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_dbd.h; path = include/apr_dbd.h; sourceTree = "<group>"; };
+		B00B8C690BD003D1007535DA /* apr_dbm.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_dbm.h; path = include/apr_dbm.h; sourceTree = "<group>"; };
+		B00B8C6A0BD003D1007535DA /* apr_hooks.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_hooks.h; path = include/apr_hooks.h; sourceTree = "<group>"; };
+		B00B8C6B0BD003D1007535DA /* apr_ldap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_ldap.h; path = include/apr_ldap.h; sourceTree = "<group>"; };
+		B00B8C6F0BD003D1007535DA /* apr_ldap_init.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_ldap_init.h; path = include/apr_ldap_init.h; sourceTree = "<group>"; };
+		B00B8C700BD003D1007535DA /* apr_ldap_option.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_ldap_option.h; path = include/apr_ldap_option.h; sourceTree = "<group>"; };
+		B00B8C710BD003D1007535DA /* apr_ldap_url.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_ldap_url.h; path = include/apr_ldap_url.h; sourceTree = "<group>"; };
+		B00B8C720BD003D1007535DA /* apr_md4.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_md4.h; path = include/apr_md4.h; sourceTree = "<group>"; };
+		B00B8C730BD003D1007535DA /* apr_md5.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_md5.h; path = include/apr_md5.h; sourceTree = "<group>"; };
+		B00B8C740BD003D1007535DA /* apr_optional.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_optional.h; path = include/apr_optional.h; sourceTree = "<group>"; };
+		B00B8C750BD003D1007535DA /* apr_optional_hooks.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_optional_hooks.h; path = include/apr_optional_hooks.h; sourceTree = "<group>"; };
+		B00B8C760BD003D1007535DA /* apr_queue.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_queue.h; path = include/apr_queue.h; sourceTree = "<group>"; };
+		B00B8C770BD003D1007535DA /* apr_reslist.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_reslist.h; path = include/apr_reslist.h; sourceTree = "<group>"; };
+		B00B8C780BD003D1007535DA /* apr_rmm.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_rmm.h; path = include/apr_rmm.h; sourceTree = "<group>"; };
+		B00B8C790BD003D1007535DA /* apr_sdbm.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_sdbm.h; path = include/apr_sdbm.h; sourceTree = "<group>"; };
+		B00B8C7A0BD003D1007535DA /* apr_sha1.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_sha1.h; path = include/apr_sha1.h; sourceTree = "<group>"; };
+		B00B8C7B0BD003D1007535DA /* apr_strmatch.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_strmatch.h; path = include/apr_strmatch.h; sourceTree = "<group>"; };
+		B00B8C7C0BD003D1007535DA /* apr_uri.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_uri.h; path = include/apr_uri.h; sourceTree = "<group>"; };
+		B00B8C7D0BD003D1007535DA /* apr_uuid.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_uuid.h; path = include/apr_uuid.h; sourceTree = "<group>"; };
+		B00B8C7E0BD003D1007535DA /* apr_xlate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_xlate.h; path = include/apr_xlate.h; sourceTree = "<group>"; };
+		B00B8C7F0BD003D1007535DA /* apr_xml.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_xml.h; path = include/apr_xml.h; sourceTree = "<group>"; };
+		B00B8C800BD003D1007535DA /* apu.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apu.h; path = include/apu.h; sourceTree = "<group>"; };
+		B00B8C840BD003D1007535DA /* apu_version.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apu_version.h; path = include/apu_version.h; sourceTree = "<group>"; };
+		B00B8C850BD003D1007535DA /* apu_want.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apu_want.h; path = include/apu_want.h; sourceTree = "<group>"; };
+		B00B8C8A0BD003D1007535DA /* apr_dbd_internal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_dbd_internal.h; path = include/private/apr_dbd_internal.h; sourceTree = "<group>"; };
+		B00B8C8B0BD003D1007535DA /* apr_dbm_private.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_dbm_private.h; path = include/private/apr_dbm_private.h; sourceTree = "<group>"; };
+		B00B8C8C0BD003D1007535DA /* apu_config.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apu_config.h; path = include/private/apu_config.h; sourceTree = "<group>"; };
+		B00B8C8F0BD003D1007535DA /* apu_select_dbm.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apu_select_dbm.h; path = include/private/apu_select_dbm.h; sourceTree = "<group>"; };
+		B00B8C940BD003D1007535DA /* apr_ldap_init.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_ldap_init.c; path = ldap/apr_ldap_init.c; sourceTree = "<group>"; };
+		B00B8C950BD003D1007535DA /* apr_ldap_option.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_ldap_option.c; path = ldap/apr_ldap_option.c; sourceTree = "<group>"; };
+		B00B8C960BD003D1007535DA /* apr_ldap_url.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_ldap_url.c; path = ldap/apr_ldap_url.c; sourceTree = "<group>"; };
+		B00B8C9D0BD003D1007535DA /* apr_date.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_date.c; path = misc/apr_date.c; sourceTree = "<group>"; };
+		B00B8C9E0BD003D1007535DA /* apr_queue.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_queue.c; path = misc/apr_queue.c; sourceTree = "<group>"; };
+		B00B8C9F0BD003D1007535DA /* apr_reslist.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_reslist.c; path = misc/apr_reslist.c; sourceTree = "<group>"; };
+		B00B8CA00BD003D1007535DA /* apr_rmm.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_rmm.c; path = misc/apr_rmm.c; sourceTree = "<group>"; };
+		B00B8CA10BD003D1007535DA /* apu_version.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apu_version.c; path = misc/apu_version.c; sourceTree = "<group>"; };
+		B00B8CA60BD003D1007535DA /* apr_strmatch.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_strmatch.c; path = strmatch/apr_strmatch.c; sourceTree = "<group>"; };
+		B00B8CC60BD003D1007535DA /* apr_uri.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_uri.c; path = uri/apr_uri.c; sourceTree = "<group>"; };
+		B00B8CC90BD003D1007535DA /* xlate.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = xlate.c; path = xlate/xlate.c; sourceTree = "<group>"; };
+		B00B8CCB0BD003D1007535DA /* apr_xml.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = apr_xml.c; path = xml/apr_xml.c; sourceTree = "<group>"; };
+		B070565E0BD00ABB00D257E3 /* expat.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = expat.h; path = xml/expat/lib/expat.h; sourceTree = SOURCE_ROOT; };
+		B0B5F42F0BD006EC00237B3C /* apr_proc_mutex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_proc_mutex.h; path = "../apr-1.2.12/include/apr_proc_mutex.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4300BD006EC00237B3C /* sha2.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = sha2.h; path = "../apr-1.2.12/random/unix/sha2.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4310BD006EC00237B3C /* apr_hash.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_hash.h; path = "../apr-1.2.12/include/apr_hash.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4320BD006EC00237B3C /* apr_arch_networkio.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_arch_networkio.h; path = "../apr-1.2.12/include/arch/unix/apr_arch_networkio.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4330BD006EC00237B3C /* apr_network_io.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_network_io.h; path = "../apr-1.2.12/include/apr_network_io.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4340BD006EC00237B3C /* apr_arch_inherit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_arch_inherit.h; path = "../apr-1.2.12/include/arch/unix/apr_arch_inherit.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4350BD006EC00237B3C /* apr_thread_proc.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_thread_proc.h; path = "../apr-1.2.12/include/apr_thread_proc.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4360BD006EC00237B3C /* apr_getopt.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_getopt.h; path = "../apr-1.2.12/include/apr_getopt.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4370BD006EC00237B3C /* apr_thread_rwlock.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_thread_rwlock.h; path = "../apr-1.2.12/include/apr_thread_rwlock.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4380BD006EC00237B3C /* apr_version.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_version.h; path = "../apr-1.2.12/include/apr_version.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4390BD006EC00237B3C /* apr_thread_cond.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_thread_cond.h; path = "../apr-1.2.12/include/apr_thread_cond.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F43A0BD006EC00237B3C /* apr_file_info.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_file_info.h; path = "../apr-1.2.12/include/apr_file_info.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F43B0BD006EC00237B3C /* apr.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr.h; path = "../apr-1.2.12/include/apr.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F43C0BD006EC00237B3C /* apr_atomic.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_atomic.h; path = "../apr-1.2.12/include/apr_atomic.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F43D0BD006EC00237B3C /* apr_fnmatch.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_fnmatch.h; path = "../apr-1.2.12/include/apr_fnmatch.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F43E0BD006EC00237B3C /* apr_arch_proc_mutex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_arch_proc_mutex.h; path = "../apr-1.2.12/include/arch/unix/apr_arch_proc_mutex.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F43F0BD006EC00237B3C /* apr_inherit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_inherit.h; path = "../apr-1.2.12/include/apr_inherit.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4400BD006EC00237B3C /* apr_strings.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_strings.h; path = "../apr-1.2.12/include/apr_strings.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4410BD006EC00237B3C /* apr_private_common.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_private_common.h; path = "../apr-1.2.12/include/arch/apr_private_common.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4420BD006EC00237B3C /* apr_signal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_signal.h; path = "../apr-1.2.12/include/apr_signal.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4430BD006EC00237B3C /* apr_random.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_random.h; path = "../apr-1.2.12/include/apr_random.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4440BD006EC00237B3C /* apr_arch_global_mutex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_arch_global_mutex.h; path = "../apr-1.2.12/include/arch/unix/apr_arch_global_mutex.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4450BD006EC00237B3C /* apr_file_io.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_file_io.h; path = "../apr-1.2.12/include/apr_file_io.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4460BD006EC00237B3C /* apr_poll.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_poll.h; path = "../apr-1.2.12/include/apr_poll.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4470BD006EC00237B3C /* apr_errno.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_errno.h; path = "../apr-1.2.12/include/apr_errno.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4480BD006EC00237B3C /* apr_dso.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_dso.h; path = "../apr-1.2.12/include/apr_dso.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4490BD006EC00237B3C /* apr_portable.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_portable.h; path = "../apr-1.2.12/include/apr_portable.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F44A0BD006EC00237B3C /* apr_allocator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_allocator.h; path = "../apr-1.2.12/include/apr_allocator.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F44B0BD006EC00237B3C /* apr_time.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_time.h; path = "../apr-1.2.12/include/apr_time.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F44C0BD006EC00237B3C /* apr_arch_threadproc.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_arch_threadproc.h; path = "../apr-1.2.12/include/arch/unix/apr_arch_threadproc.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F44D0BD006EC00237B3C /* apr_lib.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_lib.h; path = "../apr-1.2.12/include/apr_lib.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F44E0BD006EC00237B3C /* apr_user.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_user.h; path = "../apr-1.2.12/include/apr_user.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F44F0BD006EC00237B3C /* apr_arch_misc.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_arch_misc.h; path = "../apr-1.2.12/include/arch/unix/apr_arch_misc.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4500BD006EC00237B3C /* apr_private.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_private.h; path = "../apr-1.2.12/include/arch/unix/apr_private.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4510BD006EC00237B3C /* apr_env.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_env.h; path = "../apr-1.2.12/include/apr_env.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4520BD006EC00237B3C /* apr_arch_thread_mutex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_arch_thread_mutex.h; path = "../apr-1.2.12/include/arch/unix/apr_arch_thread_mutex.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4530BD006EC00237B3C /* apr_shm.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_shm.h; path = "../apr-1.2.12/include/apr_shm.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4540BD006EC00237B3C /* apr_general.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_general.h; path = "../apr-1.2.12/include/apr_general.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4550BD006EC00237B3C /* apr_support.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_support.h; path = "../apr-1.2.12/include/apr_support.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4560BD006EC00237B3C /* apr_thread_mutex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_thread_mutex.h; path = "../apr-1.2.12/include/apr_thread_mutex.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4570BD006EC00237B3C /* apr_pools.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_pools.h; path = "../apr-1.2.12/include/apr_pools.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4580BD006EC00237B3C /* apr_arch_thread_rwlock.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_arch_thread_rwlock.h; path = "../apr-1.2.12/include/arch/unix/apr_arch_thread_rwlock.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4590BD006EC00237B3C /* apr_tables.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_tables.h; path = "../apr-1.2.12/include/apr_tables.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F45A0BD006EC00237B3C /* apr_global_mutex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_global_mutex.h; path = "../apr-1.2.12/include/apr_global_mutex.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F45B0BD006EC00237B3C /* apr_arch_shm.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_arch_shm.h; path = "../apr-1.2.12/include/arch/unix/apr_arch_shm.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F45C0BD006EC00237B3C /* apr_arch_file_io.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_arch_file_io.h; path = "../apr-1.2.12/include/arch/unix/apr_arch_file_io.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F45D0BD006EC00237B3C /* apr_mmap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_mmap.h; path = "../apr-1.2.12/include/apr_mmap.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F45E0BD006EC00237B3C /* apr_want.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_want.h; path = "../apr-1.2.12/include/apr_want.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F45F0BD006EC00237B3C /* apr_arch_dso.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_arch_dso.h; path = "../apr-1.2.12/include/arch/unix/apr_arch_dso.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4600BD006EC00237B3C /* apr_arch_poll_private.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_arch_poll_private.h; path = "../apr-1.2.12/include/arch/unix/apr_arch_poll_private.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4610BD006EC00237B3C /* apr_arch_thread_cond.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_arch_thread_cond.h; path = "../apr-1.2.12/include/arch/unix/apr_arch_thread_cond.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4620BD006EC00237B3C /* apr_ring.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_ring.h; path = "../apr-1.2.12/include/apr_ring.h"; sourceTree = SOURCE_ROOT; };
+		B0B5F4630BD006EC00237B3C /* apr_arch_internal_time.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = apr_arch_internal_time.h; path = "../apr-1.2.12/include/arch/unix/apr_arch_internal_time.h"; sourceTree = SOURCE_ROOT; };
+		D2AAC046055464E500DB518D /* libapr-util-1.2.12.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libapr-util-1.2.12.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+		D720CB740D98139F003AE8EC /* MacConfigExternalDebug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = MacConfigExternalDebug.xcconfig; path = ../MacConfigExternalDebug.xcconfig; sourceTree = SOURCE_ROOT; };
+		D720CB750D98139F003AE8EC /* MacConfigExternalRelease.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = MacConfigExternalRelease.xcconfig; path = ../MacConfigExternalRelease.xcconfig; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		D289987405E68DCB004EDB86 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		08FB7794FE84155DC02AAC07 /* apr-util-1.2.12 */ = {
+			isa = PBXGroup;
+			children = (
+				D720CB740D98139F003AE8EC /* MacConfigExternalDebug.xcconfig */,
+				D720CB750D98139F003AE8EC /* MacConfigExternalRelease.xcconfig */,
+				08FB7795FE84155DC02AAC07 /* Source */,
+				C6A0FF2B0290797F04C91782 /* Documentation */,
+				1AB674ADFE9D54B511CA2CBB /* Products */,
+			);
+			name = "apr-util-1.2.12";
+			sourceTree = "<group>";
+		};
+		08FB7795FE84155DC02AAC07 /* Source */ = {
+			isa = PBXGroup;
+			children = (
+				B07056540BD00A9C00D257E3 /* Expat headers */,
+				B0B5F42E0BD006C600237B3C /* APR Headers */,
+				B00B8C9E0BD003D1007535DA /* apr_queue.c */,
+				B00B8C5A0BD003D1007535DA /* sdbm_private.h */,
+				B00B8C7D0BD003D1007535DA /* apr_uuid.h */,
+				B00B8C170BD003D1007535DA /* apr_buckets_simple.c */,
+				B00B8C180BD003D1007535DA /* apr_buckets_socket.c */,
+				B00B8C660BD003D1007535DA /* apr_buckets.h */,
+				B00B8C840BD003D1007535DA /* apu_version.h */,
+				B00B8C4C0BD003D1007535DA /* apr_dbd_sqlite2.c */,
+				B00B8C570BD003D1007535DA /* sdbm_lock.c */,
+				B00B8C750BD003D1007535DA /* apr_optional_hooks.h */,
+				B00B8C4B0BD003D1007535DA /* apr_dbd_pgsql.c */,
+				B00B8C130BD003D1007535DA /* apr_buckets_mmap.c */,
+				B00B8CC90BD003D1007535DA /* xlate.c */,
+				B00B8C670BD003D1007535DA /* apr_date.h */,
+				B00B8C0E0BD003D1007535DA /* apr_buckets_alloc.c */,
+				B00B8C800BD003D1007535DA /* apu.h */,
+				B00B8C8A0BD003D1007535DA /* apr_dbd_internal.h */,
+				B00B8C790BD003D1007535DA /* apr_sdbm.h */,
+				B00B8C0F0BD003D1007535DA /* apr_buckets_eos.c */,
+				B00B8C640BD003D1007535DA /* apr_anylock.h */,
+				B00B8C110BD003D1007535DA /* apr_buckets_flush.c */,
+				B00B8C8B0BD003D1007535DA /* apr_dbm_private.h */,
+				B00B8C5F0BD003D1007535DA /* apr_base64.c */,
+				B00B8C0D0BD003D1007535DA /* apr_buckets.c */,
+				B00B8C6A0BD003D1007535DA /* apr_hooks.h */,
+				B00B8C8F0BD003D1007535DA /* apu_select_dbm.h */,
+				B00B8C730BD003D1007535DA /* apr_md5.h */,
+				B00B8C940BD003D1007535DA /* apr_ldap_init.c */,
+				B00B8C780BD003D1007535DA /* apr_rmm.h */,
+				B00B8CA00BD003D1007535DA /* apr_rmm.c */,
+				B00B8C580BD003D1007535DA /* sdbm_pair.c */,
+				B00B8C8C0BD003D1007535DA /* apu_config.h */,
+				B00B8C760BD003D1007535DA /* apr_queue.h */,
+				B00B8C460BD003D1007535DA /* apr_sha1.c */,
+				B00B8C100BD003D1007535DA /* apr_buckets_file.c */,
+				B00B8C160BD003D1007535DA /* apr_buckets_refcount.c */,
+				B00B8C560BD003D1007535DA /* sdbm_hash.c */,
+				B00B8C150BD003D1007535DA /* apr_buckets_pool.c */,
+				B00B8C5B0BD003D1007535DA /* sdbm_tune.h */,
+				B00B8C620BD003D1007535DA /* apr_hooks.c */,
+				B00B8C710BD003D1007535DA /* apr_ldap_url.h */,
+				B00B8C700BD003D1007535DA /* apr_ldap_option.h */,
+				B00B8C480BD003D1007535DA /* uuid.c */,
+				B00B8C950BD003D1007535DA /* apr_ldap_option.c */,
+				B00B8C500BD003D1007535DA /* apr_dbm_berkeleydb.c */,
+				B00B8C4F0BD003D1007535DA /* apr_dbm.c */,
+				B00B8C450BD003D1007535DA /* apr_md5.c */,
+				B00B8C440BD003D1007535DA /* apr_md4.c */,
+				B00B8C510BD003D1007535DA /* apr_dbm_gdbm.c */,
+				B00B8C850BD003D1007535DA /* apu_want.h */,
+				B00B8C4A0BD003D1007535DA /* apr_dbd.c */,
+				B00B8C7A0BD003D1007535DA /* apr_sha1.h */,
+				B00B8C550BD003D1007535DA /* sdbm.c */,
+				B00B8C7C0BD003D1007535DA /* apr_uri.h */,
+				B00B8CA60BD003D1007535DA /* apr_strmatch.c */,
+				B00B8C7B0BD003D1007535DA /* apr_strmatch.h */,
+				B00B8C120BD003D1007535DA /* apr_buckets_heap.c */,
+				B00B8CCB0BD003D1007535DA /* apr_xml.c */,
+				B00B8C7F0BD003D1007535DA /* apr_xml.h */,
+				B00B8C960BD003D1007535DA /* apr_ldap_url.c */,
+				B00B8CC60BD003D1007535DA /* apr_uri.c */,
+				B00B8C530BD003D1007535DA /* apr_dbm_sdbm.c */,
+				B00B8C6B0BD003D1007535DA /* apr_ldap.h */,
+				B00B8C0C0BD003D1007535DA /* apr_brigade.c */,
+				B00B8C720BD003D1007535DA /* apr_md4.h */,
+				B00B8C680BD003D1007535DA /* apr_dbd.h */,
+				B00B8C7E0BD003D1007535DA /* apr_xlate.h */,
+				B00B8C4D0BD003D1007535DA /* apr_dbd_sqlite3.c */,
+				B00B8C590BD003D1007535DA /* sdbm_pair.h */,
+				B00B8C6F0BD003D1007535DA /* apr_ldap_init.h */,
+				B00B8CA10BD003D1007535DA /* apu_version.c */,
+				B00B8C770BD003D1007535DA /* apr_reslist.h */,
+				B00B8C690BD003D1007535DA /* apr_dbm.h */,
+				B00B8C470BD003D1007535DA /* getuuid.c */,
+				B00B8C9D0BD003D1007535DA /* apr_date.c */,
+				B00B8C520BD003D1007535DA /* apr_dbm_ndbm.c */,
+				B00B8C9F0BD003D1007535DA /* apr_reslist.c */,
+				B00B8C740BD003D1007535DA /* apr_optional.h */,
+				B00B8C650BD003D1007535DA /* apr_base64.h */,
+				B00B8C140BD003D1007535DA /* apr_buckets_pipe.c */,
+			);
+			name = Source;
+			sourceTree = "<group>";
+		};
+		1AB674ADFE9D54B511CA2CBB /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				D2AAC046055464E500DB518D /* libapr-util-1.2.12.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		B07056540BD00A9C00D257E3 /* Expat headers */ = {
+			isa = PBXGroup;
+			children = (
+				B070565E0BD00ABB00D257E3 /* expat.h */,
+			);
+			name = "Expat headers";
+			sourceTree = "<group>";
+		};
+		B0B5F42E0BD006C600237B3C /* APR Headers */ = {
+			isa = PBXGroup;
+			children = (
+				B0B5F42F0BD006EC00237B3C /* apr_proc_mutex.h */,
+				B0B5F4300BD006EC00237B3C /* sha2.h */,
+				B0B5F4310BD006EC00237B3C /* apr_hash.h */,
+				B0B5F4320BD006EC00237B3C /* apr_arch_networkio.h */,
+				B0B5F4330BD006EC00237B3C /* apr_network_io.h */,
+				B0B5F4340BD006EC00237B3C /* apr_arch_inherit.h */,
+				B0B5F4350BD006EC00237B3C /* apr_thread_proc.h */,
+				B0B5F4360BD006EC00237B3C /* apr_getopt.h */,
+				B0B5F4370BD006EC00237B3C /* apr_thread_rwlock.h */,
+				B0B5F4380BD006EC00237B3C /* apr_version.h */,
+				B0B5F4390BD006EC00237B3C /* apr_thread_cond.h */,
+				B0B5F43A0BD006EC00237B3C /* apr_file_info.h */,
+				B0B5F43B0BD006EC00237B3C /* apr.h */,
+				B0B5F43C0BD006EC00237B3C /* apr_atomic.h */,
+				B0B5F43D0BD006EC00237B3C /* apr_fnmatch.h */,
+				B0B5F43E0BD006EC00237B3C /* apr_arch_proc_mutex.h */,
+				B0B5F43F0BD006EC00237B3C /* apr_inherit.h */,
+				B0B5F4400BD006EC00237B3C /* apr_strings.h */,
+				B0B5F4410BD006EC00237B3C /* apr_private_common.h */,
+				B0B5F4420BD006EC00237B3C /* apr_signal.h */,
+				B0B5F4430BD006EC00237B3C /* apr_random.h */,
+				B0B5F4440BD006EC00237B3C /* apr_arch_global_mutex.h */,
+				B0B5F4450BD006EC00237B3C /* apr_file_io.h */,
+				B0B5F4460BD006EC00237B3C /* apr_poll.h */,
+				B0B5F4470BD006EC00237B3C /* apr_errno.h */,
+				B0B5F4480BD006EC00237B3C /* apr_dso.h */,
+				B0B5F4490BD006EC00237B3C /* apr_portable.h */,
+				B0B5F44A0BD006EC00237B3C /* apr_allocator.h */,
+				B0B5F44B0BD006EC00237B3C /* apr_time.h */,
+				B0B5F44C0BD006EC00237B3C /* apr_arch_threadproc.h */,
+				B0B5F44D0BD006EC00237B3C /* apr_lib.h */,
+				B0B5F44E0BD006EC00237B3C /* apr_user.h */,
+				B0B5F44F0BD006EC00237B3C /* apr_arch_misc.h */,
+				B0B5F4500BD006EC00237B3C /* apr_private.h */,
+				B0B5F4510BD006EC00237B3C /* apr_env.h */,
+				B0B5F4520BD006EC00237B3C /* apr_arch_thread_mutex.h */,
+				B0B5F4530BD006EC00237B3C /* apr_shm.h */,
+				B0B5F4540BD006EC00237B3C /* apr_general.h */,
+				B0B5F4550BD006EC00237B3C /* apr_support.h */,
+				B0B5F4560BD006EC00237B3C /* apr_thread_mutex.h */,
+				B0B5F4570BD006EC00237B3C /* apr_pools.h */,
+				B0B5F4580BD006EC00237B3C /* apr_arch_thread_rwlock.h */,
+				B0B5F4590BD006EC00237B3C /* apr_tables.h */,
+				B0B5F45A0BD006EC00237B3C /* apr_global_mutex.h */,
+				B0B5F45B0BD006EC00237B3C /* apr_arch_shm.h */,
+				B0B5F45C0BD006EC00237B3C /* apr_arch_file_io.h */,
+				B0B5F45D0BD006EC00237B3C /* apr_mmap.h */,
+				B0B5F45E0BD006EC00237B3C /* apr_want.h */,
+				B0B5F45F0BD006EC00237B3C /* apr_arch_dso.h */,
+				B0B5F4600BD006EC00237B3C /* apr_arch_poll_private.h */,
+				B0B5F4610BD006EC00237B3C /* apr_arch_thread_cond.h */,
+				B0B5F4620BD006EC00237B3C /* apr_ring.h */,
+				B0B5F4630BD006EC00237B3C /* apr_arch_internal_time.h */,
+			);
+			name = "APR Headers";
+			sourceTree = "<group>";
+		};
+		C6A0FF2B0290797F04C91782 /* Documentation */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = Documentation;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		D2AAC043055464E500DB518D /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B00B8D160BD003D1007535DA /* sdbm_pair.h in Headers */,
+				B00B8D170BD003D1007535DA /* sdbm_private.h in Headers */,
+				B00B8D180BD003D1007535DA /* sdbm_tune.h in Headers */,
+				B00B8D1B0BD003D1007535DA /* apr_anylock.h in Headers */,
+				B00B8D1C0BD003D1007535DA /* apr_base64.h in Headers */,
+				B00B8D1D0BD003D1007535DA /* apr_buckets.h in Headers */,
+				B00B8D1E0BD003D1007535DA /* apr_date.h in Headers */,
+				B00B8D1F0BD003D1007535DA /* apr_dbd.h in Headers */,
+				B00B8D200BD003D1007535DA /* apr_dbm.h in Headers */,
+				B00B8D210BD003D1007535DA /* apr_hooks.h in Headers */,
+				B00B8D220BD003D1007535DA /* apr_ldap.h in Headers */,
+				B00B8D230BD003D1007535DA /* apr_ldap_init.h in Headers */,
+				B00B8D240BD003D1007535DA /* apr_ldap_option.h in Headers */,
+				B00B8D250BD003D1007535DA /* apr_ldap_url.h in Headers */,
+				B00B8D260BD003D1007535DA /* apr_md4.h in Headers */,
+				B00B8D270BD003D1007535DA /* apr_md5.h in Headers */,
+				B00B8D280BD003D1007535DA /* apr_optional.h in Headers */,
+				B00B8D290BD003D1007535DA /* apr_optional_hooks.h in Headers */,
+				B00B8D2A0BD003D1007535DA /* apr_queue.h in Headers */,
+				B00B8D2B0BD003D1007535DA /* apr_reslist.h in Headers */,
+				B00B8D2C0BD003D1007535DA /* apr_rmm.h in Headers */,
+				B00B8D2D0BD003D1007535DA /* apr_sdbm.h in Headers */,
+				B00B8D2E0BD003D1007535DA /* apr_sha1.h in Headers */,
+				B00B8D2F0BD003D1007535DA /* apr_strmatch.h in Headers */,
+				B00B8D300BD003D1007535DA /* apr_uri.h in Headers */,
+				B00B8D310BD003D1007535DA /* apr_uuid.h in Headers */,
+				B00B8D320BD003D1007535DA /* apr_xlate.h in Headers */,
+				B00B8D330BD003D1007535DA /* apr_xml.h in Headers */,
+				B00B8D340BD003D1007535DA /* apu.h in Headers */,
+				B00B8D350BD003D1007535DA /* apu_version.h in Headers */,
+				B00B8D360BD003D1007535DA /* apu_want.h in Headers */,
+				B00B8D370BD003D1007535DA /* apr_dbd_internal.h in Headers */,
+				B00B8D380BD003D1007535DA /* apr_dbm_private.h in Headers */,
+				B00B8D390BD003D1007535DA /* apu_config.h in Headers */,
+				B00B8D3A0BD003D1007535DA /* apu_select_dbm.h in Headers */,
+				B0B5F4640BD006EC00237B3C /* apr_proc_mutex.h in Headers */,
+				B0B5F4650BD006EC00237B3C /* sha2.h in Headers */,
+				B0B5F4660BD006EC00237B3C /* apr_hash.h in Headers */,
+				B0B5F4670BD006EC00237B3C /* apr_arch_networkio.h in Headers */,
+				B0B5F4680BD006EC00237B3C /* apr_network_io.h in Headers */,
+				B0B5F4690BD006EC00237B3C /* apr_arch_inherit.h in Headers */,
+				B0B5F46A0BD006EC00237B3C /* apr_thread_proc.h in Headers */,
+				B0B5F46B0BD006EC00237B3C /* apr_getopt.h in Headers */,
+				B0B5F46C0BD006EC00237B3C /* apr_thread_rwlock.h in Headers */,
+				B0B5F46D0BD006EC00237B3C /* apr_version.h in Headers */,
+				B0B5F46E0BD006EC00237B3C /* apr_thread_cond.h in Headers */,
+				B0B5F46F0BD006EC00237B3C /* apr_file_info.h in Headers */,
+				B0B5F4700BD006EC00237B3C /* apr.h in Headers */,
+				B0B5F4710BD006EC00237B3C /* apr_atomic.h in Headers */,
+				B0B5F4720BD006EC00237B3C /* apr_fnmatch.h in Headers */,
+				B0B5F4730BD006EC00237B3C /* apr_arch_proc_mutex.h in Headers */,
+				B0B5F4740BD006EC00237B3C /* apr_inherit.h in Headers */,
+				B0B5F4750BD006EC00237B3C /* apr_strings.h in Headers */,
+				B0B5F4760BD006EC00237B3C /* apr_private_common.h in Headers */,
+				B0B5F4770BD006EC00237B3C /* apr_signal.h in Headers */,
+				B0B5F4780BD006EC00237B3C /* apr_random.h in Headers */,
+				B0B5F4790BD006EC00237B3C /* apr_arch_global_mutex.h in Headers */,
+				B0B5F47A0BD006EC00237B3C /* apr_file_io.h in Headers */,
+				B0B5F47B0BD006EC00237B3C /* apr_poll.h in Headers */,
+				B0B5F47C0BD006EC00237B3C /* apr_errno.h in Headers */,
+				B0B5F47D0BD006EC00237B3C /* apr_dso.h in Headers */,
+				B0B5F47E0BD006EC00237B3C /* apr_portable.h in Headers */,
+				B0B5F47F0BD006EC00237B3C /* apr_allocator.h in Headers */,
+				B0B5F4800BD006EC00237B3C /* apr_time.h in Headers */,
+				B0B5F4810BD006EC00237B3C /* apr_arch_threadproc.h in Headers */,
+				B0B5F4820BD006EC00237B3C /* apr_lib.h in Headers */,
+				B0B5F4830BD006EC00237B3C /* apr_user.h in Headers */,
+				B0B5F4840BD006EC00237B3C /* apr_arch_misc.h in Headers */,
+				B0B5F4850BD006EC00237B3C /* apr_private.h in Headers */,
+				B0B5F4860BD006EC00237B3C /* apr_env.h in Headers */,
+				B0B5F4870BD006EC00237B3C /* apr_arch_thread_mutex.h in Headers */,
+				B0B5F4880BD006EC00237B3C /* apr_shm.h in Headers */,
+				B0B5F4890BD006EC00237B3C /* apr_general.h in Headers */,
+				B0B5F48A0BD006EC00237B3C /* apr_support.h in Headers */,
+				B0B5F48B0BD006EC00237B3C /* apr_thread_mutex.h in Headers */,
+				B0B5F48C0BD006EC00237B3C /* apr_pools.h in Headers */,
+				B0B5F48D0BD006EC00237B3C /* apr_arch_thread_rwlock.h in Headers */,
+				B0B5F48E0BD006EC00237B3C /* apr_tables.h in Headers */,
+				B0B5F48F0BD006EC00237B3C /* apr_global_mutex.h in Headers */,
+				B0B5F4900BD006EC00237B3C /* apr_arch_shm.h in Headers */,
+				B0B5F4910BD006EC00237B3C /* apr_arch_file_io.h in Headers */,
+				B0B5F4920BD006EC00237B3C /* apr_mmap.h in Headers */,
+				B0B5F4930BD006EC00237B3C /* apr_want.h in Headers */,
+				B0B5F4940BD006EC00237B3C /* apr_arch_dso.h in Headers */,
+				B0B5F4950BD006EC00237B3C /* apr_arch_poll_private.h in Headers */,
+				B0B5F4960BD006EC00237B3C /* apr_arch_thread_cond.h in Headers */,
+				B0B5F4970BD006EC00237B3C /* apr_ring.h in Headers */,
+				B0B5F4980BD006EC00237B3C /* apr_arch_internal_time.h in Headers */,
+				B070565F0BD00ABB00D257E3 /* expat.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		D2AAC045055464E500DB518D /* apr-util-1.2.12 */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "apr-util-1.2.12" */;
+			buildPhases = (
+				D2AAC043055464E500DB518D /* Headers */,
+				D2AAC044055464E500DB518D /* Sources */,
+				D289987405E68DCB004EDB86 /* Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = "apr-util-1.2.12";
+			productName = "apr-util-1.2.12";
+			productReference = D2AAC046055464E500DB518D /* libapr-util-1.2.12.a */;
+			productType = "com.apple.product-type.library.static";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		08FB7793FE84155DC02AAC07 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "apr-util-1.2.12" */;
+			compatibilityVersion = "Xcode 3.1";
+			developmentRegion = English;
+			hasScannedForEncodings = 1;
+			knownRegions = (
+				English,
+				Japanese,
+				French,
+				German,
+			);
+			mainGroup = 08FB7794FE84155DC02AAC07 /* apr-util-1.2.12 */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				D2AAC045055464E500DB518D /* apr-util-1.2.12 */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+		D2AAC044055464E500DB518D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				B00B8CF70BD003D1007535DA /* apr_brigade.c in Sources */,
+				B00B8CF80BD003D1007535DA /* apr_buckets.c in Sources */,
+				B00B8CF90BD003D1007535DA /* apr_buckets_alloc.c in Sources */,
+				B00B8CFA0BD003D1007535DA /* apr_buckets_eos.c in Sources */,
+				B00B8CFB0BD003D1007535DA /* apr_buckets_file.c in Sources */,
+				B00B8CFC0BD003D1007535DA /* apr_buckets_flush.c in Sources */,
+				B00B8CFD0BD003D1007535DA /* apr_buckets_heap.c in Sources */,
+				B00B8CFE0BD003D1007535DA /* apr_buckets_mmap.c in Sources */,
+				B00B8CFF0BD003D1007535DA /* apr_buckets_pipe.c in Sources */,
+				B00B8D000BD003D1007535DA /* apr_buckets_pool.c in Sources */,
+				B00B8D010BD003D1007535DA /* apr_buckets_refcount.c in Sources */,
+				B00B8D020BD003D1007535DA /* apr_buckets_simple.c in Sources */,
+				B00B8D030BD003D1007535DA /* apr_buckets_socket.c in Sources */,
+				B00B8D040BD003D1007535DA /* apr_md4.c in Sources */,
+				B00B8D050BD003D1007535DA /* apr_md5.c in Sources */,
+				B00B8D060BD003D1007535DA /* apr_sha1.c in Sources */,
+				B00B8D070BD003D1007535DA /* getuuid.c in Sources */,
+				B00B8D080BD003D1007535DA /* uuid.c in Sources */,
+				B00B8D090BD003D1007535DA /* apr_dbd.c in Sources */,
+				B00B8D0A0BD003D1007535DA /* apr_dbd_pgsql.c in Sources */,
+				B00B8D0B0BD003D1007535DA /* apr_dbd_sqlite2.c in Sources */,
+				B00B8D0C0BD003D1007535DA /* apr_dbd_sqlite3.c in Sources */,
+				B00B8D0D0BD003D1007535DA /* apr_dbm.c in Sources */,
+				B00B8D0E0BD003D1007535DA /* apr_dbm_berkeleydb.c in Sources */,
+				B00B8D0F0BD003D1007535DA /* apr_dbm_gdbm.c in Sources */,
+				B00B8D100BD003D1007535DA /* apr_dbm_ndbm.c in Sources */,
+				B00B8D110BD003D1007535DA /* apr_dbm_sdbm.c in Sources */,
+				B00B8D120BD003D1007535DA /* sdbm.c in Sources */,
+				B00B8D130BD003D1007535DA /* sdbm_hash.c in Sources */,
+				B00B8D140BD003D1007535DA /* sdbm_lock.c in Sources */,
+				B00B8D150BD003D1007535DA /* sdbm_pair.c in Sources */,
+				B00B8D190BD003D1007535DA /* apr_base64.c in Sources */,
+				B00B8D1A0BD003D1007535DA /* apr_hooks.c in Sources */,
+				B00B8D3B0BD003D1007535DA /* apr_ldap_init.c in Sources */,
+				B00B8D3C0BD003D1007535DA /* apr_ldap_option.c in Sources */,
+				B00B8D3D0BD003D1007535DA /* apr_ldap_url.c in Sources */,
+				B00B8D3E0BD003D1007535DA /* apr_date.c in Sources */,
+				B00B8D3F0BD003D1007535DA /* apr_queue.c in Sources */,
+				B00B8D400BD003D1007535DA /* apr_reslist.c in Sources */,
+				B00B8D410BD003D1007535DA /* apr_rmm.c in Sources */,
+				B00B8D420BD003D1007535DA /* apu_version.c in Sources */,
+				B00B8D430BD003D1007535DA /* apr_strmatch.c in Sources */,
+				B00B8D5C0BD003D1007535DA /* apr_uri.c in Sources */,
+				B00B8D5D0BD003D1007535DA /* xlate.c in Sources */,
+				B00B8D5E0BD003D1007535DA /* apr_xml.c in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		1DEB91EC08733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				PRODUCT_NAME = "apr-util-1.2.12";
+			};
+			name = Debug;
+		};
+		1DEB91ED08733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				PRODUCT_NAME = "apr-util-1.2.12";
+			};
+			name = Release;
+		};
+		1DEB91F008733DB70010E9CD /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = D720CB740D98139F003AE8EC /* MacConfigExternalDebug.xcconfig */;
+			buildSettings = {
+				GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
+				GCC_SYMBOLS_PRIVATE_EXTERN = YES;
+				HEADER_SEARCH_PATHS = (
+					"../apr-1.2.12",
+					"../sqlite-3.6.23.1",
+				);
+				OTHER_CFLAGS = (
+					"$(inherited)",
+					"-DHAVE_CONFIG_H",
+					"-DDARWIN",
+					"-DSIGPROCMASK_SETS_THREAD_MASK",
+					"-no-cpp-precomp",
+				);
+				PREBINDING = NO;
+			};
+			name = Debug;
+		};
+		1DEB91F108733DB70010E9CD /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = D720CB750D98139F003AE8EC /* MacConfigExternalRelease.xcconfig */;
+			buildSettings = {
+				GCC_INLINES_ARE_PRIVATE_EXTERN = YES;
+				GCC_SYMBOLS_PRIVATE_EXTERN = YES;
+				HEADER_SEARCH_PATHS = (
+					"../apr-1.2.12",
+					"../sqlite-3.6.23.1",
+				);
+				OTHER_CFLAGS = (
+					"$(inherited)",
+					"-DHAVE_CONFIG_H",
+					"-DDARWIN",
+					"-DSIGPROCMASK_SETS_THREAD_MASK",
+					"-no-cpp-precomp",
+				);
+				PREBINDING = NO;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "apr-util-1.2.12" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91EC08733DB70010E9CD /* Debug */,
+				1DEB91ED08733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "apr-util-1.2.12" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				1DEB91F008733DB70010E9CD /* Debug */,
+				1DEB91F108733DB70010E9CD /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
+}
diff --git a/apr-util.pc.in b/apr-util.pc.in
new file mode 100644
index 0000000..9e3cda6
--- /dev/null
+++ b/apr-util.pc.in
@@ -0,0 +1,13 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+APRUTIL_MAJOR_VERSION=@APRUTIL_MAJOR_VERSION@
+includedir=@includedir@
+
+Name: APR Utils
+Description: Companion library for APR
+Version: @APRUTIL_DOTTED_VERSION@
+# assume that apr-util requires libapr of same major version
+Requires: apr-@APRUTIL_MAJOR_VERSION@
+Libs: -L${libdir} -l@APRUTIL_LIBNAME@ @APRUTIL_EXPORT_LIBS@
+Cflags: -I${includedir}
diff --git a/apr-util.spec b/apr-util.spec
new file mode 100644
index 0000000..8087369
--- /dev/null
+++ b/apr-util.spec
@@ -0,0 +1,89 @@
+
+%define apuver 1
+
+Summary: Apache Portable Runtime Utility library
+Name: apr-util
+Version: 1.2.12
+Release: 1
+License: Apache Software License
+Group: System Environment/Libraries
+URL: http://apr.apache.org/
+Source0: %{name}-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
+BuildPrereq: autoconf, libtool, doxygen, apr-devel >= 0:{version}-{release}
+BuildPrereq: openldap-devel, db4-devel, expat-devel
+Conflicts: subversion < 0.20.1-2
+
+%description
+The mission of the Apache Portable Runtime (APR) is to provide a
+free library of C data structures and routines.  This library
+contains additional utility interfaces for APR; including support
+for XML, LDAP, database interfaces, URI parsing and more.
+
+%package devel
+Group: Development/Libraries
+Summary: APR utility library development kit
+Requires: apr-util = %{version}-%{release}, apr-devel
+Requires: openldap-devel, db4-devel, expat-devel
+Conflicts: subversion-devel < 0.20.1-2
+
+%description devel
+This package provides the support files which can be used to 
+build applications using the APR utility library.  The mission 
+of the Apache Portable Runtime (APR) is to provide a free 
+library of C data structures and routines.
+
+%prep
+%setup -q
+
+%build
+%configure --with-apr=%{_prefix} \
+        --includedir=%{_includedir}/apr-%{apuver} \
+        --with-ldap --without-gdbm
+make %{?_smp_mflags} && make dox
+
+%check
+# Run non-interactive tests
+pushd test
+make %{?_smp_mflags} testall CFLAGS=-fno-strict-aliasing
+./testall -v || exit 1
+popd
+
+%install
+rm -rf $RPM_BUILD_ROOT
+make install DESTDIR=$RPM_BUILD_ROOT
+
+# Documentation
+mv docs/dox/html html
+
+# Unpackaged files
+rm -f $RPM_BUILD_ROOT%{_libdir}/aprutil.exp
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%files
+%defattr(-,root,root,-)
+%doc CHANGES LICENSE NOTICE
+%{_libdir}/libaprutil-%{apuver}.so.*
+
+%files devel
+%defattr(-,root,root,-)
+%{_bindir}/apu-%{apuver}-config
+%{_libdir}/libaprutil-%{apuver}.*a
+%{_libdir}/libaprutil-%{apuver}.so
+%{_libdir}/pkgconfig/apr-util-%{apuver}.pc
+%{_includedir}/apr-%{apuver}/*.h
+%doc --parents html
+
+%changelog
+* Tue Jun 22 2004 Graham Leggett <minfrin@sharp.fm> 1.0.0-1
+- update to support v1.0.0 of APR
+                                                                                
+* Tue Jun 22 2004 Graham Leggett <minfrin@sharp.fm> 1.0.0-1
+- derived from Fedora Core apr.spec
+
diff --git a/aprutil.dep b/aprutil.dep
new file mode 100644
index 0000000..69627d2
--- /dev/null
+++ b/aprutil.dep
@@ -0,0 +1,915 @@
+# Microsoft Developer Studio Generated Dependency File, included by aprutil.mak

+

+.\buckets\apr_brigade.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_lib.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_alloc.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_eos.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_file.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_flush.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_heap.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_mmap.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_pipe.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_pool.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_refcount.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_simple.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_socket.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\crypto\apr_md4.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_lib.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_md4.h"\

+	".\include\apr_xlate.h"\

+	".\include\apu.h"\

+	

+

+.\crypto\apr_md5.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_lib.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_md5.h"\

+	".\include\apr_sha1.h"\

+	".\include\apr_xlate.h"\

+	".\include\apu.h"\

+	".\include\private\apu_config.h"\

+	

+

+.\crypto\apr_sha1.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_lib.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_base64.h"\

+	".\include\apr_sha1.h"\

+	".\include\apr_xlate.h"\

+	".\include\apu.h"\

+	

+

+.\crypto\getuuid.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_dso.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_global_mutex.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_portable.h"\

+	"..\apr\include\apr_proc_mutex.h"\

+	"..\apr\include\apr_shm.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_thread_proc.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_md5.h"\

+	".\include\apr_uuid.h"\

+	".\include\apr_xlate.h"\

+	".\include\apu.h"\

+	

+

+.\crypto\uuid.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_lib.h"\

+	".\include\apr_uuid.h"\

+	".\include\apu.h"\

+	

+

+.\dbd\apr_dbd.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_dso.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_hash.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_dbd.h"\

+	".\include\apu.h"\

+	".\include\private\apr_dbd_internal.h"\

+	

+

+.\dbd\apr_dbd_mysql.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_version.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apr_dbd.h"\

+	".\include\apu.h"\

+	".\include\apu_version.h"\

+	".\include\private\apr_dbd_internal.h"\

+	".\include\private\apu_config.h"\

+	

+

+.\dbd\apr_dbd_pgsql.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_dbd.h"\

+	".\include\apu.h"\

+	".\include\private\apr_dbd_internal.h"\

+	".\include\private\apu_config.h"\

+	

+

+.\dbd\apr_dbd_sqlite2.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_dbd.h"\

+	".\include\apu.h"\

+	".\include\private\apr_dbd_internal.h"\

+	

+

+.\dbd\apr_dbd_sqlite3.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_dbd.h"\

+	".\include\apu.h"\

+	".\include\private\apr_dbd_internal.h"\

+	

+

+.\dbm\apr_dbm.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_dbm.h"\

+	".\include\apu.h"\

+	".\include\private\apr_dbm_private.h"\

+	".\include\private\apu_select_dbm.h"\

+	

+

+.\dbm\apr_dbm_berkeleydb.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_dbm.h"\

+	".\include\apu.h"\

+	".\include\apu_want.h"\

+	".\include\private\apr_dbm_private.h"\

+	".\include\private\apu_select_dbm.h"\

+	

+

+.\dbm\apr_dbm_gdbm.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_dbm.h"\

+	".\include\apu.h"\

+	".\include\private\apr_dbm_private.h"\

+	".\include\private\apu_select_dbm.h"\

+	

+

+.\dbm\apr_dbm_sdbm.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_dbm.h"\

+	".\include\apr_sdbm.h"\

+	".\include\apu.h"\

+	".\include\private\apr_dbm_private.h"\

+	".\include\private\apu_select_dbm.h"\

+	

+

+.\encoding\apr_base64.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_base64.h"\

+	".\include\apr_xlate.h"\

+	".\include\apu.h"\

+	

+

+.\hooks\apr_hooks.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_hash.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_hooks.h"\

+	".\include\apr_optional.h"\

+	".\include\apr_optional_hooks.h"\

+	".\include\apu.h"\

+	

+

+.\ldap\apr_ldap_init.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_ldap.h"\

+	".\include\apr_ldap_init.h"\

+	".\include\apr_ldap_option.h"\

+	".\include\apr_ldap_url.h"\

+	".\include\apu.h"\

+	

+

+.\ldap\apr_ldap_option.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_ldap.h"\

+	".\include\apr_ldap_init.h"\

+	".\include\apr_ldap_option.h"\

+	".\include\apr_ldap_url.h"\

+	".\include\apu.h"\

+	

+

+.\ldap\apr_ldap_url.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_ldap.h"\

+	".\include\apr_ldap_init.h"\

+	".\include\apr_ldap_option.h"\

+	".\include\apr_ldap_url.h"\

+	".\include\apu.h"\

+	

+

+.\misc\apr_date.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_lib.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_date.h"\

+	".\include\apu.h"\

+	

+

+.\misc\apr_queue.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_dso.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_global_mutex.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_portable.h"\

+	"..\apr\include\apr_proc_mutex.h"\

+	"..\apr\include\apr_shm.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_cond.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_thread_proc.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_queue.h"\

+	".\include\apu.h"\

+	

+

+.\misc\apr_reslist.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_cond.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_reslist.h"\

+	".\include\apu.h"\

+	

+

+.\misc\apr_rmm.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_lib.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_proc_mutex.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_thread_rwlock.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_anylock.h"\

+	".\include\apr_rmm.h"\

+	".\include\apu.h"\

+	

+

+.\misc\apu_version.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_version.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apu.h"\

+	".\include\apu_version.h"\

+	

+

+.\dbm\sdbm\sdbm.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\dbm\sdbm\sdbm_pair.h"\

+	".\dbm\sdbm\sdbm_private.h"\

+	".\dbm\sdbm\sdbm_tune.h"\

+	".\include\apr_sdbm.h"\

+	".\include\apu.h"\

+	

+

+.\dbm\sdbm\sdbm_hash.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\dbm\sdbm\sdbm_private.h"\

+	".\include\apr_sdbm.h"\

+	".\include\apu.h"\

+	

+

+.\dbm\sdbm\sdbm_lock.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\dbm\sdbm\sdbm_private.h"\

+	".\dbm\sdbm\sdbm_tune.h"\

+	".\include\apr_sdbm.h"\

+	".\include\apu.h"\

+	

+

+.\dbm\sdbm\sdbm_pair.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\dbm\sdbm\sdbm_pair.h"\

+	".\dbm\sdbm\sdbm_private.h"\

+	".\dbm\sdbm\sdbm_tune.h"\

+	".\include\apr_sdbm.h"\

+	".\include\apu.h"\

+	

+

+.\strmatch\apr_strmatch.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_lib.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_strmatch.h"\

+	".\include\apu.h"\

+	

+

+.\uri\apr_uri.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_uri.h"\

+	".\include\apu.h"\

+	

+

+.\xlate\xlate.c : \

+	"..\apr-iconv\include\apr_iconv.h"\

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_dso.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_global_mutex.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_lib.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_portable.h"\

+	"..\apr\include\apr_proc_mutex.h"\

+	"..\apr\include\apr_shm.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_thread_proc.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_xlate.h"\

+	".\include\apu.h"\

+	".\include\private\apu_config.h"\

+	

+

+.\xml\apr_xml.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_xlate.h"\

+	".\include\apr_xml.h"\

+	".\include\apu.h"\

+	".\include\private\apu_config.h"\

+	".\xml\expat\lib\expat.h"\

+	

+

+!IF  "$(CFG)" == "aprutil - Win32 Release"

+

+!ELSEIF  "$(CFG)" == "aprutil - Win32 Debug"

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Release"

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Debug"

+

+!ENDIF 

+

+!IF  "$(CFG)" == "aprutil - Win32 Release"

+

+!ELSEIF  "$(CFG)" == "aprutil - Win32 Debug"

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Release"

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Debug"

+

+!ENDIF 

+

+!IF  "$(CFG)" == "aprutil - Win32 Release"

+

+!ELSEIF  "$(CFG)" == "aprutil - Win32 Debug"

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Release"

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Debug"

+

+!ENDIF 

+

+!IF  "$(CFG)" == "aprutil - Win32 Release"

+

+!ELSEIF  "$(CFG)" == "aprutil - Win32 Debug"

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Release"

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Debug"

+

+!ENDIF 

+

+!IF  "$(CFG)" == "aprutil - Win32 Release"

+

+!ELSEIF  "$(CFG)" == "aprutil - Win32 Debug"

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Release"

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Debug"

+

+!ENDIF 

+

diff --git a/aprutil.dsp b/aprutil.dsp
new file mode 100644
index 0000000..bdad934
--- /dev/null
+++ b/aprutil.dsp
@@ -0,0 +1,746 @@
+# Microsoft Developer Studio Project File - Name="aprutil" - Package Owner=<4>

+# Microsoft Developer Studio Generated Build File, Format Version 6.00

+# ** DO NOT EDIT **

+

+# TARGTYPE "Win32 (x86) Static Library" 0x0104

+

+CFG=aprutil - Win32 Release

+!MESSAGE This is not a valid makefile. To build this project using NMAKE,

+!MESSAGE use the Export Makefile command and run

+!MESSAGE 

+!MESSAGE NMAKE /f "aprutil.mak".

+!MESSAGE 

+!MESSAGE You can specify a configuration when running NMAKE

+!MESSAGE by defining the macro CFG on the command line. For example:

+!MESSAGE 

+!MESSAGE NMAKE /f "aprutil.mak" CFG="aprutil - Win32 Release"

+!MESSAGE 

+!MESSAGE Possible choices for configuration are:

+!MESSAGE 

+!MESSAGE "aprutil - Win32 Release" (based on "Win32 (x86) Static Library")

+!MESSAGE "aprutil - Win32 Debug" (based on "Win32 (x86) Static Library")

+!MESSAGE "aprutil - x64 Release" (based on "Win32 (x86) Static Library")

+!MESSAGE "aprutil - x64 Debug" (based on "Win32 (x86) Static Library")

+!MESSAGE 

+

+# Begin Project

+# PROP AllowPerConfigDependencies 0

+# PROP Scc_ProjName ""

+# PROP Scc_LocalPath ""

+CPP=cl.exe

+RSC=rc.exe

+

+!IF  "$(CFG)" == "aprutil - Win32 Release"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 0

+# PROP BASE Output_Dir "LibR"

+# PROP BASE Intermediate_Dir "LibR"

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 0

+# PROP Output_Dir "LibR"

+# PROP Intermediate_Dir "LibR"

+# PROP Target_Dir ""

+# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c

+# ADD CPP /nologo /MD /W3 /O2 /Oy- /Zi /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "NDEBUG" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "API_DECLARE_STATIC" /D "APU_USE_SDBM" /D "XML_STATIC" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\" /Fd"$(OUTDIR)\aprutil-1" /FD /c

+# ADD BASE RSC /l 0x409 /d "NDEBUG"

+# ADD RSC /l 0x409 /d "NDEBUG"

+BSC32=bscmake.exe

+# ADD BASE BSC32 /nologo

+# ADD BSC32 /nologo

+LIB32=link.exe -lib

+# ADD BASE LIB32 /nologo

+# ADD LIB32 /nologo /out:"LibR\aprutil-1.lib"

+

+!ELSEIF  "$(CFG)" == "aprutil - Win32 Debug"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 1

+# PROP BASE Output_Dir "LibD"

+# PROP BASE Intermediate_Dir "LibD"

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 1

+# PROP Output_Dir "LibD"

+# PROP Intermediate_Dir "LibD"

+# PROP Ignore_Export_Lib 0

+# PROP Target_Dir ""

+# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c

+# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "_DEBUG" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "API_DECLARE_STATIC" /D "APU_USE_SDBM" /D "XML_STATIC" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\" /Fd"$(OUTDIR)\aprutil-1" /FD /c

+# ADD BASE RSC /l 0x409 /d "_DEBUG"

+# ADD RSC /l 0x409 /d "_DEBUG"

+BSC32=bscmake.exe

+# ADD BASE BSC32 /nologo

+# ADD BSC32 /nologo

+LIB32=link.exe -lib

+# ADD BASE LIB32 /nologo

+# ADD LIB32 /nologo /out:"LibD\aprutil-1.lib"

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Release"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 0

+# PROP BASE Output_Dir "x64\LibR"

+# PROP BASE Intermediate_Dir "x64\LibR"

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 0

+# PROP Output_Dir "x64\LibR"

+# PROP Intermediate_Dir "x64\LibR"

+# PROP Target_Dir ""

+# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c

+# ADD CPP /nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "NDEBUG" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "API_DECLARE_STATIC" /D "APU_USE_SDBM" /D "XML_STATIC" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\" /Fd"$(OUTDIR)\aprutil-1" /FD /c

+# ADD BASE RSC /l 0x409 /d "NDEBUG"

+# ADD RSC /l 0x409 /d "NDEBUG"

+BSC32=bscmake.exe

+# ADD BASE BSC32 /nologo

+# ADD BSC32 /nologo

+LIB32=link.exe -lib

+# ADD BASE LIB32 /nologo

+# ADD LIB32 /nologo /out:"x64\LibR\aprutil-1.lib"

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Debug"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 1

+# PROP BASE Output_Dir "x64\LibD"

+# PROP BASE Intermediate_Dir "x64\LibD"

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 1

+# PROP Output_Dir "x64\LibD"

+# PROP Intermediate_Dir "x64\LibD"

+# PROP Ignore_Export_Lib 0

+# PROP Target_Dir ""

+# ADD BASE CPP /nologo /MDd /W3 /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /EHsc /c

+# ADD CPP /nologo /MDd /W3 /Zi /Od /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "_DEBUG" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "API_DECLARE_STATIC" /D "APU_USE_SDBM" /D "XML_STATIC" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\" /Fd"$(OUTDIR)\aprutil-1" /FD /EHsc /c

+# ADD BASE RSC /l 0x409 /d "_DEBUG"

+# ADD RSC /l 0x409 /d "_DEBUG"

+BSC32=bscmake.exe

+# ADD BASE BSC32 /nologo

+# ADD BSC32 /nologo

+LIB32=link.exe -lib

+# ADD BASE LIB32 /nologo

+# ADD LIB32 /nologo /out:"x64\LibD\aprutil-1.lib"

+

+!ENDIF 

+

+# Begin Target

+

+# Name "aprutil - Win32 Release"

+# Name "aprutil - Win32 Debug"

+# Name "aprutil - x64 Release"

+# Name "aprutil - x64 Debug"

+# Begin Group "Source Files"

+

+# PROP Default_Filter ""

+# Begin Group "buckets"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\buckets\apr_brigade.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_alloc.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_eos.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_file.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_flush.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_heap.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_mmap.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_pipe.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_pool.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_refcount.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_simple.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_socket.c

+# End Source File

+# End Group

+# Begin Group "crypto"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\crypto\apr_md4.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\crypto\apr_md5.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\crypto\apr_sha1.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\crypto\getuuid.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\crypto\uuid.c

+# End Source File

+# End Group

+# Begin Group "dbd"

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\dbd\apr_dbd.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbd\apr_dbd_mysql.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbd\apr_dbd_pgsql.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbd\apr_dbd_sqlite2.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbd\apr_dbd_sqlite3.c

+# End Source File

+# End Group

+# Begin Group "dbm"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\dbm\apr_dbm.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbm\apr_dbm_berkeleydb.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbm\apr_dbm_gdbm.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbm\apr_dbm_sdbm.c

+# End Source File

+# End Group

+# Begin Group "encoding"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\encoding\apr_base64.c

+# End Source File

+# End Group

+# Begin Group "hooks"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\hooks\apr_hooks.c

+# End Source File

+# End Group

+# Begin Group "ldap"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\ldap\apr_ldap_init.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\ldap\apr_ldap_url.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\ldap\apr_ldap_option.c

+# End Source File

+# End Group

+# Begin Group "misc"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\misc\apr_date.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\misc\apr_queue.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\misc\apr_reslist.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\misc\apr_rmm.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\misc\apu_version.c

+# End Source File

+# End Group

+# Begin Group "sdbm"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\dbm\sdbm\sdbm.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbm\sdbm\sdbm_hash.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbm\sdbm\sdbm_lock.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbm\sdbm\sdbm_pair.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbm\sdbm\sdbm_pair.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbm\sdbm\sdbm_private.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbm\sdbm\sdbm_tune.h

+# End Source File

+# End Group

+# Begin Group "strmatch"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\strmatch\apr_strmatch.c

+# End Source File

+# End Group

+# Begin Group "uri"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\uri\apr_uri.c

+# End Source File

+# End Group

+# Begin Group "xlate"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\xlate\xlate.c

+# End Source File

+# End Group

+# Begin Group "xml"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\xml\apr_xml.c

+# End Source File

+# End Group

+# End Group

+# Begin Group "Generated Files"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\include\apr_ldap.h.in

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_ldap.hnw

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_ldap.hw

+

+!IF  "$(CFG)" == "aprutil - Win32 Release"

+

+# Begin Custom Build - Creating apr_ldap.h from apr_ldap.hw

+InputPath=.\include\apr_ldap.hw

+

+".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apr_ldap.hw > .\include\apr_ldap.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "aprutil - Win32 Debug"

+

+# Begin Custom Build - Creating apr_ldap.h from apr_ldap.hw

+InputPath=.\include\apr_ldap.hw

+

+".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apr_ldap.hw > .\include\apr_ldap.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Release"

+

+# Begin Custom Build - Creating apr_ldap.h from apr_ldap.hw

+InputPath=.\include\apr_ldap.hw

+

+".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apr_ldap.hw > .\include\apr_ldap.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Debug"

+

+# Begin Custom Build - Creating apr_ldap.h from apr_ldap.hw

+InputPath=.\include\apr_ldap.hw

+

+".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apr_ldap.hw > .\include\apr_ldap.h

+

+# End Custom Build

+

+!ENDIF 

+

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apu.h.in

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apu.hnw

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apu.hw

+

+!IF  "$(CFG)" == "aprutil - Win32 Release"

+

+# Begin Custom Build - Creating apu.h from apu.hw

+InputPath=.\include\apu.hw

+

+".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apu.hw > .\include\apu.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "aprutil - Win32 Debug"

+

+# Begin Custom Build - Creating apu.h from apu.hw

+InputPath=.\include\apu.hw

+

+".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apu.hw > .\include\apu.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Release"

+

+# Begin Custom Build - Creating apu.h from apu.hw

+InputPath=.\include\apu.hw

+

+".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apu.hw > .\include\apu.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Debug"

+

+# Begin Custom Build - Creating apu.h from apu.hw

+InputPath=.\include\apu.hw

+

+".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apu.hw > .\include\apu.h

+

+# End Custom Build

+

+!ENDIF 

+

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\private\apu_config.h.in

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\private\apu_config.hw

+

+!IF  "$(CFG)" == "aprutil - Win32 Release"

+

+# Begin Custom Build - Creating apu_config.h from apu_config.hw

+InputPath=.\include\private\apu_config.hw

+

+".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\private\apu_config.hw > .\include\private\apu_config.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "aprutil - Win32 Debug"

+

+# Begin Custom Build - Creating apu_config.h from apu_config.hw

+InputPath=.\include\private\apu_config.hw

+

+".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\private\apu_config.hw > .\include\private\apu_config.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Release"

+

+# Begin Custom Build - Creating apu_config.h from apu_config.hw

+InputPath=.\include\private\apu_config.hw

+

+".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\private\apu_config.hw > .\include\private\apu_config.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Debug"

+

+# Begin Custom Build - Creating apu_config.h from apu_config.hw

+InputPath=.\include\private\apu_config.hw

+

+".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\private\apu_config.hw > .\include\private\apu_config.h

+

+# End Custom Build

+

+!ENDIF 

+

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\private\apu_select_dbm.h.in

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\private\apu_select_dbm.hw

+

+!IF  "$(CFG)" == "aprutil - Win32 Release"

+

+# Begin Custom Build - Creating apu_select_dbm.h from apu_select_dbm.hw

+InputPath=.\include\private\apu_select_dbm.hw

+

+".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\private\apu_select_dbm.hw > .\include\private\apu_select_dbm.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "aprutil - Win32 Debug"

+

+# Begin Custom Build - Creating apu_select_dbm.h from apu_select_dbm.hw

+InputPath=.\include\private\apu_select_dbm.hw

+

+".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\private\apu_select_dbm.hw > .\include\private\apu_select_dbm.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Release"

+

+# Begin Custom Build - Creating apu_select_dbm.h from apu_select_dbm.hw

+InputPath=.\include\private\apu_select_dbm.hw

+

+".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\private\apu_select_dbm.hw > .\include\private\apu_select_dbm.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Debug"

+

+# Begin Custom Build - Creating apu_select_dbm.h from apu_select_dbm.hw

+InputPath=.\include\private\apu_select_dbm.hw

+

+".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\private\apu_select_dbm.hw > .\include\private\apu_select_dbm.h

+

+# End Custom Build

+

+!ENDIF 

+

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apu_want.h.in

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apu_want.hnw

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apu_want.hw

+

+!IF  "$(CFG)" == "aprutil - Win32 Release"

+

+# Begin Custom Build - Creating apu_want.h from apu_want.hw

+InputPath=.\include\apu_want.hw

+

+".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apu_want.hw > .\include\apu_want.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "aprutil - Win32 Debug"

+

+# Begin Custom Build - Creating apu_want.h from apu_want.hw

+InputPath=.\include\apu_want.hw

+

+".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apu_want.hw > .\include\apu_want.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Release"

+

+# Begin Custom Build - Creating apu_want.h from apu_want.hw

+InputPath=.\include\apu_want.hw

+

+".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apu_want.hw > .\include\apu_want.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "aprutil - x64 Debug"

+

+# Begin Custom Build - Creating apu_want.h from apu_want.hw

+InputPath=.\include\apu_want.hw

+

+".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apu_want.hw > .\include\apu_want.h

+

+# End Custom Build

+

+!ENDIF 

+

+# End Source File

+# End Group

+# Begin Group "Public Header Files"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\include\apr_anylock.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_base64.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_buckets.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_date.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_dbm.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_hooks.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_ldap_url.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_md4.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_md5.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_optional.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_optional_hooks.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_queue.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_reslist.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_rmm.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_sdbm.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_sha1.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_strmatch.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_uri.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_uuid.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_xlate.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_xml.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apu_version.h

+# End Source File

+# End Group

+# End Target

+# End Project

diff --git a/aprutil.dsw b/aprutil.dsw
new file mode 100644
index 0000000..cef17fc
--- /dev/null
+++ b/aprutil.dsw
@@ -0,0 +1,194 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00

+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!

+

+###############################################################################

+

+Project: "apr"="..\apr\apr.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+}}}

+

+###############################################################################

+

+Project: "apr_app"="..\apr\build\apr_app.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name apr

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "apriconv"="..\apr-iconv\apriconv.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name apr

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "aprutil"=".\aprutil.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name apriconv

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name xml

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "libapr"="..\apr\libapr.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+}}}

+

+###############################################################################

+

+Project: "libapr_app"="..\apr\build\libapr_app.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name libapr

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "libapriconv"="..\apr-iconv\libapriconv.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name libapr

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "libapriconv_ccs_modules"="..\apr-iconv\ccs\libapriconv_ccs_modules.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name libapr

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name libapriconv

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "libapriconv_ces_modules"="..\apr-iconv\ces\libapriconv_ces_modules.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name libapr

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name libapriconv

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "libaprutil"=".\libaprutil.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name libapr

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name libapriconv

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name libapriconv_ccs_modules

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name libapriconv_ces_modules

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name xml

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "xml"=".\xml\expat\lib\xml.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+}}}

+

+###############################################################################

+

+Global:

+

+Package=<5>

+{{{

+}}}

+

+Package=<3>

+{{{

+}}}

+

+###############################################################################

+

diff --git a/aprutil.mak b/aprutil.mak
new file mode 100644
index 0000000..bd97e45
--- /dev/null
+++ b/aprutil.mak
@@ -0,0 +1,1346 @@
+# Microsoft Developer Studio Generated NMAKE File, Based on aprutil.dsp
+!IF "$(CFG)" == ""
+CFG=aprutil - Win32 Release
+!MESSAGE No configuration specified. Defaulting to aprutil - Win32 Release.
+!ENDIF 
+
+!IF "$(CFG)" != "aprutil - Win32 Release" && "$(CFG)" != "aprutil - Win32 Debug" && "$(CFG)" != "aprutil - x64 Release" && "$(CFG)" != "aprutil - x64 Debug"
+!MESSAGE Invalid configuration "$(CFG)" specified.
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "aprutil.mak" CFG="aprutil - Win32 Release"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "aprutil - Win32 Release" (based on "Win32 (x86) Static Library")
+!MESSAGE "aprutil - Win32 Debug" (based on "Win32 (x86) Static Library")
+!MESSAGE "aprutil - x64 Release" (based on "Win32 (x86) Static Library")
+!MESSAGE "aprutil - x64 Debug" (based on "Win32 (x86) Static Library")
+!MESSAGE 
+!ERROR An invalid configuration is specified.
+!ENDIF 
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE 
+NULL=nul
+!ENDIF 
+
+!IF  "$(CFG)" == "aprutil - Win32 Release"
+
+OUTDIR=.\LibR
+INTDIR=.\LibR
+# Begin Custom Macros
+OutDir=.\LibR
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0" 
+
+ALL : "$(OUTDIR)\aprutil-1.lib"
+
+!ELSE 
+
+ALL : "xml - Win32 Release" "apriconv - Win32 Release" "$(OUTDIR)\aprutil-1.lib"
+
+!ENDIF 
+
+!IF "$(RECURSE)" == "1" 
+CLEAN :"apriconv - Win32 ReleaseCLEAN" "xml - Win32 ReleaseCLEAN" 
+!ELSE 
+CLEAN :
+!ENDIF 
+	-@erase "$(INTDIR)\apr_base64.obj"
+	-@erase "$(INTDIR)\apr_brigade.obj"
+	-@erase "$(INTDIR)\apr_buckets.obj"
+	-@erase "$(INTDIR)\apr_buckets_alloc.obj"
+	-@erase "$(INTDIR)\apr_buckets_eos.obj"
+	-@erase "$(INTDIR)\apr_buckets_file.obj"
+	-@erase "$(INTDIR)\apr_buckets_flush.obj"
+	-@erase "$(INTDIR)\apr_buckets_heap.obj"
+	-@erase "$(INTDIR)\apr_buckets_mmap.obj"
+	-@erase "$(INTDIR)\apr_buckets_pipe.obj"
+	-@erase "$(INTDIR)\apr_buckets_pool.obj"
+	-@erase "$(INTDIR)\apr_buckets_refcount.obj"
+	-@erase "$(INTDIR)\apr_buckets_simple.obj"
+	-@erase "$(INTDIR)\apr_buckets_socket.obj"
+	-@erase "$(INTDIR)\apr_date.obj"
+	-@erase "$(INTDIR)\apr_dbd.obj"
+	-@erase "$(INTDIR)\apr_dbd_mysql.obj"
+	-@erase "$(INTDIR)\apr_dbd_pgsql.obj"
+	-@erase "$(INTDIR)\apr_dbd_sqlite2.obj"
+	-@erase "$(INTDIR)\apr_dbd_sqlite3.obj"
+	-@erase "$(INTDIR)\apr_dbm.obj"
+	-@erase "$(INTDIR)\apr_dbm_berkeleydb.obj"
+	-@erase "$(INTDIR)\apr_dbm_gdbm.obj"
+	-@erase "$(INTDIR)\apr_dbm_sdbm.obj"
+	-@erase "$(INTDIR)\apr_hooks.obj"
+	-@erase "$(INTDIR)\apr_ldap_init.obj"
+	-@erase "$(INTDIR)\apr_ldap_option.obj"
+	-@erase "$(INTDIR)\apr_ldap_url.obj"
+	-@erase "$(INTDIR)\apr_md4.obj"
+	-@erase "$(INTDIR)\apr_md5.obj"
+	-@erase "$(INTDIR)\apr_queue.obj"
+	-@erase "$(INTDIR)\apr_reslist.obj"
+	-@erase "$(INTDIR)\apr_rmm.obj"
+	-@erase "$(INTDIR)\apr_sha1.obj"
+	-@erase "$(INTDIR)\apr_strmatch.obj"
+	-@erase "$(INTDIR)\apr_uri.obj"
+	-@erase "$(INTDIR)\apr_xml.obj"
+	-@erase "$(INTDIR)\aprutil-1.idb"
+	-@erase "$(INTDIR)\aprutil-1.pdb"
+	-@erase "$(INTDIR)\apu_version.obj"
+	-@erase "$(INTDIR)\getuuid.obj"
+	-@erase "$(INTDIR)\sdbm.obj"
+	-@erase "$(INTDIR)\sdbm_hash.obj"
+	-@erase "$(INTDIR)\sdbm_lock.obj"
+	-@erase "$(INTDIR)\sdbm_pair.obj"
+	-@erase "$(INTDIR)\uuid.obj"
+	-@erase "$(INTDIR)\xlate.obj"
+	-@erase "$(OUTDIR)\aprutil-1.lib"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "NDEBUG" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "API_DECLARE_STATIC" /D "APU_USE_SDBM" /D "XML_STATIC" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\aprutil-1" /FD /c 
+
+.c{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.c{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\aprutil.bsc" 
+BSC32_SBRS= \
+	
+LIB32=link.exe -lib
+LIB32_FLAGS=/nologo /out:"$(OUTDIR)\aprutil-1.lib" 
+LIB32_OBJS= \
+	"$(INTDIR)\apr_brigade.obj" \
+	"$(INTDIR)\apr_buckets.obj" \
+	"$(INTDIR)\apr_buckets_alloc.obj" \
+	"$(INTDIR)\apr_buckets_eos.obj" \
+	"$(INTDIR)\apr_buckets_file.obj" \
+	"$(INTDIR)\apr_buckets_flush.obj" \
+	"$(INTDIR)\apr_buckets_heap.obj" \
+	"$(INTDIR)\apr_buckets_mmap.obj" \
+	"$(INTDIR)\apr_buckets_pipe.obj" \
+	"$(INTDIR)\apr_buckets_pool.obj" \
+	"$(INTDIR)\apr_buckets_refcount.obj" \
+	"$(INTDIR)\apr_buckets_simple.obj" \
+	"$(INTDIR)\apr_buckets_socket.obj" \
+	"$(INTDIR)\apr_md4.obj" \
+	"$(INTDIR)\apr_md5.obj" \
+	"$(INTDIR)\apr_sha1.obj" \
+	"$(INTDIR)\getuuid.obj" \
+	"$(INTDIR)\uuid.obj" \
+	"$(INTDIR)\apr_dbd.obj" \
+	"$(INTDIR)\apr_dbd_mysql.obj" \
+	"$(INTDIR)\apr_dbd_pgsql.obj" \
+	"$(INTDIR)\apr_dbd_sqlite2.obj" \
+	"$(INTDIR)\apr_dbd_sqlite3.obj" \
+	"$(INTDIR)\apr_dbm.obj" \
+	"$(INTDIR)\apr_dbm_berkeleydb.obj" \
+	"$(INTDIR)\apr_dbm_gdbm.obj" \
+	"$(INTDIR)\apr_dbm_sdbm.obj" \
+	"$(INTDIR)\apr_base64.obj" \
+	"$(INTDIR)\apr_hooks.obj" \
+	"$(INTDIR)\apr_ldap_init.obj" \
+	"$(INTDIR)\apr_ldap_url.obj" \
+	"$(INTDIR)\apr_ldap_option.obj" \
+	"$(INTDIR)\apr_date.obj" \
+	"$(INTDIR)\apr_queue.obj" \
+	"$(INTDIR)\apr_reslist.obj" \
+	"$(INTDIR)\apr_rmm.obj" \
+	"$(INTDIR)\apu_version.obj" \
+	"$(INTDIR)\sdbm.obj" \
+	"$(INTDIR)\sdbm_hash.obj" \
+	"$(INTDIR)\sdbm_lock.obj" \
+	"$(INTDIR)\sdbm_pair.obj" \
+	"$(INTDIR)\apr_strmatch.obj" \
+	"$(INTDIR)\apr_uri.obj" \
+	"$(INTDIR)\xlate.obj" \
+	"$(INTDIR)\apr_xml.obj" \
+	"..\apr-iconv\LibR\apriconv-1.lib" \
+	".\xml\expat\lib\LibR\xml.lib"
+
+"$(OUTDIR)\aprutil-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+    $(LIB32) @<<
+  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+<<
+
+!ELSEIF  "$(CFG)" == "aprutil - Win32 Debug"
+
+OUTDIR=.\LibD
+INTDIR=.\LibD
+# Begin Custom Macros
+OutDir=.\LibD
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0" 
+
+ALL : ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\aprutil-1.lib"
+
+!ELSE 
+
+ALL : "xml - Win32 Debug" "apriconv - Win32 Debug" ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\aprutil-1.lib"
+
+!ENDIF 
+
+!IF "$(RECURSE)" == "1" 
+CLEAN :"apriconv - Win32 DebugCLEAN" "xml - Win32 DebugCLEAN" 
+!ELSE 
+CLEAN :
+!ENDIF 
+	-@erase "$(INTDIR)\apr_base64.obj"
+	-@erase "$(INTDIR)\apr_brigade.obj"
+	-@erase "$(INTDIR)\apr_buckets.obj"
+	-@erase "$(INTDIR)\apr_buckets_alloc.obj"
+	-@erase "$(INTDIR)\apr_buckets_eos.obj"
+	-@erase "$(INTDIR)\apr_buckets_file.obj"
+	-@erase "$(INTDIR)\apr_buckets_flush.obj"
+	-@erase "$(INTDIR)\apr_buckets_heap.obj"
+	-@erase "$(INTDIR)\apr_buckets_mmap.obj"
+	-@erase "$(INTDIR)\apr_buckets_pipe.obj"
+	-@erase "$(INTDIR)\apr_buckets_pool.obj"
+	-@erase "$(INTDIR)\apr_buckets_refcount.obj"
+	-@erase "$(INTDIR)\apr_buckets_simple.obj"
+	-@erase "$(INTDIR)\apr_buckets_socket.obj"
+	-@erase "$(INTDIR)\apr_date.obj"
+	-@erase "$(INTDIR)\apr_dbd.obj"
+	-@erase "$(INTDIR)\apr_dbd_mysql.obj"
+	-@erase "$(INTDIR)\apr_dbd_pgsql.obj"
+	-@erase "$(INTDIR)\apr_dbd_sqlite2.obj"
+	-@erase "$(INTDIR)\apr_dbd_sqlite3.obj"
+	-@erase "$(INTDIR)\apr_dbm.obj"
+	-@erase "$(INTDIR)\apr_dbm_berkeleydb.obj"
+	-@erase "$(INTDIR)\apr_dbm_gdbm.obj"
+	-@erase "$(INTDIR)\apr_dbm_sdbm.obj"
+	-@erase "$(INTDIR)\apr_hooks.obj"
+	-@erase "$(INTDIR)\apr_ldap_init.obj"
+	-@erase "$(INTDIR)\apr_ldap_option.obj"
+	-@erase "$(INTDIR)\apr_ldap_url.obj"
+	-@erase "$(INTDIR)\apr_md4.obj"
+	-@erase "$(INTDIR)\apr_md5.obj"
+	-@erase "$(INTDIR)\apr_queue.obj"
+	-@erase "$(INTDIR)\apr_reslist.obj"
+	-@erase "$(INTDIR)\apr_rmm.obj"
+	-@erase "$(INTDIR)\apr_sha1.obj"
+	-@erase "$(INTDIR)\apr_strmatch.obj"
+	-@erase "$(INTDIR)\apr_uri.obj"
+	-@erase "$(INTDIR)\apr_xml.obj"
+	-@erase "$(INTDIR)\aprutil-1.idb"
+	-@erase "$(INTDIR)\aprutil-1.pdb"
+	-@erase "$(INTDIR)\apu_version.obj"
+	-@erase "$(INTDIR)\getuuid.obj"
+	-@erase "$(INTDIR)\sdbm.obj"
+	-@erase "$(INTDIR)\sdbm_hash.obj"
+	-@erase "$(INTDIR)\sdbm_lock.obj"
+	-@erase "$(INTDIR)\sdbm_pair.obj"
+	-@erase "$(INTDIR)\uuid.obj"
+	-@erase "$(INTDIR)\xlate.obj"
+	-@erase "$(OUTDIR)\aprutil-1.lib"
+	-@erase ".\include\apr_ldap.h"
+	-@erase ".\include\apu.h"
+	-@erase ".\include\apu_want.h"
+	-@erase ".\include\private\apu_config.h"
+	-@erase ".\include\private\apu_select_dbm.h"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "_DEBUG" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "API_DECLARE_STATIC" /D "APU_USE_SDBM" /D "XML_STATIC" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\aprutil-1" /FD /EHsc /c 
+
+.c{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.c{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\aprutil.bsc" 
+BSC32_SBRS= \
+	
+LIB32=link.exe -lib
+LIB32_FLAGS=/nologo /out:"$(OUTDIR)\aprutil-1.lib" 
+LIB32_OBJS= \
+	"$(INTDIR)\apr_brigade.obj" \
+	"$(INTDIR)\apr_buckets.obj" \
+	"$(INTDIR)\apr_buckets_alloc.obj" \
+	"$(INTDIR)\apr_buckets_eos.obj" \
+	"$(INTDIR)\apr_buckets_file.obj" \
+	"$(INTDIR)\apr_buckets_flush.obj" \
+	"$(INTDIR)\apr_buckets_heap.obj" \
+	"$(INTDIR)\apr_buckets_mmap.obj" \
+	"$(INTDIR)\apr_buckets_pipe.obj" \
+	"$(INTDIR)\apr_buckets_pool.obj" \
+	"$(INTDIR)\apr_buckets_refcount.obj" \
+	"$(INTDIR)\apr_buckets_simple.obj" \
+	"$(INTDIR)\apr_buckets_socket.obj" \
+	"$(INTDIR)\apr_md4.obj" \
+	"$(INTDIR)\apr_md5.obj" \
+	"$(INTDIR)\apr_sha1.obj" \
+	"$(INTDIR)\getuuid.obj" \
+	"$(INTDIR)\uuid.obj" \
+	"$(INTDIR)\apr_dbd.obj" \
+	"$(INTDIR)\apr_dbd_mysql.obj" \
+	"$(INTDIR)\apr_dbd_pgsql.obj" \
+	"$(INTDIR)\apr_dbd_sqlite2.obj" \
+	"$(INTDIR)\apr_dbd_sqlite3.obj" \
+	"$(INTDIR)\apr_dbm.obj" \
+	"$(INTDIR)\apr_dbm_berkeleydb.obj" \
+	"$(INTDIR)\apr_dbm_gdbm.obj" \
+	"$(INTDIR)\apr_dbm_sdbm.obj" \
+	"$(INTDIR)\apr_base64.obj" \
+	"$(INTDIR)\apr_hooks.obj" \
+	"$(INTDIR)\apr_ldap_init.obj" \
+	"$(INTDIR)\apr_ldap_url.obj" \
+	"$(INTDIR)\apr_ldap_option.obj" \
+	"$(INTDIR)\apr_date.obj" \
+	"$(INTDIR)\apr_queue.obj" \
+	"$(INTDIR)\apr_reslist.obj" \
+	"$(INTDIR)\apr_rmm.obj" \
+	"$(INTDIR)\apu_version.obj" \
+	"$(INTDIR)\sdbm.obj" \
+	"$(INTDIR)\sdbm_hash.obj" \
+	"$(INTDIR)\sdbm_lock.obj" \
+	"$(INTDIR)\sdbm_pair.obj" \
+	"$(INTDIR)\apr_strmatch.obj" \
+	"$(INTDIR)\apr_uri.obj" \
+	"$(INTDIR)\xlate.obj" \
+	"$(INTDIR)\apr_xml.obj" \
+	"..\apr-iconv\LibD\apriconv-1.lib" \
+	".\xml\expat\lib\LibD\xml.lib"
+
+"$(OUTDIR)\aprutil-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+    $(LIB32) @<<
+  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+<<
+
+!ELSEIF  "$(CFG)" == "aprutil - x64 Release"
+
+OUTDIR=.\x64\LibR
+INTDIR=.\x64\LibR
+# Begin Custom Macros
+OutDir=.\x64\LibR
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0" 
+
+ALL : ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\aprutil-1.lib"
+
+!ELSE 
+
+ALL : "xml - x64 Release" "apriconv - x64 Release" ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\aprutil-1.lib"
+
+!ENDIF 
+
+!IF "$(RECURSE)" == "1" 
+CLEAN :"apriconv - x64 ReleaseCLEAN" "xml - x64 ReleaseCLEAN" 
+!ELSE 
+CLEAN :
+!ENDIF 
+	-@erase "$(INTDIR)\apr_base64.obj"
+	-@erase "$(INTDIR)\apr_brigade.obj"
+	-@erase "$(INTDIR)\apr_buckets.obj"
+	-@erase "$(INTDIR)\apr_buckets_alloc.obj"
+	-@erase "$(INTDIR)\apr_buckets_eos.obj"
+	-@erase "$(INTDIR)\apr_buckets_file.obj"
+	-@erase "$(INTDIR)\apr_buckets_flush.obj"
+	-@erase "$(INTDIR)\apr_buckets_heap.obj"
+	-@erase "$(INTDIR)\apr_buckets_mmap.obj"
+	-@erase "$(INTDIR)\apr_buckets_pipe.obj"
+	-@erase "$(INTDIR)\apr_buckets_pool.obj"
+	-@erase "$(INTDIR)\apr_buckets_refcount.obj"
+	-@erase "$(INTDIR)\apr_buckets_simple.obj"
+	-@erase "$(INTDIR)\apr_buckets_socket.obj"
+	-@erase "$(INTDIR)\apr_date.obj"
+	-@erase "$(INTDIR)\apr_dbd.obj"
+	-@erase "$(INTDIR)\apr_dbd_mysql.obj"
+	-@erase "$(INTDIR)\apr_dbd_pgsql.obj"
+	-@erase "$(INTDIR)\apr_dbd_sqlite2.obj"
+	-@erase "$(INTDIR)\apr_dbd_sqlite3.obj"
+	-@erase "$(INTDIR)\apr_dbm.obj"
+	-@erase "$(INTDIR)\apr_dbm_berkeleydb.obj"
+	-@erase "$(INTDIR)\apr_dbm_gdbm.obj"
+	-@erase "$(INTDIR)\apr_dbm_sdbm.obj"
+	-@erase "$(INTDIR)\apr_hooks.obj"
+	-@erase "$(INTDIR)\apr_ldap_init.obj"
+	-@erase "$(INTDIR)\apr_ldap_option.obj"
+	-@erase "$(INTDIR)\apr_ldap_url.obj"
+	-@erase "$(INTDIR)\apr_md4.obj"
+	-@erase "$(INTDIR)\apr_md5.obj"
+	-@erase "$(INTDIR)\apr_queue.obj"
+	-@erase "$(INTDIR)\apr_reslist.obj"
+	-@erase "$(INTDIR)\apr_rmm.obj"
+	-@erase "$(INTDIR)\apr_sha1.obj"
+	-@erase "$(INTDIR)\apr_strmatch.obj"
+	-@erase "$(INTDIR)\apr_uri.obj"
+	-@erase "$(INTDIR)\apr_xml.obj"
+	-@erase "$(INTDIR)\aprutil-1.idb"
+	-@erase "$(INTDIR)\aprutil-1.pdb"
+	-@erase "$(INTDIR)\apu_version.obj"
+	-@erase "$(INTDIR)\getuuid.obj"
+	-@erase "$(INTDIR)\sdbm.obj"
+	-@erase "$(INTDIR)\sdbm_hash.obj"
+	-@erase "$(INTDIR)\sdbm_lock.obj"
+	-@erase "$(INTDIR)\sdbm_pair.obj"
+	-@erase "$(INTDIR)\uuid.obj"
+	-@erase "$(INTDIR)\xlate.obj"
+	-@erase "$(OUTDIR)\aprutil-1.lib"
+	-@erase ".\include\apr_ldap.h"
+	-@erase ".\include\apu.h"
+	-@erase ".\include\apu_want.h"
+	-@erase ".\include\private\apu_config.h"
+	-@erase ".\include\private\apu_select_dbm.h"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "NDEBUG" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "API_DECLARE_STATIC" /D "APU_USE_SDBM" /D "XML_STATIC" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\aprutil-1" /FD /c 
+
+.c{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.c{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\aprutil.bsc" 
+BSC32_SBRS= \
+	
+LIB32=link.exe -lib
+LIB32_FLAGS=/nologo /out:"$(OUTDIR)\aprutil-1.lib" 
+LIB32_OBJS= \
+	"$(INTDIR)\apr_brigade.obj" \
+	"$(INTDIR)\apr_buckets.obj" \
+	"$(INTDIR)\apr_buckets_alloc.obj" \
+	"$(INTDIR)\apr_buckets_eos.obj" \
+	"$(INTDIR)\apr_buckets_file.obj" \
+	"$(INTDIR)\apr_buckets_flush.obj" \
+	"$(INTDIR)\apr_buckets_heap.obj" \
+	"$(INTDIR)\apr_buckets_mmap.obj" \
+	"$(INTDIR)\apr_buckets_pipe.obj" \
+	"$(INTDIR)\apr_buckets_pool.obj" \
+	"$(INTDIR)\apr_buckets_refcount.obj" \
+	"$(INTDIR)\apr_buckets_simple.obj" \
+	"$(INTDIR)\apr_buckets_socket.obj" \
+	"$(INTDIR)\apr_md4.obj" \
+	"$(INTDIR)\apr_md5.obj" \
+	"$(INTDIR)\apr_sha1.obj" \
+	"$(INTDIR)\getuuid.obj" \
+	"$(INTDIR)\uuid.obj" \
+	"$(INTDIR)\apr_dbd.obj" \
+	"$(INTDIR)\apr_dbd_mysql.obj" \
+	"$(INTDIR)\apr_dbd_pgsql.obj" \
+	"$(INTDIR)\apr_dbd_sqlite2.obj" \
+	"$(INTDIR)\apr_dbd_sqlite3.obj" \
+	"$(INTDIR)\apr_dbm.obj" \
+	"$(INTDIR)\apr_dbm_berkeleydb.obj" \
+	"$(INTDIR)\apr_dbm_gdbm.obj" \
+	"$(INTDIR)\apr_dbm_sdbm.obj" \
+	"$(INTDIR)\apr_base64.obj" \
+	"$(INTDIR)\apr_hooks.obj" \
+	"$(INTDIR)\apr_ldap_init.obj" \
+	"$(INTDIR)\apr_ldap_url.obj" \
+	"$(INTDIR)\apr_ldap_option.obj" \
+	"$(INTDIR)\apr_date.obj" \
+	"$(INTDIR)\apr_queue.obj" \
+	"$(INTDIR)\apr_reslist.obj" \
+	"$(INTDIR)\apr_rmm.obj" \
+	"$(INTDIR)\apu_version.obj" \
+	"$(INTDIR)\sdbm.obj" \
+	"$(INTDIR)\sdbm_hash.obj" \
+	"$(INTDIR)\sdbm_lock.obj" \
+	"$(INTDIR)\sdbm_pair.obj" \
+	"$(INTDIR)\apr_strmatch.obj" \
+	"$(INTDIR)\apr_uri.obj" \
+	"$(INTDIR)\xlate.obj" \
+	"$(INTDIR)\apr_xml.obj" \
+	"..\apr-iconv\x64\LibR\apriconv-1.lib" \
+	".\xml\expat\lib\x64\LibR\xml.lib"
+
+"$(OUTDIR)\aprutil-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+    $(LIB32) @<<
+  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+<<
+
+!ELSEIF  "$(CFG)" == "aprutil - x64 Debug"
+
+OUTDIR=.\x64\LibD
+INTDIR=.\x64\LibD
+# Begin Custom Macros
+OutDir=.\x64\LibD
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0" 
+
+ALL : ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\aprutil-1.lib"
+
+!ELSE 
+
+ALL : "xml - x64 Debug" "apriconv - x64 Debug" ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\aprutil-1.lib"
+
+!ENDIF 
+
+!IF "$(RECURSE)" == "1" 
+CLEAN :"apriconv - x64 DebugCLEAN" "xml - x64 DebugCLEAN" 
+!ELSE 
+CLEAN :
+!ENDIF 
+	-@erase "$(INTDIR)\apr_base64.obj"
+	-@erase "$(INTDIR)\apr_brigade.obj"
+	-@erase "$(INTDIR)\apr_buckets.obj"
+	-@erase "$(INTDIR)\apr_buckets_alloc.obj"
+	-@erase "$(INTDIR)\apr_buckets_eos.obj"
+	-@erase "$(INTDIR)\apr_buckets_file.obj"
+	-@erase "$(INTDIR)\apr_buckets_flush.obj"
+	-@erase "$(INTDIR)\apr_buckets_heap.obj"
+	-@erase "$(INTDIR)\apr_buckets_mmap.obj"
+	-@erase "$(INTDIR)\apr_buckets_pipe.obj"
+	-@erase "$(INTDIR)\apr_buckets_pool.obj"
+	-@erase "$(INTDIR)\apr_buckets_refcount.obj"
+	-@erase "$(INTDIR)\apr_buckets_simple.obj"
+	-@erase "$(INTDIR)\apr_buckets_socket.obj"
+	-@erase "$(INTDIR)\apr_date.obj"
+	-@erase "$(INTDIR)\apr_dbd.obj"
+	-@erase "$(INTDIR)\apr_dbd_mysql.obj"
+	-@erase "$(INTDIR)\apr_dbd_pgsql.obj"
+	-@erase "$(INTDIR)\apr_dbd_sqlite2.obj"
+	-@erase "$(INTDIR)\apr_dbd_sqlite3.obj"
+	-@erase "$(INTDIR)\apr_dbm.obj"
+	-@erase "$(INTDIR)\apr_dbm_berkeleydb.obj"
+	-@erase "$(INTDIR)\apr_dbm_gdbm.obj"
+	-@erase "$(INTDIR)\apr_dbm_sdbm.obj"
+	-@erase "$(INTDIR)\apr_hooks.obj"
+	-@erase "$(INTDIR)\apr_ldap_init.obj"
+	-@erase "$(INTDIR)\apr_ldap_option.obj"
+	-@erase "$(INTDIR)\apr_ldap_url.obj"
+	-@erase "$(INTDIR)\apr_md4.obj"
+	-@erase "$(INTDIR)\apr_md5.obj"
+	-@erase "$(INTDIR)\apr_queue.obj"
+	-@erase "$(INTDIR)\apr_reslist.obj"
+	-@erase "$(INTDIR)\apr_rmm.obj"
+	-@erase "$(INTDIR)\apr_sha1.obj"
+	-@erase "$(INTDIR)\apr_strmatch.obj"
+	-@erase "$(INTDIR)\apr_uri.obj"
+	-@erase "$(INTDIR)\apr_xml.obj"
+	-@erase "$(INTDIR)\aprutil-1.idb"
+	-@erase "$(INTDIR)\aprutil-1.pdb"
+	-@erase "$(INTDIR)\apu_version.obj"
+	-@erase "$(INTDIR)\getuuid.obj"
+	-@erase "$(INTDIR)\sdbm.obj"
+	-@erase "$(INTDIR)\sdbm_hash.obj"
+	-@erase "$(INTDIR)\sdbm_lock.obj"
+	-@erase "$(INTDIR)\sdbm_pair.obj"
+	-@erase "$(INTDIR)\uuid.obj"
+	-@erase "$(INTDIR)\xlate.obj"
+	-@erase "$(OUTDIR)\aprutil-1.lib"
+	-@erase ".\include\apr_ldap.h"
+	-@erase ".\include\apu.h"
+	-@erase ".\include\apu_want.h"
+	-@erase ".\include\private\apu_config.h"
+	-@erase ".\include\private\apu_select_dbm.h"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "_DEBUG" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "API_DECLARE_STATIC" /D "APU_USE_SDBM" /D "XML_STATIC" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\aprutil-1" /FD /EHsc /c 
+
+.c{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.c{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\aprutil.bsc" 
+BSC32_SBRS= \
+	
+LIB32=link.exe -lib
+LIB32_FLAGS=/nologo /out:"$(OUTDIR)\aprutil-1.lib" 
+LIB32_OBJS= \
+	"$(INTDIR)\apr_brigade.obj" \
+	"$(INTDIR)\apr_buckets.obj" \
+	"$(INTDIR)\apr_buckets_alloc.obj" \
+	"$(INTDIR)\apr_buckets_eos.obj" \
+	"$(INTDIR)\apr_buckets_file.obj" \
+	"$(INTDIR)\apr_buckets_flush.obj" \
+	"$(INTDIR)\apr_buckets_heap.obj" \
+	"$(INTDIR)\apr_buckets_mmap.obj" \
+	"$(INTDIR)\apr_buckets_pipe.obj" \
+	"$(INTDIR)\apr_buckets_pool.obj" \
+	"$(INTDIR)\apr_buckets_refcount.obj" \
+	"$(INTDIR)\apr_buckets_simple.obj" \
+	"$(INTDIR)\apr_buckets_socket.obj" \
+	"$(INTDIR)\apr_md4.obj" \
+	"$(INTDIR)\apr_md5.obj" \
+	"$(INTDIR)\apr_sha1.obj" \
+	"$(INTDIR)\getuuid.obj" \
+	"$(INTDIR)\uuid.obj" \
+	"$(INTDIR)\apr_dbd.obj" \
+	"$(INTDIR)\apr_dbd_mysql.obj" \
+	"$(INTDIR)\apr_dbd_pgsql.obj" \
+	"$(INTDIR)\apr_dbd_sqlite2.obj" \
+	"$(INTDIR)\apr_dbd_sqlite3.obj" \
+	"$(INTDIR)\apr_dbm.obj" \
+	"$(INTDIR)\apr_dbm_berkeleydb.obj" \
+	"$(INTDIR)\apr_dbm_gdbm.obj" \
+	"$(INTDIR)\apr_dbm_sdbm.obj" \
+	"$(INTDIR)\apr_base64.obj" \
+	"$(INTDIR)\apr_hooks.obj" \
+	"$(INTDIR)\apr_ldap_init.obj" \
+	"$(INTDIR)\apr_ldap_url.obj" \
+	"$(INTDIR)\apr_ldap_option.obj" \
+	"$(INTDIR)\apr_date.obj" \
+	"$(INTDIR)\apr_queue.obj" \
+	"$(INTDIR)\apr_reslist.obj" \
+	"$(INTDIR)\apr_rmm.obj" \
+	"$(INTDIR)\apu_version.obj" \
+	"$(INTDIR)\sdbm.obj" \
+	"$(INTDIR)\sdbm_hash.obj" \
+	"$(INTDIR)\sdbm_lock.obj" \
+	"$(INTDIR)\sdbm_pair.obj" \
+	"$(INTDIR)\apr_strmatch.obj" \
+	"$(INTDIR)\apr_uri.obj" \
+	"$(INTDIR)\xlate.obj" \
+	"$(INTDIR)\apr_xml.obj" \
+	"..\apr-iconv\x64\LibD\apriconv-1.lib" \
+	".\xml\expat\lib\x64\LibD\xml.lib"
+
+"$(OUTDIR)\aprutil-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+    $(LIB32) @<<
+  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+<<
+
+!ENDIF 
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("aprutil.dep")
+!INCLUDE "aprutil.dep"
+!ELSE 
+!MESSAGE Warning: cannot find "aprutil.dep"
+!ENDIF 
+!ENDIF 
+
+
+!IF "$(CFG)" == "aprutil - Win32 Release" || "$(CFG)" == "aprutil - Win32 Debug" || "$(CFG)" == "aprutil - x64 Release" || "$(CFG)" == "aprutil - x64 Debug"
+SOURCE=.\buckets\apr_brigade.c
+
+"$(INTDIR)\apr_brigade.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets.c
+
+"$(INTDIR)\apr_buckets.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_alloc.c
+
+"$(INTDIR)\apr_buckets_alloc.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_eos.c
+
+"$(INTDIR)\apr_buckets_eos.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_file.c
+
+"$(INTDIR)\apr_buckets_file.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_flush.c
+
+"$(INTDIR)\apr_buckets_flush.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_heap.c
+
+"$(INTDIR)\apr_buckets_heap.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_mmap.c
+
+"$(INTDIR)\apr_buckets_mmap.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_pipe.c
+
+"$(INTDIR)\apr_buckets_pipe.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_pool.c
+
+"$(INTDIR)\apr_buckets_pool.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_refcount.c
+
+"$(INTDIR)\apr_buckets_refcount.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_simple.c
+
+"$(INTDIR)\apr_buckets_simple.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_socket.c
+
+"$(INTDIR)\apr_buckets_socket.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\crypto\apr_md4.c
+
+"$(INTDIR)\apr_md4.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\crypto\apr_md5.c
+
+"$(INTDIR)\apr_md5.obj" : $(SOURCE) "$(INTDIR)" ".\include\private\apu_config.h" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\crypto\apr_sha1.c
+
+"$(INTDIR)\apr_sha1.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\crypto\getuuid.c
+
+"$(INTDIR)\getuuid.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\crypto\uuid.c
+
+"$(INTDIR)\uuid.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbd\apr_dbd.c
+
+"$(INTDIR)\apr_dbd.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbd\apr_dbd_mysql.c
+
+"$(INTDIR)\apr_dbd_mysql.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_config.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbd\apr_dbd_pgsql.c
+
+"$(INTDIR)\apr_dbd_pgsql.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_config.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbd\apr_dbd_sqlite2.c
+
+"$(INTDIR)\apr_dbd_sqlite2.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbd\apr_dbd_sqlite3.c
+
+"$(INTDIR)\apr_dbd_sqlite3.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbm\apr_dbm.c
+
+"$(INTDIR)\apr_dbm.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_select_dbm.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbm\apr_dbm_berkeleydb.c
+
+"$(INTDIR)\apr_dbm_berkeleydb.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu_want.h" ".\include\apu.h" ".\include\private\apu_select_dbm.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbm\apr_dbm_gdbm.c
+
+"$(INTDIR)\apr_dbm_gdbm.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_select_dbm.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbm\apr_dbm_sdbm.c
+
+"$(INTDIR)\apr_dbm_sdbm.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_select_dbm.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\encoding\apr_base64.c
+
+"$(INTDIR)\apr_base64.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\hooks\apr_hooks.c
+
+"$(INTDIR)\apr_hooks.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\ldap\apr_ldap_init.c
+
+"$(INTDIR)\apr_ldap_init.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\apr_ldap.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\ldap\apr_ldap_option.c
+
+"$(INTDIR)\apr_ldap_option.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\apr_ldap.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\ldap\apr_ldap_url.c
+
+"$(INTDIR)\apr_ldap_url.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\apr_ldap.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\apr_date.c
+
+"$(INTDIR)\apr_date.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\apr_queue.c
+
+"$(INTDIR)\apr_queue.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\apr_reslist.c
+
+"$(INTDIR)\apr_reslist.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\apr_rmm.c
+
+"$(INTDIR)\apr_rmm.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\apu_version.c
+
+"$(INTDIR)\apu_version.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbm\sdbm\sdbm.c
+
+"$(INTDIR)\sdbm.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbm\sdbm\sdbm_hash.c
+
+"$(INTDIR)\sdbm_hash.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbm\sdbm\sdbm_lock.c
+
+"$(INTDIR)\sdbm_lock.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbm\sdbm\sdbm_pair.c
+
+"$(INTDIR)\sdbm_pair.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\strmatch\apr_strmatch.c
+
+"$(INTDIR)\apr_strmatch.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\uri\apr_uri.c
+
+"$(INTDIR)\apr_uri.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\xlate\xlate.c
+
+"$(INTDIR)\xlate.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_config.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\xml\apr_xml.c
+
+"$(INTDIR)\apr_xml.obj" : $(SOURCE) "$(INTDIR)" ".\include\private\apu_config.h" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\include\apr_ldap.hw
+
+!IF  "$(CFG)" == "aprutil - Win32 Release"
+
+InputPath=.\include\apr_ldap.hw
+
+".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apr_ldap.hw > .\include\apr_ldap.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "aprutil - Win32 Debug"
+
+InputPath=.\include\apr_ldap.hw
+
+".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apr_ldap.hw > .\include\apr_ldap.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "aprutil - x64 Release"
+
+InputPath=.\include\apr_ldap.hw
+
+".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apr_ldap.hw > .\include\apr_ldap.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "aprutil - x64 Debug"
+
+InputPath=.\include\apr_ldap.hw
+
+".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apr_ldap.hw > .\include\apr_ldap.h
+<< 
+	
+
+!ENDIF 
+
+SOURCE=.\include\apu.hw
+
+!IF  "$(CFG)" == "aprutil - Win32 Release"
+
+InputPath=.\include\apu.hw
+
+".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apu.hw > .\include\apu.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "aprutil - Win32 Debug"
+
+InputPath=.\include\apu.hw
+
+".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apu.hw > .\include\apu.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "aprutil - x64 Release"
+
+InputPath=.\include\apu.hw
+
+".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apu.hw > .\include\apu.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "aprutil - x64 Debug"
+
+InputPath=.\include\apu.hw
+
+".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apu.hw > .\include\apu.h
+<< 
+	
+
+!ENDIF 
+
+SOURCE=.\include\private\apu_config.hw
+
+!IF  "$(CFG)" == "aprutil - Win32 Release"
+
+InputPath=.\include\private\apu_config.hw
+
+".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\private\apu_config.hw > .\include\private\apu_config.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "aprutil - Win32 Debug"
+
+InputPath=.\include\private\apu_config.hw
+
+".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\private\apu_config.hw > .\include\private\apu_config.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "aprutil - x64 Release"
+
+InputPath=.\include\private\apu_config.hw
+
+".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\private\apu_config.hw > .\include\private\apu_config.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "aprutil - x64 Debug"
+
+InputPath=.\include\private\apu_config.hw
+
+".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\private\apu_config.hw > .\include\private\apu_config.h
+<< 
+	
+
+!ENDIF 
+
+SOURCE=.\include\private\apu_select_dbm.hw
+
+!IF  "$(CFG)" == "aprutil - Win32 Release"
+
+InputPath=.\include\private\apu_select_dbm.hw
+
+".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\private\apu_select_dbm.hw > .\include\private\apu_select_dbm.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "aprutil - Win32 Debug"
+
+InputPath=.\include\private\apu_select_dbm.hw
+
+".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\private\apu_select_dbm.hw > .\include\private\apu_select_dbm.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "aprutil - x64 Release"
+
+InputPath=.\include\private\apu_select_dbm.hw
+
+".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\private\apu_select_dbm.hw > .\include\private\apu_select_dbm.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "aprutil - x64 Debug"
+
+InputPath=.\include\private\apu_select_dbm.hw
+
+".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\private\apu_select_dbm.hw > .\include\private\apu_select_dbm.h
+<< 
+	
+
+!ENDIF 
+
+SOURCE=.\include\apu_want.hw
+
+!IF  "$(CFG)" == "aprutil - Win32 Release"
+
+InputPath=.\include\apu_want.hw
+
+".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apu_want.hw > .\include\apu_want.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "aprutil - Win32 Debug"
+
+InputPath=.\include\apu_want.hw
+
+".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apu_want.hw > .\include\apu_want.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "aprutil - x64 Release"
+
+InputPath=.\include\apu_want.hw
+
+".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apu_want.hw > .\include\apu_want.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "aprutil - x64 Debug"
+
+InputPath=.\include\apu_want.hw
+
+".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apu_want.hw > .\include\apu_want.h
+<< 
+	
+
+!ENDIF 
+
+!IF  "$(CFG)" == "aprutil - Win32 Release"
+
+"apriconv - Win32 Release" : 
+   cd ".\..\apr-iconv"
+   $(MAKE) /$(MAKEFLAGS) /F ".\apriconv.mak" CFG="apriconv - Win32 Release" 
+   cd "..\apr-util"
+
+"apriconv - Win32 ReleaseCLEAN" : 
+   cd ".\..\apr-iconv"
+   $(MAKE) /$(MAKEFLAGS) /F ".\apriconv.mak" CFG="apriconv - Win32 Release" RECURSE=1 CLEAN 
+   cd "..\apr-util"
+
+!ELSEIF  "$(CFG)" == "aprutil - Win32 Debug"
+
+"apriconv - Win32 Debug" : 
+   cd ".\..\apr-iconv"
+   $(MAKE) /$(MAKEFLAGS) /F ".\apriconv.mak" CFG="apriconv - Win32 Debug" 
+   cd "..\apr-util"
+
+"apriconv - Win32 DebugCLEAN" : 
+   cd ".\..\apr-iconv"
+   $(MAKE) /$(MAKEFLAGS) /F ".\apriconv.mak" CFG="apriconv - Win32 Debug" RECURSE=1 CLEAN 
+   cd "..\apr-util"
+
+!ELSEIF  "$(CFG)" == "aprutil - x64 Release"
+
+"apriconv - x64 Release" : 
+   cd ".\..\apr-iconv"
+   $(MAKE) /$(MAKEFLAGS) /F ".\apriconv.mak" CFG="apriconv - x64 Release" 
+   cd "..\apr-util"
+
+"apriconv - x64 ReleaseCLEAN" : 
+   cd ".\..\apr-iconv"
+   $(MAKE) /$(MAKEFLAGS) /F ".\apriconv.mak" CFG="apriconv - x64 Release" RECURSE=1 CLEAN 
+   cd "..\apr-util"
+
+!ELSEIF  "$(CFG)" == "aprutil - x64 Debug"
+
+"apriconv - x64 Debug" : 
+   cd ".\..\apr-iconv"
+   $(MAKE) /$(MAKEFLAGS) /F ".\apriconv.mak" CFG="apriconv - x64 Debug" 
+   cd "..\apr-util"
+
+"apriconv - x64 DebugCLEAN" : 
+   cd ".\..\apr-iconv"
+   $(MAKE) /$(MAKEFLAGS) /F ".\apriconv.mak" CFG="apriconv - x64 Debug" RECURSE=1 CLEAN 
+   cd "..\apr-util"
+
+!ENDIF 
+
+!IF  "$(CFG)" == "aprutil - Win32 Release"
+
+"xml - Win32 Release" : 
+   cd ".\xml\expat\lib"
+   $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - Win32 Release" 
+   cd "..\..\.."
+
+"xml - Win32 ReleaseCLEAN" : 
+   cd ".\xml\expat\lib"
+   $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - Win32 Release" RECURSE=1 CLEAN 
+   cd "..\..\.."
+
+!ELSEIF  "$(CFG)" == "aprutil - Win32 Debug"
+
+"xml - Win32 Debug" : 
+   cd ".\xml\expat\lib"
+   $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - Win32 Debug" 
+   cd "..\..\.."
+
+"xml - Win32 DebugCLEAN" : 
+   cd ".\xml\expat\lib"
+   $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - Win32 Debug" RECURSE=1 CLEAN 
+   cd "..\..\.."
+
+!ELSEIF  "$(CFG)" == "aprutil - x64 Release"
+
+"xml - x64 Release" : 
+   cd ".\xml\expat\lib"
+   $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - x64 Release" 
+   cd "..\..\.."
+
+"xml - x64 ReleaseCLEAN" : 
+   cd ".\xml\expat\lib"
+   $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - x64 Release" RECURSE=1 CLEAN 
+   cd "..\..\.."
+
+!ELSEIF  "$(CFG)" == "aprutil - x64 Debug"
+
+"xml - x64 Debug" : 
+   cd ".\xml\expat\lib"
+   $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - x64 Debug" 
+   cd "..\..\.."
+
+"xml - x64 DebugCLEAN" : 
+   cd ".\xml\expat\lib"
+   $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - x64 Debug" RECURSE=1 CLEAN 
+   cd "..\..\.."
+
+!ENDIF 
+
+
+!ENDIF 
+
diff --git a/aprutil.vcproj b/aprutil.vcproj
new file mode 100644
index 0000000..e96568f
--- /dev/null
+++ b/aprutil.vcproj
@@ -0,0 +1,2198 @@
+<?xml version="1.0" encoding="Windows-1252"?>

+<VisualStudioProject

+	ProjectType="Visual C++"

+	Version="9.00"

+	Name="aprutil"

+	ProjectGUID="{1C2CE484-B333-446A-8E62-AAE42AC54D53}"

+	RootNamespace="aprutil"

+	TargetFrameworkVersion="131072"

+	>

+	<Platforms>

+		<Platform

+			Name="Win32"

+		/>

+	</Platforms>

+	<ToolFiles>

+	</ToolFiles>

+	<Configurations>

+		<Configuration

+			Name="Release|Win32"

+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"

+			IntermediateDirectory="$(ConfigurationName)"

+			ConfigurationType="4"

+			InheritedPropertySheets="$(SolutionDir)..\..\third_party\Win32ConfigExternal$(ConfigurationName).vsprops"

+			UseOfMFC="0"

+			ATLMinimizesCRunTimeLibraryUsage="false"

+			>

+			<Tool

+				Name="VCPreBuildEventTool"

+			/>

+			<Tool

+				Name="VCCustomBuildTool"

+			/>

+			<Tool

+				Name="VCXMLDataGeneratorTool"

+			/>

+			<Tool

+				Name="VCWebServiceProxyGeneratorTool"

+			/>

+			<Tool

+				Name="VCMIDLTool"

+			/>

+			<Tool

+				Name="VCCLCompilerTool"

+				Optimization="2"

+				AdditionalIncludeDirectories="./include;&quot;../apr-1.2.12/include&quot;;./include/private;&quot;../apr-iconv/include&quot;;./dbm/sdbm;&quot;$(ProjectDir)..\expat\lib&quot;"

+				PreprocessorDefinitions="NDEBUG;APR_DECLARE_STATIC;APU_DECLARE_STATIC;API_DECLARE_STATIC;APU_USE_SDBM;XML_STATIC;WIN32;_WINDOWS"

+				StringPooling="true"

+				RuntimeLibrary="2"

+				PrecompiledHeaderFile=""

+			/>

+			<Tool

+				Name="VCManagedResourceCompilerTool"

+			/>

+			<Tool

+				Name="VCResourceCompilerTool"

+				PreprocessorDefinitions="NDEBUG"

+				Culture="1033"

+			/>

+			<Tool

+				Name="VCPreLinkEventTool"

+			/>

+			<Tool

+				Name="VCLibrarianTool"

+			/>

+			<Tool

+				Name="VCALinkTool"

+			/>

+			<Tool

+				Name="VCXDCMakeTool"

+			/>

+			<Tool

+				Name="VCBscMakeTool"

+				SuppressStartupBanner="true"

+			/>

+			<Tool

+				Name="VCFxCopTool"

+			/>

+			<Tool

+				Name="VCPostBuildEventTool"

+			/>

+		</Configuration>

+		<Configuration

+			Name="Debug|Win32"

+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"

+			IntermediateDirectory="$(ConfigurationName)"

+			ConfigurationType="4"

+			InheritedPropertySheets="$(SolutionDir)..\..\third_party\Win32ConfigExternal$(ConfigurationName).vsprops"

+			UseOfMFC="0"

+			ATLMinimizesCRunTimeLibraryUsage="false"

+			>

+			<Tool

+				Name="VCPreBuildEventTool"

+			/>

+			<Tool

+				Name="VCCustomBuildTool"

+			/>

+			<Tool

+				Name="VCXMLDataGeneratorTool"

+			/>

+			<Tool

+				Name="VCWebServiceProxyGeneratorTool"

+			/>

+			<Tool

+				Name="VCMIDLTool"

+			/>

+			<Tool

+				Name="VCCLCompilerTool"

+				AdditionalOptions="/EHsc "

+				AdditionalIncludeDirectories="./include;&quot;../apr-1.2.12/include&quot;;./include/private;&quot;../apr-iconv/include&quot;;./dbm/sdbm;&quot;$(ProjectDir)..\expat\lib&quot;"

+				PreprocessorDefinitions="_DEBUG;APR_DECLARE_STATIC;APU_DECLARE_STATIC;API_DECLARE_STATIC;APU_USE_SDBM;XML_STATIC;WIN32;_WINDOWS"

+				RuntimeLibrary="3"

+				PrecompiledHeaderFile=""

+			/>

+			<Tool

+				Name="VCManagedResourceCompilerTool"

+			/>

+			<Tool

+				Name="VCResourceCompilerTool"

+				PreprocessorDefinitions="_DEBUG"

+				Culture="1033"

+			/>

+			<Tool

+				Name="VCPreLinkEventTool"

+			/>

+			<Tool

+				Name="VCLibrarianTool"

+			/>

+			<Tool

+				Name="VCALinkTool"

+			/>

+			<Tool

+				Name="VCXDCMakeTool"

+			/>

+			<Tool

+				Name="VCBscMakeTool"

+				SuppressStartupBanner="true"

+			/>

+			<Tool

+				Name="VCFxCopTool"

+			/>

+			<Tool

+				Name="VCPostBuildEventTool"

+			/>

+		</Configuration>

+	</Configurations>

+	<References>

+	</References>

+	<Files>

+		<Filter

+			Name="Source Files"

+			>

+			<Filter

+				Name="buckets"

+				>

+				<File

+					RelativePath="buckets\apr_brigade.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="buckets\apr_buckets.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="buckets\apr_buckets_alloc.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="buckets\apr_buckets_eos.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="buckets\apr_buckets_file.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="buckets\apr_buckets_flush.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="buckets\apr_buckets_heap.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="buckets\apr_buckets_mmap.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="buckets\apr_buckets_pipe.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="buckets\apr_buckets_pool.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="buckets\apr_buckets_refcount.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="buckets\apr_buckets_simple.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="buckets\apr_buckets_socket.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+			</Filter>

+			<Filter

+				Name="crypto"

+				>

+				<File

+					RelativePath="crypto\apr_md4.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="crypto\apr_md5.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="crypto\apr_sha1.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="crypto\getuuid.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="crypto\uuid.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+			</Filter>

+			<Filter

+				Name="dbd"

+				>

+				<File

+					RelativePath="dbd\apr_dbd.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="dbd\apr_dbd_mysql.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="dbd\apr_dbd_pgsql.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="dbd\apr_dbd_sqlite2.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="dbd\apr_dbd_sqlite3.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+			</Filter>

+			<Filter

+				Name="dbm"

+				>

+				<File

+					RelativePath="dbm\apr_dbm.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="dbm\apr_dbm_berkeleydb.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="dbm\apr_dbm_gdbm.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="dbm\apr_dbm_sdbm.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+			</Filter>

+			<Filter

+				Name="encoding"

+				>

+				<File

+					RelativePath="encoding\apr_base64.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+			</Filter>

+			<Filter

+				Name="hooks"

+				>

+				<File

+					RelativePath="hooks\apr_hooks.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+			</Filter>

+			<Filter

+				Name="ldap"

+				>

+				<File

+					RelativePath="ldap\apr_ldap_init.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="ldap\apr_ldap_option.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="ldap\apr_ldap_url.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+			</Filter>

+			<Filter

+				Name="misc"

+				>

+				<File

+					RelativePath="misc\apr_date.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="misc\apr_queue.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="misc\apr_reslist.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="misc\apr_rmm.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="misc\apu_version.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+			</Filter>

+			<Filter

+				Name="sdbm"

+				>

+				<File

+					RelativePath="dbm\sdbm\sdbm.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="dbm\sdbm\sdbm_hash.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="dbm\sdbm\sdbm_lock.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="dbm\sdbm\sdbm_pair.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+				<File

+					RelativePath="dbm\sdbm\sdbm_pair.h"

+					>

+				</File>

+				<File

+					RelativePath="dbm\sdbm\sdbm_private.h"

+					>

+				</File>

+				<File

+					RelativePath="dbm\sdbm\sdbm_tune.h"

+					>

+				</File>

+			</Filter>

+			<Filter

+				Name="strmatch"

+				>

+				<File

+					RelativePath="strmatch\apr_strmatch.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+			</Filter>

+			<Filter

+				Name="uri"

+				>

+				<File

+					RelativePath="uri\apr_uri.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+			</Filter>

+			<Filter

+				Name="xlate"

+				>

+				<File

+					RelativePath="xlate\xlate.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+			</Filter>

+			<Filter

+				Name="xml"

+				>

+				<File

+					RelativePath="xml\apr_xml.c"

+					>

+					<FileConfiguration

+						Name="Release|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|Win32"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Release|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+					<FileConfiguration

+						Name="Debug|x64"

+						>

+						<Tool

+							Name="VCCLCompilerTool"

+							AdditionalIncludeDirectories=""

+							PreprocessorDefinitions=""

+						/>

+					</FileConfiguration>

+				</File>

+			</Filter>

+		</Filter>

+		<Filter

+			Name="Generated Files"

+			>

+			<File

+				RelativePath="include\apr_ldap.h.in"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_ldap.hnw"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_ldap.hw"

+				>

+				<FileConfiguration

+					Name="Release|x64"

+				/>

+				<FileConfiguration

+					Name="Debug|x64"

+				/>

+			</File>

+			<File

+				RelativePath="include\apu.h.in"

+				>

+			</File>

+			<File

+				RelativePath="include\apu.hnw"

+				>

+			</File>

+			<File

+				RelativePath="include\apu.hw"

+				>

+				<FileConfiguration

+					Name="Release|x64"

+				/>

+				<FileConfiguration

+					Name="Debug|x64"

+				/>

+			</File>

+			<File

+				RelativePath="include\private\apu_config.h.in"

+				>

+			</File>

+			<File

+				RelativePath="include\private\apu_config.hw"

+				>

+				<FileConfiguration

+					Name="Release|x64"

+				/>

+				<FileConfiguration

+					Name="Debug|x64"

+				/>

+			</File>

+			<File

+				RelativePath="include\private\apu_select_dbm.h.in"

+				>

+			</File>

+			<File

+				RelativePath="include\private\apu_select_dbm.hw"

+				>

+				<FileConfiguration

+					Name="Release|x64"

+				/>

+				<FileConfiguration

+					Name="Debug|x64"

+				/>

+			</File>

+			<File

+				RelativePath="include\apu_want.h.in"

+				>

+			</File>

+			<File

+				RelativePath="include\apu_want.hnw"

+				>

+			</File>

+			<File

+				RelativePath="include\apu_want.hw"

+				>

+				<FileConfiguration

+					Name="Release|x64"

+				/>

+				<FileConfiguration

+					Name="Debug|x64"

+				/>

+			</File>

+		</Filter>

+		<Filter

+			Name="Public Header Files"

+			>

+			<File

+				RelativePath="include\apr_anylock.h"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_base64.h"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_buckets.h"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_date.h"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_dbm.h"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_hooks.h"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_ldap_url.h"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_md4.h"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_md5.h"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_optional.h"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_optional_hooks.h"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_queue.h"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_reslist.h"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_rmm.h"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_sdbm.h"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_sha1.h"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_strmatch.h"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_uri.h"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_uuid.h"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_xlate.h"

+				>

+			</File>

+			<File

+				RelativePath="include\apr_xml.h"

+				>

+			</File>

+			<File

+				RelativePath="include\apu_version.h"

+				>

+			</File>

+		</Filter>

+	</Files>

+	<Globals>

+	</Globals>

+</VisualStudioProject>

diff --git a/apu-config.in b/apu-config.in
new file mode 100644
index 0000000..cb28dc2
--- /dev/null
+++ b/apu-config.in
@@ -0,0 +1,207 @@
+#!/bin/sh
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# APR-util script designed to allow easy command line access to APR-util
+# configuration parameters.
+
+APRUTIL_MAJOR_VERSION="@APRUTIL_MAJOR_VERSION@"
+APRUTIL_DOTTED_VERSION="@APRUTIL_DOTTED_VERSION@"
+
+prefix="@prefix@"
+exec_prefix="@exec_prefix@"
+bindir="@bindir@"
+libdir="@libdir@"
+includedir="@includedir@"
+
+LIBS="@APRUTIL_EXPORT_LIBS@"
+INCLUDES="@APRUTIL_INCLUDES@"
+LDFLAGS="@APRUTIL_LDFLAGS@"
+
+APRUTIL_LIBNAME="@APRUTIL_LIBNAME@"
+
+APU_SOURCE_DIR="@abs_srcdir@"
+APU_BUILD_DIR="@abs_builddir@"
+APR_XML_EXPAT_OLD="@APR_XML_EXPAT_OLD@"
+APU_DB_VERSION="@apu_db_version@"
+
+# NOTE: the following line is modified during 'make install': alter with care!
+location=@APU_CONFIG_LOCATION@
+
+show_usage()
+{
+    cat << EOF
+Usage: apu-$APRUTIL_MAJOR_VERSION-config [OPTION]
+
+Known values for OPTION are:
+  --prefix[=DIR]    change prefix to DIR
+  --bindir          print location where binaries are installed
+  --includes        print include information
+  --includedir      print location where headers are installed
+  --ldflags         print linker flags
+  --libs            print library information
+  --srcdir          print APR-util source directory
+  --link-ld         print link switch(es) for linking to APR-util
+  --link-libtool    print the libtool inputs for linking to APR-util
+  --apu-la-file     print the path to the .la file, if available
+  --old-expat       indicate if APR-util was built against an old expat
+  --db-version      print the DB version
+  --version         print APR-util's version as a dotted triple
+  --help            print this help
+
+When linking with libtool, an application should do something like:
+  APU_LIBS="\`apu-$APRUTIL_MAJOR_VERSION-config --link-libtool --libs\`"
+or when linking directly:
+  APU_LIBS="\`apu-$APRUTIL_MAJOR_VERSION-config --link-ld --libs\`"
+
+An application should use the results of --includes, and --ldflags in
+their build process.
+EOF
+}
+
+if test $# -eq 0; then
+    show_usage
+    exit 1
+fi
+
+if test "$location" = "installed"; then
+    LA_FILE="$libdir/lib${APRUTIL_LIBNAME}.la"
+
+    LIBS=`echo "$LIBS" | sed -e "s $APU_BUILD_DIR/xml/expat $prefix g" -e "s $prefix/lib/libexpat.la -lexpat g"`
+    LDFLAGS=`echo "$LDFLAGS" | sed -e "s $APU_BUILD_DIR/xml/expat $prefix g"`
+    INCLUDES=`echo "$INCLUDES" | sed -e "s $APU_BUILD_DIR/xml/expat $prefix g" -e "s -I$prefix/lib  g"`
+else
+    LA_FILE="$APU_BUILD_DIR/lib${APRUTIL_LIBNAME}.la"
+fi
+
+flags=""
+
+while test $# -gt 0; do
+    # Normalize the prefix.
+    case "$1" in
+    -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+    *) optarg= ;;
+    esac
+
+    case "$1" in
+    # It is possible for the user to override our prefix.
+    --prefix=*)
+    prefix=$optarg
+    ;;
+    --prefix)
+    echo $prefix
+    exit 0
+    ;;
+    --bindir)
+    echo $bindir
+    exit 0
+    ;;
+    --libs)
+    flags="$flags $LIBS"
+    ;;
+    --includedir)
+    if test "$location" = "installed"; then
+        flags="$includedir"
+    elif test "$location" = "source"; then
+        flags="$APU_SOURCE_DIR/include"
+    else
+        # this is for VPATH builds
+        flags="$APU_BUILD_DIR/include $APU_SOURCE_DIR/include"
+    fi
+    echo $flags
+    exit 0
+    ;;
+    --includes)
+    if test "$location" = "installed"; then
+        flags="$flags -I$includedir $INCLUDES"
+    elif test "$location" = "source"; then
+        flags="$flags -I$APU_SOURCE_DIR/include $INCLUDES"
+    else
+        # this is for VPATH builds
+        flags="$flags -I$APU_BUILD_DIR/include -I$APU_SOURCE_DIR/include $INCLUDES"
+    fi
+    ;;
+    --ldflags)
+    flags="$flags $LDFLAGS"
+    ;;
+    --srcdir)
+    echo $APU_SOURCE_DIR
+    exit 0
+    ;;
+    --version)
+    echo $APRUTIL_DOTTED_VERSION
+    exit 0
+    ;;
+    --link-ld)
+    if test "$location" = "installed"; then
+        ### avoid using -L if libdir is a "standard" location like /usr/lib
+        flags="$flags -L$libdir -l$APRUTIL_LIBNAME"
+    else
+        flags="$flags -L$APU_BUILD_DIR -l$APRUTIL_LIBNAME"
+    fi
+    ;;
+    --link-libtool)
+    # If the LA_FILE exists where we think it should be, use it.  If we're
+    # installed and the LA_FILE does not exist, assume to use -L/-l
+    # (the LA_FILE may not have been installed).  If we're building ourselves,
+    # we'll assume that at some point the .la file be created.
+    if test -f "$LA_FILE"; then
+        flags="$flags $LA_FILE"
+    elif test "$location" = "installed"; then
+        ### avoid using -L if libdir is a "standard" location like /usr/lib
+        # Since the user is specifying they are linking with libtool, we
+        # *know* that -R will be recognized by libtool.
+        flags="$flags -L$libdir -R$libdir -l$APRUTIL_LIBNAME"
+    else
+        flags="$flags $LA_FILE"
+    fi
+    ;;
+    --apu-la-file)
+    if test -f "$LA_FILE"; then
+        flags="$flags $LA_FILE"
+    fi
+    ;;
+    --old-expat)
+    if test ! -n "$APR_XML_EXPAT_OLD"; then
+        echo "no"
+    else
+        echo "$APR_XML_EXPAT_OLD"
+    fi
+    exit 0
+    ;;
+    --db-version)
+    echo $APU_DB_VERSION
+    exit 0
+    ;;
+    --help)
+    show_usage
+    exit 0
+    ;;
+    *)
+    show_usage
+    exit 1
+    ;;
+    esac
+
+    # Next please.
+    shift
+done
+
+if test -n "$flags"; then
+  echo "$flags"
+fi
+
+exit 0
diff --git a/buckets/apr_brigade.c b/buckets/apr_brigade.c
new file mode 100644
index 0000000..b5d938a
--- /dev/null
+++ b/buckets/apr_brigade.c
@@ -0,0 +1,714 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr.h"
+#include "apr_lib.h"
+#include "apr_strings.h"
+#include "apr_pools.h"
+#include "apr_tables.h"
+#include "apr_buckets.h"
+#include "apr_errno.h"
+#define APR_WANT_MEMFUNC
+#define APR_WANT_STRFUNC
+#include "apr_want.h"
+
+#if APR_HAVE_SYS_UIO_H
+#include <sys/uio.h>
+#endif
+
+/* TODO: ~((apr_size_t)0) appears to be the best way to quickly 
+ * represent  MAX_APR_SIZE_T for any CPU we support.  Move this
+ * out as APR_MAX_SIZE_T to our public headers...
+ */
+#define MAX_APR_SIZE_T (~((apr_size_t)0))
+
+static apr_status_t brigade_cleanup(void *data) 
+{
+    return apr_brigade_cleanup(data);
+}
+
+APU_DECLARE(apr_status_t) apr_brigade_cleanup(void *data)
+{
+    apr_bucket_brigade *b = data;
+    apr_bucket *e;
+
+    while (!APR_BRIGADE_EMPTY(b)) {
+        e = APR_BRIGADE_FIRST(b);
+        apr_bucket_delete(e);
+    }
+    /* We don't need to free(bb) because it's allocated from a pool. */
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_status_t) apr_brigade_destroy(apr_bucket_brigade *b)
+{
+    apr_pool_cleanup_kill(b->p, b, brigade_cleanup);
+    return apr_brigade_cleanup(b);
+}
+
+APU_DECLARE(apr_bucket_brigade *) apr_brigade_create(apr_pool_t *p,
+                                                     apr_bucket_alloc_t *list)
+{
+    apr_bucket_brigade *b;
+
+    b = apr_palloc(p, sizeof(*b));
+    b->p = p;
+    b->bucket_alloc = list;
+
+    APR_RING_INIT(&b->list, apr_bucket, link);
+
+    apr_pool_cleanup_register(b->p, b, brigade_cleanup, apr_pool_cleanup_null);
+    return b;
+}
+
+APU_DECLARE(apr_bucket_brigade *) apr_brigade_split(apr_bucket_brigade *b,
+                                                    apr_bucket *e)
+{
+    apr_bucket_brigade *a;
+    apr_bucket *f;
+
+    a = apr_brigade_create(b->p, b->bucket_alloc);
+    /* Return an empty brigade if there is nothing left in 
+     * the first brigade to split off 
+     */
+    if (e != APR_BRIGADE_SENTINEL(b)) {
+        f = APR_RING_LAST(&b->list);
+        APR_RING_UNSPLICE(e, f, link);
+        APR_RING_SPLICE_HEAD(&a->list, e, f, apr_bucket, link);
+    }
+
+    APR_BRIGADE_CHECK_CONSISTENCY(a);
+    APR_BRIGADE_CHECK_CONSISTENCY(b);
+
+    return a;
+}
+
+APU_DECLARE(apr_status_t) apr_brigade_partition(apr_bucket_brigade *b,
+                                                apr_off_t point,
+                                                apr_bucket **after_point)
+{
+    apr_bucket *e;
+    const char *s;
+    apr_size_t len;
+    apr_status_t rv;
+
+    if (point < 0) {
+        /* this could cause weird (not necessarily SEGV) things to happen */
+        return APR_EINVAL;
+    }
+    if (point == 0) {
+        *after_point = APR_BRIGADE_FIRST(b);
+        return APR_SUCCESS;
+    }
+
+    APR_BRIGADE_CHECK_CONSISTENCY(b);
+
+    for (e = APR_BRIGADE_FIRST(b);
+         e != APR_BRIGADE_SENTINEL(b);
+         e = APR_BUCKET_NEXT(e))
+    {
+        /* For an unknown length bucket, while 'point' is beyond the possible
+         * size contained in apr_size_t, read and continue...
+         */
+        if ((e->length == (apr_size_t)(-1)) && (point > MAX_APR_SIZE_T)) {
+            /* point is too far out to simply split this bucket,
+             * we must fix this bucket's size and keep going... */
+            rv = apr_bucket_read(e, &s, &len, APR_BLOCK_READ);
+            if (rv != APR_SUCCESS) {
+                *after_point = e;
+                return rv;
+            }
+        }
+        else if (((apr_size_t)point < e->length) || (e->length == (apr_size_t)(-1))) {
+            /* We already consumed buckets where point is beyond 
+             * our interest ( point > MAX_APR_SIZE_T ), above.
+             * Here point falls between 0 and MAX_APR_SIZE_T 
+             * and is within this bucket, or this bucket's len
+             * is undefined, so now we are ready to split it.
+             * First try to split the bucket natively... */
+            if ((rv = apr_bucket_split(e, (apr_size_t)point)) 
+                    != APR_ENOTIMPL) {
+                *after_point = APR_BUCKET_NEXT(e);
+                return rv;
+            }
+
+            /* if the bucket cannot be split, we must read from it,
+             * changing its type to one that can be split */
+            rv = apr_bucket_read(e, &s, &len, APR_BLOCK_READ);
+            if (rv != APR_SUCCESS) {
+                *after_point = e;
+                return rv;
+            }
+
+            /* this assumes that len == e->length, which is okay because e
+             * might have been morphed by the apr_bucket_read() above, but
+             * if it was, the length would have been adjusted appropriately */
+            if ((apr_size_t)point < e->length) {
+                rv = apr_bucket_split(e, (apr_size_t)point);
+                *after_point = APR_BUCKET_NEXT(e);
+                return rv;
+            }
+        }
+        if (point == e->length) {
+            *after_point = APR_BUCKET_NEXT(e);
+            return APR_SUCCESS;
+        }
+        point -= e->length;
+    }
+    *after_point = APR_BRIGADE_SENTINEL(b); 
+    return APR_INCOMPLETE;
+}
+
+APU_DECLARE(apr_status_t) apr_brigade_length(apr_bucket_brigade *bb,
+                                             int read_all, apr_off_t *length)
+{
+    apr_off_t total = 0;
+    apr_bucket *bkt;
+
+    for (bkt = APR_BRIGADE_FIRST(bb);
+         bkt != APR_BRIGADE_SENTINEL(bb);
+         bkt = APR_BUCKET_NEXT(bkt))
+    {
+        if (bkt->length == (apr_size_t)(-1)) {
+            const char *ignore;
+            apr_size_t len;
+            apr_status_t status;
+
+            if (!read_all) {
+                *length = -1;
+                return APR_SUCCESS;
+            }
+
+            if ((status = apr_bucket_read(bkt, &ignore, &len,
+                                          APR_BLOCK_READ)) != APR_SUCCESS) {
+                return status;
+            }
+        }
+
+        total += bkt->length;
+    }
+
+    *length = total;
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_status_t) apr_brigade_flatten(apr_bucket_brigade *bb,
+                                              char *c, apr_size_t *len)
+{
+    apr_size_t actual = 0;
+    apr_bucket *b;
+ 
+    for (b = APR_BRIGADE_FIRST(bb);
+         b != APR_BRIGADE_SENTINEL(bb);
+         b = APR_BUCKET_NEXT(b))
+    {
+        const char *str;
+        apr_size_t str_len;
+        apr_status_t status;
+
+        status = apr_bucket_read(b, &str, &str_len, APR_BLOCK_READ);
+        if (status != APR_SUCCESS) {
+            return status;
+        }
+
+        /* If we would overflow. */
+        if (str_len + actual > *len) {
+            str_len = *len - actual;
+        }
+
+        /* XXX: It appears that overflow of the final bucket
+         * is DISCARDED without any warning to the caller.
+         *
+         * No, we only copy the data up to their requested size.  -- jre
+         */
+        memcpy(c, str, str_len);
+
+        c += str_len;
+        actual += str_len;
+
+        /* This could probably be actual == *len, but be safe from stray
+         * photons. */
+        if (actual >= *len) {
+            break;
+        }
+    }
+
+    *len = actual;
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_status_t) apr_brigade_pflatten(apr_bucket_brigade *bb,
+                                               char **c,
+                                               apr_size_t *len,
+                                               apr_pool_t *pool)
+{
+    apr_off_t actual;
+    apr_size_t total;
+    apr_status_t rv;
+
+    apr_brigade_length(bb, 1, &actual);
+    
+    /* XXX: This is dangerous beyond belief.  At least in the
+     * apr_brigade_flatten case, the user explicitly stated their
+     * buffer length - so we don't up and palloc 4GB for a single
+     * file bucket.  This API must grow a useful max boundry,
+     * either compiled-in or preset via the *len value.
+     *
+     * Shouldn't both fn's grow an additional return value for 
+     * the case that the brigade couldn't be flattened into the
+     * provided or allocated buffer (such as APR_EMOREDATA?)
+     * Not a failure, simply an advisory result.
+     */
+    total = (apr_size_t)actual;
+
+    *c = apr_palloc(pool, total);
+    
+    rv = apr_brigade_flatten(bb, *c, &total);
+
+    if (rv != APR_SUCCESS) {
+        return rv;
+    }
+
+    *len = total;
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_status_t) apr_brigade_split_line(apr_bucket_brigade *bbOut,
+                                                 apr_bucket_brigade *bbIn,
+                                                 apr_read_type_e block,
+                                                 apr_off_t maxbytes)
+{
+    apr_off_t readbytes = 0;
+
+    while (!APR_BRIGADE_EMPTY(bbIn)) {
+        const char *pos;
+        const char *str;
+        apr_size_t len;
+        apr_status_t rv;
+        apr_bucket *e;
+
+        e = APR_BRIGADE_FIRST(bbIn);
+        rv = apr_bucket_read(e, &str, &len, block);
+
+        if (rv != APR_SUCCESS) {
+            return rv;
+        }
+
+        pos = memchr(str, APR_ASCII_LF, len);
+        /* We found a match. */
+        if (pos != NULL) {
+            apr_bucket_split(e, pos - str + 1);
+            APR_BUCKET_REMOVE(e);
+            APR_BRIGADE_INSERT_TAIL(bbOut, e);
+            return APR_SUCCESS;
+        }
+        APR_BUCKET_REMOVE(e);
+        APR_BRIGADE_INSERT_TAIL(bbOut, e);
+        readbytes += len;
+        /* We didn't find an APR_ASCII_LF within the maximum line length. */
+        if (readbytes >= maxbytes) {
+            break;
+        }
+    }
+
+    return APR_SUCCESS;
+}
+
+
+APU_DECLARE(apr_status_t) apr_brigade_to_iovec(apr_bucket_brigade *b, 
+                                               struct iovec *vec, int *nvec)
+{
+    int left = *nvec;
+    apr_bucket *e;
+    struct iovec *orig;
+    apr_size_t iov_len;
+    apr_status_t rv;
+
+    orig = vec;
+
+    for (e = APR_BRIGADE_FIRST(b);
+         e != APR_BRIGADE_SENTINEL(b);
+         e = APR_BUCKET_NEXT(e))
+    {
+        if (left-- == 0)
+            break;
+
+        rv = apr_bucket_read(e, (const char **)&vec->iov_base, &iov_len,
+                             APR_NONBLOCK_READ);
+        if (rv != APR_SUCCESS)
+            return rv;
+        vec->iov_len = iov_len; /* set indirectly in case size differs */
+        ++vec;
+    }
+
+    *nvec = (int)(vec - orig);
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_status_t) apr_brigade_vputstrs(apr_bucket_brigade *b, 
+                                               apr_brigade_flush flush,
+                                               void *ctx,
+                                               va_list va)
+{
+    for (;;) {
+        const char *str = va_arg(va, const char *);
+        apr_status_t rv;
+
+        if (str == NULL)
+            break;
+
+        rv = apr_brigade_write(b, flush, ctx, str, strlen(str));
+        if (rv != APR_SUCCESS)
+            return rv;
+    }
+
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_status_t) apr_brigade_putc(apr_bucket_brigade *b,
+                                           apr_brigade_flush flush, void *ctx,
+                                           const char c)
+{
+    return apr_brigade_write(b, flush, ctx, &c, 1);
+}
+
+APU_DECLARE(apr_status_t) apr_brigade_write(apr_bucket_brigade *b,
+                                            apr_brigade_flush flush,
+                                            void *ctx, 
+                                            const char *str, apr_size_t nbyte)
+{
+    apr_bucket *e = APR_BRIGADE_LAST(b);
+    apr_size_t remaining = APR_BUCKET_BUFF_SIZE;
+    char *buf = NULL;
+
+    if (!APR_BRIGADE_EMPTY(b) && APR_BUCKET_IS_HEAP(e)) {
+        apr_bucket_heap *h = e->data;
+
+        /* HEAP bucket start offsets are always in-memory, safe to cast */
+        remaining = h->alloc_len - (e->length + (apr_size_t)e->start);
+        buf = h->base + e->start + e->length;
+    }
+
+    if (nbyte > remaining) {
+        /* either a buffer bucket exists but is full, 
+         * or no buffer bucket exists and the data is too big
+         * to buffer.  In either case, we should flush.  */
+        if (flush) {
+            e = apr_bucket_transient_create(str, nbyte, b->bucket_alloc);
+            APR_BRIGADE_INSERT_TAIL(b, e);
+            return flush(b, ctx);
+        }
+        else {
+            e = apr_bucket_heap_create(str, nbyte, NULL, b->bucket_alloc);
+            APR_BRIGADE_INSERT_TAIL(b, e);
+            return APR_SUCCESS;
+        }
+    }
+    else if (!buf) {
+        /* we don't have a buffer, but the data is small enough
+         * that we don't mind making a new buffer */
+        buf = apr_bucket_alloc(APR_BUCKET_BUFF_SIZE, b->bucket_alloc);
+        e = apr_bucket_heap_create(buf, APR_BUCKET_BUFF_SIZE,
+                                   apr_bucket_free, b->bucket_alloc);
+        APR_BRIGADE_INSERT_TAIL(b, e);
+        e->length = 0;   /* We are writing into the brigade, and
+                          * allocating more memory than we need.  This
+                          * ensures that the bucket thinks it is empty just
+                          * after we create it.  We'll fix the length
+                          * once we put data in it below.
+                          */
+    }
+
+    /* there is a sufficiently big buffer bucket available now */
+    memcpy(buf, str, nbyte);
+    e->length += nbyte;
+
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_status_t) apr_brigade_writev(apr_bucket_brigade *b,
+                                             apr_brigade_flush flush,
+                                             void *ctx,
+                                             const struct iovec *vec,
+                                             apr_size_t nvec)
+{
+    apr_bucket *e;
+    apr_size_t total_len;
+    apr_size_t i;
+    char *buf;
+
+    /* Compute the total length of the data to be written.
+     */
+    total_len = 0;
+    for (i = 0; i < nvec; i++) {
+       total_len += vec[i].iov_len;
+    }
+
+    /* If the data to be written is very large, try to convert
+     * the iovec to transient buckets rather than copying.
+     */
+    if (total_len > APR_BUCKET_BUFF_SIZE) {
+        if (flush) {
+            for (i = 0; i < nvec; i++) {
+                e = apr_bucket_transient_create(vec[i].iov_base,
+                                                vec[i].iov_len,
+                                                b->bucket_alloc);
+                APR_BRIGADE_INSERT_TAIL(b, e);
+            }
+            return flush(b, ctx);
+        }
+        else {
+            for (i = 0; i < nvec; i++) {
+                e = apr_bucket_heap_create((const char *) vec[i].iov_base,
+                                           vec[i].iov_len, NULL,
+                                           b->bucket_alloc);
+                APR_BRIGADE_INSERT_TAIL(b, e);
+            }
+            return APR_SUCCESS;
+        }
+    }
+
+    i = 0;
+
+    /* If there is a heap bucket at the end of the brigade
+     * already, copy into the existing bucket.
+     */
+    e = APR_BRIGADE_LAST(b);
+    if (!APR_BRIGADE_EMPTY(b) && APR_BUCKET_IS_HEAP(e)) {
+        apr_bucket_heap *h = e->data;
+        apr_size_t remaining = h->alloc_len -
+            (e->length + (apr_size_t)e->start);
+        buf = h->base + e->start + e->length;
+
+        if (remaining >= total_len) {
+            /* Simple case: all the data will fit in the
+             * existing heap bucket
+             */
+            for (; i < nvec; i++) {
+                apr_size_t len = vec[i].iov_len;
+                memcpy(buf, (const void *) vec[i].iov_base, len);
+                buf += len;
+            }
+            e->length += total_len;
+            return APR_SUCCESS;
+        }
+        else {
+            /* More complicated case: not all of the data
+             * will fit in the existing heap bucket.  The
+             * total data size is <= APR_BUCKET_BUFF_SIZE,
+             * so we'll need only one additional bucket.
+             */
+            const char *start_buf = buf;
+            for (; i < nvec; i++) {
+                apr_size_t len = vec[i].iov_len;
+                if (len > remaining) {
+                    break;
+                }
+                memcpy(buf, (const void *) vec[i].iov_base, len);
+                buf += len;
+                remaining -= len;
+            }
+            e->length += (buf - start_buf);
+            total_len -= (buf - start_buf);
+
+            if (flush) {
+                apr_status_t rv = flush(b, ctx);
+                if (rv != APR_SUCCESS) {
+                    return rv;
+                }
+            }
+
+            /* Now fall through into the case below to
+             * allocate another heap bucket and copy the
+             * rest of the array.  (Note that i is not
+             * reset to zero here; it holds the index
+             * of the first vector element to be
+             * written to the new bucket.)
+             */
+        }
+    }
+
+    /* Allocate a new heap bucket, and copy the data into it.
+     * The checks above ensure that the amount of data to be
+     * written here is no larger than APR_BUCKET_BUFF_SIZE.
+     */
+    buf = apr_bucket_alloc(APR_BUCKET_BUFF_SIZE, b->bucket_alloc);
+    e = apr_bucket_heap_create(buf, APR_BUCKET_BUFF_SIZE,
+                               apr_bucket_free, b->bucket_alloc);
+    for (; i < nvec; i++) {
+        apr_size_t len = vec[i].iov_len;
+        memcpy(buf, (const void *) vec[i].iov_base, len);
+        buf += len;
+    }
+    e->length = total_len;
+    APR_BRIGADE_INSERT_TAIL(b, e);
+
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_status_t) apr_brigade_puts(apr_bucket_brigade *bb,
+                                           apr_brigade_flush flush, void *ctx,
+                                           const char *str)
+{
+    apr_size_t len = strlen(str);
+    apr_bucket *bkt = APR_BRIGADE_LAST(bb);
+    if (!APR_BRIGADE_EMPTY(bb) && APR_BUCKET_IS_HEAP(bkt)) {
+        /* If there is enough space available in a heap bucket
+         * at the end of the brigade, copy the string directly
+         * into the heap bucket
+         */
+        apr_bucket_heap *h = bkt->data;
+        apr_size_t bytes_avail = h->alloc_len - bkt->length;
+
+        if (bytes_avail >= len) {
+            char *buf = h->base + bkt->start + bkt->length;
+            memcpy(buf, str, len);
+            bkt->length += len;
+            return APR_SUCCESS;
+        }
+    }
+
+    /* If the string could not be copied into an existing heap
+     * bucket, delegate the work to apr_brigade_write(), which
+     * knows how to grow the brigade
+     */
+    return apr_brigade_write(bb, flush, ctx, str, len);
+}
+
+APU_DECLARE_NONSTD(apr_status_t) apr_brigade_putstrs(apr_bucket_brigade *b, 
+                                                     apr_brigade_flush flush,
+                                                     void *ctx, ...)
+{
+    va_list va;
+    apr_status_t rv;
+
+    va_start(va, ctx);
+    rv = apr_brigade_vputstrs(b, flush, ctx, va);
+    va_end(va);
+    return rv;
+}
+
+APU_DECLARE_NONSTD(apr_status_t) apr_brigade_printf(apr_bucket_brigade *b, 
+                                                    apr_brigade_flush flush,
+                                                    void *ctx, 
+                                                    const char *fmt, ...)
+{
+    va_list ap;
+    apr_status_t rv;
+
+    va_start(ap, fmt);
+    rv = apr_brigade_vprintf(b, flush, ctx, fmt, ap);
+    va_end(ap);
+    return rv;
+}
+
+struct brigade_vprintf_data_t {
+    apr_vformatter_buff_t vbuff;
+
+    apr_bucket_brigade *b;  /* associated brigade */
+    apr_brigade_flush *flusher; /* flushing function */
+    void *ctx;
+
+    char *cbuff; /* buffer to flush from */
+};
+
+static apr_status_t brigade_flush(apr_vformatter_buff_t *buff)
+{
+    /* callback function passed to ap_vformatter to be
+     * called when vformatter needs to buff and
+     * buff.curpos > buff.endpos
+     */
+
+    /* "downcast," have really passed a brigade_vprintf_data_t* */
+    struct brigade_vprintf_data_t *vd = (struct brigade_vprintf_data_t*)buff;
+    apr_status_t res = APR_SUCCESS;
+
+    res = apr_brigade_write(vd->b, *vd->flusher, vd->ctx, vd->cbuff,
+                          APR_BUCKET_BUFF_SIZE);
+
+    if(res != APR_SUCCESS) {
+      return -1;
+    }
+
+    vd->vbuff.curpos = vd->cbuff;
+    vd->vbuff.endpos = vd->cbuff + APR_BUCKET_BUFF_SIZE;
+
+    return res;
+}
+
+APU_DECLARE(apr_status_t) apr_brigade_vprintf(apr_bucket_brigade *b,
+                                              apr_brigade_flush flush,
+                                              void *ctx,
+                                              const char *fmt, va_list va)
+{
+    /* the cast, in order of appearance */
+    struct brigade_vprintf_data_t vd;
+    char buf[APR_BUCKET_BUFF_SIZE];
+    apr_size_t written;
+
+    vd.vbuff.curpos = buf;
+    vd.vbuff.endpos = buf + APR_BUCKET_BUFF_SIZE;
+    vd.b = b;
+    vd.flusher = &flush;
+    vd.ctx = ctx;
+    vd.cbuff = buf;
+
+    written = apr_vformatter(brigade_flush, &vd.vbuff, fmt, va);
+
+    if (written == -1) {
+      return -1;
+    }
+
+    /* tack on null terminator to remaining string */
+    *(vd.vbuff.curpos) = '\0';
+
+    /* write out what remains in the buffer */
+    return apr_brigade_write(b, flush, ctx, buf, vd.vbuff.curpos - buf);
+}
+
+/* A "safe" maximum bucket size, 1Gb */
+#define MAX_BUCKET_SIZE (0x40000000)
+
+APU_DECLARE(apr_bucket *) apr_brigade_insert_file(apr_bucket_brigade *bb,
+                                                  apr_file_t *f,
+                                                  apr_off_t start,
+                                                  apr_off_t length,
+                                                  apr_pool_t *p)
+{
+    apr_bucket *e;
+
+    if (sizeof(apr_off_t) == sizeof(apr_size_t) || length < MAX_BUCKET_SIZE) {
+        e = apr_bucket_file_create(f, start, (apr_size_t)length, p, 
+                                   bb->bucket_alloc);
+    }
+    else {
+        /* Several buckets are needed. */        
+        e = apr_bucket_file_create(f, start, MAX_BUCKET_SIZE, p, 
+                                   bb->bucket_alloc);
+
+        while (length > MAX_BUCKET_SIZE) {
+            apr_bucket *ce;
+            apr_bucket_copy(e, &ce);
+            APR_BRIGADE_INSERT_TAIL(bb, ce);
+            e->start += MAX_BUCKET_SIZE;
+            length -= MAX_BUCKET_SIZE;
+        }
+        e->length = (apr_size_t)length; /* Resize just the last bucket */
+    }
+    
+    APR_BRIGADE_INSERT_TAIL(bb, e);
+    return e;
+}
diff --git a/buckets/apr_buckets.c b/buckets/apr_buckets.c
new file mode 100644
index 0000000..802f4e2
--- /dev/null
+++ b/buckets/apr_buckets.c
@@ -0,0 +1,46 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_buckets.h"
+
+APU_DECLARE_NONSTD(apr_status_t) apr_bucket_setaside_noop(apr_bucket *data,
+                                                          apr_pool_t *pool)
+{
+    return APR_SUCCESS;
+}
+
+APU_DECLARE_NONSTD(apr_status_t) apr_bucket_setaside_notimpl(apr_bucket *data,
+                                                             apr_pool_t *pool)
+{
+    return APR_ENOTIMPL;
+}
+
+APU_DECLARE_NONSTD(apr_status_t) apr_bucket_split_notimpl(apr_bucket *data,
+                                                          apr_size_t point)
+{
+    return APR_ENOTIMPL;
+}
+
+APU_DECLARE_NONSTD(apr_status_t) apr_bucket_copy_notimpl(apr_bucket *e,
+                                                         apr_bucket **c)
+{
+    return APR_ENOTIMPL;
+}
+
+APU_DECLARE_NONSTD(void) apr_bucket_destroy_noop(void *data)
+{
+    return;
+}
diff --git a/buckets/apr_buckets_alloc.c b/buckets/apr_buckets_alloc.c
new file mode 100644
index 0000000..76031c7
--- /dev/null
+++ b/buckets/apr_buckets_alloc.c
@@ -0,0 +1,184 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdlib.h>
+
+#include "apr_buckets.h"
+#include "apr_allocator.h"
+
+#define ALLOC_AMT (8192 - APR_MEMNODE_T_SIZE)
+
+typedef struct node_header_t {
+    apr_size_t size;
+    apr_bucket_alloc_t *alloc;
+    apr_memnode_t *memnode;
+    struct node_header_t *next;
+} node_header_t;
+
+#define SIZEOF_NODE_HEADER_T  APR_ALIGN_DEFAULT(sizeof(node_header_t))
+#define SMALL_NODE_SIZE       (APR_BUCKET_ALLOC_SIZE + SIZEOF_NODE_HEADER_T)
+
+/** A list of free memory from which new buckets or private bucket
+ *  structures can be allocated.
+ */
+struct apr_bucket_alloc_t {
+    apr_pool_t *pool;
+    apr_allocator_t *allocator;
+    node_header_t *freelist;
+    apr_memnode_t *blocks;
+};
+
+static apr_status_t alloc_cleanup(void *data)
+{
+    apr_bucket_alloc_t *list = data;
+
+    apr_allocator_free(list->allocator, list->blocks);
+
+#if APR_POOL_DEBUG
+    if (list->pool && list->allocator != apr_pool_allocator_get(list->pool)) {
+        apr_allocator_destroy(list->allocator);
+    }
+#endif
+
+    return APR_SUCCESS;
+}
+
+APU_DECLARE_NONSTD(apr_bucket_alloc_t *) apr_bucket_alloc_create(apr_pool_t *p)
+{
+    apr_allocator_t *allocator = apr_pool_allocator_get(p);
+    apr_bucket_alloc_t *list;
+
+#if APR_POOL_DEBUG
+    /* may be NULL for debug mode. */
+    if (allocator == NULL) {
+        if (apr_allocator_create(&allocator) != APR_SUCCESS) {
+            abort();
+        }
+    }
+#endif
+
+    list = apr_bucket_alloc_create_ex(allocator);
+    list->pool = p;
+    apr_pool_cleanup_register(list->pool, list, alloc_cleanup,
+                              apr_pool_cleanup_null);
+
+    return list;
+}
+
+APU_DECLARE_NONSTD(apr_bucket_alloc_t *) apr_bucket_alloc_create_ex(
+                                             apr_allocator_t *allocator)
+{
+    apr_bucket_alloc_t *list;
+    apr_memnode_t *block;
+
+    block = apr_allocator_alloc(allocator, ALLOC_AMT);
+    list = (apr_bucket_alloc_t *)block->first_avail;
+    list->pool = NULL;
+    list->allocator = allocator;
+    list->freelist = NULL;
+    list->blocks = block;
+    block->first_avail += APR_ALIGN_DEFAULT(sizeof(*list));
+
+    return list;
+}
+
+APU_DECLARE_NONSTD(void) apr_bucket_alloc_destroy(apr_bucket_alloc_t *list)
+{
+    if (list->pool) {
+        apr_pool_cleanup_kill(list->pool, list, alloc_cleanup);
+    }
+
+    apr_allocator_free(list->allocator, list->blocks);
+
+#if APR_POOL_DEBUG
+    if (list->pool && list->allocator != apr_pool_allocator_get(list->pool)) {
+        apr_allocator_destroy(list->allocator);
+    }
+#endif
+}
+
+APU_DECLARE_NONSTD(void *) apr_bucket_alloc(apr_size_t size, 
+                                            apr_bucket_alloc_t *list)
+{
+    node_header_t *node;
+    apr_memnode_t *active = list->blocks;
+    char *endp;
+
+    size += SIZEOF_NODE_HEADER_T;
+    if (size <= SMALL_NODE_SIZE) {
+        if (list->freelist) {
+            node = list->freelist;
+            list->freelist = node->next;
+        }
+        else {
+            endp = active->first_avail + SMALL_NODE_SIZE;
+            if (endp >= active->endp) {
+                list->blocks = apr_allocator_alloc(list->allocator, ALLOC_AMT);
+                list->blocks->next = active;
+                active = list->blocks;
+                endp = active->first_avail + SMALL_NODE_SIZE;
+            }
+            node = (node_header_t *)active->first_avail;
+            node->alloc = list;
+            node->memnode = active;
+            node->size = SMALL_NODE_SIZE;
+            active->first_avail = endp;
+        }
+    }
+    else {
+        apr_memnode_t *memnode = apr_allocator_alloc(list->allocator, size);
+        node = (node_header_t *)memnode->first_avail;
+        node->alloc = list;
+        node->memnode = memnode;
+        node->size = size;
+    }
+    return ((char *)node) + SIZEOF_NODE_HEADER_T;
+}
+
+#ifdef APR_BUCKET_DEBUG
+#if APR_HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+static void check_not_already_free(node_header_t *node)
+{
+    apr_bucket_alloc_t *list = node->alloc;
+    node_header_t *curr = list->freelist;
+
+    while (curr) {
+        if (node == curr) {
+            abort();
+        }
+        curr = curr->next;
+    }
+}
+#else
+#define check_not_already_free(node)
+#endif
+
+APU_DECLARE_NONSTD(void) apr_bucket_free(void *mem)
+{
+    node_header_t *node = (node_header_t *)((char *)mem - SIZEOF_NODE_HEADER_T);
+    apr_bucket_alloc_t *list = node->alloc;
+
+    if (node->size == SMALL_NODE_SIZE) {
+        check_not_already_free(node);
+        node->next = list->freelist;
+        list->freelist = node;
+    }
+    else {
+        apr_allocator_free(list->allocator, node->memnode);
+    }
+}
diff --git a/buckets/apr_buckets_eos.c b/buckets/apr_buckets_eos.c
new file mode 100644
index 0000000..25cff75
--- /dev/null
+++ b/buckets/apr_buckets_eos.c
@@ -0,0 +1,54 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_buckets.h"
+
+static apr_status_t eos_bucket_read(apr_bucket *b, const char **str, 
+                                    apr_size_t *len, apr_read_type_e block)
+{
+    *str = NULL;
+    *len = 0;
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_bucket *) apr_bucket_eos_make(apr_bucket *b)
+{
+    b->length      = 0;
+    b->start       = 0;
+    b->data        = NULL;
+    b->type        = &apr_bucket_type_eos;
+    
+    return b;
+}
+
+APU_DECLARE(apr_bucket *) apr_bucket_eos_create(apr_bucket_alloc_t *list)
+{
+    apr_bucket *b = apr_bucket_alloc(sizeof(*b), list);
+
+    APR_BUCKET_INIT(b);
+    b->free = apr_bucket_free;
+    b->list = list;
+    return apr_bucket_eos_make(b);
+}
+
+APU_DECLARE_DATA const apr_bucket_type_t apr_bucket_type_eos = {
+    "EOS", 5, APR_BUCKET_METADATA,
+    apr_bucket_destroy_noop,
+    eos_bucket_read,
+    apr_bucket_setaside_noop,
+    apr_bucket_split_notimpl,
+    apr_bucket_simple_copy
+};
diff --git a/buckets/apr_buckets_file.c b/buckets/apr_buckets_file.c
new file mode 100644
index 0000000..214b53d
--- /dev/null
+++ b/buckets/apr_buckets_file.c
@@ -0,0 +1,228 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr.h"
+#include "apr_general.h"
+#include "apr_file_io.h"
+#include "apr_buckets.h"
+
+#if APR_HAS_MMAP
+#include "apr_mmap.h"
+
+/* mmap support for static files based on ideas from John Heidemann's
+ * patch against 1.0.5.  See
+ * <http://www.isi.edu/~johnh/SOFTWARE/APACHE/index.html>.
+ */
+
+#endif /* APR_HAS_MMAP */
+
+static void file_bucket_destroy(void *data)
+{
+    apr_bucket_file *f = data;
+
+    if (apr_bucket_shared_destroy(f)) {
+        /* no need to close the file here; it will get
+         * done automatically when the pool gets cleaned up */
+        apr_bucket_free(f);
+    }
+}
+
+#if APR_HAS_MMAP
+static int file_make_mmap(apr_bucket *e, apr_size_t filelength,
+                           apr_off_t fileoffset, apr_pool_t *p)
+{
+    apr_bucket_file *a = e->data;
+    apr_mmap_t *mm;
+
+    if (!a->can_mmap) {
+        return 0;
+    }
+
+    if (filelength > APR_MMAP_LIMIT) {
+        if (apr_mmap_create(&mm, a->fd, fileoffset, APR_MMAP_LIMIT,
+                            APR_MMAP_READ, p) != APR_SUCCESS)
+        {
+            return 0;
+        }
+        apr_bucket_split(e, APR_MMAP_LIMIT);
+        filelength = APR_MMAP_LIMIT;
+    }
+    else if ((filelength < APR_MMAP_THRESHOLD) ||
+             (apr_mmap_create(&mm, a->fd, fileoffset, filelength,
+                              APR_MMAP_READ, p) != APR_SUCCESS))
+    {
+        return 0;
+    }
+    apr_bucket_mmap_make(e, mm, 0, filelength);
+    file_bucket_destroy(a);
+    return 1;
+}
+#endif
+
+static apr_status_t file_bucket_read(apr_bucket *e, const char **str,
+                                     apr_size_t *len, apr_read_type_e block)
+{
+    apr_bucket_file *a = e->data;
+    apr_file_t *f = a->fd;
+    apr_bucket *b = NULL;
+    char *buf;
+    apr_status_t rv;
+    apr_size_t filelength = e->length;  /* bytes remaining in file past offset */
+    apr_off_t fileoffset = e->start;
+#if APR_HAS_THREADS && !APR_HAS_XTHREAD_FILES
+    apr_int32_t flags;
+#endif
+
+#if APR_HAS_MMAP
+    if (file_make_mmap(e, filelength, fileoffset, a->readpool)) {
+        return apr_bucket_read(e, str, len, block);
+    }
+#endif
+
+#if APR_HAS_THREADS && !APR_HAS_XTHREAD_FILES
+    if ((flags = apr_file_flags_get(f)) & APR_XTHREAD) {
+        /* this file descriptor is shared across multiple threads and
+         * this OS doesn't support that natively, so as a workaround
+         * we must reopen the file into a->readpool */
+        const char *fname;
+        apr_file_name_get(&fname, f);
+
+        rv = apr_file_open(&f, fname, (flags & ~APR_XTHREAD), 0, a->readpool);
+        if (rv != APR_SUCCESS)
+            return rv;
+
+        a->fd = f;
+    }
+#endif
+
+    *len = (filelength > APR_BUCKET_BUFF_SIZE)
+               ? APR_BUCKET_BUFF_SIZE
+               : filelength;
+    *str = NULL;  /* in case we die prematurely */
+    buf = apr_bucket_alloc(*len, e->list);
+
+    /* Handle offset ... */
+    rv = apr_file_seek(f, APR_SET, &fileoffset);
+    if (rv != APR_SUCCESS) {
+        apr_bucket_free(buf);
+        return rv;
+    }
+    rv = apr_file_read(f, buf, len);
+    if (rv != APR_SUCCESS && rv != APR_EOF) {
+        apr_bucket_free(buf);
+        return rv;
+    }
+    filelength -= *len;
+    /*
+     * Change the current bucket to refer to what we read,
+     * even if we read nothing because we hit EOF.
+     */
+    apr_bucket_heap_make(e, buf, *len, apr_bucket_free);
+
+    /* If we have more to read from the file, then create another bucket */
+    if (filelength > 0 && rv != APR_EOF) {
+        /* for efficiency, we can just build a new apr_bucket struct
+         * to wrap around the existing file bucket */
+        b = apr_bucket_alloc(sizeof(*b), e->list);
+        b->start  = fileoffset + (*len);
+        b->length = filelength;
+        b->data   = a;
+        b->type   = &apr_bucket_type_file;
+        b->free   = apr_bucket_free;
+        b->list   = e->list;
+        APR_BUCKET_INSERT_AFTER(e, b);
+    }
+    else {
+        file_bucket_destroy(a);
+    }
+
+    *str = buf;
+    return rv;
+}
+
+APU_DECLARE(apr_bucket *) apr_bucket_file_make(apr_bucket *b, apr_file_t *fd,
+                                               apr_off_t offset,
+                                               apr_size_t len, apr_pool_t *p)
+{
+    apr_bucket_file *f;
+
+    f = apr_bucket_alloc(sizeof(*f), b->list);
+    f->fd = fd;
+    f->readpool = p;
+#if APR_HAS_MMAP
+    f->can_mmap = 1;
+#endif
+
+    b = apr_bucket_shared_make(b, f, offset, len);
+    b->type = &apr_bucket_type_file;
+
+    return b;
+}
+
+APU_DECLARE(apr_bucket *) apr_bucket_file_create(apr_file_t *fd,
+                                                 apr_off_t offset,
+                                                 apr_size_t len, apr_pool_t *p,
+                                                 apr_bucket_alloc_t *list)
+{
+    apr_bucket *b = apr_bucket_alloc(sizeof(*b), list);
+
+    APR_BUCKET_INIT(b);
+    b->free = apr_bucket_free;
+    b->list = list;
+    return apr_bucket_file_make(b, fd, offset, len, p);
+}
+
+APU_DECLARE(apr_status_t) apr_bucket_file_enable_mmap(apr_bucket *e,
+                                                      int enabled)
+{
+#if APR_HAS_MMAP
+    apr_bucket_file *a = e->data;
+    a->can_mmap = enabled;
+    return APR_SUCCESS;
+#else
+    return APR_ENOTIMPL;
+#endif /* APR_HAS_MMAP */
+}
+
+
+static apr_status_t file_bucket_setaside(apr_bucket *data, apr_pool_t *reqpool)
+{
+    apr_bucket_file *a = data->data;
+    apr_file_t *fd = NULL;
+    apr_file_t *f = a->fd;
+    apr_pool_t *curpool = apr_file_pool_get(f);
+
+    if (apr_pool_is_ancestor(curpool, reqpool)) {
+        return APR_SUCCESS;
+    }
+
+    if (!apr_pool_is_ancestor(a->readpool, reqpool)) {
+        a->readpool = reqpool;
+    }
+
+    apr_file_setaside(&fd, f, reqpool);
+    a->fd = fd;
+    return APR_SUCCESS;
+}
+
+APU_DECLARE_DATA const apr_bucket_type_t apr_bucket_type_file = {
+    "FILE", 5, APR_BUCKET_DATA,
+    file_bucket_destroy,
+    file_bucket_read,
+    file_bucket_setaside,
+    apr_bucket_shared_split,
+    apr_bucket_shared_copy
+};
diff --git a/buckets/apr_buckets_flush.c b/buckets/apr_buckets_flush.c
new file mode 100644
index 0000000..a5d84d7
--- /dev/null
+++ b/buckets/apr_buckets_flush.c
@@ -0,0 +1,54 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_buckets.h"
+
+static apr_status_t flush_bucket_read(apr_bucket *b, const char **str, 
+                                      apr_size_t *len, apr_read_type_e block)
+{
+    *str = NULL;
+    *len = 0;
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_bucket *) apr_bucket_flush_make(apr_bucket *b)
+{
+    b->length      = 0;
+    b->start       = 0;
+    b->data        = NULL;
+    b->type        = &apr_bucket_type_flush;
+    
+    return b;
+}
+
+APU_DECLARE(apr_bucket *) apr_bucket_flush_create(apr_bucket_alloc_t *list)
+{
+    apr_bucket *b = apr_bucket_alloc(sizeof(*b), list);
+
+    APR_BUCKET_INIT(b);
+    b->free = apr_bucket_free;
+    b->list = list;
+    return apr_bucket_flush_make(b);
+}
+
+APU_DECLARE_DATA const apr_bucket_type_t apr_bucket_type_flush = {
+    "FLUSH", 5, APR_BUCKET_METADATA, 
+    apr_bucket_destroy_noop,
+    flush_bucket_read,
+    apr_bucket_setaside_noop,
+    apr_bucket_split_notimpl,
+    apr_bucket_simple_copy
+};
diff --git a/buckets/apr_buckets_heap.c b/buckets/apr_buckets_heap.c
new file mode 100644
index 0000000..00f9808
--- /dev/null
+++ b/buckets/apr_buckets_heap.c
@@ -0,0 +1,96 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_buckets.h"
+#define APR_WANT_MEMFUNC
+#include "apr_want.h"
+
+static apr_status_t heap_bucket_read(apr_bucket *b, const char **str, 
+                                     apr_size_t *len, apr_read_type_e block)
+{
+    apr_bucket_heap *h = b->data;
+
+    *str = h->base + b->start;
+    *len = b->length;
+    return APR_SUCCESS;
+}
+
+static void heap_bucket_destroy(void *data)
+{
+    apr_bucket_heap *h = data;
+
+    if (apr_bucket_shared_destroy(h)) {
+        (*h->free_func)(h->base);
+        apr_bucket_free(h);
+    }
+}
+
+/* Warning: if you change this function, be sure to
+ * change apr_bucket_pool_make() too! */
+APU_DECLARE(apr_bucket *) apr_bucket_heap_make(apr_bucket *b, const char *buf,
+                                               apr_size_t length,
+                                               void (*free_func)(void *data))
+{
+    apr_bucket_heap *h;
+
+    h = apr_bucket_alloc(sizeof(*h), b->list);
+
+    if (!free_func) {
+        h->alloc_len = length;
+        h->base = apr_bucket_alloc(h->alloc_len, b->list);
+        if (h->base == NULL) {
+            apr_bucket_free(h);
+            return NULL;
+        }
+        h->free_func = apr_bucket_free;
+        memcpy(h->base, buf, length);
+    }
+    else {
+        /* XXX: we lose the const qualifier here which indicates
+         * there's something screwy with the API...
+         */
+        h->base = (char *) buf;
+        h->alloc_len = length;
+        h->free_func = free_func;
+    }
+
+    b = apr_bucket_shared_make(b, h, 0, length);
+    b->type = &apr_bucket_type_heap;
+
+    return b;
+}
+
+APU_DECLARE(apr_bucket *) apr_bucket_heap_create(const char *buf,
+                                                 apr_size_t length,
+                                                 void (*free_func)(void *data),
+                                                 apr_bucket_alloc_t *list)
+{
+    apr_bucket *b = apr_bucket_alloc(sizeof(*b), list);
+
+    APR_BUCKET_INIT(b);
+    b->free = apr_bucket_free;
+    b->list = list;
+    return apr_bucket_heap_make(b, buf, length, free_func);
+}
+
+APU_DECLARE_DATA const apr_bucket_type_t apr_bucket_type_heap = {
+    "HEAP", 5, APR_BUCKET_DATA,
+    heap_bucket_destroy,
+    heap_bucket_read,
+    apr_bucket_setaside_noop,
+    apr_bucket_shared_split,
+    apr_bucket_shared_copy
+};
diff --git a/buckets/apr_buckets_mmap.c b/buckets/apr_buckets_mmap.c
new file mode 100644
index 0000000..19de291
--- /dev/null
+++ b/buckets/apr_buckets_mmap.c
@@ -0,0 +1,144 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_buckets.h"
+
+#if APR_HAS_MMAP
+
+static apr_status_t mmap_bucket_read(apr_bucket *b, const char **str, 
+                                     apr_size_t *length, apr_read_type_e block)
+{
+    apr_bucket_mmap *m = b->data;
+    apr_status_t ok;
+    void *addr;
+   
+    if (!m->mmap) {
+        /* the apr_mmap_t was already cleaned up out from under us */
+        return APR_EINVAL;
+    }
+
+    ok = apr_mmap_offset(&addr, m->mmap, b->start);
+    if (ok != APR_SUCCESS) {
+        return ok;
+    }
+    *str = addr;
+    *length = b->length;
+    return APR_SUCCESS;
+}
+
+static apr_status_t mmap_bucket_cleanup(void *data)
+{
+    /* the apr_mmap_t is about to disappear out from under us, so we
+     * have no choice but to pretend it doesn't exist anymore.  the
+     * refcount is now useless because there's nothing to refer to
+     * anymore.  so the only valid action on any remaining referrer
+     * is to delete it.  no more reads, no more anything. */
+    apr_bucket_mmap *m = data;
+
+    m->mmap = NULL;
+    return APR_SUCCESS;
+}
+
+static void mmap_bucket_destroy(void *data)
+{
+    apr_bucket_mmap *m = data;
+
+    if (apr_bucket_shared_destroy(m)) {
+        if (m->mmap) {
+            apr_pool_cleanup_kill(m->mmap->cntxt, m, mmap_bucket_cleanup);
+            apr_mmap_delete(m->mmap);
+        }
+        apr_bucket_free(m);
+    }
+}
+
+/*
+ * XXX: are the start and length arguments useful?
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_mmap_make(apr_bucket *b, apr_mmap_t *mm, 
+                                               apr_off_t start, 
+                                               apr_size_t length)
+{
+    apr_bucket_mmap *m;
+
+    m = apr_bucket_alloc(sizeof(*m), b->list);
+    m->mmap = mm;
+
+    apr_pool_cleanup_register(mm->cntxt, m, mmap_bucket_cleanup,
+                              apr_pool_cleanup_null);
+
+    b = apr_bucket_shared_make(b, m, start, length);
+    b->type = &apr_bucket_type_mmap;
+
+    return b;
+}
+
+
+APU_DECLARE(apr_bucket *) apr_bucket_mmap_create(apr_mmap_t *mm, 
+                                                 apr_off_t start, 
+                                                 apr_size_t length,
+                                                 apr_bucket_alloc_t *list)
+{
+    apr_bucket *b = apr_bucket_alloc(sizeof(*b), list);
+
+    APR_BUCKET_INIT(b);
+    b->free = apr_bucket_free;
+    b->list = list;
+    return apr_bucket_mmap_make(b, mm, start, length);
+}
+
+static apr_status_t mmap_bucket_setaside(apr_bucket *b, apr_pool_t *p)
+{
+    apr_bucket_mmap *m = b->data;
+    apr_mmap_t *mm = m->mmap;
+    apr_mmap_t *new_mm;
+    apr_status_t ok;
+
+    if (!mm) {
+        /* the apr_mmap_t was already cleaned up out from under us */
+        return APR_EINVAL;
+    }
+
+    /* shortcut if possible */
+    if (apr_pool_is_ancestor(mm->cntxt, p)) {
+        return APR_SUCCESS;
+    }
+
+    /* duplicate apr_mmap_t into new pool */
+    ok = apr_mmap_dup(&new_mm, mm, p);
+    if (ok != APR_SUCCESS) {
+        return ok;
+    }
+
+    /* decrement refcount on old apr_bucket_mmap */
+    mmap_bucket_destroy(m);
+
+    /* create new apr_bucket_mmap pointing to new apr_mmap_t */
+    apr_bucket_mmap_make(b, new_mm, b->start, b->length);
+
+    return APR_SUCCESS;
+}
+
+APU_DECLARE_DATA const apr_bucket_type_t apr_bucket_type_mmap = {
+    "MMAP", 5, APR_BUCKET_DATA,
+    mmap_bucket_destroy,
+    mmap_bucket_read,
+    mmap_bucket_setaside,
+    apr_bucket_shared_split,
+    apr_bucket_shared_copy
+};
+
+#endif
diff --git a/buckets/apr_buckets_pipe.c b/buckets/apr_buckets_pipe.c
new file mode 100644
index 0000000..46b4697
--- /dev/null
+++ b/buckets/apr_buckets_pipe.c
@@ -0,0 +1,119 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_buckets.h"
+
+static apr_status_t pipe_bucket_read(apr_bucket *a, const char **str,
+                                     apr_size_t *len, apr_read_type_e block)
+{
+    apr_file_t *p = a->data;
+    char *buf;
+    apr_status_t rv;
+    apr_interval_time_t timeout;
+
+    if (block == APR_NONBLOCK_READ) {
+        apr_file_pipe_timeout_get(p, &timeout);
+        apr_file_pipe_timeout_set(p, 0);
+    }
+
+    *str = NULL;
+    *len = APR_BUCKET_BUFF_SIZE;
+    buf = apr_bucket_alloc(*len, a->list); /* XXX: check for failure? */
+
+    rv = apr_file_read(p, buf, len);
+
+    if (block == APR_NONBLOCK_READ) {
+        apr_file_pipe_timeout_set(p, timeout);
+    }
+
+    if (rv != APR_SUCCESS && rv != APR_EOF) {
+        apr_bucket_free(buf);
+        return rv;
+    }
+    /*
+     * If there's more to read we have to keep the rest of the pipe
+     * for later.  Otherwise, we'll close the pipe.
+     * XXX: Note that more complicated bucket types that 
+     * refer to data not in memory and must therefore have a read()
+     * function similar to this one should be wary of copying this
+     * code because if they have a destroy function they probably
+     * want to migrate the bucket's subordinate structure from the
+     * old bucket to a raw new one and adjust it as appropriate,
+     * rather than destroying the old one and creating a completely
+     * new bucket.
+     */
+    if (*len > 0) {
+        apr_bucket_heap *h;
+        /* Change the current bucket to refer to what we read */
+        a = apr_bucket_heap_make(a, buf, *len, apr_bucket_free);
+        h = a->data;
+        h->alloc_len = APR_BUCKET_BUFF_SIZE; /* note the real buffer size */
+        *str = buf;
+        APR_BUCKET_INSERT_AFTER(a, apr_bucket_pipe_create(p, a->list));
+    }
+    else {
+        apr_bucket_free(buf);
+        a = apr_bucket_immortal_make(a, "", 0);
+        *str = a->data;
+        if (rv == APR_EOF) {
+            apr_file_close(p);
+        }
+    }
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_bucket *) apr_bucket_pipe_make(apr_bucket *b, apr_file_t *p)
+{
+    /*
+     * A pipe is closed when the end is reached in pipe_bucket_read().  If
+     * the pipe isn't read to the end (e.g., error path), the pipe will be
+     * closed when its pool goes away.
+     *
+     * Note that typically the pipe is allocated from the request pool
+     * so it will disappear when the request is finished. However the
+     * core filter may decide to set aside the tail end of a CGI
+     * response if the connection is pipelined. This turns out not to
+     * be a problem because the core will have read to the end of the
+     * stream so the bucket(s) that it sets aside will be the heap
+     * buckets created by pipe_bucket_read() above.
+     */
+    b->type        = &apr_bucket_type_pipe;
+    b->length      = (apr_size_t)(-1);
+    b->start       = -1;
+    b->data        = p;
+    
+    return b;
+}
+
+APU_DECLARE(apr_bucket *) apr_bucket_pipe_create(apr_file_t *p,
+                                                 apr_bucket_alloc_t *list)
+{
+    apr_bucket *b = apr_bucket_alloc(sizeof(*b), list);
+
+    APR_BUCKET_INIT(b);
+    b->free = apr_bucket_free;
+    b->list = list;
+    return apr_bucket_pipe_make(b, p);
+}
+
+APU_DECLARE_DATA const apr_bucket_type_t apr_bucket_type_pipe = {
+    "PIPE", 5, APR_BUCKET_DATA, 
+    apr_bucket_destroy_noop,
+    pipe_bucket_read,
+    apr_bucket_setaside_notimpl,
+    apr_bucket_split_notimpl,
+    apr_bucket_copy_notimpl
+};
diff --git a/buckets/apr_buckets_pool.c b/buckets/apr_buckets_pool.c
new file mode 100644
index 0000000..56ba585
--- /dev/null
+++ b/buckets/apr_buckets_pool.c
@@ -0,0 +1,142 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_buckets.h"
+#define APR_WANT_MEMFUNC
+#include "apr_want.h"
+
+static apr_status_t pool_bucket_cleanup(void *data)
+{
+    apr_bucket_pool *p = data;
+
+    /*
+     * If the pool gets cleaned up, we have to copy the data out
+     * of the pool and onto the heap.  But the apr_buckets out there
+     * that point to this pool bucket need to be notified such that
+     * they can morph themselves into a regular heap bucket the next
+     * time they try to read.  To avoid having to manipulate
+     * reference counts and b->data pointers, the apr_bucket_pool
+     * actually _contains_ an apr_bucket_heap as its first element,
+     * so the two share their apr_bucket_refcount member, and you
+     * can typecast a pool bucket struct to make it look like a
+     * regular old heap bucket struct.
+     */
+    p->heap.base = apr_bucket_alloc(p->heap.alloc_len, p->list);
+    memcpy(p->heap.base, p->base, p->heap.alloc_len);
+    p->base = NULL;
+    p->pool = NULL;
+
+    return APR_SUCCESS;
+}
+
+static apr_status_t pool_bucket_read(apr_bucket *b, const char **str, 
+                                     apr_size_t *len, apr_read_type_e block)
+{
+    apr_bucket_pool *p = b->data;
+    const char *base = p->base;
+
+    if (p->pool == NULL) {
+        /*
+         * pool has been cleaned up... masquerade as a heap bucket from now
+         * on. subsequent bucket operations will use the heap bucket code.
+         */
+        b->type = &apr_bucket_type_heap;
+        base = p->heap.base;
+    }
+    *str = base + b->start;
+    *len = b->length;
+    return APR_SUCCESS;
+}
+
+static void pool_bucket_destroy(void *data)
+{
+    apr_bucket_pool *p = data;
+
+    /* If the pool is cleaned up before the last reference goes
+     * away, the data is really now on the heap; heap_destroy() takes
+     * over.  free() in heap_destroy() thinks it's freeing
+     * an apr_bucket_heap, when in reality it's freeing the whole
+     * apr_bucket_pool for us.
+     */
+    if (p->pool) {
+        /* the shared resource is still in the pool
+         * because the pool has not been cleaned up yet
+         */
+        if (apr_bucket_shared_destroy(p)) {
+            apr_pool_cleanup_kill(p->pool, p, pool_bucket_cleanup);
+            apr_bucket_free(p);
+        }
+    }
+    else {
+        /* the shared resource is no longer in the pool, it's
+         * on the heap, but this reference still thinks it's a pool
+         * bucket.  we should just go ahead and pass control to
+         * heap_destroy() for it since it doesn't know any better.
+         */
+        apr_bucket_type_heap.destroy(p);
+    }
+}
+
+APU_DECLARE(apr_bucket *) apr_bucket_pool_make(apr_bucket *b,
+                      const char *buf, apr_size_t length, apr_pool_t *pool)
+{
+    apr_bucket_pool *p;
+
+    p = apr_bucket_alloc(sizeof(*p), b->list);
+
+    /* XXX: we lose the const qualifier here which indicates
+     * there's something screwy with the API...
+     */
+    /* XXX: why is this?  buf is const, p->base is const... what's
+     * the problem?  --jcw */
+    p->base = (char *) buf;
+    p->pool = pool;
+    p->list = b->list;
+
+    b = apr_bucket_shared_make(b, p, 0, length);
+    b->type = &apr_bucket_type_pool;
+
+    /* pre-initialize heap bucket member */
+    p->heap.alloc_len = length;
+    p->heap.base      = NULL;
+    p->heap.free_func = apr_bucket_free;
+
+    apr_pool_cleanup_register(p->pool, p, pool_bucket_cleanup,
+                              apr_pool_cleanup_null);
+    return b;
+}
+
+APU_DECLARE(apr_bucket *) apr_bucket_pool_create(const char *buf,
+                                                 apr_size_t length,
+                                                 apr_pool_t *pool,
+                                                 apr_bucket_alloc_t *list)
+{
+    apr_bucket *b = apr_bucket_alloc(sizeof(*b), list);
+
+    APR_BUCKET_INIT(b);
+    b->free = apr_bucket_free;
+    b->list = list;
+    return apr_bucket_pool_make(b, buf, length, pool);
+}
+
+APU_DECLARE_DATA const apr_bucket_type_t apr_bucket_type_pool = {
+    "POOL", 5, APR_BUCKET_DATA,
+    pool_bucket_destroy,
+    pool_bucket_read,
+    apr_bucket_setaside_noop, /* don't need to setaside thanks to the cleanup*/
+    apr_bucket_shared_split,
+    apr_bucket_shared_copy
+};
diff --git a/buckets/apr_buckets_refcount.c b/buckets/apr_buckets_refcount.c
new file mode 100644
index 0000000..0e765d9
--- /dev/null
+++ b/buckets/apr_buckets_refcount.c
@@ -0,0 +1,64 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_buckets.h"
+
+APU_DECLARE_NONSTD(apr_status_t) apr_bucket_shared_split(apr_bucket *a,
+                                                         apr_size_t point)
+{
+    apr_bucket_refcount *r = a->data;
+    apr_status_t rv;
+
+    if ((rv = apr_bucket_simple_split(a, point)) != APR_SUCCESS) {
+        return rv;
+    }
+    r->refcount++;
+
+    return APR_SUCCESS;
+}
+
+APU_DECLARE_NONSTD(apr_status_t) apr_bucket_shared_copy(apr_bucket *a,
+                                                        apr_bucket **b)
+{
+    apr_bucket_refcount *r = a->data;
+
+    apr_bucket_simple_copy(a, b);
+    r->refcount++;
+
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(int) apr_bucket_shared_destroy(void *data)
+{
+    apr_bucket_refcount *r = data;
+    r->refcount--;
+    return (r->refcount == 0);
+}
+
+APU_DECLARE(apr_bucket *) apr_bucket_shared_make(apr_bucket *b, void *data,
+                                                 apr_off_t start,
+                                                 apr_size_t length)
+{
+    apr_bucket_refcount *r = data;
+
+    b->data   = r;
+    b->start  = start;
+    b->length = length;
+    /* caller initializes the type field */
+    r->refcount = 1;
+
+    return b;
+}
diff --git a/buckets/apr_buckets_simple.c b/buckets/apr_buckets_simple.c
new file mode 100644
index 0000000..cef748b
--- /dev/null
+++ b/buckets/apr_buckets_simple.c
@@ -0,0 +1,137 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_buckets.h"
+
+APU_DECLARE_NONSTD(apr_status_t) apr_bucket_simple_copy(apr_bucket *a,
+                                                        apr_bucket **b)
+{
+    *b = apr_bucket_alloc(sizeof(**b), a->list); /* XXX: check for failure? */
+    **b = *a;
+
+    return APR_SUCCESS;
+}
+
+APU_DECLARE_NONSTD(apr_status_t) apr_bucket_simple_split(apr_bucket *a,
+                                                         apr_size_t point)
+{
+    apr_bucket *b;
+
+    if (point > a->length) {
+        return APR_EINVAL;
+    }
+
+    apr_bucket_simple_copy(a, &b);
+
+    a->length  = point;
+    b->length -= point;
+    b->start  += point;
+
+    APR_BUCKET_INSERT_AFTER(a, b);
+
+    return APR_SUCCESS;
+}
+
+static apr_status_t simple_bucket_read(apr_bucket *b, const char **str, 
+                                       apr_size_t *len, apr_read_type_e block)
+{
+    *str = (char *)b->data + b->start;
+    *len = b->length;
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_bucket *) apr_bucket_immortal_make(apr_bucket *b,
+                                                   const char *buf,
+                                                   apr_size_t length)
+{
+    b->data   = (char *)buf;
+    b->length = length;
+    b->start  = 0;
+    b->type   = &apr_bucket_type_immortal;
+
+    return b;
+}
+
+APU_DECLARE(apr_bucket *) apr_bucket_immortal_create(const char *buf,
+                                                     apr_size_t length,
+                                                     apr_bucket_alloc_t *list)
+{
+    apr_bucket *b = apr_bucket_alloc(sizeof(*b), list);
+
+    APR_BUCKET_INIT(b);
+    b->free = apr_bucket_free;
+    b->list = list;
+    return apr_bucket_immortal_make(b, buf, length);
+}
+
+/*
+ * XXX: This function could do with some tweaking to reduce memory
+ * usage in various cases, e.g. share buffers in the heap between all
+ * the buckets that are set aside, or even spool set-aside data to
+ * disk if it gets too voluminous (but if it does then that's probably
+ * a bug elsewhere). There should probably be a apr_brigade_setaside()
+ * function that co-ordinates the action of all the bucket setaside
+ * functions to improve memory efficiency.
+ */
+static apr_status_t transient_bucket_setaside(apr_bucket *b, apr_pool_t *pool)
+{
+    b = apr_bucket_heap_make(b, (char *)b->data + b->start, b->length, NULL);
+    if (b == NULL) {
+        return APR_ENOMEM;
+    }
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_bucket *) apr_bucket_transient_make(apr_bucket *b,
+                                                    const char *buf,
+                                                    apr_size_t length)
+{
+    b->data   = (char *)buf;
+    b->length = length;
+    b->start  = 0;
+    b->type   = &apr_bucket_type_transient;
+    return b;
+}
+
+APU_DECLARE(apr_bucket *) apr_bucket_transient_create(const char *buf,
+                                                      apr_size_t length,
+                                                      apr_bucket_alloc_t *list)
+{
+    apr_bucket *b = apr_bucket_alloc(sizeof(*b), list);
+
+    APR_BUCKET_INIT(b);
+    b->free = apr_bucket_free;
+    b->list = list;
+    return apr_bucket_transient_make(b, buf, length);
+}
+
+const apr_bucket_type_t apr_bucket_type_immortal = {
+    "IMMORTAL", 5, APR_BUCKET_DATA,
+    apr_bucket_destroy_noop,
+    simple_bucket_read,
+    apr_bucket_setaside_noop,
+    apr_bucket_simple_split,
+    apr_bucket_simple_copy
+};
+
+APU_DECLARE_DATA const apr_bucket_type_t apr_bucket_type_transient = {
+    "TRANSIENT", 5, APR_BUCKET_DATA,
+    apr_bucket_destroy_noop, 
+    simple_bucket_read,
+    transient_bucket_setaside,
+    apr_bucket_simple_split,
+    apr_bucket_simple_copy
+};
diff --git a/buckets/apr_buckets_socket.c b/buckets/apr_buckets_socket.c
new file mode 100644
index 0000000..68eae43
--- /dev/null
+++ b/buckets/apr_buckets_socket.c
@@ -0,0 +1,114 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_buckets.h"
+
+static apr_status_t socket_bucket_read(apr_bucket *a, const char **str,
+                                       apr_size_t *len, apr_read_type_e block)
+{
+    apr_socket_t *p = a->data;
+    char *buf;
+    apr_status_t rv;
+    apr_interval_time_t timeout;
+
+    if (block == APR_NONBLOCK_READ) {
+        apr_socket_timeout_get(p, &timeout);
+        apr_socket_timeout_set(p, 0);
+    }
+
+    *str = NULL;
+    *len = APR_BUCKET_BUFF_SIZE;
+    buf = apr_bucket_alloc(*len, a->list); /* XXX: check for failure? */
+
+    rv = apr_socket_recv(p, buf, len);
+
+    if (block == APR_NONBLOCK_READ) {
+        apr_socket_timeout_set(p, timeout);
+    }
+
+    if (rv != APR_SUCCESS && rv != APR_EOF) {
+        apr_bucket_free(buf);
+        return rv;
+    }
+    /*
+     * If there's more to read we have to keep the rest of the socket
+     * for later. XXX: Note that more complicated bucket types that
+     * refer to data not in memory and must therefore have a read()
+     * function similar to this one should be wary of copying this
+     * code because if they have a destroy function they probably
+     * want to migrate the bucket's subordinate structure from the
+     * old bucket to a raw new one and adjust it as appropriate,
+     * rather than destroying the old one and creating a completely
+     * new bucket.
+     *
+     * Even if there is nothing more to read, don't close the socket here
+     * as we have to use it to send any response :)  We could shut it 
+     * down for reading, but there is no benefit to doing so.
+     */
+    if (*len > 0) {
+        apr_bucket_heap *h;
+        /* Change the current bucket to refer to what we read */
+        a = apr_bucket_heap_make(a, buf, *len, apr_bucket_free);
+        h = a->data;
+        h->alloc_len = APR_BUCKET_BUFF_SIZE; /* note the real buffer size */
+        *str = buf;
+        APR_BUCKET_INSERT_AFTER(a, apr_bucket_socket_create(p, a->list));
+    }
+    else {
+        apr_bucket_free(buf);
+        a = apr_bucket_immortal_make(a, "", 0);
+        *str = a->data;
+    }
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_bucket *) apr_bucket_socket_make(apr_bucket *b, apr_socket_t *p)
+{
+    /*
+     * XXX: We rely on a cleanup on some pool or other to actually
+     * destroy the socket. We should probably explicitly call apr to
+     * destroy it instead.
+     *
+     * Note that typically the socket is allocated from the connection pool
+     * so it will disappear when the connection is finished. 
+     */
+    b->type        = &apr_bucket_type_socket;
+    b->length      = (apr_size_t)(-1);
+    b->start       = -1;
+    b->data        = p;
+
+    return b;
+}
+
+APU_DECLARE(apr_bucket *) apr_bucket_socket_create(apr_socket_t *p,
+                                                   apr_bucket_alloc_t *list)
+{
+    apr_bucket *b = apr_bucket_alloc(sizeof(*b), list);
+
+    APR_BUCKET_INIT(b);
+    b->free = apr_bucket_free;
+    b->list = list;
+    return apr_bucket_socket_make(b, p);
+}
+
+APU_DECLARE_DATA const apr_bucket_type_t apr_bucket_type_socket = {
+    "SOCKET", 5, APR_BUCKET_DATA,
+    apr_bucket_destroy_noop,
+    socket_bucket_read,
+    apr_bucket_setaside_notimpl, 
+    apr_bucket_split_notimpl,
+    apr_bucket_copy_notimpl
+};
diff --git a/build-outputs.mk b/build-outputs.mk
new file mode 100644
index 0000000..2839ae2
--- /dev/null
+++ b/build-outputs.mk
@@ -0,0 +1,70 @@
+# DO NOT EDIT. AUTOMATICALLY GENERATED.
+
+buckets/apr_buckets_pipe.lo: buckets/apr_buckets_pipe.c .make.dirs include/apr_buckets.h
+buckets/apr_buckets_flush.lo: buckets/apr_buckets_flush.c .make.dirs include/apr_buckets.h
+buckets/apr_buckets_alloc.lo: buckets/apr_buckets_alloc.c .make.dirs include/apr_buckets.h
+buckets/apr_buckets_pool.lo: buckets/apr_buckets_pool.c .make.dirs include/apr_buckets.h
+buckets/apr_buckets_socket.lo: buckets/apr_buckets_socket.c .make.dirs include/apr_buckets.h
+buckets/apr_buckets_heap.lo: buckets/apr_buckets_heap.c .make.dirs include/apr_buckets.h
+buckets/apr_buckets_simple.lo: buckets/apr_buckets_simple.c .make.dirs include/apr_buckets.h
+buckets/apr_buckets_file.lo: buckets/apr_buckets_file.c .make.dirs include/apr_buckets.h
+buckets/apr_buckets.lo: buckets/apr_buckets.c .make.dirs include/apr_buckets.h
+buckets/apr_buckets_mmap.lo: buckets/apr_buckets_mmap.c .make.dirs include/apr_buckets.h
+buckets/apr_buckets_eos.lo: buckets/apr_buckets_eos.c .make.dirs include/apr_buckets.h
+buckets/apr_brigade.lo: buckets/apr_brigade.c .make.dirs include/apr_buckets.h
+buckets/apr_buckets_refcount.lo: buckets/apr_buckets_refcount.c .make.dirs include/apr_buckets.h
+crypto/apr_sha1.lo: crypto/apr_sha1.c .make.dirs include/apr_xlate.h include/apr_sha1.h include/apr_base64.h
+crypto/uuid.lo: crypto/uuid.c .make.dirs include/apr_uuid.h
+crypto/getuuid.lo: crypto/getuuid.c .make.dirs include/apr_uuid.h include/apr_md5.h include/apr_xlate.h
+crypto/apr_md5.lo: crypto/apr_md5.c .make.dirs include/apr_xlate.h include/apr_md5.h include/apr_sha1.h
+crypto/apr_md4.lo: crypto/apr_md4.c .make.dirs include/apr_md4.h include/apr_xlate.h
+dbm/apr_dbm.lo: dbm/apr_dbm.c .make.dirs include/apr_dbm.h
+dbm/apr_dbm_berkeleydb.lo: dbm/apr_dbm_berkeleydb.c .make.dirs 
+dbm/apr_dbm_gdbm.lo: dbm/apr_dbm_gdbm.c .make.dirs 
+dbm/apr_dbm_ndbm.lo: dbm/apr_dbm_ndbm.c .make.dirs 
+dbm/apr_dbm_sdbm.lo: dbm/apr_dbm_sdbm.c .make.dirs include/apr_sdbm.h
+dbm/sdbm/sdbm_pair.lo: dbm/sdbm/sdbm_pair.c .make.dirs include/apr_sdbm.h
+dbm/sdbm/sdbm.lo: dbm/sdbm/sdbm.c .make.dirs include/apr_sdbm.h
+dbm/sdbm/sdbm_hash.lo: dbm/sdbm/sdbm_hash.c .make.dirs include/apr_sdbm.h
+dbm/sdbm/sdbm_lock.lo: dbm/sdbm/sdbm_lock.c .make.dirs include/apr_sdbm.h
+encoding/apr_base64.lo: encoding/apr_base64.c .make.dirs include/apr_base64.h include/apr_xlate.h
+hooks/apr_hooks.lo: hooks/apr_hooks.c .make.dirs include/apr_optional_hooks.h include/apr_optional.h include/apr_hooks.h
+ldap/apr_ldap_url.lo: ldap/apr_ldap_url.c .make.dirs 
+ldap/apr_ldap_option.lo: ldap/apr_ldap_option.c .make.dirs 
+ldap/apr_ldap_init.lo: ldap/apr_ldap_init.c .make.dirs 
+misc/apr_reslist.lo: misc/apr_reslist.c .make.dirs include/apr_reslist.h
+misc/apu_version.lo: misc/apu_version.c .make.dirs include/apu_version.h
+misc/apr_date.lo: misc/apr_date.c .make.dirs include/apr_date.h
+misc/apr_rmm.lo: misc/apr_rmm.c .make.dirs include/apr_rmm.h include/apr_anylock.h
+misc/apr_queue.lo: misc/apr_queue.c .make.dirs include/apr_queue.h
+uri/apr_uri.lo: uri/apr_uri.c .make.dirs include/apr_uri.h
+xml/apr_xml.lo: xml/apr_xml.c .make.dirs include/apr_xml.h include/apr_xlate.h
+strmatch/apr_strmatch.lo: strmatch/apr_strmatch.c .make.dirs include/apr_strmatch.h
+xlate/xlate.lo: xlate/xlate.c .make.dirs include/apr_xlate.h
+dbd/apr_dbd.lo: dbd/apr_dbd.c .make.dirs include/apr_dbd.h
+dbd/apr_dbd_mysql.lo: dbd/apr_dbd_mysql.c .make.dirs include/apu_version.h include/apr_buckets.h
+dbd/apr_dbd_sqlite2.lo: dbd/apr_dbd_sqlite2.c .make.dirs 
+dbd/apr_dbd_sqlite3.lo: dbd/apr_dbd_sqlite3.c .make.dirs 
+dbd/apr_dbd_pgsql.lo: dbd/apr_dbd_pgsql.c .make.dirs 
+
+OBJECTS_all = buckets/apr_buckets_pipe.lo buckets/apr_buckets_flush.lo buckets/apr_buckets_alloc.lo buckets/apr_buckets_pool.lo buckets/apr_buckets_socket.lo buckets/apr_buckets_heap.lo buckets/apr_buckets_simple.lo buckets/apr_buckets_file.lo buckets/apr_buckets.lo buckets/apr_buckets_mmap.lo buckets/apr_buckets_eos.lo buckets/apr_brigade.lo buckets/apr_buckets_refcount.lo crypto/apr_sha1.lo crypto/uuid.lo crypto/getuuid.lo crypto/apr_md5.lo crypto/apr_md4.lo dbm/apr_dbm.lo dbm/apr_dbm_berkeleydb.lo dbm/apr_dbm_gdbm.lo dbm/apr_dbm_ndbm.lo dbm/apr_dbm_sdbm.lo dbm/sdbm/sdbm_pair.lo dbm/sdbm/sdbm.lo dbm/sdbm/sdbm_hash.lo dbm/sdbm/sdbm_lock.lo encoding/apr_base64.lo hooks/apr_hooks.lo ldap/apr_ldap_url.lo ldap/apr_ldap_option.lo ldap/apr_ldap_init.lo misc/apr_reslist.lo misc/apu_version.lo misc/apr_date.lo misc/apr_rmm.lo misc/apr_queue.lo uri/apr_uri.lo xml/apr_xml.lo strmatch/apr_strmatch.lo xlate/xlate.lo dbd/apr_dbd.lo dbd/apr_dbd_mysql.lo dbd/apr_dbd_sqlite2.lo dbd/apr_dbd_sqlite3.lo dbd/apr_dbd_pgsql.lo
+
+OBJECTS_unix = $(OBJECTS_all)
+
+OBJECTS_aix = $(OBJECTS_all)
+
+OBJECTS_beos = $(OBJECTS_all)
+
+OBJECTS_os2 = $(OBJECTS_all)
+
+OBJECTS_os390 = $(OBJECTS_all)
+
+HEADERS = $(top_srcdir)/include/apr_ldap_url.h $(top_srcdir)/include/apr_uuid.h $(top_srcdir)/include/apr_xml.h $(top_srcdir)/include/apr_queue.h $(top_srcdir)/include/apr_anylock.h $(top_srcdir)/include/apr_rmm.h $(top_srcdir)/include/apr_strmatch.h $(top_srcdir)/include/apr_date.h $(top_srcdir)/include/apr_xlate.h $(top_srcdir)/include/apr_hooks.h $(top_srcdir)/include/apr_ldap_init.h $(top_srcdir)/include/apr_sha1.h $(top_srcdir)/include/apr_optional.h $(top_srcdir)/include/apr_base64.h $(top_srcdir)/include/apr_ldap_option.h $(top_srcdir)/include/apr_reslist.h $(top_srcdir)/include/apr_sdbm.h $(top_srcdir)/include/apr_uri.h $(top_srcdir)/include/apr_optional_hooks.h $(top_srcdir)/include/apu_version.h $(top_srcdir)/include/apr_md4.h $(top_srcdir)/include/apr_buckets.h $(top_srcdir)/include/apr_dbd.h $(top_srcdir)/include/apr_md5.h $(top_srcdir)/include/apr_dbm.h
+
+SOURCE_DIRS = xml dbd dbm encoding hooks buckets misc crypto uri strmatch dbm/sdbm ldap xlate $(EXTRA_SOURCE_DIRS)
+
+BUILD_DIRS = buckets crypto dbd dbm dbm/sdbm encoding hooks ldap misc strmatch uri xlate xml
+
+.make.dirs: $(srcdir)/build-outputs.mk
+	@for d in $(BUILD_DIRS); do test -d $$d || mkdir $$d; done
+	@echo timestamp > $@
diff --git a/build.conf b/build.conf
new file mode 100644
index 0000000..066009f
--- /dev/null
+++ b/build.conf
@@ -0,0 +1,32 @@
+#
+# Configuration file for APRUTIL. Used by APR/build/gen-build.py
+#
+
+[options]
+
+# the platform-independent .c files
+paths =
+  buckets/*.c
+  crypto/*.c
+  dbm/*.c
+  dbm/sdbm/*.c
+  encoding/*.c
+  hooks/*.c
+  ldap/*.c
+  misc/*.c
+  uri/apr_uri.c
+  xml/*.c
+  strmatch/*.c
+  xlate/*.c
+  dbd/*.c
+
+# we have no platform-specific subdirs
+platform_dirs =
+
+# the public headers
+headers = include/*.h
+
+# gen_uri_delim.c
+
+# we have a recursive makefile for the test files (for now)
+# test/*.c
diff --git a/buildconf b/buildconf
new file mode 100644
index 0000000..3a8467a
--- /dev/null
+++ b/buildconf
@@ -0,0 +1,111 @@
+#!/bin/sh
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+# Default place to look for apr source.  Can be overridden with 
+#   --with-apr=[directory]
+apr_src_dir=../apr
+
+while test $# -gt 0 
+do
+  # Normalize
+  case "$1" in
+  -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) optarg= ;;
+  esac
+
+  case "$1" in
+  --with-apr=*)
+  apr_src_dir=$optarg
+  ;;
+  esac
+
+  shift
+done
+
+if [ -f "$apr_src_dir/build/apr_common.m4" ]; then
+  apr_src_dir=`cd $apr_src_dir; pwd`
+  echo ""
+  echo "Looking for apr source in $apr_src_dir"
+else
+  echo ""
+  echo "Problem finding apr source in $apr_src_dir."
+  echo "Use:"
+  echo "  --with-apr=[directory]" 
+  exit 1
+fi
+
+set -e
+
+# Remove some files, then copy them from apr source tree
+rm -f build/apr_common.m4 build/find_apr.m4 build/install.sh \
+      build/config.guess build/config.sub build/get-version.sh
+cp -p $apr_src_dir/build/apr_common.m4 $apr_src_dir/build/find_apr.m4 \
+      $apr_src_dir/build/install.sh $apr_src_dir/build/config.guess \
+      $apr_src_dir/build/config.sub $apr_src_dir/build/get-version.sh \
+      build/
+
+# Remove aclocal.m4 as it'll break some builds...
+rm -rf aclocal.m4 autom4te*.cache
+
+#
+# Generate the autoconf header (include/apu_config.h) and ./configure
+#
+echo "Creating include/private/apu_config.h ..."
+${AUTOHEADER:-autoheader}
+
+echo "Creating configure ..."
+### do some work to toss config.cache?
+if ${AUTOCONF:-autoconf}; then
+  :
+else
+  echo "autoconf failed"
+  exit 1
+fi
+
+#
+# Generate build-outputs.mk for the build systme
+#
+echo "Generating 'make' outputs ..."
+$apr_src_dir/build/gen-build.py make
+
+#
+# If Expat has been bundled, then go and configure the thing
+#
+if [ -f xml/expat/buildconf.sh ]; then
+  echo "Invoking xml/expat/buildconf.sh ..."
+  (cd xml/expat; ./buildconf.sh)
+fi
+
+# Remove autoconf cache again
+rm -rf autom4te*.cache
+
+# Create RPM Spec file
+if [ -f `which cut` ]; then
+  echo rebuilding rpm spec file
+  REVISION=`build/get-version.sh all include/apu_version.h APU`
+  VERSION=`echo $REVISION | cut -d- -s -f1`
+  RELEASE=`echo $REVISION | cut -d- -s -f2`
+  if [ "x$VERSION" = "x" ]; then
+      VERSION=$REVISION
+      RELEASE=1
+  fi
+  sed -e "s/APU_VERSION/$VERSION/" -e "s/APU_RELEASE/$RELEASE/" \
+    ./build/rpm/apr-util.spec.in > apr-util.spec
+fi
+
diff --git a/config.layout b/config.layout
new file mode 100755
index 0000000..907d0bb
--- /dev/null
+++ b/config.layout
@@ -0,0 +1,232 @@
+##
+##  config.layout -- Pre-defined Installation Path Layouts
+##
+##  Hints:
+##  - layouts can be loaded with configure's --enable-layout=ID option
+##  - when no --enable-layout option is given, the default layout is `apr'
+##  - a trailing plus character (`+') on paths is replaced with a 
+##    `/<target>' suffix where <target> is currently hardcoded to 'apr'.
+##    (This may become a configurable parameter at some point.)
+##
+
+#   Classical APR-util path layout designed for parallel installs.
+<Layout apr-util>
+    prefix:        /usr/local/apr
+    exec_prefix:   ${prefix}
+    bindir:        ${exec_prefix}/bin
+    sbindir:       ${exec_prefix}/bin
+    libdir:        ${exec_prefix}/lib
+    libexecdir:    ${exec_prefix}/modules
+    mandir:        ${prefix}/man
+    sysconfdir:    ${prefix}/conf
+    datadir:       ${prefix}
+    installbuilddir: ${datadir}/build
+    includedir:    ${prefix}/include/apr-${APRUTIL_MAJOR_VERSION}
+    localstatedir: ${prefix}
+    libsuffix:     -${APRUTIL_MAJOR_VERSION}
+</Layout>
+
+#   Classical single-installation APR path layout.
+<Layout classic>
+    prefix:        /usr/local/apr
+    exec_prefix:   ${prefix}
+    bindir:        ${exec_prefix}/bin
+    sbindir:       ${exec_prefix}/bin
+    libdir:        ${exec_prefix}/lib
+    libexecdir:    ${exec_prefix}/modules
+    mandir:        ${prefix}/man
+    sysconfdir:    ${prefix}/conf
+    datadir:       ${prefix}
+    installbuilddir: ${datadir}/build
+    includedir:    ${prefix}/include
+    localstatedir: ${prefix}
+</Layout>
+
+#   GNU standards conforming path layout.
+#   See FSF's GNU project `make-stds' document for details.
+<Layout GNU>
+    prefix:        /usr/local
+    exec_prefix:   ${prefix}
+    bindir:        ${exec_prefix}/bin
+    sbindir:       ${exec_prefix}/sbin
+    libdir:        ${exec_prefix}/lib
+    libexecdir:    ${exec_prefix}/libexec
+    mandir:        ${prefix}/man
+    sysconfdir:    ${prefix}/etc+
+    datadir:       ${prefix}/share+
+    installbuilddir: ${datadir}/build
+    includedir:    ${prefix}/include+
+    localstatedir: ${prefix}/var+
+    runtimedir:    ${localstatedir}/run
+</Layout>
+
+#   Mac OS X Server (Rhapsody)
+<Layout Mac OS X Server>
+    prefix:        /Local/Library/WebServer
+    exec_prefix:   /usr
+    bindir:        ${exec_prefix}/bin
+    sbindir:       ${exec_prefix}/sbin
+    libdir:        ${exec_prefix}/lib
+    libexecdir:    /System/Library/apr/Modules
+    mandir:        ${exec_prefix}/share/man
+    sysconfdir:    ${prefix}/Configuration
+    datadir:       ${prefix}
+    installbuilddir: /System/Library/apr/Build
+    includedir:    /System/Library/Frameworks/apr.framework/Versions/2.0/Headers
+    localstatedir: /var
+    runtimedir:    ${prefix}/Logs
+</Layout>
+
+#   Darwin/Mac OS Layout
+<Layout Darwin>
+    prefix:        /usr
+    exec_prefix:   ${prefix}
+    bindir:        ${exec_prefix}/bin
+    sbindir:       ${exec_prefix}/sbin
+    libdir:        ${exec_prefix}/lib
+    libexecdir:    ${exec_prefix}/libexec+
+    mandir:        ${prefix}/share/man
+    datadir:       /Library/WebServer
+    sysconfdir:    /etc+
+    installbuilddir: ${prefix}/share/httpd/build
+    includedir:    ${prefix}/include+
+    localstatedir: /var
+    runtimedir:    ${localstatedir}/run
+</Layout>
+
+#   Red Hat Linux 7.x layout
+<Layout RedHat>
+    prefix:        /usr
+    exec_prefix:   ${prefix}
+    bindir:        ${prefix}/bin
+    sbindir:       ${prefix}/sbin
+    libdir:        ${prefix}/lib
+    libexecdir:    ${prefix}/lib/apr
+    mandir:        ${prefix}/man
+    sysconfdir:    /etc/httpd/conf
+    datadir:       /var/www
+    installbuilddir: ${datadir}/build
+    includedir:    ${prefix}/include/apr
+    localstatedir: /var
+    runtimedir:    ${localstatedir}/run
+</Layout>     
+
+#   According to the /opt filesystem conventions
+<Layout opt>
+    prefix:        /opt/apr
+    exec_prefix:   ${prefix}
+    bindir:        ${exec_prefix}/bin
+    sbindir:       ${exec_prefix}/sbin
+    libdir:        ${exec_prefix}/lib
+    libexecdir:    ${exec_prefix}/libexec
+    mandir:        ${prefix}/man
+    sysconfdir:    /etc${prefix}
+    datadir:       ${prefix}/share
+    installbuilddir: ${datadir}/build
+    includedir:    ${prefix}/include
+    localstatedir: /var${prefix}
+    runtimedir:    ${localstatedir}/run
+</Layout>
+
+#  BeOS layout...
+<Layout beos>
+    prefix:        /boot/home/apr
+    exec_prefix:   ${prefix}
+    bindir:        ${exec_prefix}/bin
+    sbindir:       ${exec_prefix}/bin
+    libdir:        ${exec_prefix}/lib
+    libexecdir:    ${exec_prefix}/libexec
+    mandir:        ${prefix}/man
+    sysconfdir:    ${prefix}/conf
+    datadir:       ${prefix}
+    installbuilddir: ${datadir}/build
+    includedir:    ${prefix}/include
+    localstatedir: ${prefix}
+    runtimedir:    ${localstatedir}/logs
+</Layout>
+
+#   SuSE 6.x layout
+<Layout SuSE>
+    prefix:        /usr
+    exec_prefix:   ${prefix}
+    bindir:        ${prefix}/bin
+    sbindir:       ${prefix}/sbin
+    libdir:        ${prefix}/lib
+    libexecdir:    ${prefix}/lib/apr
+    mandir:        ${prefix}/share/man
+    sysconfdir:    /etc/httpd
+    datadir:       /usr/local/httpd
+    installbuilddir: ${datadir}/build
+    includedir:    ${prefix}/include/apr
+    localstatedir: /var/lib/httpd
+    runtimedir:    /var/run
+</Layout>
+
+#   BSD/OS layout
+<Layout BSDI>
+    prefix:        /var/www
+    exec_prefix:   /usr/contrib
+    bindir:        ${exec_prefix}/bin
+    sbindir:       ${exec_prefix}/bin
+    libdir:        ${exec_prefix}/lib
+    libexecdir:    ${exec_prefix}/libexec/apr
+    mandir:        ${exec_prefix}/man
+    sysconfdir:    ${prefix}/conf
+    datadir:       ${prefix}
+    installbuilddir: ${datadir}/build
+    includedir:    ${exec_prefix}/include/apr
+    localstatedir: /var
+    runtimedir:    ${localstatedir}/run
+</Layout>
+
+#   Solaris 8 Layout
+<Layout Solaris>
+    prefix:        /usr/apr
+    exec_prefix:   ${prefix}
+    bindir:        ${exec_prefix}/bin
+    sbindir:       ${exec_prefix}/bin
+    libdir:        ${exec_prefix}/lib
+    libexecdir:    ${exec_prefix}/libexec
+    mandir:        ${exec_prefix}/man
+    sysconfdir:    /etc/apr
+    datadir:       /var/apr
+    installbuilddir: ${datadir}/build
+    includedir:    ${exec_prefix}/include
+    localstatedir: ${prefix}
+    runtimedir:    /var/run
+</Layout>
+
+#   OpenBSD Layout
+<Layout OpenBSD>
+    prefix:        /var/www
+    exec_prefix:   /usr
+    bindir:        ${exec_prefix}/bin
+    sbindir:       ${exec_prefix}/sbin
+    libdir:        ${exec_prefix}/lib
+    libexecdir:    ${exec_prefix}/lib/apr/modules
+    mandir:        ${exec_prefix}/share/man
+    sysconfdir:    ${prefix}/conf
+    datadir:       ${prefix}
+    installbuilddir: ${prefix}/build
+    includedir:    ${exec_prefix}/lib/apr/include
+    localstatedir: ${prefix}
+    runtimedir:    ${prefix}/logs
+</Layout>
+
+# Debian layout
+<Layout Debian>
+    prefix:        
+    exec_prefix:   ${prefix}/usr
+    bindir:        ${exec_prefix}/bin
+    sbindir:       ${exec_prefix}/sbin
+    libdir:        ${exec_prefix}/lib
+    libexecdir:    ${exec_prefix}/lib/apr/modules
+    mandir:        ${exec_prefix}/share/man
+    datadir:       ${exec_prefix}/share/apr
+    includedir:    ${exec_prefix}/include/apr-${APRUTIL_MAJOR_VERSION}
+    localstatedir: ${prefix}/var/run
+    runtimedir:    ${prefix}/var/run
+    infodir:       ${exec_prefix}/share/info
+    libsuffix:     -${APRUTIL_MAJOR_VERSION}
+    installbuilddir: ${prefix}/usr/share/apache2/build
+</Layout>
diff --git a/configure b/configure
new file mode 100755
index 0000000..0c377ec
--- /dev/null
+++ b/configure
@@ -0,0 +1,42673 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.61.
+#
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+as_nl='
+'
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+case $0 in
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  { (exit 1); exit 1; }
+fi
+
+# Work around bugs in pre-3.0 UWIN ksh.
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+  fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# CDPATH.
+$as_unset CDPATH
+
+
+if test "x$CONFIG_SHELL" = x; then
+  if (eval ":") 2>/dev/null; then
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+
+  if test $as_have_required = yes && 	 (eval ":
+(as_func_return () {
+  (exit \$1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
+
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test \$exitcode = 0) || { (exit 1); exit 1; }
+
+(
+  as_lineno_1=\$LINENO
+  as_lineno_2=\$LINENO
+  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
+  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
+") 2> /dev/null; then
+  :
+else
+  as_candidate_shells=
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  case $as_dir in
+	 /*)
+	   for as_base in sh bash ksh sh5; do
+	     as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
+	   done;;
+       esac
+done
+IFS=$as_save_IFS
+
+
+      for as_shell in $as_candidate_shells $SHELL; do
+	 # Try only shells that exist, to save several forks.
+	 if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+		{ ("$as_shell") 2> /dev/null <<\_ASEOF
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+:
+_ASEOF
+}; then
+  CONFIG_SHELL=$as_shell
+	       as_have_required=yes
+	       if { "$as_shell" 2> /dev/null <<\_ASEOF
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+:
+(as_func_return () {
+  (exit $1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
+
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = "$1" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test $exitcode = 0) || { (exit 1); exit 1; }
+
+(
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
+
+_ASEOF
+}; then
+  break
+fi
+
+fi
+
+      done
+
+      if test "x$CONFIG_SHELL" != x; then
+  for as_var in BASH_ENV ENV
+        do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+        done
+        export CONFIG_SHELL
+        exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+
+    if test $as_have_required = no; then
+  echo This script requires a shell more modern than all the
+      echo shells that I found on your system.  Please install a
+      echo modern shell, or manually run the script under such a
+      echo shell if you do have one.
+      { (exit 1); exit 1; }
+fi
+
+
+fi
+
+fi
+
+
+
+(eval "as_func_return () {
+  (exit \$1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
+
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test \$exitcode = 0") || {
+  echo No shell found that supports shell functions.
+  echo Please tell autoconf@gnu.org about your system,
+  echo including any error possibly output before this
+  echo message
+}
+
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line after each line using $LINENO; the second 'sed'
+  # does the real work.  The second script uses 'N' to pair each
+  # line-number line with the line containing $LINENO, and appends
+  # trailing '-' during substitution so that $LINENO is not a special
+  # case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # scripts with optimization help from Paolo Bonzini.  Blame Lee
+  # E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in
+-n*)
+  case `echo 'x\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  *)   ECHO_C='\c';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir
+fi
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s='ln -s'
+  # ... but there are two gotchas:
+  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+  # In both cases, we have to default to `cp -p'.
+  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+    as_ln_s='cp -p'
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
+else
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+        test -d "$1/.";
+      else
+	case $1 in
+        -*)set "./$1";;
+	esac;
+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+	???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+
+exec 7<&0 </dev/null 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Identity of this package.
+PACKAGE_NAME=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
+
+ac_unique_file="export_vars.sh.in"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='SHELL
+PATH_SEPARATOR
+PACKAGE_NAME
+PACKAGE_TARNAME
+PACKAGE_VERSION
+PACKAGE_STRING
+PACKAGE_BUGREPORT
+exec_prefix
+prefix
+program_transform_name
+bindir
+sbindir
+libexecdir
+datarootdir
+datadir
+sysconfdir
+sharedstatedir
+localstatedir
+includedir
+oldincludedir
+docdir
+infodir
+htmldir
+dvidir
+pdfdir
+psdir
+libdir
+localedir
+mandir
+DEFS
+ECHO_C
+ECHO_N
+ECHO_T
+LIBS
+build_alias
+host_alias
+target_alias
+APU_CONFIG_LOCATION
+build
+build_cpu
+build_vendor
+build_os
+host
+host_cpu
+host_vendor
+host_os
+target
+target_cpu
+target_vendor
+target_os
+INSTALL_PROGRAM
+INSTALL_SCRIPT
+INSTALL_DATA
+LT_NO_INSTALL
+top_builddir
+abs_srcdir
+abs_builddir
+APRUTIL_DOTTED_VERSION
+APRUTIL_MAJOR_VERSION
+CC
+CFLAGS
+LDFLAGS
+CPPFLAGS
+ac_ct_CC
+EXEEXT
+OBJEXT
+APR_INCLUDES
+APR_LIBS
+APR_BUILD_DIR
+APR_ICONV_DIR
+CPP
+GREP
+EGREP
+ldap_h
+lber_h
+ldap_ssl_h
+apu_has_ldapssl_client_init
+apu_has_ldapssl_client_deinit
+apu_has_ldapssl_add_trusted_cert
+apu_has_ldap_start_tls_s
+apu_has_ldapssl_init
+apu_has_ldap_sslinit
+apu_has_ldapssl_install_routines
+apu_has_ldap
+apu_has_ldap_openldap
+apu_has_ldap_solaris
+apu_has_ldap_novell
+apu_has_ldap_microsoft
+apu_has_ldap_netscape
+apu_has_ldap_mozilla
+apu_has_ldap_zos
+apu_has_ldap_other
+apu_use_sdbm
+apu_use_gdbm
+apu_use_ndbm
+apu_use_db
+apu_have_sdbm
+apu_have_gdbm
+apu_have_ndbm
+apu_have_db
+apu_db_header
+apu_db_version
+apu_have_pgsql
+MYSQL_CONFIG
+apu_have_mysql
+apu_have_sqlite3
+apu_have_sqlite2
+APR_XML_DIR
+have_iconv
+have_apr_iconv
+so_ext
+lib_target
+APRUTIL_LIBNAME
+APRUTIL_EXPORT_LIBS
+APRUTIL_PRIV_INCLUDES
+APRUTIL_INCLUDES
+APRUTIL_LDFLAGS
+APRUTIL_LIBS
+INCLUDE_RULES
+INCLUDE_OUTPUTS
+LIBOBJS
+LTLIBOBJS'
+ac_subst_files=''
+      ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval $ac_prev=\$ac_option
+    ac_prev=
+    continue
+  fi
+
+  case $ac_option in
+  *=*)	ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *)	ac_optarg=yes ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_dashdash$ac_option in
+  --)
+    ac_dashdash=yes ;;
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=*)
+    datadir=$ac_optarg ;;
+
+  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+  | --dataroo | --dataro | --datar)
+    ac_prev=datarootdir ;;
+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+    datarootdir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
+    eval enable_$ac_feature=no ;;
+
+  -docdir | --docdir | --docdi | --doc | --do)
+    ac_prev=docdir ;;
+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+    docdir=$ac_optarg ;;
+
+  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+    ac_prev=dvidir ;;
+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+    dvidir=$ac_optarg ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
+    eval enable_$ac_feature=\$ac_optarg ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+    ac_prev=htmldir ;;
+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+  | --ht=*)
+    htmldir=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localedir | --localedir | --localedi | --localed | --locale)
+    ac_prev=localedir ;;
+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+    localedir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst | --locals)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+    ac_prev=pdfdir ;;
+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+    pdfdir=$ac_optarg ;;
+
+  -psdir | --psdir | --psdi | --psd | --ps)
+    ac_prev=psdir ;;
+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+    psdir=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
+    eval with_$ac_package=\$ac_optarg ;;
+
+  -without-* | --without-*)
+    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
+    eval with_$ac_package=no ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) { echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; }
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+   { (exit 1); exit 1; }; }
+    eval $ac_envvar=\$ac_optarg
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  { echo "$as_me: error: missing argument to $ac_option" >&2
+   { (exit 1); exit 1; }; }
+fi
+
+# Be sure to have absolute directory names.
+for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
+		datadir sysconfdir sharedstatedir localstatedir includedir \
+		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+		libdir localedir mandir
+do
+  eval ac_val=\$$ac_var
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* )  continue;;
+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+  esac
+  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; }
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+    If a cross compiler is detected then cross compile mode will be used." >&2
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+  { echo "$as_me: error: Working directory cannot be determined" >&2
+   { (exit 1); exit 1; }; }
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+  { echo "$as_me: error: pwd does not report name of working directory" >&2
+   { (exit 1); exit 1; }; }
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then the parent directory.
+  ac_confdir=`$as_dirname -- "$0" ||
+$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$0" : 'X\(//\)[^/]' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+echo X"$0" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r "$srcdir/$ac_unique_file"; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+  { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+   { (exit 1); exit 1; }; }
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+	cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
+   { (exit 1); exit 1; }; }
+	pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+  srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+  eval ac_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_env_${ac_var}_value=\$${ac_var}
+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures this package to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+			  [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+			  [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR           user executables [EPREFIX/bin]
+  --sbindir=DIR          system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR       program executables [EPREFIX/libexec]
+  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
+  --libdir=DIR           object code libraries [EPREFIX/lib]
+  --includedir=DIR       C header files [PREFIX/include]
+  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
+  --datarootdir=DIR      read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR          read-only architecture-independent data [DATAROOTDIR]
+  --infodir=DIR          info documentation [DATAROOTDIR/info]
+  --localedir=DIR        locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR           man documentation [DATAROOTDIR/man]
+  --docdir=DIR           documentation root [DATAROOTDIR/doc/PACKAGE]
+  --htmldir=DIR          html documentation [DOCDIR]
+  --dvidir=DIR           dvi documentation [DOCDIR]
+  --pdfdir=DIR           pdf documentation [DOCDIR]
+  --psdir=DIR            ps documentation [DOCDIR]
+_ACEOF
+
+  cat <<\_ACEOF
+
+System types:
+  --build=BUILD     configure for building on BUILD [guessed]
+  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
+  --target=TARGET   configure for building compilers for TARGET [HOST]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+
+  cat <<\_ACEOF
+
+Optional Features:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-layout=LAYOUT
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-apr=PATH         prefix for installed APR, path to APR build tree,
+                          or the full path to apr-config
+  --with-ldap-include=path  path to ldap include files with trailing slash
+  --with-ldap-lib=path    path to ldap lib file
+  --with-ldap=library     ldap library to use
+
+    --with-dbm=DBM          choose the DBM type to use.
+      DBM={sdbm,gdbm,ndbm,db,db1,db185,db2,db3,db4,db41,db42,db43,db44,db45,db46}
+
+
+    --with-gdbm=DIR          specify GDBM location
+
+
+    --with-ndbm=PATH
+      Find the NDBM header and library in \`PATH/include' and
+      \`PATH/lib'.  If PATH is of the form \`HEADER:LIB', then search
+      for header files in HEADER, and the library in LIB.  If you omit
+      the \`=PATH' part completely, the configure script will search
+      for NDBM in a number of standard places.
+
+
+    --with-berkeley-db=PATH
+      Find the Berkeley DB header and library in \`PATH/include' and
+      \`PATH/lib'.  If PATH is of the form \`HEADER:LIB', then search
+      for header files in HEADER, and the library in LIB.  If you omit
+      the \`=PATH' part completely, the configure script will search
+      for Berkeley DB in a number of standard places.
+
+  --with-pgsql=DIR        specify PostgreSQL location
+  --with-mysql=DIR        specify MySQL location (disabled by default)
+  --with-sqlite3=DIR      enable sqlite3 DBD driver
+  --with-sqlite2=DIR      enable sqlite2 DBD driver
+  --with-expat=DIR        specify Expat location, or 'builtin'
+  --with-iconv=DIR        path to iconv installation
+
+Some influential environment variables:
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  LIBS        libraries to pass to the linker, e.g. -l<library>
+  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+              you have headers in a nonstandard directory <include dir>
+  CPP         C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d "$ac_dir" || continue
+    ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+    cd "$ac_dir" || { ac_status=$?; continue; }
+    # Check for guested configure.
+    if test -f "$ac_srcdir/configure.gnu"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+    elif test -f "$ac_srcdir/configure"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure" --help=recursive
+    else
+      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi || ac_status=$?
+    cd "$ac_pwd" || { ac_status=$?; break; }
+  done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+  cat <<\_ACEOF
+configure
+generated by GNU Autoconf 2.61
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit
+fi
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by $as_me, which was
+generated by GNU Autoconf 2.61.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  echo "PATH: $as_dir"
+done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *\'*)
+      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+    2)
+      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+	ac_must_keep_next=false # Got value, back to normal.
+      else
+	case $ac_arg in
+	  *=* | --config-cache | -C | -disable-* | --disable-* \
+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+	  | -with-* | --with-* | -without-* | --without-* | --x)
+	    case "$ac_configure_args0 " in
+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+	    esac
+	    ;;
+	  -* ) ac_must_keep_next=true ;;
+	esac
+      fi
+      ac_configure_args="$ac_configure_args '$ac_arg'"
+      ;;
+    esac
+  done
+done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+
+    cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+(
+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
+echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      *) $as_unset $ac_var ;;
+      esac ;;
+    esac
+  done
+  (set) 2>&1 |
+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      sed -n \
+	"s/'\''/'\''\\\\'\'''\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+      ;; #(
+    *)
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+)
+    echo
+
+    cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=\$$ac_var
+      case $ac_val in
+      *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      esac
+      echo "$ac_var='\''$ac_val'\''"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      cat <<\_ASBOX
+## ------------------- ##
+## File substitutions. ##
+## ------------------- ##
+_ASBOX
+      echo
+      for ac_var in $ac_subst_files
+      do
+	eval ac_val=\$$ac_var
+	case $ac_val in
+	*\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	esac
+	echo "$ac_var='\''$ac_val'\''"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+      echo
+      cat confdefs.h
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      echo "$as_me: caught signal $ac_signal"
+    echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core core.conftest.* &&
+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer explicitly selected file to automatically selected ones.
+if test -n "$CONFIG_SITE"; then
+  set x "$CONFIG_SITE"
+elif test "x$prefix" != xNONE; then
+  set x "$prefix/share/config.site" "$prefix/etc/config.site"
+else
+  set x "$ac_default_prefix/share/config.site" \
+	"$ac_default_prefix/etc/config.site"
+fi
+shift
+for ac_site_file
+do
+  if test -r "$ac_site_file"; then
+    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special
+  # files actually), so we avoid doing that.
+  if test -f "$cache_file"; then
+    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
+    esac
+  fi
+else
+  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
+echo "$as_me:   former value:  $ac_old_val" >&2;}
+	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
+echo "$as_me:   current value: $ac_new_val" >&2;}
+	ac_cache_corrupted=:
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+ac_config_headers="$ac_config_headers include/private/apu_config.h"
+
+ac_aux_dir=
+for ac_dir in build "$srcdir"/build; do
+  if test -f "$ac_dir/install-sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f "$ac_dir/install.sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f "$ac_dir/shtool"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in build \"$srcdir\"/build" >&5
+echo "$as_me: error: cannot find install-sh or install.sh in build \"$srcdir\"/build" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  rm -f config.nice
+  cat >config.nice<<EOF
+#! /bin/sh
+#
+# Created by configure
+
+EOF
+  if test -n "$CC"; then
+    echo "CC=\"$CC\"; export CC" >> config.nice
+  fi
+  if test -n "$CFLAGS"; then
+    echo "CFLAGS=\"$CFLAGS\"; export CFLAGS" >> config.nice
+  fi
+  if test -n "$CPPFLAGS"; then
+    echo "CPPFLAGS=\"$CPPFLAGS\"; export CPPFLAGS" >> config.nice
+  fi
+  if test -n "$LDFLAGS"; then
+    echo "LDFLAGS=\"$LDFLAGS\"; export LDFLAGS" >> config.nice
+  fi
+  if test -n "$LTFLAGS"; then
+    echo "LTFLAGS=\"$LTFLAGS\"; export LTFLAGS" >> config.nice
+  fi
+  if test -n "$LIBS"; then
+    echo "LIBS=\"$LIBS\"; export LIBS" >> config.nice
+  fi
+  if test -n "$INCLUDES"; then
+    echo "INCLUDES=\"$INCLUDES\"; export INCLUDES" >> config.nice
+  fi
+  if test -n "$NOTEST_CFLAGS"; then
+    echo "NOTEST_CFLAGS=\"$NOTEST_CFLAGS\"; export NOTEST_CFLAGS" >> config.nice
+  fi
+  if test -n "$NOTEST_CPPFLAGS"; then
+    echo "NOTEST_CPPFLAGS=\"$NOTEST_CPPFLAGS\"; export NOTEST_CPPFLAGS" >> config.nice
+  fi
+  if test -n "$NOTEST_LDFLAGS"; then
+    echo "NOTEST_LDFLAGS=\"$NOTEST_LDFLAGS\"; export NOTEST_LDFLAGS" >> config.nice
+  fi
+  if test -n "$NOTEST_LIBS"; then
+    echo "NOTEST_LIBS=\"$NOTEST_LIBS\"; export NOTEST_LIBS" >> config.nice
+  fi
+
+  # Retrieve command-line arguments.
+  eval "set x $0 $ac_configure_args"
+  shift
+
+  for arg
+  do
+
+ap_last=
+ap_cur="$arg"
+while test "x${ap_cur}" != "x${ap_last}";
+do
+  ap_last="${ap_cur}"
+  ap_cur=`eval "echo ${ap_cur}"`
+done
+arg="${ap_cur}"
+
+    echo "\"$arg\" \\" >> config.nice
+  done
+  echo '"$@"' >> config.nice
+  chmod +x config.nice
+
+
+
+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
+
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+  { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
+echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
+   { (exit 1); exit 1; }; }
+
+{ echo "$as_me:$LINENO: checking build system type" >&5
+echo $ECHO_N "checking build system type... $ECHO_C" >&6; }
+if test "${ac_cv_build+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+   { (exit 1); exit 1; }; }
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+  { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
+echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+echo "${ECHO_T}$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
+echo "$as_me: error: invalid value of canonical build" >&2;}
+   { (exit 1); exit 1; }; };;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ echo "$as_me:$LINENO: checking host system type" >&5
+echo $ECHO_N "checking host system type... $ECHO_C" >&6; }
+if test "${ac_cv_host+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "x$host_alias" = x; then
+  ac_cv_host=$ac_cv_build
+else
+  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
+echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+echo "${ECHO_T}$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
+echo "$as_me: error: invalid value of canonical host" >&2;}
+   { (exit 1); exit 1; }; };;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+{ echo "$as_me:$LINENO: checking target system type" >&5
+echo $ECHO_N "checking target system type... $ECHO_C" >&6; }
+if test "${ac_cv_target+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "x$target_alias" = x; then
+  ac_cv_target=$ac_cv_host
+else
+  ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
+    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5
+echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_target" >&5
+echo "${ECHO_T}$ac_cv_target" >&6; }
+case $ac_cv_target in
+*-*-*) ;;
+*) { { echo "$as_me:$LINENO: error: invalid value of canonical target" >&5
+echo "$as_me: error: invalid value of canonical target" >&2;}
+   { (exit 1); exit 1; }; };;
+esac
+target=$ac_cv_target
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_target
+shift
+target_cpu=$1
+target_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+target_os=$*
+IFS=$ac_save_IFS
+case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
+
+
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+test -n "$target_alias" &&
+  test "$program_prefix$program_suffix$program_transform_name" = \
+    NONENONEs,x,x, &&
+  program_prefix=${target_alias}-
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in
+  ./ | .// | /cC/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+	  if test $ac_prog = install &&
+	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  elif test $ac_prog = install &&
+	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # program-specific install script used by HP pwplus--don't use.
+	    :
+	  else
+	    ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+	    break 3
+	  fi
+	fi
+      done
+    done
+    ;;
+esac
+done
+IFS=$as_save_IFS
+
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    INSTALL=$ac_install_sh
+  fi
+fi
+{ echo "$as_me:$LINENO: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+
+# Use -no-install to link the test programs on all platforms
+# but Darwin, where it would cause the programs to be linked
+# against installed versions of libapr instead of those just
+# built.
+case $host in
+*-apple-darwin*) LT_NO_INSTALL="" ;;
+*) LT_NO_INSTALL="-no-install" ;;
+esac
+
+
+top_builddir="$abs_builddir"
+
+
+
+
+
+  { echo "$as_me:$LINENO: checking for working mkdir -p" >&5
+echo $ECHO_N "checking for working mkdir -p... $ECHO_C" >&6; }
+if test "${ac_cv_mkdir_p+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+    test -d conftestdir && rm -rf conftestdir
+    mkdir -p conftestdir/somedir >/dev/null 2>&1
+    if test -d conftestdir/somedir; then
+      ac_cv_mkdir_p=yes
+    else
+      ac_cv_mkdir_p=no
+    fi
+    rm -rf conftestdir
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_mkdir_p" >&5
+echo "${ECHO_T}$ac_cv_mkdir_p" >&6; }
+  if test "$ac_cv_mkdir_p" = "yes"; then
+      mkdir_p="mkdir -p"
+  else
+      mkdir_p="$abs_srcdir/build/mkdir.sh"
+  fi
+
+
+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`"
+
+
+
+
+echo "APR-util Version: ${APRUTIL_DOTTED_VERSION}"
+
+
+# Check whether --enable-layout was given.
+if test "${enable_layout+set}" = set; then
+  enableval=$enable_layout;
+  LAYOUT=$enableval
+
+fi
+
+
+if test -z "$LAYOUT"; then
+  LAYOUT="apr-util"
+fi
+
+  if test ! -f $srcdir/config.layout; then
+    echo "** Error: Layout file $srcdir/config.layout not found"
+    echo "** Error: Cannot use undefined layout '$LAYOUT'"
+    exit 1
+  fi
+  # Catch layout names including a slash which will otherwise
+  # confuse the heck out of the sed script.
+  case $LAYOUT in
+  */*)
+    echo "** Error: $LAYOUT is not a valid layout name"
+    exit 1 ;;
+  esac
+  pldconf=./config.pld
+
+  sed -e "1s/[ 	]*<[lL]ayout[ 	]*$LAYOUT[ 	]*>[ 	]*//;1t" \
+      -e "1,/[ 	]*<[lL]ayout[ 	]*$LAYOUT[ 	]*>[ 	]*/d" \
+      -e '/[ 	]*<\/Layout>[ 	]*/,$d' \
+      -e "s/^[ 	]*//g" \
+      -e "s/:[ 	]*/=\'/g" \
+      -e "s/[ 	]*$/'/g" \
+      $srcdir/config.layout > $pldconf
+  layout_name=$LAYOUT
+  if test ! -s $pldconf; then
+    echo "** Error: unable to find layout $layout_name"
+    exit 1
+  fi
+  . $pldconf
+  rm $pldconf
+  for var in prefix exec_prefix bindir sbindir libexecdir mandir \
+             sysconfdir datadir includedir localstatedir runtimedir \
+             logfiledir libdir installbuilddir libsuffix ; do
+    eval "val=\"\$$var\""
+    case $val in
+      *+)
+        val=`echo $val | sed -e 's;\+$;;'`
+        eval "$var=\"\$val\""
+        autosuffix=yes
+        ;;
+      *)
+        autosuffix=no
+        ;;
+    esac
+    val=`echo $val | sed -e 's:\(.\)/*$:\1:'`
+    val=`echo $val | sed -e 's:[\$]\([a-z_]*\):$\1:g'`
+    if test "$autosuffix" = "yes"; then
+      if echo $val | grep apache >/dev/null; then
+        addtarget=no
+      else
+        addtarget=yes
+      fi
+      if test "$addtarget" = "yes"; then
+        val="$val/apache2"
+      fi
+    fi
+    eval "$var='$val'"
+  done
+
+
+
+{ echo "$as_me:$LINENO: checking for chosen layout" >&5
+echo $ECHO_N "checking for chosen layout... $ECHO_C" >&6; }
+{ echo "$as_me:$LINENO: result: $layout_name" >&5
+echo "${ECHO_T}$layout_name" >&6; }
+
+
+ac_prev=
+# Retrieve the command-line arguments.  The eval is needed because
+# the arguments are quoted to preserve accuracy.
+eval "set x $ac_configure_args"
+shift
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval "$ac_prev=\$ac_option"
+    ac_prev=
+    continue
+  fi
+
+  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+
+  case $ac_option in
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir="$ac_optarg" ;;
+
+  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+  | --da=*)
+    datadir="$ac_optarg" ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix="$ac_optarg" ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir="$ac_optarg" ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir="$ac_optarg" ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir="$ac_optarg" ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir="$ac_optarg" ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst \
+  | --locals | --local | --loca | --loc | --lo)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+    localstatedir="$ac_optarg" ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir="$ac_optarg" ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix="$ac_optarg" ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir="$ac_optarg" ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir="$ac_optarg" ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir="$ac_optarg" ;;
+
+  esac
+done
+
+# Be sure to have absolute paths.
+for ac_var in exec_prefix prefix
+do
+  eval ac_val=$`echo $ac_var`
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+    *)  { { echo "$as_me:$LINENO: error: expected an absolute path for --$ac_var: $ac_val" >&5
+echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2;}
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+  fi
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CC" && break
+done
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
+
+fi
+
+
+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO: checking for C compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (ac_try="$ac_compiler --version >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler --version >&5") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (ac_try="$ac_compiler -v >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -v >&5") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (ac_try="$ac_compiler -V >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -V >&5") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; }
+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+#
+# List of possible output files, starting from the most likely.
+# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)
+# only as a last resort.  b.out is created by i960 compilers.
+ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'
+#
+# The IRIX 6 linker writes into existing files which may not be
+# executable, retaining their permissions.  Remove them first so a
+# subsequent execution test works.
+ac_rmfiles=
+for ac_file in $ac_files
+do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
+    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+  esac
+done
+rm -f $ac_rmfiles
+
+if { (ac_try="$ac_link_default"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link_default") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile.  We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj )
+	;;
+    [ab].out )
+	# We found the default executable, but exeext='' is most
+	# certainly right.
+	break;;
+    *.* )
+        if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+	then :; else
+	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	fi
+	# We set ac_cv_exeext here because the later test for it is not
+	# safe: cross compilers may not add the suffix if given an `-o'
+	# argument, so we may need to know it at that point already.
+	# Even if this section looks crufty: it has the advantage of
+	# actually working.
+	break;;
+    * )
+	break;;
+  esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+  ac_file=''
+fi
+
+{ echo "$as_me:$LINENO: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6; }
+if test -z "$ac_file"; then
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+See \`config.log' for more details." >&5
+echo "$as_me: error: C compiler cannot create executables
+See \`config.log' for more details." >&2;}
+   { (exit 77); exit 77; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; }
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+  if { ac_try='./$ac_file'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+	cross_compiling=yes
+    else
+	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+  fi
+fi
+{ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+
+rm -f a.out a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; }
+{ echo "$as_me:$LINENO: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6; }
+
+{ echo "$as_me:$LINENO: checking for suffix of executables" >&5
+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; }
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	  break;;
+    * ) break;;
+  esac
+done
+else
+  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest$ac_cv_exeext
+{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+{ echo "$as_me:$LINENO: checking for suffix of object files" >&5
+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; }
+if test "${ac_cv_objext+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  for ac_file in conftest.o conftest.obj conftest.*; do
+  test -f "$ac_file" || continue;
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_compiler_gnu=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
+GCC=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
+if test "${ac_cv_prog_cc_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	CFLAGS=""
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_c_werror_flag=$ac_save_c_werror_flag
+	 CFLAGS="-g"
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_prog_cc_c89=$ac_arg
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6; } ;;
+  xno)
+    { echo "$as_me:$LINENO: result: unsupported" >&5
+echo "${ECHO_T}unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+if test "x$apu_preload_done" != "xyes" ; then
+    apu_preload_done="yes"
+
+    echo "Applying apr-util hints file rules for $host"
+
+    case "$host" in
+    *-dec-osf*)
+
+  if test -z "$apu_crypt_threadsafe"; then
+    test "x$silent" != "xyes" && echo "  setting apu_crypt_threadsafe to \"1\""
+    apu_crypt_threadsafe="1"
+  fi
+
+        ;;
+    *-hp-hpux11.*)
+
+  if test -z "$apu_crypt_threadsafe"; then
+    test "x$silent" != "xyes" && echo "  setting apu_crypt_threadsafe to \"1\""
+    apu_crypt_threadsafe="1"
+  fi
+
+        ;;
+    *-ibm-aix4*|*-ibm-aix5.1*)
+
+  if test -z "$apu_iconv_inbuf_const"; then
+    test "x$silent" != "xyes" && echo "  setting apu_iconv_inbuf_const to \"1\""
+    apu_iconv_inbuf_const="1"
+  fi
+
+        ;;
+    *-ibm-os390)
+
+  if test -z "$apu_crypt_threadsafe"; then
+    test "x$silent" != "xyes" && echo "  setting apu_crypt_threadsafe to \"1\""
+    apu_crypt_threadsafe="1"
+  fi
+
+        ;;
+    *-solaris2*)
+
+  if test -z "$apu_iconv_inbuf_const"; then
+    test "x$silent" != "xyes" && echo "  setting apu_iconv_inbuf_const to \"1\""
+    apu_iconv_inbuf_const="1"
+  fi
+
+
+  if test -z "$apu_crypt_threadsafe"; then
+    test "x$silent" != "xyes" && echo "  setting apu_crypt_threadsafe to \"1\""
+    apu_crypt_threadsafe="1"
+  fi
+
+        { echo "$as_me:$LINENO: checking for library containing fdatasync" >&5
+echo $ECHO_N "checking for library containing fdatasync... $ECHO_C" >&6; }
+if test "${ac_cv_search_fdatasync+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char fdatasync ();
+int
+main ()
+{
+return fdatasync ();
+  ;
+  return 0;
+}
+_ACEOF
+for ac_lib in '' rt posix4; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_search_fdatasync=$ac_res
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext
+  if test "${ac_cv_search_fdatasync+set}" = set; then
+  break
+fi
+done
+if test "${ac_cv_search_fdatasync+set}" = set; then
+  :
+else
+  ac_cv_search_fdatasync=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_search_fdatasync" >&5
+echo "${ECHO_T}$ac_cv_search_fdatasync" >&6; }
+ac_res=$ac_cv_search_fdatasync
+if test "$ac_res" != no; then
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+        ;;
+    *-sco3.2v5*)
+
+  if test -z "$apu_db_xtra_libs"; then
+    test "x$silent" != "xyes" && echo "  setting apu_db_xtra_libs to \"-lsocket\""
+    apu_db_xtra_libs="-lsocket"
+  fi
+
+	;;
+    esac
+
+fi
+
+
+
+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
+
+
+
+
+  apr_found="no"
+
+  if test "$target_os" = "os2-emx"; then
+    # Scripts don't pass test -x on OS/2
+    TEST_X="test -f"
+  else
+    TEST_X="test -x"
+  fi
+
+  acceptable_majors="1"
+
+  apr_temp_acceptable_apr_config=""
+  for apr_temp_major in $acceptable_majors
+  do
+    case $apr_temp_major in
+      0)
+      apr_temp_acceptable_apr_config="$apr_temp_acceptable_apr_config apr-config"
+      ;;
+      *)
+      apr_temp_acceptable_apr_config="$apr_temp_acceptable_apr_config apr-$apr_temp_major-config"
+      ;;
+    esac
+  done
+
+  { echo "$as_me:$LINENO: checking for APR" >&5
+echo $ECHO_N "checking for APR... $ECHO_C" >&6; }
+
+# Check whether --with-apr was given.
+if test "${with_apr+set}" = set; then
+  withval=$with_apr;
+    if test "$withval" = "no" || test "$withval" = "yes"; then
+      { { echo "$as_me:$LINENO: error: --with-apr requires a directory or file to be provided" >&5
+echo "$as_me: error: --with-apr requires a directory or file to be provided" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+
+    for apr_temp_apr_config_file in $apr_temp_acceptable_apr_config
+    do
+      for lookdir in "$withval/bin" "$withval"
+      do
+        if $TEST_X "$lookdir/$apr_temp_apr_config_file"; then
+          apr_found="yes"
+          apr_config="$lookdir/$apr_temp_apr_config_file"
+          break 2
+        fi
+      done
+    done
+
+    if test "$apr_found" != "yes" && $TEST_X "$withval" && $withval --help > /dev/null 2>&1 ; then
+      apr_found="yes"
+      apr_config="$withval"
+    fi
+
+            if test "$apr_found" != "yes"; then
+      { { echo "$as_me:$LINENO: error: the --with-apr parameter is incorrect. It must specify an install prefix, a build directory, or an apr-config file." >&5
+echo "$as_me: error: the --with-apr parameter is incorrect. It must specify an install prefix, a build directory, or an apr-config file." >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+
+else
+
+        if test -n "" && test "" = "1"; then
+      for apr_temp_apr_config_file in $apr_temp_acceptable_apr_config
+      do
+        if $apr_temp_apr_config_file --help > /dev/null 2>&1 ; then
+          apr_found="yes"
+          apr_config="$apr_temp_apr_config_file"
+          break
+        else
+                    for lookdir in /usr /usr/local /usr/local/apr /opt/apr; do
+            if $TEST_X "$lookdir/bin/$apr_temp_apr_config_file"; then
+              apr_found="yes"
+              apr_config="$lookdir/bin/$apr_temp_apr_config_file"
+              break 2
+            fi
+          done
+        fi
+      done
+    fi
+        if test "$apr_found" = "no" && test -d ""; then
+      apr_temp_abs_srcdir="`cd  && pwd`"
+      apr_found="reconfig"
+      apr_bundled_major="`sed -n '/#define.*APR_MAJOR_VERSION/s/^[^0-9]*\([0-9]*\).*$/\1/p' \"/include/apr_version.h\"`"
+      case $apr_bundled_major in
+        "")
+          { { echo "$as_me:$LINENO: error: failed to find major version of bundled APR" >&5
+echo "$as_me: error: failed to find major version of bundled APR" >&2;}
+   { (exit 1); exit 1; }; }
+        ;;
+        0)
+          apr_temp_apr_config_file="apr-config"
+        ;;
+        *)
+          apr_temp_apr_config_file="apr-$apr_bundled_major-config"
+        ;;
+      esac
+      if test -n ""; then
+        apr_config="/$apr_temp_apr_config_file"
+      else
+        apr_config="/$apr_temp_apr_config_file"
+      fi
+    fi
+
+fi
+
+
+  { echo "$as_me:$LINENO: result: $apr_found" >&5
+echo "${ECHO_T}$apr_found" >&6; }
+
+  if test "$apr_found" = "no"; then
+    { { echo "$as_me:$LINENO: error: APR could not be located. Please use the --with-apr option." >&5
+echo "$as_me: error: APR could not be located. Please use the --with-apr option." >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+
+  APR_BUILD_DIR="`$apr_config --installbuilddir`"
+
+      APR_BUILD_DIR="`cd $APR_BUILD_DIR && pwd`"
+
+  APR_INCLUDES="`$apr_config --includes`"
+  APR_LIBS="`$apr_config --link-libtool --libs`"
+  APR_SO_EXT="`$apr_config --apr-so-ext`"
+  APR_LIB_TARGET="`$apr_config --apr-lib-target`"
+
+
+
+
+
+
+
+  if test -z "$CC"; then
+    test "x$silent" != "xyes" && echo "  setting CC to \"`$apr_config --cc`\""
+    CC="`$apr_config --cc`"
+  fi
+
+
+  if test -z "$CPP"; then
+    test "x$silent" != "xyes" && echo "  setting CPP to \"`$apr_config --cpp`\""
+    CPP="`$apr_config --cpp`"
+  fi
+
+
+  if test "x$CFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting CFLAGS to \"`$apr_config --cflags`\""
+    CFLAGS="`$apr_config --cflags`"
+  else
+    apr_addto_bugger="`$apr_config --cflags`"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $CFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to CFLAGS"
+        CFLAGS="$CFLAGS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$CPPFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting CPPFLAGS to \"`$apr_config --cppflags`\""
+    CPPFLAGS="`$apr_config --cppflags`"
+  else
+    apr_addto_bugger="`$apr_config --cppflags`"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $CPPFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to CPPFLAGS"
+        CPPFLAGS="$CPPFLAGS $i"
+      fi
+    done
+  fi
+
+
+if test -d ../apr-iconv; then
+
+  # save our work to this point; this allows the sub-package to use it
+  cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
+echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      *) $as_unset $ac_var ;;
+      esac ;;
+    esac
+  done
+
+  (set) 2>&1 |
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      # `set' does not quote correctly, so add quotes (double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      sed -n \
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;; #(
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+) |
+  sed '
+     /^ac_cv_env_/b end
+     t clear
+     :clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+  if test -w "$cache_file"; then
+    test "x$cache_file" != "x/dev/null" &&
+      { echo "$as_me:$LINENO: updating cache $cache_file" >&5
+echo "$as_me: updating cache $cache_file" >&6;}
+    cat confcache >$cache_file
+  else
+    { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+  fi
+fi
+rm -f confcache
+
+  echo "configuring package in ../apr-iconv now"
+  ac_popdir=`pwd`
+  apr_config_subdirs="../apr-iconv"
+  test -d ../apr-iconv || $mkdir_p ../apr-iconv
+  ac_abs_srcdir=`(cd $srcdir/../apr-iconv && pwd)`
+  cd ../apr-iconv
+
+      # A "../" for each directory in /$config_subdirs.
+      ac_dots=`echo $apr_config_subdirs|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'`
+
+  # Make the cache file pathname absolute for the subdirs
+  # required to correctly handle subdirs that might actually
+  # be symlinks
+  case "$cache_file" in
+  /*) # already absolute
+    ac_sub_cache_file=$cache_file ;;
+  *)  # Was relative path.
+    ac_sub_cache_file="$ac_popdir/$cache_file" ;;
+  esac
+
+
+  apr_configure_args=
+  apr_sep=
+  for apr_configure_arg in $ac_configure_args
+  do
+    case "$apr_configure_arg" in
+      --enable-layout=*|\'--enable-layout=*)
+        continue ;;
+    esac
+    apr_configure_args="$apr_configure_args$apr_sep'$apr_configure_arg'"
+    apr_sep=" "
+  done
+
+
+  # autoconf doesn't add --silent to ac_configure_args; explicitly pass it
+  test "x$silent" = "xyes" && apr_configure_args="$apr_configure_args --silent"
+
+              if eval $SHELL $ac_abs_srcdir/configure $apr_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_abs_srcdir $apache_apr_flags --prefix=$prefix --exec-prefix=$exec_prefix --libdir=$libdir --includedir=$includedir --bindir=$bindir --datadir=$datadir --with-installbuilddir=$installbuilddir
+  then :
+    echo "../apr-iconv configured properly"
+  else
+    echo "configure failed for ../apr-iconv"
+    exit 1
+  fi
+
+  cd $ac_popdir
+
+  # grab any updates from the sub-package
+  if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special
+  # files actually), so we avoid doing that.
+  if test -f "$cache_file"; then
+    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
+    esac
+  fi
+else
+  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+
+  APRUTIL_EXPORT_LIBS="$abs_srcdir/../apr-iconv/lib/libapriconv.la $APRUTIL_EXPORT_LIBS"
+  APRUTIL_INCLUDES="-I$abs_srcdir/../apr-iconv/include $APRUTIL_INCLUDES"
+  APR_ICONV_DIR=../apr-iconv
+else
+  APR_ICONV_DIR=""
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if test "${ac_cv_prog_CPP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+{ echo "$as_me:$LINENO: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  :
+else
+  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
+echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # Extract the first word of "grep ggrep" to use in msg output
+if test -z "$GREP"; then
+set dummy grep ggrep; ac_prog_name=$2
+if test "${ac_cv_path_GREP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_path_GREP_found=false
+# Loop through the user's path and test for each of PROGNAME-LIST
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_prog in grep ggrep; do
+  for ac_exec_ext in '' $ac_executable_extensions; do
+    ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+    { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+    # Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    ac_count=`expr $ac_count + 1`
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+
+    $ac_path_GREP_found && break 3
+  done
+done
+
+done
+IFS=$as_save_IFS
+
+
+fi
+
+GREP="$ac_cv_path_GREP"
+if test -z "$GREP"; then
+  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
+echo "${ECHO_T}$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }
+if test "${ac_cv_path_EGREP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     # Extract the first word of "egrep" to use in msg output
+if test -z "$EGREP"; then
+set dummy egrep; ac_prog_name=$2
+if test "${ac_cv_path_EGREP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_path_EGREP_found=false
+# Loop through the user's path and test for each of PROGNAME-LIST
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_prog in egrep; do
+  for ac_exec_ext in '' $ac_executable_extensions; do
+    ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+    { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+    # Check for GNU ac_path_EGREP and select it if it is found.
+  # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    ac_count=`expr $ac_count + 1`
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+
+    $ac_path_EGREP_found && break 3
+  done
+done
+
+done
+IFS=$as_save_IFS
+
+
+fi
+
+EGREP="$ac_cv_path_EGREP"
+if test -z "$EGREP"; then
+  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+else
+  ac_cv_path_EGREP=$EGREP
+fi
+
+
+   fi
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
+echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
+if test "${ac_cv_header_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_cv_header_stdc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_header_stdc=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then
+  :
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+		   (('a' <= (c) && (c) <= 'i') \
+		     || ('j' <= (c) && (c) <= 'r') \
+		     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+	|| toupper (i) != TOUPPER (i))
+      return 2;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+		  inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  eval "$as_ac_Header=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Header=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+echo $ac_n "${nl}checking for ldap support..."
+
+apu_has_ldap="0";
+apu_has_ldapssl_client_init="0"
+apu_has_ldapssl_client_deinit="0"
+apu_has_ldapssl_add_trusted_cert="0"
+apu_has_ldap_start_tls_s="0"
+apu_has_ldapssl_init="0"
+apu_has_ldap_sslinit="0"
+apu_has_ldapssl_install_routines="0"
+apu_has_ldap_openldap="0"
+apu_has_ldap_solaris="0"
+apu_has_ldap_novell="0"
+apu_has_ldap_microsoft="0"
+apu_has_ldap_netscape="0"
+apu_has_ldap_mozilla="0"
+apu_has_ldap_zos="0"
+apu_has_ldap_other="0"
+
+
+# Check whether --with-ldap-include was given.
+if test "${with_ldap_include+set}" = set; then
+  withval=$with_ldap_include;
+fi
+
+
+# Check whether --with-ldap-lib was given.
+if test "${with_ldap_lib+set}" = set; then
+  withval=$with_ldap_lib;
+fi
+
+
+# Check whether --with-ldap was given.
+if test "${with_ldap+set}" = set; then
+  withval=$with_ldap;
+    save_cppflags="$CPPFLAGS"
+    save_ldflags="$LDFLAGS"
+    save_libs="$LIBS"
+    if test -n "$with_ldap_include"; then
+      CPPFLAGS="$CPPFLAGS -I$with_ldap_include"
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$with_ldap_include\""
+    APRUTIL_INCLUDES="-I$with_ldap_include"
+  else
+    apr_addto_bugger="-I$with_ldap_include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+    fi
+    if test -n "$with_ldap_lib"; then
+      LDFLAGS="$LDFLAGS -L$with_ldap_lib"
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$with_ldap_lib\""
+    APRUTIL_LDFLAGS="-L$with_ldap_lib"
+  else
+    apr_addto_bugger="-L$with_ldap_lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    fi
+
+    LIBLDAP="$withval"
+    if test "$LIBLDAP" = "yes"; then
+
+  if test ${apu_has_ldap} != "1"; then
+    ldaplib="ldap50"
+    extralib="-lnspr4 -lplc4 -lplds4 -liutil50 -llber50 -lldif50 -lnss3 -lprldap50 -lssl3 -lssldap50"
+    unset ac_cv_lib_${ldaplib}_ldap_init
+    unset ac_cv_lib_${ldaplib}___ldap_init
+    as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_init ();
+int
+main ()
+{
+return ldap_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_EXPORT_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_init ();
+int
+main ()
+{
+return ldapssl_client_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_deinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_deinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_deinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_deinit ();
+int
+main ()
+{
+return ldapssl_client_deinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_deinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_add_trusted_cert" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_add_trusted_cert in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_add_trusted_cert in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_add_trusted_cert ();
+int
+main ()
+{
+return ldapssl_add_trusted_cert ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_add_trusted_cert="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_start_tls_s" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_start_tls_s in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_start_tls_s in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_start_tls_s ();
+int
+main ()
+{
+return ldap_start_tls_s ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_start_tls_s="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_sslinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_sslinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_sslinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_sslinit ();
+int
+main ()
+{
+return ldap_sslinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_sslinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_init ();
+int
+main ()
+{
+return ldapssl_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_install_routines" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_install_routines in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_install_routines in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_install_routines ();
+int
+main ()
+{
+return ldapssl_install_routines ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_install_routines="1"
+fi
+
+        apu_has_ldap="1";
+
+fi
+
+  fi
+
+
+  if test ${apu_has_ldap} != "1"; then
+    ldaplib="ldapssl41"
+    extralib="-lnspr3 -lplc3 -lplds3"
+    unset ac_cv_lib_${ldaplib}_ldap_init
+    unset ac_cv_lib_${ldaplib}___ldap_init
+    as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_init ();
+int
+main ()
+{
+return ldap_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_EXPORT_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_init ();
+int
+main ()
+{
+return ldapssl_client_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_deinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_deinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_deinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_deinit ();
+int
+main ()
+{
+return ldapssl_client_deinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_deinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_add_trusted_cert" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_add_trusted_cert in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_add_trusted_cert in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_add_trusted_cert ();
+int
+main ()
+{
+return ldapssl_add_trusted_cert ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_add_trusted_cert="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_start_tls_s" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_start_tls_s in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_start_tls_s in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_start_tls_s ();
+int
+main ()
+{
+return ldap_start_tls_s ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_start_tls_s="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_sslinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_sslinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_sslinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_sslinit ();
+int
+main ()
+{
+return ldap_sslinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_sslinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_init ();
+int
+main ()
+{
+return ldapssl_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_install_routines" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_install_routines in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_install_routines in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_install_routines ();
+int
+main ()
+{
+return ldapssl_install_routines ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_install_routines="1"
+fi
+
+        apu_has_ldap="1";
+
+fi
+
+  fi
+
+
+  if test ${apu_has_ldap} != "1"; then
+    ldaplib="ldapssl40"
+    extralib=
+    unset ac_cv_lib_${ldaplib}_ldap_init
+    unset ac_cv_lib_${ldaplib}___ldap_init
+    as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_init ();
+int
+main ()
+{
+return ldap_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_EXPORT_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_init ();
+int
+main ()
+{
+return ldapssl_client_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_deinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_deinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_deinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_deinit ();
+int
+main ()
+{
+return ldapssl_client_deinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_deinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_add_trusted_cert" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_add_trusted_cert in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_add_trusted_cert in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_add_trusted_cert ();
+int
+main ()
+{
+return ldapssl_add_trusted_cert ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_add_trusted_cert="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_start_tls_s" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_start_tls_s in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_start_tls_s in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_start_tls_s ();
+int
+main ()
+{
+return ldap_start_tls_s ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_start_tls_s="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_sslinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_sslinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_sslinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_sslinit ();
+int
+main ()
+{
+return ldap_sslinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_sslinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_init ();
+int
+main ()
+{
+return ldapssl_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_install_routines" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_install_routines in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_install_routines in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_install_routines ();
+int
+main ()
+{
+return ldapssl_install_routines ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_install_routines="1"
+fi
+
+        apu_has_ldap="1";
+
+fi
+
+  fi
+
+
+  if test ${apu_has_ldap} != "1"; then
+    ldaplib="ldapssl30"
+    extralib=
+    unset ac_cv_lib_${ldaplib}_ldap_init
+    unset ac_cv_lib_${ldaplib}___ldap_init
+    as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_init ();
+int
+main ()
+{
+return ldap_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_EXPORT_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_init ();
+int
+main ()
+{
+return ldapssl_client_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_deinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_deinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_deinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_deinit ();
+int
+main ()
+{
+return ldapssl_client_deinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_deinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_add_trusted_cert" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_add_trusted_cert in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_add_trusted_cert in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_add_trusted_cert ();
+int
+main ()
+{
+return ldapssl_add_trusted_cert ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_add_trusted_cert="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_start_tls_s" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_start_tls_s in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_start_tls_s in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_start_tls_s ();
+int
+main ()
+{
+return ldap_start_tls_s ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_start_tls_s="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_sslinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_sslinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_sslinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_sslinit ();
+int
+main ()
+{
+return ldap_sslinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_sslinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_init ();
+int
+main ()
+{
+return ldapssl_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_install_routines" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_install_routines in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_install_routines in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_install_routines ();
+int
+main ()
+{
+return ldapssl_install_routines ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_install_routines="1"
+fi
+
+        apu_has_ldap="1";
+
+fi
+
+  fi
+
+
+  if test ${apu_has_ldap} != "1"; then
+    ldaplib="ldapssl20"
+    extralib=
+    unset ac_cv_lib_${ldaplib}_ldap_init
+    unset ac_cv_lib_${ldaplib}___ldap_init
+    as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_init ();
+int
+main ()
+{
+return ldap_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_EXPORT_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_init ();
+int
+main ()
+{
+return ldapssl_client_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_deinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_deinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_deinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_deinit ();
+int
+main ()
+{
+return ldapssl_client_deinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_deinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_add_trusted_cert" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_add_trusted_cert in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_add_trusted_cert in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_add_trusted_cert ();
+int
+main ()
+{
+return ldapssl_add_trusted_cert ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_add_trusted_cert="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_start_tls_s" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_start_tls_s in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_start_tls_s in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_start_tls_s ();
+int
+main ()
+{
+return ldap_start_tls_s ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_start_tls_s="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_sslinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_sslinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_sslinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_sslinit ();
+int
+main ()
+{
+return ldap_sslinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_sslinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_init ();
+int
+main ()
+{
+return ldapssl_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_install_routines" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_install_routines in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_install_routines in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_install_routines ();
+int
+main ()
+{
+return ldapssl_install_routines ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_install_routines="1"
+fi
+
+        apu_has_ldap="1";
+
+fi
+
+  fi
+
+
+  if test ${apu_has_ldap} != "1"; then
+    ldaplib="ldapsdk"
+    extralib="-lldapx -lldapssl -lldapgss -lgssapi_krb5"
+    unset ac_cv_lib_${ldaplib}_ldap_init
+    unset ac_cv_lib_${ldaplib}___ldap_init
+    as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_init ();
+int
+main ()
+{
+return ldap_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_EXPORT_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_init ();
+int
+main ()
+{
+return ldapssl_client_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_deinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_deinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_deinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_deinit ();
+int
+main ()
+{
+return ldapssl_client_deinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_deinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_add_trusted_cert" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_add_trusted_cert in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_add_trusted_cert in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_add_trusted_cert ();
+int
+main ()
+{
+return ldapssl_add_trusted_cert ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_add_trusted_cert="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_start_tls_s" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_start_tls_s in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_start_tls_s in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_start_tls_s ();
+int
+main ()
+{
+return ldap_start_tls_s ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_start_tls_s="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_sslinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_sslinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_sslinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_sslinit ();
+int
+main ()
+{
+return ldap_sslinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_sslinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_init ();
+int
+main ()
+{
+return ldapssl_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_install_routines" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_install_routines in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_install_routines in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_install_routines ();
+int
+main ()
+{
+return ldapssl_install_routines ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_install_routines="1"
+fi
+
+        apu_has_ldap="1";
+
+fi
+
+  fi
+
+
+  if test ${apu_has_ldap} != "1"; then
+    ldaplib="ldapsdk"
+    extralib="-lldapx -lldapssl -lldapgss -lgss -lresolv -lsocket"
+    unset ac_cv_lib_${ldaplib}_ldap_init
+    unset ac_cv_lib_${ldaplib}___ldap_init
+    as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_init ();
+int
+main ()
+{
+return ldap_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_EXPORT_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_init ();
+int
+main ()
+{
+return ldapssl_client_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_deinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_deinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_deinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_deinit ();
+int
+main ()
+{
+return ldapssl_client_deinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_deinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_add_trusted_cert" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_add_trusted_cert in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_add_trusted_cert in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_add_trusted_cert ();
+int
+main ()
+{
+return ldapssl_add_trusted_cert ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_add_trusted_cert="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_start_tls_s" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_start_tls_s in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_start_tls_s in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_start_tls_s ();
+int
+main ()
+{
+return ldap_start_tls_s ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_start_tls_s="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_sslinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_sslinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_sslinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_sslinit ();
+int
+main ()
+{
+return ldap_sslinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_sslinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_init ();
+int
+main ()
+{
+return ldapssl_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_install_routines" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_install_routines in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_install_routines in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_install_routines ();
+int
+main ()
+{
+return ldapssl_install_routines ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_install_routines="1"
+fi
+
+        apu_has_ldap="1";
+
+fi
+
+  fi
+
+
+  if test ${apu_has_ldap} != "1"; then
+    ldaplib="ldap"
+    extralib="-llber"
+    unset ac_cv_lib_${ldaplib}_ldap_init
+    unset ac_cv_lib_${ldaplib}___ldap_init
+    as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_init ();
+int
+main ()
+{
+return ldap_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_EXPORT_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_init ();
+int
+main ()
+{
+return ldapssl_client_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_deinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_deinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_deinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_deinit ();
+int
+main ()
+{
+return ldapssl_client_deinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_deinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_add_trusted_cert" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_add_trusted_cert in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_add_trusted_cert in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_add_trusted_cert ();
+int
+main ()
+{
+return ldapssl_add_trusted_cert ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_add_trusted_cert="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_start_tls_s" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_start_tls_s in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_start_tls_s in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_start_tls_s ();
+int
+main ()
+{
+return ldap_start_tls_s ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_start_tls_s="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_sslinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_sslinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_sslinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_sslinit ();
+int
+main ()
+{
+return ldap_sslinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_sslinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_init ();
+int
+main ()
+{
+return ldapssl_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_install_routines" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_install_routines in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_install_routines in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_install_routines ();
+int
+main ()
+{
+return ldapssl_install_routines ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_install_routines="1"
+fi
+
+        apu_has_ldap="1";
+
+fi
+
+  fi
+
+
+  if test ${apu_has_ldap} != "1"; then
+    ldaplib="ldap"
+    extralib="-llber -lresolv"
+    unset ac_cv_lib_${ldaplib}_ldap_init
+    unset ac_cv_lib_${ldaplib}___ldap_init
+    as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_init ();
+int
+main ()
+{
+return ldap_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_EXPORT_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_init ();
+int
+main ()
+{
+return ldapssl_client_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_deinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_deinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_deinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_deinit ();
+int
+main ()
+{
+return ldapssl_client_deinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_deinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_add_trusted_cert" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_add_trusted_cert in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_add_trusted_cert in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_add_trusted_cert ();
+int
+main ()
+{
+return ldapssl_add_trusted_cert ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_add_trusted_cert="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_start_tls_s" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_start_tls_s in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_start_tls_s in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_start_tls_s ();
+int
+main ()
+{
+return ldap_start_tls_s ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_start_tls_s="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_sslinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_sslinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_sslinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_sslinit ();
+int
+main ()
+{
+return ldap_sslinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_sslinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_init ();
+int
+main ()
+{
+return ldapssl_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_install_routines" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_install_routines in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_install_routines in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_install_routines ();
+int
+main ()
+{
+return ldapssl_install_routines ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_install_routines="1"
+fi
+
+        apu_has_ldap="1";
+
+fi
+
+  fi
+
+
+  if test ${apu_has_ldap} != "1"; then
+    ldaplib="ldap"
+    extralib="-llber -lresolv -lsocket -lnsl"
+    unset ac_cv_lib_${ldaplib}_ldap_init
+    unset ac_cv_lib_${ldaplib}___ldap_init
+    as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_init ();
+int
+main ()
+{
+return ldap_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_EXPORT_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_init ();
+int
+main ()
+{
+return ldapssl_client_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_deinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_deinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_deinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_deinit ();
+int
+main ()
+{
+return ldapssl_client_deinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_deinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_add_trusted_cert" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_add_trusted_cert in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_add_trusted_cert in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_add_trusted_cert ();
+int
+main ()
+{
+return ldapssl_add_trusted_cert ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_add_trusted_cert="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_start_tls_s" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_start_tls_s in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_start_tls_s in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_start_tls_s ();
+int
+main ()
+{
+return ldap_start_tls_s ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_start_tls_s="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_sslinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_sslinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_sslinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_sslinit ();
+int
+main ()
+{
+return ldap_sslinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_sslinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_init ();
+int
+main ()
+{
+return ldapssl_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_install_routines" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_install_routines in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_install_routines in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_install_routines ();
+int
+main ()
+{
+return ldapssl_install_routines ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_install_routines="1"
+fi
+
+        apu_has_ldap="1";
+
+fi
+
+  fi
+
+
+  if test ${apu_has_ldap} != "1"; then
+    ldaplib="ldap"
+    extralib="-ldl -lpthread"
+    unset ac_cv_lib_${ldaplib}_ldap_init
+    unset ac_cv_lib_${ldaplib}___ldap_init
+    as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_init ();
+int
+main ()
+{
+return ldap_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_EXPORT_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_init ();
+int
+main ()
+{
+return ldapssl_client_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_deinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_deinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_deinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_deinit ();
+int
+main ()
+{
+return ldapssl_client_deinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_deinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_add_trusted_cert" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_add_trusted_cert in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_add_trusted_cert in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_add_trusted_cert ();
+int
+main ()
+{
+return ldapssl_add_trusted_cert ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_add_trusted_cert="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_start_tls_s" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_start_tls_s in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_start_tls_s in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_start_tls_s ();
+int
+main ()
+{
+return ldap_start_tls_s ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_start_tls_s="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_sslinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_sslinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_sslinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_sslinit ();
+int
+main ()
+{
+return ldap_sslinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_sslinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_init ();
+int
+main ()
+{
+return ldapssl_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_install_routines" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_install_routines in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_install_routines in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_install_routines ();
+int
+main ()
+{
+return ldapssl_install_routines ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_install_routines="1"
+fi
+
+        apu_has_ldap="1";
+
+fi
+
+  fi
+
+    else
+
+  if test ${apu_has_ldap} != "1"; then
+    ldaplib=$LIBLDAP
+    extralib=
+    unset ac_cv_lib_${ldaplib}_ldap_init
+    unset ac_cv_lib_${ldaplib}___ldap_init
+    as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_init ();
+int
+main ()
+{
+return ldap_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_EXPORT_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_init ();
+int
+main ()
+{
+return ldapssl_client_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_deinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_deinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_deinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_deinit ();
+int
+main ()
+{
+return ldapssl_client_deinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_deinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_add_trusted_cert" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_add_trusted_cert in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_add_trusted_cert in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_add_trusted_cert ();
+int
+main ()
+{
+return ldapssl_add_trusted_cert ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_add_trusted_cert="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_start_tls_s" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_start_tls_s in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_start_tls_s in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_start_tls_s ();
+int
+main ()
+{
+return ldap_start_tls_s ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_start_tls_s="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_sslinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_sslinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_sslinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_sslinit ();
+int
+main ()
+{
+return ldap_sslinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_sslinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_init ();
+int
+main ()
+{
+return ldapssl_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_install_routines" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_install_routines in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_install_routines in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_install_routines ();
+int
+main ()
+{
+return ldapssl_install_routines ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_install_routines="1"
+fi
+
+        apu_has_ldap="1";
+
+fi
+
+  fi
+
+
+  if test ${apu_has_ldap} != "1"; then
+    ldaplib=$LIBLDAP
+    extralib="-lresolv"
+    unset ac_cv_lib_${ldaplib}_ldap_init
+    unset ac_cv_lib_${ldaplib}___ldap_init
+    as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_init ();
+int
+main ()
+{
+return ldap_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_EXPORT_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_init ();
+int
+main ()
+{
+return ldapssl_client_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_deinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_deinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_deinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_deinit ();
+int
+main ()
+{
+return ldapssl_client_deinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_deinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_add_trusted_cert" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_add_trusted_cert in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_add_trusted_cert in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_add_trusted_cert ();
+int
+main ()
+{
+return ldapssl_add_trusted_cert ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_add_trusted_cert="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_start_tls_s" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_start_tls_s in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_start_tls_s in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_start_tls_s ();
+int
+main ()
+{
+return ldap_start_tls_s ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_start_tls_s="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_sslinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_sslinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_sslinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_sslinit ();
+int
+main ()
+{
+return ldap_sslinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_sslinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_init ();
+int
+main ()
+{
+return ldapssl_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_install_routines" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_install_routines in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_install_routines in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_install_routines ();
+int
+main ()
+{
+return ldapssl_install_routines ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_install_routines="1"
+fi
+
+        apu_has_ldap="1";
+
+fi
+
+  fi
+
+
+  if test ${apu_has_ldap} != "1"; then
+    ldaplib=$LIBLDAP
+    extralib="-lresolv -lsocket -lnsl"
+    unset ac_cv_lib_${ldaplib}_ldap_init
+    unset ac_cv_lib_${ldaplib}___ldap_init
+    as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_init ();
+int
+main ()
+{
+return ldap_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_EXPORT_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_init ();
+int
+main ()
+{
+return ldapssl_client_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_deinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_deinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_deinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_deinit ();
+int
+main ()
+{
+return ldapssl_client_deinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_deinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_add_trusted_cert" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_add_trusted_cert in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_add_trusted_cert in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_add_trusted_cert ();
+int
+main ()
+{
+return ldapssl_add_trusted_cert ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_add_trusted_cert="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_start_tls_s" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_start_tls_s in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_start_tls_s in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_start_tls_s ();
+int
+main ()
+{
+return ldap_start_tls_s ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_start_tls_s="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_sslinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_sslinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_sslinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_sslinit ();
+int
+main ()
+{
+return ldap_sslinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_sslinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_init ();
+int
+main ()
+{
+return ldapssl_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_install_routines" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_install_routines in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_install_routines in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_install_routines ();
+int
+main ()
+{
+return ldapssl_install_routines ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_install_routines="1"
+fi
+
+        apu_has_ldap="1";
+
+fi
+
+  fi
+
+
+  if test ${apu_has_ldap} != "1"; then
+    ldaplib=$LIBLDAP
+    extralib="-ldl -lpthread"
+    unset ac_cv_lib_${ldaplib}_ldap_init
+    unset ac_cv_lib_${ldaplib}___ldap_init
+    as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_init ();
+int
+main ()
+{
+return ldap_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_EXPORT_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-l${ldaplib} ${extralib}\""
+    APRUTIL_LIBS="-l${ldaplib} ${extralib}"
+  else
+    apr_addto_bugger="-l${ldaplib} ${extralib}"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_init ();
+int
+main ()
+{
+return ldapssl_client_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_client_deinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_client_deinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_client_deinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_client_deinit ();
+int
+main ()
+{
+return ldapssl_client_deinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_client_deinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_add_trusted_cert" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_add_trusted_cert in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_add_trusted_cert in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_add_trusted_cert ();
+int
+main ()
+{
+return ldapssl_add_trusted_cert ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_add_trusted_cert="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_start_tls_s" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_start_tls_s in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_start_tls_s in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_start_tls_s ();
+int
+main ()
+{
+return ldap_start_tls_s ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_start_tls_s="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldap_sslinit" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldap_sslinit in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldap_sslinit in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_sslinit ();
+int
+main ()
+{
+return ldap_sslinit ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldap_sslinit="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_init" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_init in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_init in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_init ();
+int
+main ()
+{
+return ldapssl_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_init="1"
+fi
+
+        as_ac_Lib=`echo "ac_cv_lib_${ldaplib}''_ldapssl_install_routines" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for ldapssl_install_routines in -l${ldaplib}" >&5
+echo $ECHO_N "checking for ldapssl_install_routines in -l${ldaplib}... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l${ldaplib} ${extralib} $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldapssl_install_routines ();
+int
+main ()
+{
+return ldapssl_install_routines ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  apu_has_ldapssl_install_routines="1"
+fi
+
+        apu_has_ldap="1";
+
+fi
+
+  fi
+
+    fi
+
+    test ${apu_has_ldap} != "1" && { { echo "$as_me:$LINENO: error: could not find an LDAP library" >&5
+echo "$as_me: error: could not find an LDAP library" >&2;}
+   { (exit 1); exit 1; }; }
+
+{ echo "$as_me:$LINENO: checking for ber_init in -llber" >&5
+echo $ECHO_N "checking for ber_init in -llber... $ECHO_C" >&6; }
+if test "${ac_cv_lib_lber_ber_init+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-llber  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ber_init ();
+int
+main ()
+{
+return ber_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_lber_ber_init=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_lber_ber_init=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_lber_ber_init" >&5
+echo "${ECHO_T}$ac_cv_lib_lber_ber_init" >&6; }
+if test $ac_cv_lib_lber_ber_init = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBLBER 1
+_ACEOF
+
+  LIBS="-llber $LIBS"
+
+fi
+
+
+
+for ac_header in lber.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ lber_h="#include <lber.h>"
+fi
+
+done
+
+
+    # Solaris has a problem in <ldap.h> which prevents it from
+    # being included by itself.  Check for <ldap.h> manually,
+    # including lber.h first.
+    { echo "$as_me:$LINENO: checking for ldap.h" >&5
+echo $ECHO_N "checking for ldap.h... $ECHO_C" >&6; }
+if test "${apr_cv_hdr_ldap_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef HAVE_LBER_H
+    #include <lber.h>
+    #endif
+    #include <ldap.h>
+
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  apr_cv_hdr_ldap_h=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  apr_cv_hdr_ldap_h=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $apr_cv_hdr_ldap_h" >&5
+echo "${ECHO_T}$apr_cv_hdr_ldap_h" >&6; }
+    if test "$apr_cv_hdr_ldap_h" = "yes"; then
+      ldap_h="#include <ldap.h>"
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LDAP_H 1
+_ACEOF
+
+    fi
+
+
+for ac_header in ldap_ssl.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ ldap_ssl_h="#include <ldap_ssl.h>"
+fi
+
+done
+
+
+    if test "$apr_cv_hdr_ldap_h" = "yes"; then
+      { echo "$as_me:$LINENO: checking for LDAP toolkit" >&5
+echo $ECHO_N "checking for LDAP toolkit... $ECHO_C" >&6; }
+if test "${apr_cv_ldap_toolkit+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+        if test "x$apr_cv_ldap_toolkit" = "x"; then
+          cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$lber_h
+                       $ldap_h
+                       LDAP_VENDOR_NAME
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "OpenLDAP" >/dev/null 2>&1; then
+  apu_has_ldap_openldap="1"
+                                           apr_cv_ldap_toolkit="OpenLDAP"
+fi
+rm -f conftest*
+
+        fi
+        if test "x$apr_cv_ldap_toolkit" = "x"; then
+          cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$lber_h
+                       $ldap_h
+                       LDAP_VENDOR_NAME
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Sun Microsystems Inc." >/dev/null 2>&1; then
+  apu_has_ldap_solaris="1"
+                                           apr_cv_ldap_toolkit="Solaris"
+fi
+rm -f conftest*
+
+        fi
+        if test "x$apr_cv_ldap_toolkit" = "x"; then
+          cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$lber_h
+                       $ldap_h
+                       LDAP_VENDOR_NAME
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Novell" >/dev/null 2>&1; then
+  apu_has_ldap_novell="1"
+                                           apr_cv_ldap_toolkit="Novell"
+fi
+rm -f conftest*
+
+        fi
+        if test "x$apr_cv_ldap_toolkit" = "x"; then
+          cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$lber_h
+                       $ldap_h
+                       LDAP_VENDOR_NAME
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Microsoft Corporation." >/dev/null 2>&1; then
+  apu_has_ldap_microsoft="1"
+                                           apr_cv_ldap_toolkit="Microsoft"
+fi
+rm -f conftest*
+
+        fi
+        if test "x$apr_cv_ldap_toolkit" = "x"; then
+          cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$lber_h
+                       $ldap_h
+                       LDAP_VENDOR_NAME
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Netscape Communications Corp." >/dev/null 2>&1; then
+  apu_has_ldap_netscape="1"
+                                           apr_cv_ldap_toolkit="Netscape"
+fi
+rm -f conftest*
+
+        fi
+        if test "x$apr_cv_ldap_toolkit" = "x"; then
+          cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$lber_h
+                       $ldap_h
+                       LDAP_VENDOR_NAME
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "mozilla.org" >/dev/null 2>&1; then
+  apu_has_ldap_mozilla="1"
+                                           apr_cv_ldap_toolkit="Mozilla"
+fi
+rm -f conftest*
+
+        fi
+        if test "x$apr_cv_ldap_toolkit" = "x"; then
+          case "$host" in
+          *-ibm-os390)
+            cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$lber_h
+                                 $ldap_h
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "IBM" >/dev/null 2>&1; then
+  apu_has_ldap_zos="1"
+                                            apr_cv_ldap_toolkit="zOS"
+fi
+rm -f conftest*
+
+            ;;
+          esac
+        fi
+        if test "x$apr_cv_ldap_toolkit" = "x"; then
+          apu_has_ldap_other="1"
+          apr_cv_ldap_toolkit="unknown"
+        fi
+
+fi
+{ echo "$as_me:$LINENO: result: $apr_cv_ldap_toolkit" >&5
+echo "${ECHO_T}$apr_cv_ldap_toolkit" >&6; }
+    fi
+
+    CPPFLAGS=$save_cppflags
+    LDFLAGS=$save_ldflags
+    LIBS=$save_libs
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+  apu_use_sdbm=0
+  apu_use_ndbm=0
+  apu_use_gdbm=0
+  apu_use_db=0
+    apu_have_sdbm=1
+  apu_have_gdbm=0
+  apu_have_ndbm=0
+  apu_have_db=0
+
+  apu_db_header=db.h                # default so apu_select_dbm.h is syntactically correct
+  apu_db_version=0
+
+
+# Check whether --with-dbm was given.
+if test "${with_dbm+set}" = set; then
+  withval=$with_dbm;
+    if test "$withval" = "yes"; then
+      { { echo "$as_me:$LINENO: error: --with-dbm needs to specify a DBM type to use.
+        One of: sdbm, gdbm, ndbm, db, db1, db185, db2, db3, db4, db41, db42, db43, db44, db45, db46" >&5
+echo "$as_me: error: --with-dbm needs to specify a DBM type to use.
+        One of: sdbm, gdbm, ndbm, db, db1, db185, db2, db3, db4, db41, db42, db43, db44, db45, db46" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+    requested="$withval"
+
+else
+
+    requested=default
+
+fi
+
+
+
+# Check whether --with-gdbm was given.
+if test "${with_gdbm+set}" = set; then
+  withval=$with_gdbm;
+    apu_have_gdbm=0
+    if test "$withval" = "yes"; then
+      if test "${ac_cv_header_gdbm_h+set}" = set; then
+  { echo "$as_me:$LINENO: checking for gdbm.h" >&5
+echo $ECHO_N "checking for gdbm.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_gdbm_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_gdbm_h" >&5
+echo "${ECHO_T}$ac_cv_header_gdbm_h" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking gdbm.h usability" >&5
+echo $ECHO_N "checking gdbm.h usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <gdbm.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking gdbm.h presence" >&5
+echo $ECHO_N "checking gdbm.h presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <gdbm.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: gdbm.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: gdbm.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: gdbm.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: gdbm.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: gdbm.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: gdbm.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: gdbm.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: gdbm.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: gdbm.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: gdbm.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: gdbm.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: gdbm.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: gdbm.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: gdbm.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: gdbm.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: gdbm.h: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for gdbm.h" >&5
+echo $ECHO_N "checking for gdbm.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_gdbm_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_gdbm_h=$ac_header_preproc
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_gdbm_h" >&5
+echo "${ECHO_T}$ac_cv_header_gdbm_h" >&6; }
+
+fi
+if test $ac_cv_header_gdbm_h = yes; then
+  { echo "$as_me:$LINENO: checking for gdbm_open in -lgdbm" >&5
+echo $ECHO_N "checking for gdbm_open in -lgdbm... $ECHO_C" >&6; }
+if test "${ac_cv_lib_gdbm_gdbm_open+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lgdbm  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gdbm_open ();
+int
+main ()
+{
+return gdbm_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_gdbm_gdbm_open=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_gdbm_gdbm_open=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_gdbm_gdbm_open" >&5
+echo "${ECHO_T}$ac_cv_lib_gdbm_gdbm_open" >&6; }
+if test $ac_cv_lib_gdbm_gdbm_open = yes; then
+  apu_have_gdbm=1
+fi
+
+fi
+
+
+    elif test "$withval" = "no"; then
+      apu_have_gdbm=0
+    else
+      CPPFLAGS="-I$withval/include"
+      LIBS="-L$withval/lib "
+
+      { echo "$as_me:$LINENO: checking checking for gdbm in $withval" >&5
+echo $ECHO_N "checking checking for gdbm in $withval... $ECHO_C" >&6; }
+      if test "${ac_cv_header_gdbm_h+set}" = set; then
+  { echo "$as_me:$LINENO: checking for gdbm.h" >&5
+echo $ECHO_N "checking for gdbm.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_gdbm_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_gdbm_h" >&5
+echo "${ECHO_T}$ac_cv_header_gdbm_h" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking gdbm.h usability" >&5
+echo $ECHO_N "checking gdbm.h usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <gdbm.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking gdbm.h presence" >&5
+echo $ECHO_N "checking gdbm.h presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <gdbm.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: gdbm.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: gdbm.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: gdbm.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: gdbm.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: gdbm.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: gdbm.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: gdbm.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: gdbm.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: gdbm.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: gdbm.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: gdbm.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: gdbm.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: gdbm.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: gdbm.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: gdbm.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: gdbm.h: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for gdbm.h" >&5
+echo $ECHO_N "checking for gdbm.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_gdbm_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_gdbm_h=$ac_header_preproc
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_gdbm_h" >&5
+echo "${ECHO_T}$ac_cv_header_gdbm_h" >&6; }
+
+fi
+if test $ac_cv_header_gdbm_h = yes; then
+  { echo "$as_me:$LINENO: checking for gdbm_open in -lgdbm" >&5
+echo $ECHO_N "checking for gdbm_open in -lgdbm... $ECHO_C" >&6; }
+if test "${ac_cv_lib_gdbm_gdbm_open+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lgdbm  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char gdbm_open ();
+int
+main ()
+{
+return gdbm_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_gdbm_gdbm_open=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_gdbm_gdbm_open=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_gdbm_gdbm_open" >&5
+echo "${ECHO_T}$ac_cv_lib_gdbm_gdbm_open" >&6; }
+if test $ac_cv_lib_gdbm_gdbm_open = yes; then
+  apu_have_gdbm=1
+fi
+
+fi
+
+
+      if test "$apu_have_gdbm" != "0"; then
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$withval/lib\""
+    APRUTIL_LDFLAGS="-L$withval/lib"
+  else
+    apr_addto_bugger="-L$withval/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$withval/include\""
+    APRUTIL_INCLUDES="-I$withval/include"
+  else
+    apr_addto_bugger="-I$withval/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+      fi
+    fi
+
+fi
+
+
+
+# Check whether --with-ndbm was given.
+if test "${with_ndbm+set}" = set; then
+  withval=$with_ndbm;
+    apu_have_ndbm=0
+    if test "$withval" = "yes"; then
+      { echo "$as_me:$LINENO: checking checking for ndbm in the usual places" >&5
+echo $ECHO_N "checking checking for ndbm in the usual places... $ECHO_C" >&6; }
+      apu_want_ndbm=1
+      NDBM_INC=""
+      NDBM_LDFLAGS=""
+    elif test "$withval" = "no"; then
+      apu_want_ndbm=0
+    else
+      apu_want_ndbm=1
+      case "$withval" in
+        *":"*)
+          NDBM_INC="-I`echo $withval |sed -e 's/:.*$//'`"
+          NDBM_LDFLAGS="-L`echo $withval |sed -e 's/^.*://'`"
+          { echo "$as_me:$LINENO: checking checking for ndbm includes with $NDBM_INC libs with $NDBM_LDFLAGS " >&5
+echo $ECHO_N "checking checking for ndbm includes with $NDBM_INC libs with $NDBM_LDFLAGS ... $ECHO_C" >&6; }
+        ;;
+        *)
+          NDBM_INC="-I$withval/include"
+          NDBM_LDFLAGS="-L$withval/lib"
+          { echo "$as_me:$LINENO: checking checking for ndbm includes in $withval" >&5
+echo $ECHO_N "checking checking for ndbm includes in $withval... $ECHO_C" >&6; }
+        ;;
+      esac
+    fi
+
+    save_cppflags="$CPPFLAGS"
+    save_ldflags="$LDFLAGS"
+    CPPFLAGS="$CPPFLAGS $NDBM_INC"
+    LDFLAGS="$LDFLAGS $NDBM_LDFLAGS"
+        if test "$apu_want_ndbm" != "0"; then
+      if test "${ac_cv_header_ndbm_h+set}" = set; then
+  { echo "$as_me:$LINENO: checking for ndbm.h" >&5
+echo $ECHO_N "checking for ndbm.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_ndbm_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_ndbm_h" >&5
+echo "${ECHO_T}$ac_cv_header_ndbm_h" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking ndbm.h usability" >&5
+echo $ECHO_N "checking ndbm.h usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <ndbm.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking ndbm.h presence" >&5
+echo $ECHO_N "checking ndbm.h presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ndbm.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: ndbm.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: ndbm.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: ndbm.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: ndbm.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: ndbm.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: ndbm.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: ndbm.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: ndbm.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: ndbm.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: ndbm.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: ndbm.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: ndbm.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: ndbm.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: ndbm.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: ndbm.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: ndbm.h: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for ndbm.h" >&5
+echo $ECHO_N "checking for ndbm.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_ndbm_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_ndbm_h=$ac_header_preproc
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_ndbm_h" >&5
+echo "${ECHO_T}$ac_cv_header_ndbm_h" >&6; }
+
+fi
+if test $ac_cv_header_ndbm_h = yes; then
+  { echo "$as_me:$LINENO: checking for dbm_open in -lc" >&5
+echo $ECHO_N "checking for dbm_open in -lc... $ECHO_C" >&6; }
+if test "${ac_cv_lib_c_dbm_open+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lc  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbm_open ();
+int
+main ()
+{
+return dbm_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_c_dbm_open=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_c_dbm_open=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_c_dbm_open" >&5
+echo "${ECHO_T}$ac_cv_lib_c_dbm_open" >&6; }
+if test $ac_cv_lib_c_dbm_open = yes; then
+  apu_have_ndbm=1;apu_ndbm_lib=c
+else
+  { echo "$as_me:$LINENO: checking for dbm_open in -ldbm" >&5
+echo $ECHO_N "checking for dbm_open in -ldbm... $ECHO_C" >&6; }
+if test "${ac_cv_lib_dbm_dbm_open+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldbm  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbm_open ();
+int
+main ()
+{
+return dbm_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_dbm_dbm_open=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_dbm_dbm_open=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_dbm_dbm_open" >&5
+echo "${ECHO_T}$ac_cv_lib_dbm_dbm_open" >&6; }
+if test $ac_cv_lib_dbm_dbm_open = yes; then
+  apu_have_ndbm=1;apu_ndbm_lib=dbm
+else
+  { echo "$as_me:$LINENO: checking for dbm_open in -ldb" >&5
+echo $ECHO_N "checking for dbm_open in -ldb... $ECHO_C" >&6; }
+if test "${ac_cv_lib_db_dbm_open+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldb  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbm_open ();
+int
+main ()
+{
+return dbm_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_db_dbm_open=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_db_dbm_open=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_db_dbm_open" >&5
+echo "${ECHO_T}$ac_cv_lib_db_dbm_open" >&6; }
+if test $ac_cv_lib_db_dbm_open = yes; then
+  apu_have_ndbm=1;apu_ndbm_lib=db
+else
+  { echo "$as_me:$LINENO: checking for __db_ndbm_open in -ldb" >&5
+echo $ECHO_N "checking for __db_ndbm_open in -ldb... $ECHO_C" >&6; }
+if test "${ac_cv_lib_db___db_ndbm_open+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldb  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char __db_ndbm_open ();
+int
+main ()
+{
+return __db_ndbm_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_db___db_ndbm_open=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_db___db_ndbm_open=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_db___db_ndbm_open" >&5
+echo "${ECHO_T}$ac_cv_lib_db___db_ndbm_open" >&6; }
+if test $ac_cv_lib_db___db_ndbm_open = yes; then
+  apu_have_ndbm=1;apu_ndbm_lib=db
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+      if test "$apu_have_ndbm" != "0";  then
+        if test "$withval" != "yes"; then
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"$NDBM_INC\""
+    APRUTIL_INCLUDES="$NDBM_INC"
+  else
+    apr_addto_bugger="$NDBM_INC"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"$NDBM_LDFLAGS\""
+    APRUTIL_LDFLAGS="$NDBM_LDFLAGS"
+  else
+    apr_addto_bugger="$NDBM_LDFLAGS"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+        fi
+      elif test "$withval" != "yes"; then
+        { { echo "$as_me:$LINENO: error: NDBM not found in the specified directory" >&5
+echo "$as_me: error: NDBM not found in the specified directory" >&2;}
+   { (exit 1); exit 1; }; }
+      fi
+    fi
+    CPPFLAGS="$save_cppflags"
+    LDFLAGS="$save_ldflags"
+
+else
+
+        apu_have_ndbm=0
+
+fi
+
+
+
+  if test -n "$apu_db_xtra_libs"; then
+    saveddbxtralibs="$LIBS"
+    LIBS="$apu_db_xtra_libs $LIBS"
+  fi
+
+
+# Check whether --with-berkeley-db was given.
+if test "${with_berkeley_db+set}" = set; then
+  withval=$with_berkeley_db;
+    if test "$withval" = "yes"; then
+      apu_want_db=1
+      user_places=""
+    elif test "$withval" = "no"; then
+      apu_want_db=0
+    else
+      apu_want_db=1
+      user_places="$withval"
+    fi
+
+    if test "$apu_want_db" != "0"; then
+
+  requested=$requested
+  check_places=$user_places
+
+  case "$requested" in
+  db)
+
+  all_places="$check_places"
+
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std /usr/local/BerkeleyDB.4.6 /boot/home/config"
+  fi
+
+  bdb_version="4"
+  if test ""6"" != "-1"; then
+    bdb_version="$bdb_version."6""
+    if test ""-1"" != "-1"; then
+      bdb_version="$bdb_version."-1""
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db46/db.h db4/db.h db.h"
+  bdb_default_search_lib_names="db-4.6 db4-4.6 db46 db4 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test ""4"" = "3" -o ""4"" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_"4"_"6"_"-1"_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major="4"
+    apu_check_berkeley_db_minor="6"
+    apu_check_berkeley_db_patch="-1"
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test ""4"" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test ""4"" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=4
+  fi
+
+  if test "$apu_db_version" != "4"; then
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std /usr/local/BerkeleyDB.4.5 /boot/home/config"
+  fi
+
+  bdb_version="4"
+  if test ""5"" != "-1"; then
+    bdb_version="$bdb_version."5""
+    if test ""-1"" != "-1"; then
+      bdb_version="$bdb_version."-1""
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db45/db.h db4/db.h db.h"
+  bdb_default_search_lib_names="db-4.5 db4-4.5 db45 db4 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test ""4"" = "3" -o ""4"" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_"4"_"5"_"-1"_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major="4"
+    apu_check_berkeley_db_minor="5"
+    apu_check_berkeley_db_patch="-1"
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test ""4"" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test ""4"" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=4
+  fi
+
+    if test "$apu_db_version" != "4"; then
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std /usr/local/BerkeleyDB.4.4 /boot/home/config"
+  fi
+
+  bdb_version="4"
+  if test ""4"" != "-1"; then
+    bdb_version="$bdb_version."4""
+    if test ""-1"" != "-1"; then
+      bdb_version="$bdb_version."-1""
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db44/db.h db4/db.h db.h"
+  bdb_default_search_lib_names="db-4.4 db4-4.4 db44 db4 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test ""4"" = "3" -o ""4"" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_"4"_"4"_"-1"_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major="4"
+    apu_check_berkeley_db_minor="4"
+    apu_check_berkeley_db_patch="-1"
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test ""4"" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test ""4"" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=4
+  fi
+
+      if test "$apu_db_version" != "4"; then
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std /usr/local/BerkeleyDB.4.3 /boot/home/config"
+  fi
+
+  bdb_version="4"
+  if test ""3"" != "-1"; then
+    bdb_version="$bdb_version."3""
+    if test ""-1"" != "-1"; then
+      bdb_version="$bdb_version."-1""
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db43/db.h db4/db.h db.h"
+  bdb_default_search_lib_names="db-4.3 db4-4.3 db43 db4 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test ""4"" = "3" -o ""4"" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_"4"_"3"_"-1"_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major="4"
+    apu_check_berkeley_db_minor="3"
+    apu_check_berkeley_db_patch="-1"
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test ""4"" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test ""4"" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=4
+  fi
+
+        if test "$apu_db_version" != "4"; then
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std /usr/local /usr/local/BerkeleyDB.4.2 /boot/home/config"
+  fi
+
+  bdb_version="4"
+  if test ""2"" != "-1"; then
+    bdb_version="$bdb_version."2""
+    if test ""-1"" != "-1"; then
+      bdb_version="$bdb_version."-1""
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db42/db.h db4/db.h db.h"
+  bdb_default_search_lib_names="db-4.2 db42 db4 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test ""4"" = "3" -o ""4"" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_"4"_"2"_"-1"_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major="4"
+    apu_check_berkeley_db_minor="2"
+    apu_check_berkeley_db_patch="-1"
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test ""4"" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test ""4"" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=4
+  fi
+
+          if test "$apu_db_version" != "4"; then
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std /usr/local /usr/local/BerkeleyDB.4.1 /boot/home/config"
+  fi
+
+  bdb_version="4"
+  if test ""1"" != "-1"; then
+    bdb_version="$bdb_version."1""
+    if test ""-1"" != "-1"; then
+      bdb_version="$bdb_version."-1""
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db41/db.h db4/db.h db.h"
+  bdb_default_search_lib_names="db-4.1 db41 db4 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test ""4"" = "3" -o ""4"" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_"4"_"1"_"-1"_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major="4"
+    apu_check_berkeley_db_minor="1"
+    apu_check_berkeley_db_patch="-1"
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test ""4"" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test ""4"" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=4
+  fi
+
+            if test "$apu_db_version" != "4"; then
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std /usr/local /usr/local/BerkeleyDB.4.0 /boot/home/config"
+  fi
+
+  bdb_version="4"
+  if test ""0"" != "-1"; then
+    bdb_version="$bdb_version."0""
+    if test ""-1"" != "-1"; then
+      bdb_version="$bdb_version."-1""
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db4/db.h db.h"
+  bdb_default_search_lib_names="db-4.0 db4 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test ""4"" = "3" -o ""4"" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_"4"_"0"_"-1"_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major="4"
+    apu_check_berkeley_db_minor="0"
+    apu_check_berkeley_db_patch="-1"
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test ""4"" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test ""4"" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=4
+  fi
+
+              if test "$apu_db_version" != "4"; then
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std"
+  fi
+
+  bdb_version=3
+  if test "-1" != "-1"; then
+    bdb_version="$bdb_version.-1"
+    if test "-1" != "-1"; then
+      bdb_version="$bdb_version.-1"
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db3/db.h db.h"
+  bdb_default_search_lib_names="db3 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test "3" = "3" -o "3" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_3_-1_-1_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major=3
+    apu_check_berkeley_db_minor=-1
+    apu_check_berkeley_db_patch=-1
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test "3" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test "3" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=3
+  fi
+
+                if test "$apu_db_version" != "3"; then
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std"
+  fi
+
+  bdb_version=2
+  if test "-1" != "-1"; then
+    bdb_version="$bdb_version.-1"
+    if test "-1" != "-1"; then
+      bdb_version="$bdb_version.-1"
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db2/db.h db.h"
+  bdb_default_search_lib_names="db2 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test "2" = "3" -o "2" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_2_-1_-1_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major=2
+    apu_check_berkeley_db_minor=-1
+    apu_check_berkeley_db_patch=-1
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test "2" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test "2" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=2
+  fi
+
+                  if test "$apu_db_version" != "2"; then
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std"
+  fi
+
+  bdb_version=1
+  if test "0" != "-1"; then
+    bdb_version="$bdb_version.0"
+    if test "0" != "-1"; then
+      bdb_version="$bdb_version.0"
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db1/db.h db.h"
+  bdb_default_search_lib_names="db1"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test "1" = "3" -o "1" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_1_0_0_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major=1
+    apu_check_berkeley_db_minor=0
+    apu_check_berkeley_db_patch=0
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test "1" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test "1" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=1
+  fi
+
+                    if test "$apu_db_version" != "1"; then
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std"
+  fi
+
+  bdb_version=1
+  if test "-1" != "-1"; then
+    bdb_version="$bdb_version.-1"
+    if test "-1" != "-1"; then
+      bdb_version="$bdb_version.-1"
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db_185.h"
+  bdb_default_search_lib_names="db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test "1" = "3" -o "1" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_1_-1_-1_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major=1
+    apu_check_berkeley_db_minor=-1
+    apu_check_berkeley_db_patch=-1
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test "1" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test "1" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=185
+  fi
+
+                    fi
+                  fi
+                fi
+              fi
+            fi
+          fi
+        fi
+      fi
+    fi
+  fi
+  { echo "$as_me:$LINENO: checking for Berkeley DB" >&5
+echo $ECHO_N "checking for Berkeley DB... $ECHO_C" >&6; }
+  if test "$apu_have_db" = "1"; then
+    { echo "$as_me:$LINENO: result: found db$apu_db_version" >&5
+echo "${ECHO_T}found db$apu_db_version" >&6; }
+  else
+    { echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6; }
+  fi
+
+    if test "$apu_have_db" = "0"; then
+      { { echo "$as_me:$LINENO: error: Berkeley db requested" >&5
+echo "$as_me: error: Berkeley db requested" >&2;}
+   { (exit but not found); exit but not found; }; }
+    fi
+    ;;
+  db1)
+
+  places="$check_places"
+  if test -z "$places"; then
+    places="std"
+  fi
+
+  bdb_version=1
+  if test "0" != "-1"; then
+    bdb_version="$bdb_version.0"
+    if test "0" != "-1"; then
+      bdb_version="$bdb_version.0"
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db1/db.h db.h"
+  bdb_default_search_lib_names="db1"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test "1" = "3" -o "1" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_1_0_0_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major=1
+    apu_check_berkeley_db_minor=0
+    apu_check_berkeley_db_patch=0
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test "1" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test "1" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=1
+  fi
+
+    if test "$apu_db_version" != "1"; then
+      { { echo "$as_me:$LINENO: error: Berkeley db1 not found" >&5
+echo "$as_me: error: Berkeley db1 not found" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+    ;;
+  db185)
+
+  places="$check_places"
+  if test -z "$places"; then
+    places="std"
+  fi
+
+  bdb_version=1
+  if test "-1" != "-1"; then
+    bdb_version="$bdb_version.-1"
+    if test "-1" != "-1"; then
+      bdb_version="$bdb_version.-1"
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db_185.h"
+  bdb_default_search_lib_names="db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test "1" = "3" -o "1" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_1_-1_-1_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major=1
+    apu_check_berkeley_db_minor=-1
+    apu_check_berkeley_db_patch=-1
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test "1" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test "1" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=185
+  fi
+
+    if test "$apu_db_version" != "185"; then
+      { { echo "$as_me:$LINENO: error: Berkeley db185 not found" >&5
+echo "$as_me: error: Berkeley db185 not found" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+    ;;
+  db2)
+
+  places="$check_places"
+  if test -z "$places"; then
+    places="std"
+  fi
+
+  bdb_version=2
+  if test "-1" != "-1"; then
+    bdb_version="$bdb_version.-1"
+    if test "-1" != "-1"; then
+      bdb_version="$bdb_version.-1"
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db2/db.h db.h"
+  bdb_default_search_lib_names="db2 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test "2" = "3" -o "2" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_2_-1_-1_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major=2
+    apu_check_berkeley_db_minor=-1
+    apu_check_berkeley_db_patch=-1
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test "2" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test "2" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=2
+  fi
+
+    if test "$apu_db_version" != "2"; then
+      { { echo "$as_me:$LINENO: error: Berkeley db2 not found" >&5
+echo "$as_me: error: Berkeley db2 not found" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+    ;;
+  db3)
+
+  places="$check_places"
+  if test -z "$places"; then
+    places="std"
+  fi
+
+  bdb_version=3
+  if test "-1" != "-1"; then
+    bdb_version="$bdb_version.-1"
+    if test "-1" != "-1"; then
+      bdb_version="$bdb_version.-1"
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db3/db.h db.h"
+  bdb_default_search_lib_names="db3 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test "3" = "3" -o "3" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_3_-1_-1_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major=3
+    apu_check_berkeley_db_minor=-1
+    apu_check_berkeley_db_patch=-1
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test "3" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test "3" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=3
+  fi
+
+    if test "$apu_db_version" != "3"; then
+      { { echo "$as_me:$LINENO: error: Berkeley db3 not found" >&5
+echo "$as_me: error: Berkeley db3 not found" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+    ;;
+  db4)
+
+  places="$check_places"
+  if test -z "$places"; then
+    places="std /usr/local /usr/local/BerkeleyDB.4.0 /boot/home/config"
+  fi
+
+  bdb_version="4"
+  if test ""0"" != "-1"; then
+    bdb_version="$bdb_version."0""
+    if test ""-1"" != "-1"; then
+      bdb_version="$bdb_version."-1""
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db4/db.h db.h"
+  bdb_default_search_lib_names="db-4.0 db4 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test ""4"" = "3" -o ""4"" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_"4"_"0"_"-1"_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major="4"
+    apu_check_berkeley_db_minor="0"
+    apu_check_berkeley_db_patch="-1"
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test ""4"" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test ""4"" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=4
+  fi
+
+    if test "$apu_db_version" != "4"; then
+      { { echo "$as_me:$LINENO: error: Berkeley db4 not found" >&5
+echo "$as_me: error: Berkeley db4 not found" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+    ;;
+  db41)
+
+  places="$check_places"
+  if test -z "$places"; then
+    places="std /usr/local /usr/local/BerkeleyDB.4.1 /boot/home/config"
+  fi
+
+  bdb_version="4"
+  if test ""1"" != "-1"; then
+    bdb_version="$bdb_version."1""
+    if test ""-1"" != "-1"; then
+      bdb_version="$bdb_version."-1""
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db41/db.h db4/db.h db.h"
+  bdb_default_search_lib_names="db-4.1 db41 db4 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test ""4"" = "3" -o ""4"" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_"4"_"1"_"-1"_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major="4"
+    apu_check_berkeley_db_minor="1"
+    apu_check_berkeley_db_patch="-1"
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test ""4"" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test ""4"" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=4
+  fi
+
+    if test "$apu_db_version" != "4"; then
+      { { echo "$as_me:$LINENO: error: Berkeley db4 not found" >&5
+echo "$as_me: error: Berkeley db4 not found" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+    ;;
+  db42)
+
+  places="$check_places"
+  if test -z "$places"; then
+    places="std /usr/local /usr/local/BerkeleyDB.4.2 /boot/home/config"
+  fi
+
+  bdb_version="4"
+  if test ""2"" != "-1"; then
+    bdb_version="$bdb_version."2""
+    if test ""-1"" != "-1"; then
+      bdb_version="$bdb_version."-1""
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db42/db.h db4/db.h db.h"
+  bdb_default_search_lib_names="db-4.2 db42 db4 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test ""4"" = "3" -o ""4"" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_"4"_"2"_"-1"_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major="4"
+    apu_check_berkeley_db_minor="2"
+    apu_check_berkeley_db_patch="-1"
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test ""4"" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test ""4"" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=4
+  fi
+
+    if test "$apu_db_version" != "4"; then
+      { { echo "$as_me:$LINENO: error: Berkeley db4 not found" >&5
+echo "$as_me: error: Berkeley db4 not found" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+    ;;
+  db43)
+
+  places="$check_places"
+  if test -z "$places"; then
+    places="std /usr/local/BerkeleyDB.4.3 /boot/home/config"
+  fi
+
+  bdb_version="4"
+  if test ""3"" != "-1"; then
+    bdb_version="$bdb_version."3""
+    if test ""-1"" != "-1"; then
+      bdb_version="$bdb_version."-1""
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db43/db.h db4/db.h db.h"
+  bdb_default_search_lib_names="db-4.3 db4-4.3 db43 db4 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test ""4"" = "3" -o ""4"" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_"4"_"3"_"-1"_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major="4"
+    apu_check_berkeley_db_minor="3"
+    apu_check_berkeley_db_patch="-1"
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test ""4"" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test ""4"" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=4
+  fi
+
+    if test "$apu_db_version" != "4"; then
+      { { echo "$as_me:$LINENO: error: Berkeley db4 not found" >&5
+echo "$as_me: error: Berkeley db4 not found" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+    ;;
+  db44)
+
+  places="$check_places"
+  if test -z "$places"; then
+    places="std /usr/local/BerkeleyDB.4.4 /boot/home/config"
+  fi
+
+  bdb_version="4"
+  if test ""4"" != "-1"; then
+    bdb_version="$bdb_version."4""
+    if test ""-1"" != "-1"; then
+      bdb_version="$bdb_version."-1""
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db44/db.h db4/db.h db.h"
+  bdb_default_search_lib_names="db-4.4 db4-4.4 db44 db4 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test ""4"" = "3" -o ""4"" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_"4"_"4"_"-1"_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major="4"
+    apu_check_berkeley_db_minor="4"
+    apu_check_berkeley_db_patch="-1"
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test ""4"" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test ""4"" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=4
+  fi
+
+    if test "$apu_db_version" != "4"; then
+      { { echo "$as_me:$LINENO: error: Berkeley db4 not found" >&5
+echo "$as_me: error: Berkeley db4 not found" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+    ;;
+  db45)
+
+  places="$check_places"
+  if test -z "$places"; then
+    places="std /usr/local/BerkeleyDB.4.4 /boot/home/config"
+  fi
+
+  bdb_version="4"
+  if test ""4"" != "-1"; then
+    bdb_version="$bdb_version."4""
+    if test ""-1"" != "-1"; then
+      bdb_version="$bdb_version."-1""
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db44/db.h db4/db.h db.h"
+  bdb_default_search_lib_names="db-4.4 db4-4.4 db44 db4 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test ""4"" = "3" -o ""4"" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_"4"_"4"_"-1"_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major="4"
+    apu_check_berkeley_db_minor="4"
+    apu_check_berkeley_db_patch="-1"
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test ""4"" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test ""4"" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=4
+  fi
+
+    if test "$apu_db_version" != "4"; then
+      { { echo "$as_me:$LINENO: error: Berkeley db4 not found" >&5
+echo "$as_me: error: Berkeley db4 not found" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+    ;;
+  db46)
+
+  places="$check_places"
+  if test -z "$places"; then
+    places="std /usr/local/BerkeleyDB.4.6 /boot/home/config"
+  fi
+
+  bdb_version="4"
+  if test ""6"" != "-1"; then
+    bdb_version="$bdb_version."6""
+    if test ""-1"" != "-1"; then
+      bdb_version="$bdb_version."-1""
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db46/db.h db4/db.h db.h"
+  bdb_default_search_lib_names="db-4.6 db4-4.6 db46 db4 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test ""4"" = "3" -o ""4"" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_"4"_"6"_"-1"_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major="4"
+    apu_check_berkeley_db_minor="6"
+    apu_check_berkeley_db_patch="-1"
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test ""4"" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test ""4"" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=4
+  fi
+
+    if test "$apu_db_version" != "4"; then
+      { { echo "$as_me:$LINENO: error: Berkeley db4 not found" >&5
+echo "$as_me: error: Berkeley db4 not found" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+    ;;
+  default)
+
+  all_places="$check_places"
+
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std /usr/local/BerkeleyDB.4.6 /boot/home/config"
+  fi
+
+  bdb_version="4"
+  if test ""6"" != "-1"; then
+    bdb_version="$bdb_version."6""
+    if test ""-1"" != "-1"; then
+      bdb_version="$bdb_version."-1""
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db46/db.h db4/db.h db.h"
+  bdb_default_search_lib_names="db-4.6 db4-4.6 db46 db4 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test ""4"" = "3" -o ""4"" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_"4"_"6"_"-1"_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major="4"
+    apu_check_berkeley_db_minor="6"
+    apu_check_berkeley_db_patch="-1"
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test ""4"" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test ""4"" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=4
+  fi
+
+  if test "$apu_db_version" != "4"; then
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std /usr/local/BerkeleyDB.4.5 /boot/home/config"
+  fi
+
+  bdb_version="4"
+  if test ""5"" != "-1"; then
+    bdb_version="$bdb_version."5""
+    if test ""-1"" != "-1"; then
+      bdb_version="$bdb_version."-1""
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db45/db.h db4/db.h db.h"
+  bdb_default_search_lib_names="db-4.5 db4-4.5 db45 db4 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test ""4"" = "3" -o ""4"" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_"4"_"5"_"-1"_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major="4"
+    apu_check_berkeley_db_minor="5"
+    apu_check_berkeley_db_patch="-1"
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test ""4"" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test ""4"" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=4
+  fi
+
+    if test "$apu_db_version" != "4"; then
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std /usr/local/BerkeleyDB.4.4 /boot/home/config"
+  fi
+
+  bdb_version="4"
+  if test ""4"" != "-1"; then
+    bdb_version="$bdb_version."4""
+    if test ""-1"" != "-1"; then
+      bdb_version="$bdb_version."-1""
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db44/db.h db4/db.h db.h"
+  bdb_default_search_lib_names="db-4.4 db4-4.4 db44 db4 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test ""4"" = "3" -o ""4"" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_"4"_"4"_"-1"_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major="4"
+    apu_check_berkeley_db_minor="4"
+    apu_check_berkeley_db_patch="-1"
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test ""4"" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test ""4"" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=4
+  fi
+
+      if test "$apu_db_version" != "4"; then
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std /usr/local/BerkeleyDB.4.3 /boot/home/config"
+  fi
+
+  bdb_version="4"
+  if test ""3"" != "-1"; then
+    bdb_version="$bdb_version."3""
+    if test ""-1"" != "-1"; then
+      bdb_version="$bdb_version."-1""
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db43/db.h db4/db.h db.h"
+  bdb_default_search_lib_names="db-4.3 db4-4.3 db43 db4 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test ""4"" = "3" -o ""4"" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_"4"_"3"_"-1"_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major="4"
+    apu_check_berkeley_db_minor="3"
+    apu_check_berkeley_db_patch="-1"
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test ""4"" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test ""4"" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=4
+  fi
+
+        if test "$apu_db_version" != "4"; then
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std /usr/local /usr/local/BerkeleyDB.4.2 /boot/home/config"
+  fi
+
+  bdb_version="4"
+  if test ""2"" != "-1"; then
+    bdb_version="$bdb_version."2""
+    if test ""-1"" != "-1"; then
+      bdb_version="$bdb_version."-1""
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db42/db.h db4/db.h db.h"
+  bdb_default_search_lib_names="db-4.2 db42 db4 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test ""4"" = "3" -o ""4"" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_"4"_"2"_"-1"_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major="4"
+    apu_check_berkeley_db_minor="2"
+    apu_check_berkeley_db_patch="-1"
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test ""4"" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test ""4"" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=4
+  fi
+
+          if test "$apu_db_version" != "4"; then
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std /usr/local /usr/local/BerkeleyDB.4.1 /boot/home/config"
+  fi
+
+  bdb_version="4"
+  if test ""1"" != "-1"; then
+    bdb_version="$bdb_version."1""
+    if test ""-1"" != "-1"; then
+      bdb_version="$bdb_version."-1""
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db41/db.h db4/db.h db.h"
+  bdb_default_search_lib_names="db-4.1 db41 db4 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test ""4"" = "3" -o ""4"" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_"4"_"1"_"-1"_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major="4"
+    apu_check_berkeley_db_minor="1"
+    apu_check_berkeley_db_patch="-1"
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test ""4"" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test ""4"" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=4
+  fi
+
+            if test "$apu_db_version" != "4"; then
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std /usr/local /usr/local/BerkeleyDB.4.0 /boot/home/config"
+  fi
+
+  bdb_version="4"
+  if test ""0"" != "-1"; then
+    bdb_version="$bdb_version."0""
+    if test ""-1"" != "-1"; then
+      bdb_version="$bdb_version."-1""
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db4/db.h db.h"
+  bdb_default_search_lib_names="db-4.0 db4 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test ""4"" = "3" -o ""4"" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_"4"_"0"_"-1"_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major="4"
+    apu_check_berkeley_db_minor="0"
+    apu_check_berkeley_db_patch="-1"
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test ""4"" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test ""4"" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=4
+  fi
+
+              if test "$apu_db_version" != "4"; then
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std"
+  fi
+
+  bdb_version=3
+  if test "-1" != "-1"; then
+    bdb_version="$bdb_version.-1"
+    if test "-1" != "-1"; then
+      bdb_version="$bdb_version.-1"
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db3/db.h db.h"
+  bdb_default_search_lib_names="db3 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test "3" = "3" -o "3" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_3_-1_-1_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major=3
+    apu_check_berkeley_db_minor=-1
+    apu_check_berkeley_db_patch=-1
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test "3" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test "3" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=3
+  fi
+
+                if test "$apu_db_version" != "3"; then
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std"
+  fi
+
+  bdb_version=2
+  if test "-1" != "-1"; then
+    bdb_version="$bdb_version.-1"
+    if test "-1" != "-1"; then
+      bdb_version="$bdb_version.-1"
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db2/db.h db.h"
+  bdb_default_search_lib_names="db2 db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test "2" = "3" -o "2" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_2_-1_-1_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major=2
+    apu_check_berkeley_db_minor=-1
+    apu_check_berkeley_db_patch=-1
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test "2" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test "2" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=2
+  fi
+
+                  if test "$apu_db_version" != "2"; then
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std"
+  fi
+
+  bdb_version=1
+  if test "0" != "-1"; then
+    bdb_version="$bdb_version.0"
+    if test "0" != "-1"; then
+      bdb_version="$bdb_version.0"
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db1/db.h db.h"
+  bdb_default_search_lib_names="db1"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test "1" = "3" -o "1" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_1_0_0_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major=1
+    apu_check_berkeley_db_minor=0
+    apu_check_berkeley_db_patch=0
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test "1" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test "1" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=1
+  fi
+
+                    if test "$apu_db_version" != "1"; then
+
+  places="$all_places"
+  if test -z "$places"; then
+    places="std"
+  fi
+
+  bdb_version=1
+  if test "-1" != "-1"; then
+    bdb_version="$bdb_version.-1"
+    if test "-1" != "-1"; then
+      bdb_version="$bdb_version.-1"
+    fi
+  fi
+  bdb_places="$places"
+  bdb_default_search_headers="db_185.h"
+  bdb_default_search_lib_names="db"
+
+
+  apu_have_db=0
+
+  # Save the original values of the flags we tweak.
+  apu_check_lib_save_libs="$LIBS"
+  apu_check_lib_save_ldflags="$LDFLAGS"
+  apu_check_lib_save_cppflags="$CPPFLAGS"
+
+  # The variable `found' is the prefix under which we've found
+  # Berkeley DB, or `not' if we haven't found it anywhere yet.
+  found=not
+  for bdb_place in $bdb_places; do
+
+    LDFLAGS="$apu_check_lib_save_ldflags"
+    CPPFLAGS="$apu_check_lib_save_cppflags"
+    case "$bdb_place" in
+      "std" )
+        description="the standard places"
+      ;;
+      *":"* )
+        header="`echo $bdb_place | sed -e 's/:.*$//'`"
+        lib="`echo $bdb_place | sed -e 's/^.*://'`"
+        CPPFLAGS="$CPPFLAGS -I$header"
+        LDFLAGS="$LDFLAGS -L$lib"
+        description="$header and $lib"
+      ;;
+      * )
+        if test -d $bdb_place; then
+          LDFLAGS="$LDFLAGS -L$bdb_place/lib"
+          CPPFLAGS="$CPPFLAGS -I$bdb_place/include"
+        else
+          { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $bdb_place" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $bdb_place... $ECHO_C" >&6; }
+          { echo "$as_me:$LINENO: result: directory not found" >&5
+echo "${ECHO_T}directory not found" >&6; }
+          continue
+        fi
+        description="$bdb_place"
+      ;;
+    esac
+
+    # Since there is no AC_MSG_NOTICE in autoconf 2.13, we use this
+    # trick to display a message instead.
+    { echo "$as_me:$LINENO: checking for Berkeley DB $bdb_version in $description" >&5
+echo $ECHO_N "checking for Berkeley DB $bdb_version in $description... $ECHO_C" >&6; }
+    { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+
+    for bdb_libname in $bdb_default_search_lib_names; do
+      for bdb_header in $bdb_default_search_headers; do
+        # Clear the header cache variable for each location
+
+        cache_id="`echo ac_cv_header_${bdb_header} \
+                 | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+        unset $cache_id
+        as_ac_Header=`echo "ac_cv_header_$bdb_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $bdb_header usability" >&5
+echo $ECHO_N "checking $bdb_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$bdb_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $bdb_header presence" >&5
+echo $ECHO_N "checking $bdb_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$bdb_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $bdb_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $bdb_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $bdb_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $bdb_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $bdb_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $bdb_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $bdb_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $bdb_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $bdb_header" >&5
+echo $ECHO_N "checking for $bdb_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+
+          if test "1" = "3" -o "1" = "4"; then
+            # We generate a separate cache variable for each prefix and libname
+            # we search under.  That way, we avoid caching information that
+            # changes if the user runs `configure' with a different set of
+            # switches.
+
+            cache_id="`echo apu_cv_check_berkeley_db_1_-1_-1_${bdb_header}_${bdb_libname}_in_${bdb_place} \
+                     | sed -e 's/[^a-zA-Z0-9_]/_/g'`"
+
+
+            { echo "$as_me:$LINENO: checking for -l$bdb_libname" >&5
+echo $ECHO_N "checking for -l$bdb_libname... $ECHO_C" >&6; }
+                                    if { as_var=$cache_id; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+    apu_try_berkeley_db_save_libs="$LIBS"
+
+    apu_check_berkeley_db_major=1
+    apu_check_berkeley_db_minor=-1
+    apu_check_berkeley_db_patch=-1
+    apu_try_berkeley_db_header=$bdb_header
+    apu_try_berkeley_db_libname=$bdb_libname
+
+    LIBS="$LIBS -l$apu_try_berkeley_db_libname"
+    if test "$cross_compiling" = yes; then
+  apu_try_berkeley_db=yes
+
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#include <$apu_try_berkeley_db_header>
+main ()
+{
+  int major, minor, patch;
+
+  db_version(&major, &minor, &patch);
+
+  /* Sanity check: ensure that db.h constants actually match the db library */
+  if (major != DB_VERSION_MAJOR
+      || minor != DB_VERSION_MINOR
+      || patch != DB_VERSION_PATCH)
+    exit (1);
+
+  /* Run-time check:  ensure the library claims to be the correct version. */
+
+  if ($apu_check_berkeley_db_major != -1) {
+    if (major < $apu_check_berkeley_db_major)
+      exit (1);
+    if (major > $apu_check_berkeley_db_major)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_minor != -1) {
+    if (minor < $apu_check_berkeley_db_minor)
+      exit (1);
+    if (minor > $apu_check_berkeley_db_minor)
+      exit (0);
+  }
+
+  if ($apu_check_berkeley_db_patch == -1
+      || patch >= $apu_check_berkeley_db_patch)
+    exit (0);
+  else
+    exit (1);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  apu_try_berkeley_db=yes
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+apu_try_berkeley_db=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+
+    LIBS="$apu_try_berkeley_db_save_libs"
+
+
+                eval "$cache_id=$apu_try_berkeley_db"
+
+fi
+
+            result="`eval echo '$'$cache_id`"
+            { echo "$as_me:$LINENO: result: $result" >&5
+echo "${ECHO_T}$result" >&6; }
+          elif test "1" = "1"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_dbopen" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for dbopen in -l$bdb_libname" >&5
+echo $ECHO_N "checking for dbopen in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dbopen ();
+int
+main ()
+{
+return dbopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          elif test "1" = "2"; then
+            as_ac_Lib=`echo "ac_cv_lib_$bdb_libname''_db_open" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for db_open in -l$bdb_libname" >&5
+echo $ECHO_N "checking for db_open in -l$bdb_libname... $ECHO_C" >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$bdb_libname  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char db_open ();
+int
+main ()
+{
+return db_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval echo '${'$as_ac_Lib'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  result=yes
+else
+  result=no
+
+fi
+
+          fi
+
+else
+  result="no"
+fi
+
+
+
+        # If we found it, no need to search any more.
+        if test "$result" = "yes"; then
+          found="$bdb_place"
+          break
+        fi
+      done
+      test "$found" != "not" && break
+    done
+    test "$found" != "not" && break
+  done
+
+  # Restore the original values of the flags we tweak.
+  LDFLAGS="$apu_check_lib_save_ldflags"
+  CPPFLAGS="$apu_check_lib_save_cppflags"
+
+  case "$found" in
+  "not")
+    apu_have_db=0
+    ;;
+  "std")
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *":"*)
+    header="`echo $found | sed -e 's/:.*$//'`"
+    lib="`echo $found | sed -e 's/^.*://'`"
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$header\""
+    APRUTIL_INCLUDES="-I$header"
+  else
+    apr_addto_bugger="-I$header"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$lib\""
+    APRUTIL_LDFLAGS="-L$lib"
+  else
+    apr_addto_bugger="-L$lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  *)
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$found/include\""
+    APRUTIL_INCLUDES="-I$found/include"
+  else
+    apr_addto_bugger="-I$found/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$found/lib\""
+    APRUTIL_LDFLAGS="-L$found/lib"
+  else
+    apr_addto_bugger="-L$found/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    apu_db_header=$bdb_header
+    apu_db_lib=$bdb_libname
+    apu_have_db=1
+    ;;
+  esac
+
+  if test "$apu_have_db" = "1"; then
+    apu_db_version=185
+  fi
+
+                    fi
+                  fi
+                fi
+              fi
+            fi
+          fi
+        fi
+      fi
+    fi
+  fi
+  { echo "$as_me:$LINENO: checking for Berkeley DB" >&5
+echo $ECHO_N "checking for Berkeley DB... $ECHO_C" >&6; }
+  if test "$apu_have_db" = "1"; then
+    { echo "$as_me:$LINENO: result: found db$apu_db_version" >&5
+echo "${ECHO_T}found db$apu_db_version" >&6; }
+  else
+    { echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6; }
+  fi
+
+    ;;
+  esac
+
+      if test "$apu_have_db" = "0"; then
+        { { echo "$as_me:$LINENO: error: Berkeley DB not found." >&5
+echo "$as_me: error: Berkeley DB not found." >&2;}
+   { (exit 1); exit 1; }; }
+      fi
+    fi
+
+fi
+
+
+  if test -n "$apu_db_xtra_libs"; then
+    LIBS="$saveddbxtralibs"
+  fi
+
+  case "$requested" in
+    sdbm)
+      apu_use_sdbm=1
+      apu_default_dbm=sdbm
+      ;;
+    gdbm)
+      apu_use_gdbm=1
+      apu_default_dbm=gdbm
+      ;;
+    ndbm)
+      apu_use_ndbm=1
+      apu_default_dbm=ndbm
+      ;;
+    db)
+      apu_use_db=1
+      apu_default_dbm=db
+      ;;
+    db1)
+      apu_use_db=1
+      apu_default_dbm=db1
+      ;;
+    db185)
+      apu_use_db=1
+      apu_default_dbm=db185
+      ;;
+    db2)
+      apu_use_db=1
+      apu_default_dbm=db2
+      ;;
+    db3)
+      apu_use_db=1
+      apu_default_dbm=db3
+      ;;
+    db4)
+      apu_use_db=1
+      apu_default_dbm=db4
+      ;;
+    db41)
+      apu_use_db=1
+      apu_default_dbm=db4
+      ;;
+    db42)
+      apu_use_db=1
+      apu_default_dbm=db4
+      ;;
+    db43)
+      apu_use_db=1
+      apu_default_dbm=db4
+      ;;
+    db44)
+      apu_use_db=1
+      apu_default_dbm=db4
+      ;;
+    db45)
+      apu_use_db=1
+      apu_default_dbm=db4
+      ;;
+    db46)
+      apu_use_db=1
+      apu_default_dbm=db4
+      ;;
+    default)
+            apu_default_dbm="sdbm (default)"
+      apu_use_sdbm=1
+      ;;
+    *)
+      { { echo "$as_me:$LINENO: error: --with-dbm=$look_for is an unknown DBM type.
+        Use one of: sdbm, gdbm, ndbm, db, db1, db185, db2, db3, db4, db41, db42, db43, db44, db45, db46" >&5
+echo "$as_me: error: --with-dbm=$look_for is an unknown DBM type.
+        Use one of: sdbm, gdbm, ndbm, db, db1, db185, db2, db3, db4, db41, db42, db43, db44, db45, db46" >&2;}
+   { (exit 1); exit 1; }; }
+      ;;
+  esac
+
+        { echo "$as_me:$LINENO: checking for default DBM" >&5
+echo $ECHO_N "checking for default DBM... $ECHO_C" >&6; }
+  { echo "$as_me:$LINENO: result: $apu_default_dbm" >&5
+echo "${ECHO_T}$apu_default_dbm" >&6; }
+
+
+
+
+
+
+
+
+
+
+
+
+
+      if test "$apu_have_gdbm" = "1"; then
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-lgdbm\""
+    APRUTIL_EXPORT_LIBS="-lgdbm"
+  else
+    apr_addto_bugger="-lgdbm"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-lgdbm\""
+    APRUTIL_LIBS="-lgdbm"
+  else
+    apr_addto_bugger="-lgdbm"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+  fi
+
+  if test "$apu_have_ndbm" = "1"; then
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-l$apu_ndbm_lib\""
+    APRUTIL_EXPORT_LIBS="-l$apu_ndbm_lib"
+  else
+    apr_addto_bugger="-l$apu_ndbm_lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-l$apu_ndbm_lib\""
+    APRUTIL_LIBS="-l$apu_ndbm_lib"
+  else
+    apr_addto_bugger="-l$apu_ndbm_lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+  fi
+
+  if test "$apu_have_db" = "1"; then
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-l$apu_db_lib\""
+    APRUTIL_EXPORT_LIBS="-l$apu_db_lib"
+  else
+    apr_addto_bugger="-l$apu_db_lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-l$apu_db_lib\""
+    APRUTIL_LIBS="-l$apu_db_lib"
+  else
+    apr_addto_bugger="-l$apu_db_lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+    if test -n "apu_db_xtra_libs"; then
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"$apu_db_xtra_libs\""
+    APRUTIL_EXPORT_LIBS="$apu_db_xtra_libs"
+  else
+    apr_addto_bugger="$apu_db_xtra_libs"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"$apu_db_xtra_libs\""
+    APRUTIL_LIBS="$apu_db_xtra_libs"
+  else
+    apr_addto_bugger="$apu_db_xtra_libs"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+    fi
+  fi
+
+
+  apu_have_pgsql=0
+
+
+# Check whether --with-pgsql was given.
+if test "${with_pgsql+set}" = set; then
+  withval=$with_pgsql;
+    apu_have_pgsql=0
+    if test "$withval" = "yes"; then
+
+for ac_header in libpq-fe.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ { echo "$as_me:$LINENO: checking for PQsendQueryPrepared in -lpq" >&5
+echo $ECHO_N "checking for PQsendQueryPrepared in -lpq... $ECHO_C" >&6; }
+if test "${ac_cv_lib_pq_PQsendQueryPrepared+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpq  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char PQsendQueryPrepared ();
+int
+main ()
+{
+return PQsendQueryPrepared ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_pq_PQsendQueryPrepared=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_pq_PQsendQueryPrepared=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_pq_PQsendQueryPrepared" >&5
+echo "${ECHO_T}$ac_cv_lib_pq_PQsendQueryPrepared" >&6; }
+if test $ac_cv_lib_pq_PQsendQueryPrepared = yes; then
+  apu_have_pgsql=1
+fi
+
+fi
+
+done
+
+      if test "$apu_have_pgsql" = "0"; then
+
+for ac_header in postgresql/libpq-fe.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ { echo "$as_me:$LINENO: checking for PQsendQueryPrepared in -lpq" >&5
+echo $ECHO_N "checking for PQsendQueryPrepared in -lpq... $ECHO_C" >&6; }
+if test "${ac_cv_lib_pq_PQsendQueryPrepared+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpq  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char PQsendQueryPrepared ();
+int
+main ()
+{
+return PQsendQueryPrepared ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_pq_PQsendQueryPrepared=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_pq_PQsendQueryPrepared=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_pq_PQsendQueryPrepared" >&5
+echo "${ECHO_T}$ac_cv_lib_pq_PQsendQueryPrepared" >&6; }
+if test $ac_cv_lib_pq_PQsendQueryPrepared = yes; then
+  apu_have_pgsql=1
+fi
+
+fi
+
+done
+
+      fi
+    elif test "$withval" = "no"; then
+      apu_have_pgsql=0
+    else
+      old_cppflags="$CPPFLAGS"
+      old_ldflags="$LDFLAGS"
+
+      pgsql_CPPFLAGS="-I$withval/include"
+      pgsql_LDFLAGS="-L$withval/lib "
+
+
+  if test "x$CPPFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting CPPFLAGS to \"$pgsql_CPPFLAGS\""
+    CPPFLAGS="$pgsql_CPPFLAGS"
+  else
+    apr_addto_bugger="$pgsql_CPPFLAGS"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $CPPFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to CPPFLAGS"
+        CPPFLAGS="$CPPFLAGS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting LDFLAGS to \"$pgsql_LDFLAGS\""
+    LDFLAGS="$pgsql_LDFLAGS"
+  else
+    apr_addto_bugger="$pgsql_LDFLAGS"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to LDFLAGS"
+        LDFLAGS="$LDFLAGS $i"
+      fi
+    done
+  fi
+
+
+      { echo "$as_me:$LINENO: checking for pgsql in $withval" >&5
+echo "$as_me: checking for pgsql in $withval" >&6;}
+
+for ac_header in libpq-fe.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ { echo "$as_me:$LINENO: checking for PQsendQueryPrepared in -lpq" >&5
+echo $ECHO_N "checking for PQsendQueryPrepared in -lpq... $ECHO_C" >&6; }
+if test "${ac_cv_lib_pq_PQsendQueryPrepared+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpq  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char PQsendQueryPrepared ();
+int
+main ()
+{
+return PQsendQueryPrepared ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_pq_PQsendQueryPrepared=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_pq_PQsendQueryPrepared=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_pq_PQsendQueryPrepared" >&5
+echo "${ECHO_T}$ac_cv_lib_pq_PQsendQueryPrepared" >&6; }
+if test $ac_cv_lib_pq_PQsendQueryPrepared = yes; then
+  apu_have_pgsql=1
+fi
+
+fi
+
+done
+
+      if test "$apu_have_pgsql" != "0"; then
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$withval/lib\""
+    APRUTIL_LDFLAGS="-L$withval/lib"
+  else
+    apr_addto_bugger="-L$withval/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$withval/include\""
+    APRUTIL_INCLUDES="-I$withval/include"
+  else
+    apr_addto_bugger="-I$withval/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+      fi
+      if test "$apu_have_pgsql" != "1"; then
+
+for ac_header in postgresql/libpq-fe.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ { echo "$as_me:$LINENO: checking for PQsendQueryPrepared in -lpq" >&5
+echo $ECHO_N "checking for PQsendQueryPrepared in -lpq... $ECHO_C" >&6; }
+if test "${ac_cv_lib_pq_PQsendQueryPrepared+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpq  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char PQsendQueryPrepared ();
+int
+main ()
+{
+return PQsendQueryPrepared ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_pq_PQsendQueryPrepared=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_pq_PQsendQueryPrepared=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_pq_PQsendQueryPrepared" >&5
+echo "${ECHO_T}$ac_cv_lib_pq_PQsendQueryPrepared" >&6; }
+if test $ac_cv_lib_pq_PQsendQueryPrepared = yes; then
+  apu_have_pgsql=1
+fi
+
+fi
+
+done
+
+        if test "$apu_have_pgsql" != "0"; then
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$withval/include/postgresql\""
+    APRUTIL_INCLUDES="-I$withval/include/postgresql"
+  else
+    apr_addto_bugger="-I$withval/include/postgresql"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$withval/lib\""
+    APRUTIL_LDFLAGS="-L$withval/lib"
+  else
+    apr_addto_bugger="-L$withval/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+        fi
+      fi
+
+      CPPFLAGS="$old_cppflags"
+      LDFLAGS="$old_ldflags"
+    fi
+
+else
+
+    apu_have_pgsql=0
+
+for ac_header in libpq-fe.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ { echo "$as_me:$LINENO: checking for PQsendQueryPrepared in -lpq" >&5
+echo $ECHO_N "checking for PQsendQueryPrepared in -lpq... $ECHO_C" >&6; }
+if test "${ac_cv_lib_pq_PQsendQueryPrepared+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpq  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char PQsendQueryPrepared ();
+int
+main ()
+{
+return PQsendQueryPrepared ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_pq_PQsendQueryPrepared=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_pq_PQsendQueryPrepared=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_pq_PQsendQueryPrepared" >&5
+echo "${ECHO_T}$ac_cv_lib_pq_PQsendQueryPrepared" >&6; }
+if test $ac_cv_lib_pq_PQsendQueryPrepared = yes; then
+  apu_have_pgsql=1
+fi
+
+fi
+
+done
+
+
+fi
+
+
+      if test "$apu_have_pgsql" = "1"; then
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-lpq\""
+    APRUTIL_EXPORT_LIBS="-lpq"
+  else
+    apr_addto_bugger="-lpq"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-lpq\""
+    APRUTIL_LIBS="-lpq"
+  else
+    apr_addto_bugger="-lpq"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+  fi
+
+
+  apu_have_mysql=0
+
+
+# Check whether --with-mysql was given.
+if test "${with_mysql+set}" = set; then
+  withval=$with_mysql;
+    apu_have_mysql=0
+    if test "$withval" = "yes"; then
+      old_cppflags="$CPPFLAGS"
+      old_ldflags="$LDFLAGS"
+
+      # Extract the first word of "mysql_config", so it can be a program name with args.
+set dummy mysql_config; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_path_MYSQL_CONFIG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $MYSQL_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_MYSQL_CONFIG="$MYSQL_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_MYSQL_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+MYSQL_CONFIG=$ac_cv_path_MYSQL_CONFIG
+if test -n "$MYSQL_CONFIG"; then
+  { echo "$as_me:$LINENO: result: $MYSQL_CONFIG" >&5
+echo "${ECHO_T}$MYSQL_CONFIG" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+      if test "x$MYSQL_CONFIG" != 'x'; then
+        mysql_CPPFLAGS="`$MYSQL_CONFIG --include`"
+        mysql_LDFLAGS="`$MYSQL_CONFIG --libs_r`"
+
+
+  if test "x$CPPFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting CPPFLAGS to \"$mysql_CPPFLAGS\""
+    CPPFLAGS="$mysql_CPPFLAGS"
+  else
+    apr_addto_bugger="$mysql_CPPFLAGS"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $CPPFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to CPPFLAGS"
+        CPPFLAGS="$CPPFLAGS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting LDFLAGS to \"$mysql_LDFLAGS\""
+    LDFLAGS="$mysql_LDFLAGS"
+  else
+    apr_addto_bugger="$mysql_LDFLAGS"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to LDFLAGS"
+        LDFLAGS="$LDFLAGS $i"
+      fi
+    done
+  fi
+
+      fi
+
+
+for ac_header in mysql.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ { echo "$as_me:$LINENO: checking for mysql_init in -lmysqlclient_r" >&5
+echo $ECHO_N "checking for mysql_init in -lmysqlclient_r... $ECHO_C" >&6; }
+if test "${ac_cv_lib_mysqlclient_r_mysql_init+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lmysqlclient_r  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char mysql_init ();
+int
+main ()
+{
+return mysql_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_mysqlclient_r_mysql_init=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_mysqlclient_r_mysql_init=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_mysqlclient_r_mysql_init" >&5
+echo "${ECHO_T}$ac_cv_lib_mysqlclient_r_mysql_init" >&6; }
+if test $ac_cv_lib_mysqlclient_r_mysql_init = yes; then
+  apu_have_mysql=1
+fi
+
+fi
+
+done
+
+      if test "$apu_have_mysql" = "0"; then
+
+for ac_header in mysql/mysql.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ { echo "$as_me:$LINENO: checking for mysql_init in -lmysqlclient_r" >&5
+echo $ECHO_N "checking for mysql_init in -lmysqlclient_r... $ECHO_C" >&6; }
+if test "${ac_cv_lib_mysqlclient_r_mysql_init+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lmysqlclient_r  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char mysql_init ();
+int
+main ()
+{
+return mysql_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_mysqlclient_r_mysql_init=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_mysqlclient_r_mysql_init=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_mysqlclient_r_mysql_init" >&5
+echo "${ECHO_T}$ac_cv_lib_mysqlclient_r_mysql_init" >&6; }
+if test $ac_cv_lib_mysqlclient_r_mysql_init = yes; then
+  apu_have_mysql=1
+fi
+
+fi
+
+done
+
+      else
+        if test "x$MYSQL_CONFIG" != 'x'; then
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"$mysql_CPPFLAGS\""
+    APRUTIL_INCLUDES="$mysql_CPPFLAGS"
+  else
+    apr_addto_bugger="$mysql_CPPFLAGS"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"$mysql_LDFLAGS\""
+    APRUTIL_LDFLAGS="$mysql_LDFLAGS"
+  else
+    apr_addto_bugger="$mysql_LDFLAGS"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+        fi
+      fi
+
+      CPPFLAGS="$old_cppflags"
+      LDFLAGS="$old_ldflags"
+    elif test "$withval" = "no"; then
+      apu_have_mysql=0
+    else
+      old_cppflags="$CPPFLAGS"
+      old_ldflags="$LDFLAGS"
+
+      # Extract the first word of "mysql_config", so it can be a program name with args.
+set dummy mysql_config; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_path_MYSQL_CONFIG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $MYSQL_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_MYSQL_CONFIG="$MYSQL_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $withval/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_MYSQL_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+MYSQL_CONFIG=$ac_cv_path_MYSQL_CONFIG
+if test -n "$MYSQL_CONFIG"; then
+  { echo "$as_me:$LINENO: result: $MYSQL_CONFIG" >&5
+echo "${ECHO_T}$MYSQL_CONFIG" >&6; }
+else
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+      if test "x$MYSQL_CONFIG" != 'x'; then
+        mysql_CPPFLAGS="`$MYSQL_CONFIG --include`"
+        mysql_LDFLAGS="`$MYSQL_CONFIG --libs_r`"
+      else
+        mysql_CPPFLAGS="-I$withval/include"
+        mysql_LDFLAGS="-L$withval/lib "
+      fi
+
+
+  if test "x$CPPFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting CPPFLAGS to \"$mysql_CPPFLAGS\""
+    CPPFLAGS="$mysql_CPPFLAGS"
+  else
+    apr_addto_bugger="$mysql_CPPFLAGS"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $CPPFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to CPPFLAGS"
+        CPPFLAGS="$CPPFLAGS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting LDFLAGS to \"$mysql_LDFLAGS\""
+    LDFLAGS="$mysql_LDFLAGS"
+  else
+    apr_addto_bugger="$mysql_LDFLAGS"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to LDFLAGS"
+        LDFLAGS="$LDFLAGS $i"
+      fi
+    done
+  fi
+
+
+      { echo "$as_me:$LINENO: checking for mysql in $withval" >&5
+echo "$as_me: checking for mysql in $withval" >&6;}
+
+for ac_header in mysql.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ { echo "$as_me:$LINENO: checking for mysql_init in -lmysqlclient_r" >&5
+echo $ECHO_N "checking for mysql_init in -lmysqlclient_r... $ECHO_C" >&6; }
+if test "${ac_cv_lib_mysqlclient_r_mysql_init+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lmysqlclient_r  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char mysql_init ();
+int
+main ()
+{
+return mysql_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_mysqlclient_r_mysql_init=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_mysqlclient_r_mysql_init=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_mysqlclient_r_mysql_init" >&5
+echo "${ECHO_T}$ac_cv_lib_mysqlclient_r_mysql_init" >&6; }
+if test $ac_cv_lib_mysqlclient_r_mysql_init = yes; then
+  apu_have_mysql=1
+fi
+
+fi
+
+done
+
+      if test "$apu_have_mysql" != "0"; then
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"$mysql_CPPFLAGS\""
+    APRUTIL_INCLUDES="$mysql_CPPFLAGS"
+  else
+    apr_addto_bugger="$mysql_CPPFLAGS"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"$mysql_LDFLAGS\""
+    APRUTIL_LDFLAGS="$mysql_LDFLAGS"
+  else
+    apr_addto_bugger="$mysql_LDFLAGS"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+      fi
+
+      if test "$apu_have_mysql" != "1"; then
+
+for ac_header in mysql/mysql.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ { echo "$as_me:$LINENO: checking for mysql_init in -lmysqlclient_r" >&5
+echo $ECHO_N "checking for mysql_init in -lmysqlclient_r... $ECHO_C" >&6; }
+if test "${ac_cv_lib_mysqlclient_r_mysql_init+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lmysqlclient_r  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char mysql_init ();
+int
+main ()
+{
+return mysql_init ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_mysqlclient_r_mysql_init=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_mysqlclient_r_mysql_init=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_mysqlclient_r_mysql_init" >&5
+echo "${ECHO_T}$ac_cv_lib_mysqlclient_r_mysql_init" >&6; }
+if test $ac_cv_lib_mysqlclient_r_mysql_init = yes; then
+  apu_have_mysql=1
+fi
+
+fi
+
+done
+
+        if test "$apu_have_mysql" != "0"; then
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$withval/include/mysql\""
+    APRUTIL_INCLUDES="-I$withval/include/mysql"
+  else
+    apr_addto_bugger="-I$withval/include/mysql"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$withval/lib\""
+    APRUTIL_LDFLAGS="-L$withval/lib"
+  else
+    apr_addto_bugger="-L$withval/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+        fi
+      fi
+
+      CPPFLAGS="$old_cppflags"
+      LDFLAGS="$old_ldflags"
+    fi
+
+fi
+
+
+
+
+      if test "$apu_have_mysql" = "1"; then
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-lmysqlclient_r\""
+    APRUTIL_EXPORT_LIBS="-lmysqlclient_r"
+  else
+    apr_addto_bugger="-lmysqlclient_r"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-lmysqlclient_r\""
+    APRUTIL_LIBS="-lmysqlclient_r"
+  else
+    apr_addto_bugger="-lmysqlclient_r"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+  fi
+
+
+  apu_have_sqlite3=0
+
+
+# Check whether --with-sqlite3 was given.
+if test "${with_sqlite3+set}" = set; then
+  withval=$with_sqlite3;
+    apu_have_sqlite3=0
+    if test "$withval" = "yes"; then
+
+for ac_header in sqlite3.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ { echo "$as_me:$LINENO: checking for sqlite3_open in -lsqlite3" >&5
+echo $ECHO_N "checking for sqlite3_open in -lsqlite3... $ECHO_C" >&6; }
+if test "${ac_cv_lib_sqlite3_sqlite3_open+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsqlite3  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char sqlite3_open ();
+int
+main ()
+{
+return sqlite3_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_sqlite3_sqlite3_open=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_sqlite3_sqlite3_open=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_sqlite3_sqlite3_open" >&5
+echo "${ECHO_T}$ac_cv_lib_sqlite3_sqlite3_open" >&6; }
+if test $ac_cv_lib_sqlite3_sqlite3_open = yes; then
+  apu_have_sqlite3=1
+fi
+
+fi
+
+done
+
+    elif test "$withval" = "no"; then
+      apu_have_sqlite3=0
+    else
+      old_cppflags="$CPPFLAGS"
+      old_ldflags="$LDFLAGS"
+
+      sqlite3_CPPFLAGS="-I$withval/include"
+      sqlite3_LDFLAGS="-L$withval/lib "
+
+
+  if test "x$CPPFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting CPPFLAGS to \"$sqlite3_CPPFLAGS\""
+    CPPFLAGS="$sqlite3_CPPFLAGS"
+  else
+    apr_addto_bugger="$sqlite3_CPPFLAGS"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $CPPFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to CPPFLAGS"
+        CPPFLAGS="$CPPFLAGS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting LDFLAGS to \"$sqlite3_LDFLAGS\""
+    LDFLAGS="$sqlite3_LDFLAGS"
+  else
+    apr_addto_bugger="$sqlite3_LDFLAGS"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to LDFLAGS"
+        LDFLAGS="$LDFLAGS $i"
+      fi
+    done
+  fi
+
+
+      { echo "$as_me:$LINENO: checking for sqlite3 in $withval" >&5
+echo "$as_me: checking for sqlite3 in $withval" >&6;}
+
+for ac_header in sqlite3.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ { echo "$as_me:$LINENO: checking for sqlite3_open in -lsqlite3" >&5
+echo $ECHO_N "checking for sqlite3_open in -lsqlite3... $ECHO_C" >&6; }
+if test "${ac_cv_lib_sqlite3_sqlite3_open+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsqlite3  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char sqlite3_open ();
+int
+main ()
+{
+return sqlite3_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_sqlite3_sqlite3_open=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_sqlite3_sqlite3_open=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_sqlite3_sqlite3_open" >&5
+echo "${ECHO_T}$ac_cv_lib_sqlite3_sqlite3_open" >&6; }
+if test $ac_cv_lib_sqlite3_sqlite3_open = yes; then
+  apu_have_sqlite3=1
+fi
+
+fi
+
+done
+
+      if test "$apu_have_sqlite3" != "0"; then
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$withval/lib\""
+    APRUTIL_LDFLAGS="-L$withval/lib"
+  else
+    apr_addto_bugger="-L$withval/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$withval/include\""
+    APRUTIL_INCLUDES="-I$withval/include"
+  else
+    apr_addto_bugger="-I$withval/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+      fi
+
+      CPPFLAGS="$old_cppflags"
+      LDFLAGS="$old_ldflags"
+    fi
+
+else
+
+    apu_have_sqlite3=0
+
+for ac_header in sqlite3.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ { echo "$as_me:$LINENO: checking for sqlite3_open in -lsqlite3" >&5
+echo $ECHO_N "checking for sqlite3_open in -lsqlite3... $ECHO_C" >&6; }
+if test "${ac_cv_lib_sqlite3_sqlite3_open+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsqlite3  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char sqlite3_open ();
+int
+main ()
+{
+return sqlite3_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_sqlite3_sqlite3_open=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_sqlite3_sqlite3_open=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_sqlite3_sqlite3_open" >&5
+echo "${ECHO_T}$ac_cv_lib_sqlite3_sqlite3_open" >&6; }
+if test $ac_cv_lib_sqlite3_sqlite3_open = yes; then
+  apu_have_sqlite3=1
+fi
+
+fi
+
+done
+
+
+fi
+
+
+
+
+      if test "$apu_have_sqlite3" = "1"; then
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-lsqlite3\""
+    APRUTIL_EXPORT_LIBS="-lsqlite3"
+  else
+    apr_addto_bugger="-lsqlite3"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-lsqlite3\""
+    APRUTIL_LIBS="-lsqlite3"
+  else
+    apr_addto_bugger="-lsqlite3"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+  fi
+
+
+  apu_have_sqlite2=0
+
+
+# Check whether --with-sqlite2 was given.
+if test "${with_sqlite2+set}" = set; then
+  withval=$with_sqlite2;
+    apu_have_sqlite2=0
+    if test "$withval" = "yes"; then
+
+for ac_header in sqlite.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ { echo "$as_me:$LINENO: checking for sqlite_open in -lsqlite" >&5
+echo $ECHO_N "checking for sqlite_open in -lsqlite... $ECHO_C" >&6; }
+if test "${ac_cv_lib_sqlite_sqlite_open+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsqlite  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char sqlite_open ();
+int
+main ()
+{
+return sqlite_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_sqlite_sqlite_open=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_sqlite_sqlite_open=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_sqlite_sqlite_open" >&5
+echo "${ECHO_T}$ac_cv_lib_sqlite_sqlite_open" >&6; }
+if test $ac_cv_lib_sqlite_sqlite_open = yes; then
+  apu_have_sqlite2=1
+fi
+
+fi
+
+done
+
+    elif test "$withval" = "no"; then
+      apu_have_sqlite2=0
+    else
+      old_cppflags="$CPPFLAGS"
+      old_ldflags="$LDFLAGS"
+
+      sqlite2_CPPFLAGS="-I$withval/include"
+      sqlite2_LDFLAGS="-L$withval/lib "
+
+
+  if test "x$CPPFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting CPPFLAGS to \"$sqlite2_CPPFLAGS\""
+    CPPFLAGS="$sqlite2_CPPFLAGS"
+  else
+    apr_addto_bugger="$sqlite2_CPPFLAGS"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $CPPFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to CPPFLAGS"
+        CPPFLAGS="$CPPFLAGS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting LDFLAGS to \"$sqlite2_LDFLAGS\""
+    LDFLAGS="$sqlite2_LDFLAGS"
+  else
+    apr_addto_bugger="$sqlite2_LDFLAGS"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to LDFLAGS"
+        LDFLAGS="$LDFLAGS $i"
+      fi
+    done
+  fi
+
+
+      { echo "$as_me:$LINENO: checking for sqlite2 in $withval" >&5
+echo "$as_me: checking for sqlite2 in $withval" >&6;}
+
+for ac_header in sqlite.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ { echo "$as_me:$LINENO: checking for sqlite_open in -lsqlite" >&5
+echo $ECHO_N "checking for sqlite_open in -lsqlite... $ECHO_C" >&6; }
+if test "${ac_cv_lib_sqlite_sqlite_open+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsqlite  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char sqlite_open ();
+int
+main ()
+{
+return sqlite_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_sqlite_sqlite_open=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_sqlite_sqlite_open=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_sqlite_sqlite_open" >&5
+echo "${ECHO_T}$ac_cv_lib_sqlite_sqlite_open" >&6; }
+if test $ac_cv_lib_sqlite_sqlite_open = yes; then
+  apu_have_sqlite2=1
+fi
+
+fi
+
+done
+
+      if test "$apu_have_sqlite2" != "0"; then
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$withval/lib\""
+    APRUTIL_LDFLAGS="-L$withval/lib"
+  else
+    apr_addto_bugger="-L$withval/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$withval/include\""
+    APRUTIL_INCLUDES="-I$withval/include"
+  else
+    apr_addto_bugger="-I$withval/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+      fi
+
+      CPPFLAGS="$old_cppflags"
+      LDFLAGS="$old_ldflags"
+    fi
+
+else
+
+    apu_have_sqlite2=0
+
+for ac_header in sqlite.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ { echo "$as_me:$LINENO: checking for sqlite_open in -lsqlite" >&5
+echo $ECHO_N "checking for sqlite_open in -lsqlite... $ECHO_C" >&6; }
+if test "${ac_cv_lib_sqlite_sqlite_open+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsqlite  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char sqlite_open ();
+int
+main ()
+{
+return sqlite_open ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_sqlite_sqlite_open=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_lib_sqlite_sqlite_open=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_sqlite_sqlite_open" >&5
+echo "${ECHO_T}$ac_cv_lib_sqlite_sqlite_open" >&6; }
+if test $ac_cv_lib_sqlite_sqlite_open = yes; then
+  apu_have_sqlite2=1
+fi
+
+fi
+
+done
+
+
+fi
+
+
+
+
+      if test "$apu_have_sqlite2" = "1"; then
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-lsqlite\""
+    APRUTIL_EXPORT_LIBS="-lsqlite"
+  else
+    apr_addto_bugger="-lsqlite"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-lsqlite\""
+    APRUTIL_LIBS="-lsqlite"
+  else
+    apr_addto_bugger="-lsqlite"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+  fi
+
+
+
+save_cppflags="$CPPFLAGS"
+save_ldflags="$LDFLAGS"
+
+apu_has_expat=0
+
+# Default: will use either external or bundled expat.
+apu_try_external_expat=1
+apu_try_builtin_expat=1
+
+
+# Check whether --with-expat was given.
+if test "${with_expat+set}" = set; then
+  withval=$with_expat;
+  if test "$withval" = "yes"; then
+    { { echo "$as_me:$LINENO: error: a directory must be specified for --with-expat" >&5
+echo "$as_me: error: a directory must be specified for --with-expat" >&2;}
+   { (exit 1); exit 1; }; }
+  elif test "$withval" = "no"; then
+    { { echo "$as_me:$LINENO: error: Expat cannot be disabled (at this time)" >&5
+echo "$as_me: error: Expat cannot be disabled (at this time)" >&2;}
+   { (exit 1); exit 1; }; }
+  elif test "$withval" = "builtin"; then
+    apu_try_external_expat=0
+  else
+    # Add given path to standard search paths if appropriate:
+    if test "$withval" != "/usr"; then
+
+  if test "x$LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting LDFLAGS to \"-L$withval/lib\""
+    LDFLAGS="-L$withval/lib"
+  else
+    apr_addto_bugger="-L$withval/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to LDFLAGS"
+        LDFLAGS="$LDFLAGS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$CPPFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting CPPFLAGS to \"-I$withval/include\""
+    CPPFLAGS="-I$withval/include"
+  else
+    apr_addto_bugger="-I$withval/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $CPPFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to CPPFLAGS"
+        CPPFLAGS="$CPPFLAGS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$withval/include\""
+    APRUTIL_INCLUDES="-I$withval/include"
+  else
+    apr_addto_bugger="-I$withval/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$withval/lib\""
+    APRUTIL_LDFLAGS="-L$withval/lib"
+  else
+    apr_addto_bugger="-L$withval/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+    fi
+    # ...and refuse to fall back on the builtin expat.
+    apu_try_builtin_expat=0
+  fi
+
+fi
+
+
+if test $apu_try_external_expat = 1; then
+
+
+
+{ echo "$as_me:$LINENO: checking Expat 1.95.x" >&5
+echo $ECHO_N "checking Expat 1.95.x... $ECHO_C" >&6; }
+if test "${apu_cv_expat_system+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+  apu_expat_LIBS=$LIBS
+  LIBS="$LIBS -lexpat"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <expat.h>
+int
+main ()
+{
+XML_ParserCreate(NULL);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  apu_cv_expat_system=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	apu_cv_expat_system=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+  LIBS=$apu_expat_LIBS
+
+fi
+{ echo "$as_me:$LINENO: result: $apu_cv_expat_system" >&5
+echo "${ECHO_T}$apu_cv_expat_system" >&6; }
+
+if test $apu_cv_expat_system = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_EXPAT_H 1
+_ACEOF
+
+   apu_expat_libs="-lexpat"
+   apu_has_expat=1
+
+else
+   apu_has_expat=0
+
+fi
+
+
+  if test $apu_has_expat = 0; then
+
+{ echo "$as_me:$LINENO: checking old Debian-packaged expat" >&5
+echo $ECHO_N "checking old Debian-packaged expat... $ECHO_C" >&6; }
+if test "${apu_cv_expat_debian+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+  apu_expat_LIBS=$LIBS
+  LIBS="$LIBS -lxmlparse -lxmltok"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <xmltok/xmlparse.h>
+int
+main ()
+{
+XML_ParserCreate(NULL);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  apu_cv_expat_debian=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	apu_cv_expat_debian=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+  LIBS=$apu_expat_LIBS
+
+fi
+{ echo "$as_me:$LINENO: result: $apu_cv_expat_debian" >&5
+echo "${ECHO_T}$apu_cv_expat_debian" >&6; }
+
+if test $apu_cv_expat_debian = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_XMLTOK_XMLPARSE_H 1
+_ACEOF
+
+   apu_expat_libs="-lxmlparse -lxmltok"
+   apu_has_expat=1
+
+else
+   apu_has_expat=0
+
+fi
+
+  fi
+
+  if test $apu_has_expat = 0; then
+
+{ echo "$as_me:$LINENO: checking old FreeBSD-packaged expat" >&5
+echo $ECHO_N "checking old FreeBSD-packaged expat... $ECHO_C" >&6; }
+if test "${apu_cv_expat_freebsd+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+  apu_expat_LIBS=$LIBS
+  LIBS="$LIBS -lexpat"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <xml/xmlparse.h>
+int
+main ()
+{
+XML_ParserCreate(NULL);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  apu_cv_expat_freebsd=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	apu_cv_expat_freebsd=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+  LIBS=$apu_expat_LIBS
+
+fi
+{ echo "$as_me:$LINENO: result: $apu_cv_expat_freebsd" >&5
+echo "${ECHO_T}$apu_cv_expat_freebsd" >&6; }
+
+if test $apu_cv_expat_freebsd = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_XML_XMLPARSE_H 1
+_ACEOF
+
+   apu_expat_libs="-lexpat"
+   apu_has_expat=1
+
+else
+   apu_has_expat=0
+
+fi
+
+  fi
+
+  if test $apu_has_expat = 0; then
+
+{ echo "$as_me:$LINENO: checking Expat 1.0/1.1" >&5
+echo $ECHO_N "checking Expat 1.0/1.1... $ECHO_C" >&6; }
+if test "${apu_cv_expat_1011+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+  apu_expat_LIBS=$LIBS
+  LIBS="$LIBS -lexpat"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <xmlparse/xmlparse.h>
+int
+main ()
+{
+XML_ParserCreate(NULL);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  apu_cv_expat_1011=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	apu_cv_expat_1011=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+  LIBS=$apu_expat_LIBS
+
+fi
+{ echo "$as_me:$LINENO: result: $apu_cv_expat_1011" >&5
+echo "${ECHO_T}$apu_cv_expat_1011" >&6; }
+
+if test $apu_cv_expat_1011 = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_XMLPARSE_XMLPARSE_H 1
+_ACEOF
+
+   apu_expat_libs="-lexpat"
+   apu_has_expat=1
+
+else
+   apu_has_expat=0
+
+fi
+
+  fi
+
+  if test $apu_has_expat = 0; then
+
+  if test "x$LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting LDFLAGS to \"-L/usr/local/lib\""
+    LDFLAGS="-L/usr/local/lib"
+  else
+    apr_addto_bugger="-L/usr/local/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to LDFLAGS"
+        LDFLAGS="$LDFLAGS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$CPPFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting CPPFLAGS to \"-I/usr/local/include\""
+    CPPFLAGS="-I/usr/local/include"
+  else
+    apr_addto_bugger="-I/usr/local/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $CPPFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to CPPFLAGS"
+        CPPFLAGS="$CPPFLAGS $i"
+      fi
+    done
+  fi
+
+
+
+{ echo "$as_me:$LINENO: checking Expat 1.95.x in /usr/local" >&5
+echo $ECHO_N "checking Expat 1.95.x in /usr/local... $ECHO_C" >&6; }
+if test "${apu_cv_expat_usrlocal+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+  apu_expat_LIBS=$LIBS
+  LIBS="$LIBS -lexpat"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <expat.h>
+int
+main ()
+{
+XML_ParserCreate(NULL);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  apu_cv_expat_usrlocal=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	apu_cv_expat_usrlocal=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+  LIBS=$apu_expat_LIBS
+
+fi
+{ echo "$as_me:$LINENO: result: $apu_cv_expat_usrlocal" >&5
+echo "${ECHO_T}$apu_cv_expat_usrlocal" >&6; }
+
+if test $apu_cv_expat_usrlocal = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_EXPAT_H 1
+_ACEOF
+
+   apu_expat_libs="-lexpat"
+   apu_has_expat=1
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I/usr/local/include\""
+    APRUTIL_INCLUDES="-I/usr/local/include"
+  else
+    apr_addto_bugger="-I/usr/local/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L/usr/local/lib\""
+    APRUTIL_LDFLAGS="-L/usr/local/lib"
+  else
+    apr_addto_bugger="-L/usr/local/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+else
+   apu_has_expat=0
+
+
+  if test "x$LDFLAGS" = "x-L/usr/local/lib"; then
+    test "x$silent" != "xyes" && echo "  nulling LDFLAGS"
+    LDFLAGS=""
+  else
+    apr_new_bugger=""
+    apr_removed=0
+    for i in $LDFLAGS; do
+      if test "x$i" != "x-L/usr/local/lib"; then
+        apr_new_bugger="$apr_new_bugger $i"
+      else
+        apr_removed=1
+      fi
+    done
+    if test $apr_removed = "1"; then
+      test "x$silent" != "xyes" && echo "  removed \"-L/usr/local/lib\" from LDFLAGS"
+      LDFLAGS=$apr_new_bugger
+    fi
+  fi
+
+
+  if test "x$CPPFLAGS" = "x-I/usr/local/include"; then
+    test "x$silent" != "xyes" && echo "  nulling CPPFLAGS"
+    CPPFLAGS=""
+  else
+    apr_new_bugger=""
+    apr_removed=0
+    for i in $CPPFLAGS; do
+      if test "x$i" != "x-I/usr/local/include"; then
+        apr_new_bugger="$apr_new_bugger $i"
+      else
+        apr_removed=1
+      fi
+    done
+    if test $apr_removed = "1"; then
+      test "x$silent" != "xyes" && echo "  removed \"-I/usr/local/include\" from CPPFLAGS"
+      CPPFLAGS=$apr_new_bugger
+    fi
+  fi
+
+
+fi
+
+  fi
+
+fi
+
+if test "${apu_has_expat}${apu_try_builtin_expat}" = "01"; then
+      bundled_subdir="xml/expat"
+
+  # save our work to this point; this allows the sub-package to use it
+  cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
+echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      *) $as_unset $ac_var ;;
+      esac ;;
+    esac
+  done
+
+  (set) 2>&1 |
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      # `set' does not quote correctly, so add quotes (double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      sed -n \
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;; #(
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+) |
+  sed '
+     /^ac_cv_env_/b end
+     t clear
+     :clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+  if test -w "$cache_file"; then
+    test "x$cache_file" != "x/dev/null" &&
+      { echo "$as_me:$LINENO: updating cache $cache_file" >&5
+echo "$as_me: updating cache $cache_file" >&6;}
+    cat confcache >$cache_file
+  else
+    { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+  fi
+fi
+rm -f confcache
+
+  echo "configuring package in $bundled_subdir now"
+  ac_popdir=`pwd`
+  apr_config_subdirs="$bundled_subdir"
+  test -d $bundled_subdir || $mkdir_p $bundled_subdir
+  ac_abs_srcdir=`(cd $srcdir/$bundled_subdir && pwd)`
+  cd $bundled_subdir
+
+      # A "../" for each directory in /$config_subdirs.
+      ac_dots=`echo $apr_config_subdirs|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'`
+
+  # Make the cache file pathname absolute for the subdirs
+  # required to correctly handle subdirs that might actually
+  # be symlinks
+  case "$cache_file" in
+  /*) # already absolute
+    ac_sub_cache_file=$cache_file ;;
+  *)  # Was relative path.
+    ac_sub_cache_file="$ac_popdir/$cache_file" ;;
+  esac
+
+  apr_configure_args=$ac_configure_args
+
+  # autoconf doesn't add --silent to ac_configure_args; explicitly pass it
+  test "x$silent" = "xyes" && apr_configure_args="$apr_configure_args --silent"
+
+              if eval $SHELL $ac_abs_srcdir/configure $apr_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_abs_srcdir --prefix=$prefix --exec-prefix=$exec_prefix --libdir=$libdir --includedir=$includedir --bindir=$bindir
+  then :
+    echo "$bundled_subdir configured properly"
+  else
+    echo "configure failed for $bundled_subdir"
+    exit 1
+  fi
+
+  cd $ac_popdir
+
+  # grab any updates from the sub-package
+  if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special
+  # files actually), so we avoid doing that.
+  if test -f "$cache_file"; then
+    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
+    esac
+  fi
+else
+  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$top_builddir/$bundled_subdir/lib\""
+    APRUTIL_INCLUDES="-I$top_builddir/$bundled_subdir/lib"
+  else
+    apr_addto_bugger="-I$top_builddir/$bundled_subdir/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting LDFLAGS to \"-L$top_builddir/$bundled_subdir/lib\""
+    LDFLAGS="-L$top_builddir/$bundled_subdir/lib"
+  else
+    apr_addto_bugger="-L$top_builddir/$bundled_subdir/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to LDFLAGS"
+        LDFLAGS="$LDFLAGS $i"
+      fi
+    done
+  fi
+
+  apu_expat_libs="$top_builddir/$bundled_subdir/lib/libexpat.la"
+fi
+
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"$apu_expat_libs\""
+    APRUTIL_EXPORT_LIBS="$apu_expat_libs"
+  else
+    apr_addto_bugger="$apu_expat_libs"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"$apu_expat_libs\""
+    APRUTIL_LIBS="$apu_expat_libs"
+  else
+    apr_addto_bugger="$apu_expat_libs"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+
+APR_XML_DIR=$bundled_subdir
+
+
+CPPFLAGS=$save_cppflags
+LDFLAGS=$save_ldflags
+
+
+
+apu_iconv_dir="unknown"
+have_apr_iconv="0"
+want_iconv="1"
+
+# Check whether --with-iconv was given.
+if test "${with_iconv+set}" = set; then
+  withval=$with_iconv;  apu_iconv_dir="$withval"
+    if test "$apu_iconv_dir" = "no"; then
+      have_apr_iconv="0"
+      have_iconv="0"
+      want_iconv="0"
+    elif test "$apu_iconv_dir" != "yes"; then
+      if test -f "$apu_iconv_dir/include/apr-1/api_version.h"; then
+        have_apr_iconv="1"
+        have_iconv="0"
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$apu_iconv_dir/include/apr-1\""
+    APRUTIL_INCLUDES="-I$apu_iconv_dir/include/apr-1"
+  else
+    apr_addto_bugger="-I$apu_iconv_dir/include/apr-1"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"$apu_iconv_dir/lib/libapriconv-1.la\""
+    APRUTIL_LIBS="$apu_iconv_dir/lib/libapriconv-1.la"
+  else
+    apr_addto_bugger="$apu_iconv_dir/lib/libapriconv-1.la"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+        { echo "$as_me:$LINENO: result: using apr-iconv" >&5
+echo "${ECHO_T}using apr-iconv" >&6; }
+      elif test -f "$apu_iconv_dir/include/iconv.h"; then
+        have_apr_iconv="0"
+        have_iconv="1"
+
+  if test "x$CPPFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting CPPFLAGS to \"-I$apu_iconv_dir/include\""
+    CPPFLAGS="-I$apu_iconv_dir/include"
+  else
+    apr_addto_bugger="-I$apu_iconv_dir/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $CPPFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to CPPFLAGS"
+        CPPFLAGS="$CPPFLAGS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting LDFLAGS to \"-L$apu_iconv_dir/lib\""
+    LDFLAGS="-L$apu_iconv_dir/lib"
+  else
+    apr_addto_bugger="-L$apu_iconv_dir/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to LDFLAGS"
+        LDFLAGS="$LDFLAGS $i"
+      fi
+    done
+  fi
+
+      fi
+    fi
+
+fi
+
+
+if test "$want_iconv" = "1" -a "$have_apr_iconv" != "1"; then
+  if test "${ac_cv_header_iconv_h+set}" = set; then
+  { echo "$as_me:$LINENO: checking for iconv.h" >&5
+echo $ECHO_N "checking for iconv.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_iconv_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_iconv_h" >&5
+echo "${ECHO_T}$ac_cv_header_iconv_h" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking iconv.h usability" >&5
+echo $ECHO_N "checking iconv.h usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <iconv.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking iconv.h presence" >&5
+echo $ECHO_N "checking iconv.h presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <iconv.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: iconv.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: iconv.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: iconv.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: iconv.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: iconv.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: iconv.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: iconv.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: iconv.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: iconv.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: iconv.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: iconv.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: iconv.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: iconv.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: iconv.h: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for iconv.h" >&5
+echo $ECHO_N "checking for iconv.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_iconv_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_iconv_h=$ac_header_preproc
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_iconv_h" >&5
+echo "${ECHO_T}$ac_cv_header_iconv_h" >&6; }
+
+fi
+if test $ac_cv_header_iconv_h = yes; then
+
+
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdlib.h>
+#include <iconv.h>
+
+int
+main ()
+{
+
+  iconv_t cd = iconv_open("", "");
+  iconv(cd, NULL, NULL, NULL, NULL);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+   have_iconv="1"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+
+
+  if test "x$LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting LIBS to \"-liconv\""
+    LIBS="-liconv"
+  else
+    apr_addto_bugger="-liconv"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to LIBS"
+        LIBS="$LIBS $i"
+      fi
+    done
+  fi
+
+
+
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdlib.h>
+#include <iconv.h>
+
+int
+main ()
+{
+
+  iconv_t cd = iconv_open("", "");
+  iconv(cd, NULL, NULL, NULL, NULL);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"-liconv\""
+    APRUTIL_LIBS="-liconv"
+  else
+    apr_addto_bugger="-liconv"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_EXPORT_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_EXPORT_LIBS to \"-liconv\""
+    APRUTIL_EXPORT_LIBS="-liconv"
+  else
+    apr_addto_bugger="-liconv"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_EXPORT_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_EXPORT_LIBS"
+        APRUTIL_EXPORT_LIBS="$APRUTIL_EXPORT_LIBS $i"
+      fi
+    done
+  fi
+
+      have_iconv="1"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	 have_iconv="0"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+
+
+
+  if test "x$LIBS" = "x-liconv"; then
+    test "x$silent" != "xyes" && echo "  nulling LIBS"
+    LIBS=""
+  else
+    apr_new_bugger=""
+    apr_removed=0
+    for i in $LIBS; do
+      if test "x$i" != "x-liconv"; then
+        apr_new_bugger="$apr_new_bugger $i"
+      else
+        apr_removed=1
+      fi
+    done
+    if test $apr_removed = "1"; then
+      test "x$silent" != "xyes" && echo "  removed \"-liconv\" from LIBS"
+      LIBS=$apr_new_bugger
+    fi
+  fi
+
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+
+
+else
+   have_iconv="0"
+fi
+
+
+fi
+
+if test "$want_iconv" = "1" -a "$apu_iconv_dir" != "unknown"; then
+  if test "$have_iconv" != "1"; then
+    if test "$have_apr_iconv" != "1"; then
+      { { echo "$as_me:$LINENO: error: iconv support requested, but not found" >&5
+echo "$as_me: error: iconv support requested, but not found" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+  fi
+
+  if test "x$CPPFLAGS" = "x-I$apu_iconv_dir/include"; then
+    test "x$silent" != "xyes" && echo "  nulling CPPFLAGS"
+    CPPFLAGS=""
+  else
+    apr_new_bugger=""
+    apr_removed=0
+    for i in $CPPFLAGS; do
+      if test "x$i" != "x-I$apu_iconv_dir/include"; then
+        apr_new_bugger="$apr_new_bugger $i"
+      else
+        apr_removed=1
+      fi
+    done
+    if test $apr_removed = "1"; then
+      test "x$silent" != "xyes" && echo "  removed \"-I$apu_iconv_dir/include\" from CPPFLAGS"
+      CPPFLAGS=$apr_new_bugger
+    fi
+  fi
+
+
+  if test "x$LDFLAGS" = "x-L$apu_iconv_dir/lib"; then
+    test "x$silent" != "xyes" && echo "  nulling LDFLAGS"
+    LDFLAGS=""
+  else
+    apr_new_bugger=""
+    apr_removed=0
+    for i in $LDFLAGS; do
+      if test "x$i" != "x-L$apu_iconv_dir/lib"; then
+        apr_new_bugger="$apr_new_bugger $i"
+      else
+        apr_removed=1
+      fi
+    done
+    if test $apr_removed = "1"; then
+      test "x$silent" != "xyes" && echo "  removed \"-L$apu_iconv_dir/lib\" from LDFLAGS"
+      LDFLAGS=$apr_new_bugger
+    fi
+  fi
+
+
+  if test "x$APRUTIL_INCLUDES" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_INCLUDES to \"-I$apu_iconv_dir/include\""
+    APRUTIL_INCLUDES="-I$apu_iconv_dir/include"
+  else
+    apr_addto_bugger="-I$apu_iconv_dir/include"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_INCLUDES; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_INCLUDES"
+        APRUTIL_INCLUDES="$APRUTIL_INCLUDES $i"
+      fi
+    done
+  fi
+
+
+  if test "x$APRUTIL_LDFLAGS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LDFLAGS to \"-L$apu_iconv_dir/lib\""
+    APRUTIL_LDFLAGS="-L$apu_iconv_dir/lib"
+  else
+    apr_addto_bugger="-L$apu_iconv_dir/lib"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LDFLAGS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LDFLAGS"
+        APRUTIL_LDFLAGS="$APRUTIL_LDFLAGS $i"
+      fi
+    done
+  fi
+
+fi
+
+if test "$have_iconv" = "1"; then
+
+{ echo "$as_me:$LINENO: checking for type of inbuf parameter to iconv" >&5
+echo $ECHO_N "checking for type of inbuf parameter to iconv... $ECHO_C" >&6; }
+if test "x$apu_iconv_inbuf_const" = "x"; then
+    apr_save_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $CFLAGS_WARN"
+ if test "$ac_cv_c_compiler_gnu" = "yes"; then
+   CFLAGS="$CFLAGS -Werror"
+ fi
+ cat >conftest.$ac_ext <<_ACEOF
+#include "confdefs.h"
+
+
+    #include <stddef.h>
+    #include <iconv.h>
+
+  int main(int argc, const char *const *argv) {
+
+    iconv(0,(char **)0,(size_t *)0,(char **)0,(size_t *)0);
+
+     return 0; }
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  apu_iconv_inbuf_const="0"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	apu_iconv_inbuf_const="1"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CFLAGS=$apr_save_CFLAGS
+
+fi
+if test "$apu_iconv_inbuf_const" = "1"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define APU_ICONV_INBUF_CONST 1
+_ACEOF
+
+    msg="const char **"
+else
+    msg="char **"
+fi
+{ echo "$as_me:$LINENO: result: $msg" >&5
+echo "${ECHO_T}$msg" >&6; }
+
+fi
+
+
+
+
+for ac_header in iconv.h langinfo.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+for aprt_i in iconv.h langinfo.h
+do
+    ac_safe=`echo "$aprt_i" | sed 'y%./+-%__p_%'`
+    aprt_2=`echo "$aprt_i" | sed -e 's%/%_%g' -e 's/\.//g' -e 's/-//g'`
+    if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+       eval "$aprt_2=1"
+    else
+       eval "$aprt_2=0"
+    fi
+done
+
+
+
+for ac_func in nl_langinfo
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+for aprt_j in nl_langinfo
+do
+    aprt_3="have_$aprt_j"
+    if eval "test \"`echo '$ac_cv_func_'$aprt_j`\" = yes"; then
+       eval "$aprt_3=1"
+    else
+       eval "$aprt_3=0"
+    fi
+done
+
+
+  { echo "$as_me:$LINENO: checking for CODESET in langinfo.h" >&5
+echo $ECHO_N "checking for CODESET in langinfo.h... $ECHO_C" >&6; }
+if test "${ac_cv_define_CODESET+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <langinfo.h>
+#ifdef CODESET
+YES_IS_DEFINED
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "YES_IS_DEFINED" >/dev/null 2>&1; then
+  ac_cv_define_CODESET=yes
+else
+  ac_cv_define_CODESET=no
+fi
+rm -f conftest*
+
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_define_CODESET" >&5
+echo "${ECHO_T}$ac_cv_define_CODESET" >&6; }
+  if test "$ac_cv_define_CODESET" = "yes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_CODESET 1
+_ACEOF
+
+  fi
+
+
+
+
+
+
+{ echo "$as_me:$LINENO: checking for library containing crypt" >&5
+echo $ECHO_N "checking for library containing crypt... $ECHO_C" >&6; }
+if test "${ac_cv_search_crypt+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char crypt ();
+int
+main ()
+{
+return crypt ();
+  ;
+  return 0;
+}
+_ACEOF
+for ac_lib in '' crypt ufc; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_search_crypt=$ac_res
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext
+  if test "${ac_cv_search_crypt+set}" = set; then
+  break
+fi
+done
+if test "${ac_cv_search_crypt+set}" = set; then
+  :
+else
+  ac_cv_search_crypt=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_search_crypt" >&5
+echo "${ECHO_T}$ac_cv_search_crypt" >&6; }
+ac_res=$ac_cv_search_crypt
+if test "$ac_res" != no; then
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+{ echo "$as_me:$LINENO: checking if system crypt() function is threadsafe" >&5
+echo $ECHO_N "checking if system crypt() function is threadsafe... $ECHO_C" >&6; }
+if test "x$apu_crypt_threadsafe" = "x1"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define APU_CRYPT_THREADSAFE 1
+_ACEOF
+
+  msg="yes"
+else
+  msg="no"
+fi
+{ echo "$as_me:$LINENO: result: $msg" >&5
+echo "${ECHO_T}$msg" >&6; }
+
+
+for ac_func in crypt_r
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
+int
+main ()
+{
+return $ac_func ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_var=no"
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+  crypt_r="1"
+else
+   crypt_r="0"
+fi
+done
+
+if test "$crypt_r" = "1"; then
+
+
+{ echo "$as_me:$LINENO: checking style of crypt_r" >&5
+echo $ECHO_N "checking style of crypt_r... $ECHO_C" >&6; }
+if test "${apr_cv_crypt_r_style+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <crypt.h>
+int
+main ()
+{
+CRYPTD buffer;
+  crypt_r("passwd", "hash", &buffer);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  apr_cv_crypt_r_style=cryptd
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <crypt.h>
+int
+main ()
+{
+struct crypt_data buffer;
+   crypt_r("passwd", "hash", &buffer);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  apr_cv_crypt_r_style=struct_crypt_data
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	apr_cv_crypt_r_style=none
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ echo "$as_me:$LINENO: result: $apr_cv_crypt_r_style" >&5
+echo "${ECHO_T}$apr_cv_crypt_r_style" >&6; }
+
+if test "$apr_cv_crypt_r_style" = "cryptd"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define CRYPT_R_CRYPTD 1
+_ACEOF
+
+elif test "$apr_cv_crypt_r_style" = "struct_crypt_data"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define CRYPT_R_STRUCT_CRYPT_DATA 1
+_ACEOF
+
+fi
+
+fi
+
+so_ext=$APR_SO_EXT
+lib_target=$APR_LIB_TARGET
+
+
+
+APRUTIL_LIBNAME="aprutil${libsuffix}"
+
+
+
+  if test "x$APRUTIL_LIBS" = "x"; then
+    test "x$silent" != "xyes" && echo "  setting APRUTIL_LIBS to \"$APR_LIBS\""
+    APRUTIL_LIBS="$APR_LIBS"
+  else
+    apr_addto_bugger="$APR_LIBS"
+    for i in $apr_addto_bugger; do
+      apr_addto_duplicate="0"
+      for j in $APRUTIL_LIBS; do
+        if test "x$i" = "x$j"; then
+          apr_addto_duplicate="1"
+          break
+        fi
+      done
+      if test $apr_addto_duplicate = "0"; then
+        test "x$silent" != "xyes" && echo "  adding \"$i\" to APRUTIL_LIBS"
+        APRUTIL_LIBS="$APRUTIL_LIBS $i"
+      fi
+    done
+  fi
+
+
+
+
+
+
+
+
+
+if test ! -d ./build; then
+   $mkdir_p build
+fi
+cp $APR_BUILD_DIR/apr_rules.mk $abs_builddir/build/rules.mk
+
+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
+
+
+
+for d in include include/private; do
+    test -d $top_builddir/$d || mkdir $top_builddir/$d
+done
+
+ac_config_files="$ac_config_files Makefile export_vars.sh build/pkg/pkginfo apr-util.pc apu-$APRUTIL_MAJOR_VERSION-config:apu-config.in include/private/apu_select_dbm.h include/apr_ldap.h include/apu.h include/apu_want.h"
+
+
+ac_config_commands="$ac_config_commands default"
+
+
+if test -d $srcdir/test; then
+    ac_config_files="$ac_config_files test/Makefile"
+
+fi
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
+echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      *) $as_unset $ac_var ;;
+      esac ;;
+    esac
+  done
+
+  (set) 2>&1 |
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      # `set' does not quote correctly, so add quotes (double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      sed -n \
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;; #(
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+) |
+  sed '
+     /^ac_cv_env_/b end
+     t clear
+     :clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+  if test -w "$cache_file"; then
+    test "x$cache_file" != "x/dev/null" &&
+      { echo "$as_me:$LINENO: updating cache $cache_file" >&5
+echo "$as_me: updating cache $cache_file" >&6;}
+    cat confcache >$cache_file
+  else
+    { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+  ac_i=`echo "$ac_i" | sed "$ac_script"`
+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+  #    will be set to the directory where LIBOBJS objects are built.
+  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+: ${CONFIG_STATUS=./config.status}
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in
+  *posix*) set -o posix ;;
+esac
+
+fi
+
+
+
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+as_nl='
+'
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+case $0 in
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  { (exit 1); exit 1; }
+fi
+
+# Work around bugs in pre-3.0 UWIN ksh.
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+  fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# CDPATH.
+$as_unset CDPATH
+
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line after each line using $LINENO; the second 'sed'
+  # does the real work.  The second script uses 'N' to pair each
+  # line-number line with the line containing $LINENO, and appends
+  # trailing '-' during substitution so that $LINENO is not a special
+  # case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # scripts with optimization help from Paolo Bonzini.  Blame Lee
+  # E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in
+-n*)
+  case `echo 'x\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  *)   ECHO_C='\c';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir
+fi
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s='ln -s'
+  # ... but there are two gotchas:
+  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+  # In both cases, we have to default to `cp -p'.
+  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+    as_ln_s='cp -p'
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
+else
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+        test -d "$1/.";
+      else
+	case $1 in
+        -*)set "./$1";;
+	esac;
+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+	???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+
+# Save the log message, to keep $[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.61.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number and configuration settings, then exit
+  -q, --quiet      do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+  --file=FILE[:TEMPLATE]
+		   instantiate the configuration file FILE
+  --header=FILE[:TEMPLATE]
+		   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <bug-autoconf@gnu.org>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.61,
+  with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright (C) 2006 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If no file are specified by the user, then we need to provide default
+# value.  By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=*)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  *)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+    echo "$ac_cs_version"; exit ;;
+  --debug | --debu | --deb | --de | --d | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    $ac_shift
+    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+    ac_need_defaults=false;;
+  --he | --h)
+    # Conflict between --help and --header
+    { echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; };;
+  --help | --hel | -h )
+    echo "$ac_cs_usage"; exit ;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) { echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; } ;;
+
+  *) ac_config_targets="$ac_config_targets $1"
+     ac_need_defaults=false ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+if \$ac_cs_recheck; then
+  echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+  CONFIG_SHELL=$SHELL
+  export CONFIG_SHELL
+  exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+  echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+#
+# INIT-COMMANDS
+#
+
+APRUTIL_MAJOR_VERSION=$APRUTIL_MAJOR_VERSION
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+  case $ac_config_target in
+    "include/private/apu_config.h") CONFIG_HEADERS="$CONFIG_HEADERS include/private/apu_config.h" ;;
+    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+    "export_vars.sh") CONFIG_FILES="$CONFIG_FILES export_vars.sh" ;;
+    "build/pkg/pkginfo") CONFIG_FILES="$CONFIG_FILES build/pkg/pkginfo" ;;
+    "apr-util.pc") CONFIG_FILES="$CONFIG_FILES apr-util.pc" ;;
+    "apu-$APRUTIL_MAJOR_VERSION-config") CONFIG_FILES="$CONFIG_FILES apu-$APRUTIL_MAJOR_VERSION-config:apu-config.in" ;;
+    "include/private/apu_select_dbm.h") CONFIG_FILES="$CONFIG_FILES include/private/apu_select_dbm.h" ;;
+    "include/apr_ldap.h") CONFIG_FILES="$CONFIG_FILES include/apr_ldap.h" ;;
+    "include/apu.h") CONFIG_FILES="$CONFIG_FILES include/apu.h" ;;
+    "include/apu_want.h") CONFIG_FILES="$CONFIG_FILES include/apu_want.h" ;;
+    "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
+    "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;;
+
+  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+  tmp=
+  trap 'exit_status=$?
+  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+' 0
+  trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+  test -n "$tmp" && test -d "$tmp"
+}  ||
+{
+  tmp=./conf$$-$RANDOM
+  (umask 077 && mkdir "$tmp")
+} ||
+{
+   echo "$me: cannot create a temporary directory in ." >&2
+   { (exit 1); exit 1; }
+}
+
+#
+# Set up the sed scripts for CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "$CONFIG_FILES"; then
+
+_ACEOF
+
+
+
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  cat >conf$$subs.sed <<_ACEOF
+SHELL!$SHELL$ac_delim
+PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim
+PACKAGE_NAME!$PACKAGE_NAME$ac_delim
+PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim
+PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim
+PACKAGE_STRING!$PACKAGE_STRING$ac_delim
+PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim
+exec_prefix!$exec_prefix$ac_delim
+prefix!$prefix$ac_delim
+program_transform_name!$program_transform_name$ac_delim
+bindir!$bindir$ac_delim
+sbindir!$sbindir$ac_delim
+libexecdir!$libexecdir$ac_delim
+datarootdir!$datarootdir$ac_delim
+datadir!$datadir$ac_delim
+sysconfdir!$sysconfdir$ac_delim
+sharedstatedir!$sharedstatedir$ac_delim
+localstatedir!$localstatedir$ac_delim
+includedir!$includedir$ac_delim
+oldincludedir!$oldincludedir$ac_delim
+docdir!$docdir$ac_delim
+infodir!$infodir$ac_delim
+htmldir!$htmldir$ac_delim
+dvidir!$dvidir$ac_delim
+pdfdir!$pdfdir$ac_delim
+psdir!$psdir$ac_delim
+libdir!$libdir$ac_delim
+localedir!$localedir$ac_delim
+mandir!$mandir$ac_delim
+DEFS!$DEFS$ac_delim
+ECHO_C!$ECHO_C$ac_delim
+ECHO_N!$ECHO_N$ac_delim
+ECHO_T!$ECHO_T$ac_delim
+LIBS!$LIBS$ac_delim
+build_alias!$build_alias$ac_delim
+host_alias!$host_alias$ac_delim
+target_alias!$target_alias$ac_delim
+APU_CONFIG_LOCATION!$APU_CONFIG_LOCATION$ac_delim
+build!$build$ac_delim
+build_cpu!$build_cpu$ac_delim
+build_vendor!$build_vendor$ac_delim
+build_os!$build_os$ac_delim
+host!$host$ac_delim
+host_cpu!$host_cpu$ac_delim
+host_vendor!$host_vendor$ac_delim
+host_os!$host_os$ac_delim
+target!$target$ac_delim
+target_cpu!$target_cpu$ac_delim
+target_vendor!$target_vendor$ac_delim
+target_os!$target_os$ac_delim
+INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
+INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
+INSTALL_DATA!$INSTALL_DATA$ac_delim
+LT_NO_INSTALL!$LT_NO_INSTALL$ac_delim
+top_builddir!$top_builddir$ac_delim
+abs_srcdir!$abs_srcdir$ac_delim
+abs_builddir!$abs_builddir$ac_delim
+APRUTIL_DOTTED_VERSION!$APRUTIL_DOTTED_VERSION$ac_delim
+APRUTIL_MAJOR_VERSION!$APRUTIL_MAJOR_VERSION$ac_delim
+CC!$CC$ac_delim
+CFLAGS!$CFLAGS$ac_delim
+LDFLAGS!$LDFLAGS$ac_delim
+CPPFLAGS!$CPPFLAGS$ac_delim
+ac_ct_CC!$ac_ct_CC$ac_delim
+EXEEXT!$EXEEXT$ac_delim
+OBJEXT!$OBJEXT$ac_delim
+APR_INCLUDES!$APR_INCLUDES$ac_delim
+APR_LIBS!$APR_LIBS$ac_delim
+APR_BUILD_DIR!$APR_BUILD_DIR$ac_delim
+APR_ICONV_DIR!$APR_ICONV_DIR$ac_delim
+CPP!$CPP$ac_delim
+GREP!$GREP$ac_delim
+EGREP!$EGREP$ac_delim
+ldap_h!$ldap_h$ac_delim
+lber_h!$lber_h$ac_delim
+ldap_ssl_h!$ldap_ssl_h$ac_delim
+apu_has_ldapssl_client_init!$apu_has_ldapssl_client_init$ac_delim
+apu_has_ldapssl_client_deinit!$apu_has_ldapssl_client_deinit$ac_delim
+apu_has_ldapssl_add_trusted_cert!$apu_has_ldapssl_add_trusted_cert$ac_delim
+apu_has_ldap_start_tls_s!$apu_has_ldap_start_tls_s$ac_delim
+apu_has_ldapssl_init!$apu_has_ldapssl_init$ac_delim
+apu_has_ldap_sslinit!$apu_has_ldap_sslinit$ac_delim
+apu_has_ldapssl_install_routines!$apu_has_ldapssl_install_routines$ac_delim
+apu_has_ldap!$apu_has_ldap$ac_delim
+apu_has_ldap_openldap!$apu_has_ldap_openldap$ac_delim
+apu_has_ldap_solaris!$apu_has_ldap_solaris$ac_delim
+apu_has_ldap_novell!$apu_has_ldap_novell$ac_delim
+apu_has_ldap_microsoft!$apu_has_ldap_microsoft$ac_delim
+apu_has_ldap_netscape!$apu_has_ldap_netscape$ac_delim
+apu_has_ldap_mozilla!$apu_has_ldap_mozilla$ac_delim
+apu_has_ldap_zos!$apu_has_ldap_zos$ac_delim
+apu_has_ldap_other!$apu_has_ldap_other$ac_delim
+apu_use_sdbm!$apu_use_sdbm$ac_delim
+apu_use_gdbm!$apu_use_gdbm$ac_delim
+apu_use_ndbm!$apu_use_ndbm$ac_delim
+apu_use_db!$apu_use_db$ac_delim
+apu_have_sdbm!$apu_have_sdbm$ac_delim
+_ACEOF
+
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
+    break
+  elif $ac_last_try; then
+    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
+if test -n "$ac_eof"; then
+  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
+  ac_eof=`expr $ac_eof + 1`
+fi
+
+cat >>$CONFIG_STATUS <<_ACEOF
+cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+_ACEOF
+sed '
+s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
+s/^/s,@/; s/!/@,|#_!!_#|/
+:n
+t n
+s/'"$ac_delim"'$/,g/; t
+s/$/\\/; p
+N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
+' >>$CONFIG_STATUS <conf$$subs.sed
+rm -f conf$$subs.sed
+cat >>$CONFIG_STATUS <<_ACEOF
+CEOF$ac_eof
+_ACEOF
+
+
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  cat >conf$$subs.sed <<_ACEOF
+apu_have_gdbm!$apu_have_gdbm$ac_delim
+apu_have_ndbm!$apu_have_ndbm$ac_delim
+apu_have_db!$apu_have_db$ac_delim
+apu_db_header!$apu_db_header$ac_delim
+apu_db_version!$apu_db_version$ac_delim
+apu_have_pgsql!$apu_have_pgsql$ac_delim
+MYSQL_CONFIG!$MYSQL_CONFIG$ac_delim
+apu_have_mysql!$apu_have_mysql$ac_delim
+apu_have_sqlite3!$apu_have_sqlite3$ac_delim
+apu_have_sqlite2!$apu_have_sqlite2$ac_delim
+APR_XML_DIR!$APR_XML_DIR$ac_delim
+have_iconv!$have_iconv$ac_delim
+have_apr_iconv!$have_apr_iconv$ac_delim
+so_ext!$so_ext$ac_delim
+lib_target!$lib_target$ac_delim
+APRUTIL_LIBNAME!$APRUTIL_LIBNAME$ac_delim
+APRUTIL_EXPORT_LIBS!$APRUTIL_EXPORT_LIBS$ac_delim
+APRUTIL_PRIV_INCLUDES!$APRUTIL_PRIV_INCLUDES$ac_delim
+APRUTIL_INCLUDES!$APRUTIL_INCLUDES$ac_delim
+APRUTIL_LDFLAGS!$APRUTIL_LDFLAGS$ac_delim
+APRUTIL_LIBS!$APRUTIL_LIBS$ac_delim
+INCLUDE_RULES!$INCLUDE_RULES$ac_delim
+INCLUDE_OUTPUTS!$INCLUDE_OUTPUTS$ac_delim
+LIBOBJS!$LIBOBJS$ac_delim
+LTLIBOBJS!$LTLIBOBJS$ac_delim
+_ACEOF
+
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 25; then
+    break
+  elif $ac_last_try; then
+    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
+if test -n "$ac_eof"; then
+  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
+  ac_eof=`expr $ac_eof + 1`
+fi
+
+cat >>$CONFIG_STATUS <<_ACEOF
+cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
+_ACEOF
+sed '
+s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
+s/^/s,@/; s/!/@,|#_!!_#|/
+:n
+t n
+s/'"$ac_delim"'$/,g/; t
+s/$/\\/; p
+N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
+' >>$CONFIG_STATUS <conf$$subs.sed
+rm -f conf$$subs.sed
+cat >>$CONFIG_STATUS <<_ACEOF
+:end
+s/|#_!!_#|//g
+CEOF$ac_eof
+_ACEOF
+
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
+s/:*\$(srcdir):*/:/
+s/:*\${srcdir}:*/:/
+s/:*@srcdir@:*/:/
+s/^\([^=]*=[	 ]*\):*/\1/
+s/:*$//
+s/^[^=]*=[	 ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+fi # test -n "$CONFIG_FILES"
+
+
+for ac_tag in  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS
+do
+  case $ac_tag in
+  :[FHLC]) ac_mode=$ac_tag; continue;;
+  esac
+  case $ac_mode$ac_tag in
+  :[FHL]*:*);;
+  :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
+echo "$as_me: error: Invalid tag $ac_tag." >&2;}
+   { (exit 1); exit 1; }; };;
+  :[FH]-) ac_tag=-:-;;
+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+  esac
+  ac_save_IFS=$IFS
+  IFS=:
+  set x $ac_tag
+  IFS=$ac_save_IFS
+  shift
+  ac_file=$1
+  shift
+
+  case $ac_mode in
+  :L) ac_source=$1;;
+  :[FH])
+    ac_file_inputs=
+    for ac_f
+    do
+      case $ac_f in
+      -) ac_f="$tmp/stdin";;
+      *) # Look for the file first in the build tree, then in the source tree
+	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
+	 # because $ac_f cannot contain `:'.
+	 test -f "$ac_f" ||
+	   case $ac_f in
+	   [\\/$]*) false;;
+	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+	   esac ||
+	   { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
+echo "$as_me: error: cannot find input file: $ac_f" >&2;}
+   { (exit 1); exit 1; }; };;
+      esac
+      ac_file_inputs="$ac_file_inputs $ac_f"
+    done
+
+    # Let's still pretend it is `configure' which instantiates (i.e., don't
+    # use $as_me), people would be surprised to read:
+    #    /* config.h.  Generated by config.status.  */
+    configure_input="Generated from "`IFS=:
+	  echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
+    if test x"$ac_file" != x-; then
+      configure_input="$ac_file.  $configure_input"
+      { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+    fi
+
+    case $ac_tag in
+    *:-:* | *:-) cat >"$tmp/stdin";;
+    esac
+    ;;
+  esac
+
+  ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  { as_dir="$ac_dir"
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+echo "$as_me: error: cannot create directory $as_dir" >&2;}
+   { (exit 1); exit 1; }; }; }
+  ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+  case $ac_mode in
+  :F)
+  #
+  # CONFIG_FILE
+  #
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+  esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+
+case `sed -n '/datarootdir/ {
+  p
+  q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p
+' $ac_file_inputs` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+  { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+  ac_datarootdir_hack='
+  s&@datadir@&$datadir&g
+  s&@docdir@&$docdir&g
+  s&@infodir@&$infodir&g
+  s&@localedir@&$localedir&g
+  s&@mandir@&$mandir&g
+    s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF
+  sed "$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s&@configure_input@&$configure_input&;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+$ac_datarootdir_hack
+" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+  { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined." >&5
+echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined." >&2;}
+
+  rm -f "$tmp/stdin"
+  case $ac_file in
+  -) cat "$tmp/out"; rm -f "$tmp/out";;
+  *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;
+  esac
+ ;;
+  :H)
+  #
+  # CONFIG_HEADER
+  #
+_ACEOF
+
+# Transform confdefs.h into a sed script `conftest.defines', that
+# substitutes the proper values into config.h.in to produce config.h.
+rm -f conftest.defines conftest.tail
+# First, append a space to every undef/define line, to ease matching.
+echo 's/$/ /' >conftest.defines
+# Then, protect against being on the right side of a sed subst, or in
+# an unquoted here document, in config.status.  If some macros were
+# called several times there might be several #defines for the same
+# symbol, which is useless.  But do not sort them, since the last
+# AC_DEFINE must be honored.
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where
+# NAME is the cpp macro being defined, VALUE is the value it is being given.
+# PARAMS is the parameter list in the macro definition--in most cases, it's
+# just an empty string.
+ac_dA='s,^\\([	 #]*\\)[^	 ]*\\([	 ]*'
+ac_dB='\\)[	 (].*,\\1define\\2'
+ac_dC=' '
+ac_dD=' ,'
+
+uniq confdefs.h |
+  sed -n '
+	t rset
+	:rset
+	s/^[	 ]*#[	 ]*define[	 ][	 ]*//
+	t ok
+	d
+	:ok
+	s/[\\&,]/\\&/g
+	s/^\('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p
+	s/^\('"$ac_word_re"'\)[	 ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p
+  ' >>conftest.defines
+
+# Remove the space that was appended to ease matching.
+# Then replace #undef with comments.  This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+# (The regexp can be short, since the line contains either #define or #undef.)
+echo 's/ $//
+s,^[	 #]*u.*,/* & */,' >>conftest.defines
+
+# Break up conftest.defines:
+ac_max_sed_lines=50
+
+# First sed command is:	 sed -f defines.sed $ac_file_inputs >"$tmp/out1"
+# Second one is:	 sed -f defines.sed "$tmp/out1" >"$tmp/out2"
+# Third one will be:	 sed -f defines.sed "$tmp/out2" >"$tmp/out1"
+# et cetera.
+ac_in='$ac_file_inputs'
+ac_out='"$tmp/out1"'
+ac_nxt='"$tmp/out2"'
+
+while :
+do
+  # Write a here document:
+    cat >>$CONFIG_STATUS <<_ACEOF
+    # First, check the format of the line:
+    cat >"\$tmp/defines.sed" <<\\CEOF
+/^[	 ]*#[	 ]*undef[	 ][	 ]*$ac_word_re[	 ]*\$/b def
+/^[	 ]*#[	 ]*define[	 ][	 ]*$ac_word_re[(	 ]/b def
+b
+:def
+_ACEOF
+  sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS
+  echo 'CEOF
+    sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS
+  ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in
+  sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail
+  grep . conftest.tail >/dev/null || break
+  rm -f conftest.defines
+  mv conftest.tail conftest.defines
+done
+rm -f conftest.defines conftest.tail
+
+echo "ac_result=$ac_in" >>$CONFIG_STATUS
+cat >>$CONFIG_STATUS <<\_ACEOF
+  if test x"$ac_file" != x-; then
+    echo "/* $configure_input  */" >"$tmp/config.h"
+    cat "$ac_result" >>"$tmp/config.h"
+    if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then
+      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      rm -f $ac_file
+      mv "$tmp/config.h" $ac_file
+    fi
+  else
+    echo "/* $configure_input  */"
+    cat "$ac_result"
+  fi
+  rm -f "$tmp/out12"
+ ;;
+
+  :C)  { echo "$as_me:$LINENO: executing $ac_file commands" >&5
+echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+  esac
+
+
+  case $ac_file$ac_mode in
+    "default":C)
+chmod +x apu-$APRUTIL_MAJOR_VERSION-config
+ ;;
+
+  esac
+done # for ac_tag
+
+
+{ (exit 0); exit 0; }
+_ACEOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || { (exit 1); exit 1; }
+fi
+
diff --git a/configure.in b/configure.in
new file mode 100755
index 0000000..13d61bd
--- /dev/null
+++ b/configure.in
@@ -0,0 +1,222 @@
+dnl
+dnl Process this file with autoconf to produce a configure script
+dnl
+
+AC_PREREQ(2.50)
+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)
+sinclude(build/dbd.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
+
+AC_PROG_INSTALL
+
+# Use -no-install to link the test programs on all platforms
+# but Darwin, where it would cause the programs to be linked
+# against installed versions of libapr instead of those just
+# built.
+case $host in
+*-apple-darwin*) LT_NO_INSTALL="" ;;
+*) LT_NO_INSTALL="-no-install" ;;
+esac
+AC_SUBST(LT_NO_INSTALL)
+
+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
+dnl  Find the APR-ICONV directory.
+dnl
+if test -d ../apr-iconv; then
+  APR_SUBDIR_CONFIG(../apr-iconv,
+                    [$apache_apr_flags --prefix=$prefix --exec-prefix=$exec_prefix --libdir=$libdir --includedir=$includedir --bindir=$bindir --datadir=$datadir --with-installbuilddir=$installbuilddir],
+                    [--enable-layout=*|\'--enable-layout=*])
+  APRUTIL_EXPORT_LIBS="$abs_srcdir/../apr-iconv/lib/libapriconv.la $APRUTIL_EXPORT_LIBS"
+  APRUTIL_INCLUDES="-I$abs_srcdir/../apr-iconv/include $APRUTIL_INCLUDES"
+  APR_ICONV_DIR=../apr-iconv
+else
+  APR_ICONV_DIR=""
+fi
+AC_SUBST(APR_ICONV_DIR)
+
+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_CHECK_DBD
+APU_CHECK_DBD_MYSQL
+APU_CHECK_DBD_SQLITE3
+APU_CHECK_DBD_SQLITE2
+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)
+
+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)
+
+for d in include include/private; do
+    test -d $top_builddir/$d || mkdir $top_builddir/$d
+done
+
+AC_CONFIG_FILES([Makefile export_vars.sh
+                 build/pkg/pkginfo apr-util.pc
+                 apu-$APRUTIL_MAJOR_VERSION-config:apu-config.in
+                 include/private/apu_select_dbm.h
+                 include/apr_ldap.h
+                 include/apu.h include/apu_want.h])
+
+AC_CONFIG_COMMANDS([default], [
+chmod +x apu-$APRUTIL_MAJOR_VERSION-config
+],[
+APRUTIL_MAJOR_VERSION=$APRUTIL_MAJOR_VERSION
+])
+
+if test -d $srcdir/test; then
+    AC_CONFIG_FILES([test/Makefile])
+fi
+
+AC_OUTPUT
diff --git a/crypto/apr_md4.c b/crypto/apr_md4.c
new file mode 100644
index 0000000..ada5140
--- /dev/null
+++ b/crypto/apr_md4.c
@@ -0,0 +1,404 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * This is derived from material copyright RSA Data Security, Inc.
+ * Their notice is reproduced below in its entirety.
+ *
+ * Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
+ * rights reserved.
+ *
+ * License to copy and use this software is granted provided that it
+ * is identified as the "RSA Data Security, Inc. MD4 Message-Digest
+ * Algorithm" in all material mentioning or referencing this software
+ * or this function.
+ *
+ * License is also granted to make and use derivative works provided
+ * that such works are identified as "derived from the RSA Data
+ * Security, Inc. MD4 Message-Digest Algorithm" in all material
+ * mentioning or referencing the derived work.
+ *
+ * RSA Data Security, Inc. makes no representations concerning either
+ * the merchantability of this software or the suitability of this
+ * software for any particular purpose. It is provided "as is"
+ * without express or implied warranty of any kind.
+ *
+ * These notices must be retained in any copies of any part of this
+ * documentation and/or software.
+ */
+
+#include "apr_strings.h"
+#include "apr_md4.h"
+#include "apr_lib.h"
+
+#if APR_HAVE_STRING_H
+#include <string.h>
+#endif
+#if APR_HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+/* Constants for MD4Transform routine.
+ */
+ 
+#define S11 3
+#define S12 7
+#define S13 11
+#define S14 19
+#define S21 3
+#define S22 5
+#define S23 9
+#define S24 13
+#define S31 3
+#define S32 9
+#define S33 11
+#define S34 15
+ 
+static void MD4Transform(apr_uint32_t state[4], const unsigned char block[64]);
+static void Encode(unsigned char *output, const apr_uint32_t *input,
+                   unsigned int len);
+static void Decode(apr_uint32_t *output, const unsigned char *input,
+                   unsigned int len);
+
+static unsigned char PADDING[64] =
+{
+    0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+#if APR_CHARSET_EBCDIC
+static apr_xlate_t *xlate_ebcdic_to_ascii; /* used in apr_md4_encode() */
+#endif
+
+/* F, G and I are basic MD4 functions.
+ */
+#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
+#define G(x, y, z) (((x) & (y)) | ((x) & (z)) | ((y) & (z)))
+#define H(x, y, z) ((x) ^ (y) ^ (z))
+
+/* ROTATE_LEFT rotates x left n bits.
+ */
+#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))
+
+/* FF, GG and HH are transformations for rounds 1, 2 and 3 */
+/* Rotation is separate from addition to prevent recomputation */
+
+#define FF(a, b, c, d, x, s) { \
+  (a) += F ((b), (c), (d)) + (x); \
+  (a) = ROTATE_LEFT ((a), (s)); \
+  }
+#define GG(a, b, c, d, x, s) { \
+  (a) += G ((b), (c), (d)) + (x) + (apr_uint32_t)0x5a827999; \
+  (a) = ROTATE_LEFT ((a), (s)); \
+  }
+#define HH(a, b, c, d, x, s) { \
+  (a) += H ((b), (c), (d)) + (x) + (apr_uint32_t)0x6ed9eba1; \
+  (a) = ROTATE_LEFT ((a), (s)); \
+  }
+
+/* MD4 initialization. Begins an MD4 operation, writing a new context.
+ */
+APU_DECLARE(apr_status_t) apr_md4_init(apr_md4_ctx_t *context)
+{
+    context->count[0] = context->count[1] = 0;
+
+    /* Load magic initialization constants. */
+    context->state[0] = 0x67452301;
+    context->state[1] = 0xefcdab89;
+    context->state[2] = 0x98badcfe;
+    context->state[3] = 0x10325476;
+    
+#if APR_HAS_XLATE
+    context->xlate = NULL;
+#endif
+
+    return APR_SUCCESS;
+}
+
+#if APR_HAS_XLATE
+/* MD4 translation setup.  Provides the APR translation handle
+ * to be used for translating the content before calculating the
+ * digest.
+ */
+APU_DECLARE(apr_status_t) apr_md4_set_xlate(apr_md4_ctx_t *context, 
+                                            apr_xlate_t *xlate)
+{
+    apr_status_t rv;
+    int is_sb;
+
+    /* TODO: remove the single-byte-only restriction from this code
+     */
+    rv = apr_xlate_sb_get(xlate, &is_sb);
+    if (rv != APR_SUCCESS) {
+        return rv;
+    }
+    if (!is_sb) {
+        return APR_EINVAL;
+    }
+    context->xlate = xlate;
+    return APR_SUCCESS;
+}
+#endif /* APR_HAS_XLATE */
+
+/* MD4 block update operation. Continues an MD4 message-digest
+ * operation, processing another message block, and updating the
+ * context.
+ */
+APU_DECLARE(apr_status_t) apr_md4_update(apr_md4_ctx_t *context,
+                                         const unsigned char *input,
+                                         apr_size_t inputLen)
+{
+    unsigned int i, idx, partLen;
+#if APR_HAS_XLATE
+    apr_size_t inbytes_left, outbytes_left;
+#endif
+
+    /* Compute number of bytes mod 64 */
+    idx = (unsigned int)((context->count[0] >> 3) & 0x3F);
+
+    /* Update number of bits */
+    if ((context->count[0] += ((apr_uint32_t)inputLen << 3)) 
+            < ((apr_uint32_t)inputLen << 3))
+        context->count[1]++;
+    context->count[1] += (apr_uint32_t)inputLen >> 29;
+
+    partLen = 64 - idx;
+
+    /* Transform as many times as possible. */
+#if !APR_HAS_XLATE
+    if (inputLen >= partLen) {
+        memcpy(&context->buffer[idx], input, partLen);
+        MD4Transform(context->state, context->buffer);
+
+        for (i = partLen; i + 63 < inputLen; i += 64)
+            MD4Transform(context->state, &input[i]);
+
+        idx = 0;
+    }
+    else
+        i = 0;
+
+    /* Buffer remaining input */
+    memcpy(&context->buffer[idx], &input[i], inputLen - i);
+#else /*APR_HAS_XLATE*/
+    if (inputLen >= partLen) {
+        if (context->xlate) {
+            inbytes_left = outbytes_left = partLen;
+            apr_xlate_conv_buffer(context->xlate, (const char *)input, 
+                                  &inbytes_left, 
+                                  (char *)&context->buffer[idx], 
+                                  &outbytes_left);
+        }
+        else {
+            memcpy(&context->buffer[idx], input, partLen);
+        }
+        MD4Transform(context->state, context->buffer);
+
+        for (i = partLen; i + 63 < inputLen; i += 64) {
+            if (context->xlate) {
+                unsigned char inp_tmp[64];
+                inbytes_left = outbytes_left = 64;
+                apr_xlate_conv_buffer(context->xlate, (const char *)&input[i], 
+                                      &inbytes_left,
+                                      (char *)inp_tmp, &outbytes_left);
+                MD4Transform(context->state, inp_tmp);
+            }
+            else {
+                MD4Transform(context->state, &input[i]);
+            }
+        }
+
+        idx = 0;
+    }
+    else
+        i = 0;
+
+    /* Buffer remaining input */
+    if (context->xlate) {
+        inbytes_left = outbytes_left = inputLen - i;
+        apr_xlate_conv_buffer(context->xlate, (const char *)&input[i], 
+                              &inbytes_left, (char *)&context->buffer[idx], 
+                              &outbytes_left);
+    }
+    else {
+        memcpy(&context->buffer[idx], &input[i], inputLen - i);
+    }
+#endif /*APR_HAS_XLATE*/
+    return APR_SUCCESS;
+}
+
+/* MD4 finalization. Ends an MD4 message-digest operation, writing the
+ * the message digest and zeroizing the context.
+ */
+APU_DECLARE(apr_status_t) apr_md4_final(
+                                    unsigned char digest[APR_MD4_DIGESTSIZE],
+                                    apr_md4_ctx_t *context)
+{
+    unsigned char bits[8];
+    unsigned int idx, padLen;
+
+    /* Save number of bits */
+    Encode(bits, context->count, 8);
+
+#if APR_HAS_XLATE
+    /* apr_md4_update() should not translate for this final round. */
+    context->xlate = NULL;
+#endif /*APR_HAS_XLATE*/
+
+    /* Pad out to 56 mod 64. */
+    idx = (unsigned int) ((context->count[0] >> 3) & 0x3f);
+    padLen = (idx < 56) ? (56 - idx) : (120 - idx);
+    apr_md4_update(context, PADDING, padLen);
+
+    /* Append length (before padding) */
+    apr_md4_update(context, bits, 8);
+
+    /* Store state in digest */
+    Encode(digest, context->state, APR_MD4_DIGESTSIZE);
+
+    /* Zeroize sensitive information. */
+    memset(context, 0, sizeof(*context));
+    
+    return APR_SUCCESS;
+}
+
+/* MD4 computation in one step (init, update, final)
+ */
+APU_DECLARE(apr_status_t) apr_md4(unsigned char digest[APR_MD4_DIGESTSIZE],
+                                  const unsigned char *input,
+                                  apr_size_t inputLen)
+{
+    apr_md4_ctx_t ctx;
+    apr_status_t rv;
+
+    apr_md4_init(&ctx);
+
+    if ((rv = apr_md4_update(&ctx, input, inputLen)) != APR_SUCCESS)
+        return rv;
+
+    return apr_md4_final(digest, &ctx);
+}
+
+/* MD4 basic transformation. Transforms state based on block. */
+static void MD4Transform(apr_uint32_t state[4], const unsigned char block[64])
+{
+    apr_uint32_t a = state[0], b = state[1], c = state[2], d = state[3],
+                 x[APR_MD4_DIGESTSIZE];
+
+    Decode(x, block, 64);
+
+    /* Round 1 */
+    FF (a, b, c, d, x[ 0], S11); /* 1 */
+    FF (d, a, b, c, x[ 1], S12); /* 2 */
+    FF (c, d, a, b, x[ 2], S13); /* 3 */
+    FF (b, c, d, a, x[ 3], S14); /* 4 */
+    FF (a, b, c, d, x[ 4], S11); /* 5 */
+    FF (d, a, b, c, x[ 5], S12); /* 6 */
+    FF (c, d, a, b, x[ 6], S13); /* 7 */
+    FF (b, c, d, a, x[ 7], S14); /* 8 */
+    FF (a, b, c, d, x[ 8], S11); /* 9 */
+    FF (d, a, b, c, x[ 9], S12); /* 10 */
+    FF (c, d, a, b, x[10], S13); /* 11 */
+    FF (b, c, d, a, x[11], S14); /* 12 */
+    FF (a, b, c, d, x[12], S11); /* 13 */
+    FF (d, a, b, c, x[13], S12); /* 14 */
+    FF (c, d, a, b, x[14], S13); /* 15 */
+    FF (b, c, d, a, x[15], S14); /* 16 */
+
+    /* Round 2 */
+    GG (a, b, c, d, x[ 0], S21); /* 17 */
+    GG (d, a, b, c, x[ 4], S22); /* 18 */
+    GG (c, d, a, b, x[ 8], S23); /* 19 */
+    GG (b, c, d, a, x[12], S24); /* 20 */
+    GG (a, b, c, d, x[ 1], S21); /* 21 */
+    GG (d, a, b, c, x[ 5], S22); /* 22 */
+    GG (c, d, a, b, x[ 9], S23); /* 23 */
+    GG (b, c, d, a, x[13], S24); /* 24 */
+    GG (a, b, c, d, x[ 2], S21); /* 25 */
+    GG (d, a, b, c, x[ 6], S22); /* 26 */
+    GG (c, d, a, b, x[10], S23); /* 27 */
+    GG (b, c, d, a, x[14], S24); /* 28 */
+    GG (a, b, c, d, x[ 3], S21); /* 29 */
+    GG (d, a, b, c, x[ 7], S22); /* 30 */
+    GG (c, d, a, b, x[11], S23); /* 31 */
+    GG (b, c, d, a, x[15], S24); /* 32 */
+
+    /* Round 3 */
+    HH (a, b, c, d, x[ 0], S31); /* 33 */
+    HH (d, a, b, c, x[ 8], S32); /* 34 */
+    HH (c, d, a, b, x[ 4], S33); /* 35 */
+    HH (b, c, d, a, x[12], S34); /* 36 */
+    HH (a, b, c, d, x[ 2], S31); /* 37 */
+    HH (d, a, b, c, x[10], S32); /* 38 */
+    HH (c, d, a, b, x[ 6], S33); /* 39 */
+    HH (b, c, d, a, x[14], S34); /* 40 */
+    HH (a, b, c, d, x[ 1], S31); /* 41 */
+    HH (d, a, b, c, x[ 9], S32); /* 42 */
+    HH (c, d, a, b, x[ 5], S33); /* 43 */
+    HH (b, c, d, a, x[13], S34); /* 44 */
+    HH (a, b, c, d, x[ 3], S31); /* 45 */
+    HH (d, a, b, c, x[11], S32); /* 46 */
+    HH (c, d, a, b, x[ 7], S33); /* 47 */
+    HH (b, c, d, a, x[15], S34); /* 48 */
+
+    state[0] += a;
+    state[1] += b;
+    state[2] += c;
+    state[3] += d;
+    
+    /* Zeroize sensitive information. */
+    memset(x, 0, sizeof(x));
+}
+
+/* Encodes input (apr_uint32_t) into output (unsigned char). Assumes len is
+ * a multiple of 4.
+ */
+static void Encode(unsigned char *output, const apr_uint32_t *input,
+                   unsigned int len)
+{
+    unsigned int i, j;
+    apr_uint32_t k;
+
+    for (i = 0, j = 0; j < len; i++, j += 4) {
+        k = input[i];
+        output[j]     = (unsigned char)(k & 0xff);
+        output[j + 1] = (unsigned char)((k >> 8)  & 0xff);
+        output[j + 2] = (unsigned char)((k >> 16) & 0xff);
+        output[j + 3] = (unsigned char)((k >> 24) & 0xff);
+    }
+}
+
+/* Decodes input (unsigned char) into output (apr_uint32_t). Assumes len is
+ * a multiple of 4.
+ */
+static void Decode(apr_uint32_t *output, const unsigned char *input,
+                   unsigned int len)
+{
+    unsigned int i, j;
+
+    for (i = 0, j = 0; j < len; i++, j += 4)
+        output[i] = ((apr_uint32_t)input[j])             |
+                    (((apr_uint32_t)input[j + 1]) << 8)  |
+                    (((apr_uint32_t)input[j + 2]) << 16) |
+                    (((apr_uint32_t)input[j + 3]) << 24);
+}
+
+#if APR_CHARSET_EBCDIC
+APU_DECLARE(apr_status_t) apr_MD4InitEBCDIC(apr_xlate_t *xlate)
+{
+    xlate_ebcdic_to_ascii = xlate;
+    return APR_SUCCESS;
+}
+#endif
diff --git a/crypto/apr_md5.c b/crypto/apr_md5.c
new file mode 100644
index 0000000..313896f
--- /dev/null
+++ b/crypto/apr_md5.c
@@ -0,0 +1,733 @@
+/*
+ * This is work is derived from material Copyright RSA Data Security, Inc.
+ *
+ * The RSA copyright statement and Licence for that original material is
+ * included below. This is followed by the Apache copyright statement and
+ * licence for the modifications made to that material.
+ */
+
+/* MD5C.C - RSA Data Security, Inc., MD5 message-digest algorithm
+ */
+
+/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
+   rights reserved.
+
+   License to copy and use this software is granted provided that it
+   is identified as the "RSA Data Security, Inc. MD5 Message-Digest
+   Algorithm" in all material mentioning or referencing this software
+   or this function.
+
+   License is also granted to make and use derivative works provided
+   that such works are identified as "derived from the RSA Data
+   Security, Inc. MD5 Message-Digest Algorithm" in all material
+   mentioning or referencing the derived work.
+
+   RSA Data Security, Inc. makes no representations concerning either
+   the merchantability of this software or the suitability of this
+   software for any particular purpose. It is provided "as is"
+   without express or implied warranty of any kind.
+
+   These notices must be retained in any copies of any part of this
+   documentation and/or software.
+ */
+
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * The apr_md5_encode() routine uses much code obtained from the FreeBSD 3.0
+ * MD5 crypt() function, which is licenced as follows:
+ * ----------------------------------------------------------------------------
+ * "THE BEER-WARE LICENSE" (Revision 42):
+ * <phk@login.dknet.dk> wrote this file.  As long as you retain this notice you
+ * can do whatever you want with this stuff. If we meet some day, and you think
+ * this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
+ * ----------------------------------------------------------------------------
+ */
+#include "apr_strings.h"
+#include "apr_md5.h"
+#include "apr_lib.h"
+#include "apu_config.h"
+#include "apr_sha1.h"
+
+#if APR_HAVE_STRING_H
+#include <string.h>
+#endif
+#if APR_HAVE_CRYPT_H
+#include <crypt.h>
+#endif
+#if APR_HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#if APR_HAVE_PTHREAD_H
+#include <pthread.h>
+#endif
+
+/* Constants for MD5Transform routine.
+ */
+
+#define S11 7
+#define S12 12
+#define S13 17
+#define S14 22
+#define S21 5
+#define S22 9
+#define S23 14
+#define S24 20
+#define S31 4
+#define S32 11
+#define S33 16
+#define S34 23
+#define S41 6
+#define S42 10
+#define S43 15
+#define S44 21
+
+static void MD5Transform(apr_uint32_t state[4], const unsigned char block[64]);
+static void Encode(unsigned char *output, const apr_uint32_t *input,
+                   unsigned int len);
+static void Decode(apr_uint32_t *output, const unsigned char *input,
+                   unsigned int len);
+
+static unsigned char PADDING[64] =
+{
+    0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+
+#if APR_CHARSET_EBCDIC
+static apr_xlate_t *xlate_ebcdic_to_ascii; /* used in apr_md5_encode() */
+#endif
+
+/* F, G, H and I are basic MD5 functions.
+ */
+#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
+#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
+#define H(x, y, z) ((x) ^ (y) ^ (z))
+#define I(x, y, z) ((y) ^ ((x) | (~z)))
+
+/* ROTATE_LEFT rotates x left n bits.
+ */
+#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))
+
+/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
+ * Rotation is separate from addition to prevent recomputation.
+ */
+#define FF(a, b, c, d, x, s, ac) { \
+ (a) += F ((b), (c), (d)) + (x) + (apr_uint32_t)(ac); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+  }
+#define GG(a, b, c, d, x, s, ac) { \
+ (a) += G ((b), (c), (d)) + (x) + (apr_uint32_t)(ac); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+  }
+#define HH(a, b, c, d, x, s, ac) { \
+ (a) += H ((b), (c), (d)) + (x) + (apr_uint32_t)(ac); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+  }
+#define II(a, b, c, d, x, s, ac) { \
+ (a) += I ((b), (c), (d)) + (x) + (apr_uint32_t)(ac); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+  }
+
+/* MD5 initialization. Begins an MD5 operation, writing a new context.
+ */
+APU_DECLARE(apr_status_t) apr_md5_init(apr_md5_ctx_t *context)
+{
+    context->count[0] = context->count[1] = 0;
+    
+    /* Load magic initialization constants. */
+    context->state[0] = 0x67452301;
+    context->state[1] = 0xefcdab89;
+    context->state[2] = 0x98badcfe;
+    context->state[3] = 0x10325476;
+    context->xlate = NULL;
+    
+    return APR_SUCCESS;
+}
+
+/* MD5 translation setup.  Provides the APR translation handle
+ * to be used for translating the content before calculating the
+ * digest.
+ */
+APU_DECLARE(apr_status_t) apr_md5_set_xlate(apr_md5_ctx_t *context, 
+                                            apr_xlate_t *xlate)
+{
+#if APR_HAS_XLATE
+    apr_status_t rv;
+    int is_sb;
+
+    /* TODO: remove the single-byte-only restriction from this code
+     */
+    rv = apr_xlate_sb_get(xlate, &is_sb);
+    if (rv != APR_SUCCESS) {
+        return rv;
+    }
+    if (!is_sb) {
+        return APR_EINVAL;
+    }
+    context->xlate = xlate;
+    return APR_SUCCESS;
+#else
+    return APR_ENOTIMPL;
+#endif /* APR_HAS_XLATE */
+}
+
+/* MD5 block update operation. Continues an MD5 message-digest
+ * operation, processing another message block, and updating the
+ * context.
+ */
+APU_DECLARE(apr_status_t) apr_md5_update(apr_md5_ctx_t *context,
+                                         const void *_input,
+                                         apr_size_t inputLen)
+{
+    const unsigned char *input = _input;
+    unsigned int i, idx, partLen;
+#if APR_HAS_XLATE
+    apr_size_t inbytes_left, outbytes_left;
+#endif
+
+    /* Compute number of bytes mod 64 */
+    idx = (unsigned int)((context->count[0] >> 3) & 0x3F);
+
+    /* Update number of bits */
+    if ((context->count[0] += ((apr_uint32_t)inputLen << 3)) 
+            < ((apr_uint32_t)inputLen << 3))
+        context->count[1]++;
+    context->count[1] += (apr_uint32_t)inputLen >> 29;
+
+    partLen = 64 - idx;
+
+    /* Transform as many times as possible. */
+#if !APR_HAS_XLATE
+    if (inputLen >= partLen) {
+        memcpy(&context->buffer[idx], input, partLen);
+        MD5Transform(context->state, context->buffer);
+
+        for (i = partLen; i + 63 < inputLen; i += 64)
+            MD5Transform(context->state, &input[i]);
+
+        idx = 0;
+    }
+    else
+        i = 0;
+
+    /* Buffer remaining input */
+    memcpy(&context->buffer[idx], &input[i], inputLen - i);
+#else /*APR_HAS_XLATE*/
+    if (inputLen >= partLen) {
+        if (context->xlate) {
+            inbytes_left = outbytes_left = partLen;
+            apr_xlate_conv_buffer(context->xlate, (const char *)input, 
+                                  &inbytes_left,
+                                  (char *)&context->buffer[idx], 
+                                  &outbytes_left);
+        }
+        else {
+            memcpy(&context->buffer[idx], input, partLen);
+        }
+        MD5Transform(context->state, context->buffer);
+
+        for (i = partLen; i + 63 < inputLen; i += 64) {
+            if (context->xlate) {
+                unsigned char inp_tmp[64];
+                inbytes_left = outbytes_left = 64;
+                apr_xlate_conv_buffer(context->xlate, (const char *)&input[i], 
+                                      &inbytes_left, (char *)inp_tmp, 
+                                      &outbytes_left);
+                MD5Transform(context->state, inp_tmp);
+            }
+            else {
+                MD5Transform(context->state, &input[i]);
+            }
+        }
+
+        idx = 0;
+    }
+    else
+        i = 0;
+
+    /* Buffer remaining input */
+    if (context->xlate) {
+        inbytes_left = outbytes_left = inputLen - i;
+        apr_xlate_conv_buffer(context->xlate, (const char *)&input[i], 
+                              &inbytes_left, (char *)&context->buffer[idx], 
+                              &outbytes_left);
+    }
+    else {
+        memcpy(&context->buffer[idx], &input[i], inputLen - i);
+    }
+#endif /*APR_HAS_XLATE*/
+    return APR_SUCCESS;
+}
+
+/* MD5 finalization. Ends an MD5 message-digest operation, writing the
+ * the message digest and zeroizing the context.
+ */
+APU_DECLARE(apr_status_t) apr_md5_final(unsigned char digest[APR_MD5_DIGESTSIZE],
+                                        apr_md5_ctx_t *context)
+{
+    unsigned char bits[8];
+    unsigned int idx, padLen;
+
+    /* Save number of bits */
+    Encode(bits, context->count, 8);
+
+#if APR_HAS_XLATE
+    /* apr_md5_update() should not translate for this final round. */
+    context->xlate = NULL;
+#endif /*APR_HAS_XLATE*/
+
+    /* Pad out to 56 mod 64. */
+    idx = (unsigned int)((context->count[0] >> 3) & 0x3f);
+    padLen = (idx < 56) ? (56 - idx) : (120 - idx);
+    apr_md5_update(context, PADDING, padLen);
+
+    /* Append length (before padding) */
+    apr_md5_update(context, bits, 8);
+
+    /* Store state in digest */
+    Encode(digest, context->state, APR_MD5_DIGESTSIZE);
+
+    /* Zeroize sensitive information. */
+    memset(context, 0, sizeof(*context));
+    
+    return APR_SUCCESS;
+}
+
+/* MD5 in one step (init, update, final)
+ */
+APU_DECLARE(apr_status_t) apr_md5(unsigned char digest[APR_MD5_DIGESTSIZE],
+                                  const void *_input,
+                                  apr_size_t inputLen)
+{
+    const unsigned char *input = _input;
+    apr_md5_ctx_t ctx;
+    apr_status_t rv;
+
+    apr_md5_init(&ctx);
+
+    if ((rv = apr_md5_update(&ctx, input, inputLen)) != APR_SUCCESS)
+        return rv;
+
+    return apr_md5_final(digest, &ctx);
+}
+
+/* MD5 basic transformation. Transforms state based on block. */
+static void MD5Transform(apr_uint32_t state[4], const unsigned char block[64])
+{
+    apr_uint32_t a = state[0], b = state[1], c = state[2], d = state[3],
+                 x[APR_MD5_DIGESTSIZE];
+
+    Decode(x, block, 64);
+
+    /* Round 1 */
+    FF(a, b, c, d, x[0],  S11, 0xd76aa478); /* 1 */
+    FF(d, a, b, c, x[1],  S12, 0xe8c7b756); /* 2 */
+    FF(c, d, a, b, x[2],  S13, 0x242070db); /* 3 */
+    FF(b, c, d, a, x[3],  S14, 0xc1bdceee); /* 4 */
+    FF(a, b, c, d, x[4],  S11, 0xf57c0faf); /* 5 */
+    FF(d, a, b, c, x[5],  S12, 0x4787c62a); /* 6 */
+    FF(c, d, a, b, x[6],  S13, 0xa8304613); /* 7 */
+    FF(b, c, d, a, x[7],  S14, 0xfd469501); /* 8 */
+    FF(a, b, c, d, x[8],  S11, 0x698098d8); /* 9 */
+    FF(d, a, b, c, x[9],  S12, 0x8b44f7af); /* 10 */
+    FF(c, d, a, b, x[10], S13, 0xffff5bb1); /* 11 */
+    FF(b, c, d, a, x[11], S14, 0x895cd7be); /* 12 */
+    FF(a, b, c, d, x[12], S11, 0x6b901122); /* 13 */
+    FF(d, a, b, c, x[13], S12, 0xfd987193); /* 14 */
+    FF(c, d, a, b, x[14], S13, 0xa679438e); /* 15 */
+    FF(b, c, d, a, x[15], S14, 0x49b40821); /* 16 */
+
+    /* Round 2 */
+    GG(a, b, c, d, x[1],  S21, 0xf61e2562); /* 17 */
+    GG(d, a, b, c, x[6],  S22, 0xc040b340); /* 18 */
+    GG(c, d, a, b, x[11], S23, 0x265e5a51); /* 19 */
+    GG(b, c, d, a, x[0],  S24, 0xe9b6c7aa); /* 20 */
+    GG(a, b, c, d, x[5],  S21, 0xd62f105d); /* 21 */
+    GG(d, a, b, c, x[10], S22, 0x2441453);  /* 22 */
+    GG(c, d, a, b, x[15], S23, 0xd8a1e681); /* 23 */
+    GG(b, c, d, a, x[4],  S24, 0xe7d3fbc8); /* 24 */
+    GG(a, b, c, d, x[9],  S21, 0x21e1cde6); /* 25 */
+    GG(d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
+    GG(c, d, a, b, x[3],  S23, 0xf4d50d87); /* 27 */
+    GG(b, c, d, a, x[8],  S24, 0x455a14ed); /* 28 */
+    GG(a, b, c, d, x[13], S21, 0xa9e3e905); /* 29 */
+    GG(d, a, b, c, x[2],  S22, 0xfcefa3f8); /* 30 */
+    GG(c, d, a, b, x[7],  S23, 0x676f02d9); /* 31 */
+    GG(b, c, d, a, x[12], S24, 0x8d2a4c8a); /* 32 */
+
+    /* Round 3 */
+    HH(a, b, c, d, x[5],  S31, 0xfffa3942); /* 33 */
+    HH(d, a, b, c, x[8],  S32, 0x8771f681); /* 34 */
+    HH(c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
+    HH(b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
+    HH(a, b, c, d, x[1],  S31, 0xa4beea44); /* 37 */
+    HH(d, a, b, c, x[4],  S32, 0x4bdecfa9); /* 38 */
+    HH(c, d, a, b, x[7],  S33, 0xf6bb4b60); /* 39 */
+    HH(b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
+    HH(a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
+    HH(d, a, b, c, x[0],  S32, 0xeaa127fa); /* 42 */
+    HH(c, d, a, b, x[3],  S33, 0xd4ef3085); /* 43 */
+    HH(b, c, d, a, x[6],  S34, 0x4881d05);  /* 44 */
+    HH(a, b, c, d, x[9],  S31, 0xd9d4d039); /* 45 */
+    HH(d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
+    HH(c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
+    HH(b, c, d, a, x[2],  S34, 0xc4ac5665); /* 48 */
+
+    /* Round 4 */
+    II(a, b, c, d, x[0],  S41, 0xf4292244); /* 49 */
+    II(d, a, b, c, x[7],  S42, 0x432aff97); /* 50 */
+    II(c, d, a, b, x[14], S43, 0xab9423a7); /* 51 */
+    II(b, c, d, a, x[5],  S44, 0xfc93a039); /* 52 */
+    II(a, b, c, d, x[12], S41, 0x655b59c3); /* 53 */
+    II(d, a, b, c, x[3],  S42, 0x8f0ccc92); /* 54 */
+    II(c, d, a, b, x[10], S43, 0xffeff47d); /* 55 */
+    II(b, c, d, a, x[1],  S44, 0x85845dd1); /* 56 */
+    II(a, b, c, d, x[8],  S41, 0x6fa87e4f); /* 57 */
+    II(d, a, b, c, x[15], S42, 0xfe2ce6e0); /* 58 */
+    II(c, d, a, b, x[6],  S43, 0xa3014314); /* 59 */
+    II(b, c, d, a, x[13], S44, 0x4e0811a1); /* 60 */
+    II(a, b, c, d, x[4],  S41, 0xf7537e82); /* 61 */
+    II(d, a, b, c, x[11], S42, 0xbd3af235); /* 62 */
+    II(c, d, a, b, x[2],  S43, 0x2ad7d2bb); /* 63 */
+    II(b, c, d, a, x[9],  S44, 0xeb86d391); /* 64 */
+
+    state[0] += a;
+    state[1] += b;
+    state[2] += c;
+    state[3] += d;
+
+    /* Zeroize sensitive information. */
+    memset(x, 0, sizeof(x));
+}
+
+/* Encodes input (apr_uint32_t) into output (unsigned char). Assumes len is
+ * a multiple of 4.
+ */
+static void Encode(unsigned char *output, const apr_uint32_t *input,
+                   unsigned int len)
+{
+    unsigned int i, j;
+    apr_uint32_t k;
+
+    for (i = 0, j = 0; j < len; i++, j += 4) {
+        k = input[i];
+        output[j]     = (unsigned char)(k & 0xff);
+        output[j + 1] = (unsigned char)((k >> 8) & 0xff);
+        output[j + 2] = (unsigned char)((k >> 16) & 0xff);
+        output[j + 3] = (unsigned char)((k >> 24) & 0xff);
+    }
+}
+
+/* Decodes input (unsigned char) into output (apr_uint32_t). Assumes len is
+ * a multiple of 4.
+ */
+static void Decode(apr_uint32_t *output, const unsigned char *input,
+                   unsigned int len)
+{
+    unsigned int i, j;
+
+    for (i = 0, j = 0; j < len; i++, j += 4)
+        output[i] = ((apr_uint32_t)input[j])             |
+                    (((apr_uint32_t)input[j + 1]) << 8)  |
+                    (((apr_uint32_t)input[j + 2]) << 16) |
+                    (((apr_uint32_t)input[j + 3]) << 24);
+}
+
+#if APR_CHARSET_EBCDIC
+APU_DECLARE(apr_status_t) apr_MD5InitEBCDIC(apr_xlate_t *xlate)
+{
+    xlate_ebcdic_to_ascii = xlate;
+    return APR_SUCCESS;
+}
+#endif
+
+/*
+ * Define the Magic String prefix that identifies a password as being
+ * hashed using our algorithm.
+ */
+static const char *apr1_id = "$apr1$";
+
+/*
+ * The following MD5 password encryption code was largely borrowed from
+ * the FreeBSD 3.0 /usr/src/lib/libcrypt/crypt.c file, which is
+ * licenced as stated at the top of this file.
+ */
+
+static void to64(char *s, unsigned long v, int n)
+{
+    static unsigned char itoa64[] =         /* 0 ... 63 => ASCII - 64 */
+        "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+
+    while (--n >= 0) {
+        *s++ = itoa64[v&0x3f];
+        v >>= 6;
+    }
+}
+
+APU_DECLARE(apr_status_t) apr_md5_encode(const char *pw, const char *salt,
+                             char *result, apr_size_t nbytes)
+{
+    /*
+     * Minimum size is 8 bytes for salt, plus 1 for the trailing NUL,
+     * plus 4 for the '$' separators, plus the password hash itself.
+     * Let's leave a goodly amount of leeway.
+     */
+
+    char passwd[120], *p;
+    const char *sp, *ep;
+    unsigned char final[APR_MD5_DIGESTSIZE];
+    apr_ssize_t sl, pl, i;
+    apr_md5_ctx_t ctx, ctx1;
+    unsigned long l;
+
+    /* 
+     * Refine the salt first.  It's possible we were given an already-hashed
+     * string as the salt argument, so extract the actual salt value from it
+     * if so.  Otherwise just use the string up to the first '$' as the salt.
+     */
+    sp = salt;
+
+    /*
+     * If it starts with the magic string, then skip that.
+     */
+    if (!strncmp(sp, apr1_id, strlen(apr1_id))) {
+        sp += strlen(apr1_id);
+    }
+
+    /*
+     * It stops at the first '$' or 8 chars, whichever comes first
+     */
+    for (ep = sp; (*ep != '\0') && (*ep != '$') && (ep < (sp + 8)); ep++) {
+        continue;
+    }
+
+    /*
+     * Get the length of the true salt
+     */
+    sl = ep - sp;
+
+    /*
+     * 'Time to make the doughnuts..'
+     */
+    apr_md5_init(&ctx);
+#if APR_CHARSET_EBCDIC
+    apr_md5_set_xlate(&ctx, xlate_ebcdic_to_ascii);
+#endif
+    
+    /*
+     * The password first, since that is what is most unknown
+     */
+    apr_md5_update(&ctx, pw, strlen(pw));
+
+    /*
+     * Then our magic string
+     */
+    apr_md5_update(&ctx, apr1_id, strlen(apr1_id));
+
+    /*
+     * Then the raw salt
+     */
+    apr_md5_update(&ctx, sp, sl);
+
+    /*
+     * Then just as many characters of the MD5(pw, salt, pw)
+     */
+    apr_md5_init(&ctx1);
+    apr_md5_update(&ctx1, pw, strlen(pw));
+    apr_md5_update(&ctx1, sp, sl);
+    apr_md5_update(&ctx1, pw, strlen(pw));
+    apr_md5_final(final, &ctx1);
+    for (pl = strlen(pw); pl > 0; pl -= APR_MD5_DIGESTSIZE) {
+        apr_md5_update(&ctx, final, 
+                      (pl > APR_MD5_DIGESTSIZE) ? APR_MD5_DIGESTSIZE : pl);
+    }
+
+    /*
+     * Don't leave anything around in vm they could use.
+     */
+    memset(final, 0, sizeof(final));
+
+    /*
+     * Then something really weird...
+     */
+    for (i = strlen(pw); i != 0; i >>= 1) {
+        if (i & 1) {
+            apr_md5_update(&ctx, final, 1);
+        }
+        else {
+            apr_md5_update(&ctx, pw, 1);
+        }
+    }
+
+    /*
+     * Now make the output string.  We know our limitations, so we
+     * can use the string routines without bounds checking.
+     */
+    strcpy(passwd, apr1_id);
+    strncat(passwd, sp, sl);
+    strcat(passwd, "$");
+
+    apr_md5_final(final, &ctx);
+
+    /*
+     * And now, just to make sure things don't run too fast..
+     * On a 60 Mhz Pentium this takes 34 msec, so you would
+     * need 30 seconds to build a 1000 entry dictionary...
+     */
+    for (i = 0; i < 1000; i++) {
+        apr_md5_init(&ctx1);
+        if (i & 1) {
+            apr_md5_update(&ctx1, pw, strlen(pw));
+        }
+        else {
+            apr_md5_update(&ctx1, final, APR_MD5_DIGESTSIZE);
+        }
+        if (i % 3) {
+            apr_md5_update(&ctx1, sp, sl);
+        }
+
+        if (i % 7) {
+            apr_md5_update(&ctx1, pw, strlen(pw));
+        }
+
+        if (i & 1) {
+            apr_md5_update(&ctx1, final, APR_MD5_DIGESTSIZE);
+        }
+        else {
+            apr_md5_update(&ctx1, pw, strlen(pw));
+        }
+        apr_md5_final(final,&ctx1);
+    }
+
+    p = passwd + strlen(passwd);
+
+    l = (final[ 0]<<16) | (final[ 6]<<8) | final[12]; to64(p, l, 4); p += 4;
+    l = (final[ 1]<<16) | (final[ 7]<<8) | final[13]; to64(p, l, 4); p += 4;
+    l = (final[ 2]<<16) | (final[ 8]<<8) | final[14]; to64(p, l, 4); p += 4;
+    l = (final[ 3]<<16) | (final[ 9]<<8) | final[15]; to64(p, l, 4); p += 4;
+    l = (final[ 4]<<16) | (final[10]<<8) | final[ 5]; to64(p, l, 4); p += 4;
+    l =                    final[11]                ; to64(p, l, 2); p += 2;
+    *p = '\0';
+
+    /*
+     * Don't leave anything around in vm they could use.
+     */
+    memset(final, 0, sizeof(final));
+
+    apr_cpystrn(result, passwd, nbytes - 1);
+    return APR_SUCCESS;
+}
+
+#if !defined(WIN32) && !defined(BEOS) && !defined(NETWARE)
+#if defined(APU_CRYPT_THREADSAFE) || !APR_HAS_THREADS || \
+    defined(CRYPT_R_CRYPTD) || defined(CRYPT_R_STRUCT_CRYPT_DATA)
+
+#define crypt_mutex_lock()
+#define crypt_mutex_unlock()
+
+#elif APR_HAVE_PTHREAD_H && defined(PTHREAD_MUTEX_INITIALIZER)
+
+static pthread_mutex_t crypt_mutex = PTHREAD_MUTEX_INITIALIZER;
+static void crypt_mutex_lock(void)
+{
+    pthread_mutex_lock(&crypt_mutex);
+}
+
+static void crypt_mutex_unlock(void)
+{
+    pthread_mutex_unlock(&crypt_mutex);
+}
+
+#else
+
+#error apr_password_validate() is not threadsafe.  rebuild APR without thread support.
+
+#endif
+#endif
+
+/*
+ * Validate a plaintext password against a smashed one.  Uses either
+ * crypt() (if available) or apr_md5_encode() or apr_sha1_base64(), depending
+ * upon the format of the smashed input password.  Returns APR_SUCCESS if
+ * they match, or APR_EMISMATCH if they don't.  If the platform doesn't
+ * support crypt, then the default check is against a clear text string.
+ */
+APU_DECLARE(apr_status_t) apr_password_validate(const char *passwd, 
+                                                const char *hash)
+{
+    char sample[120];
+#if !defined(WIN32) && !defined(BEOS) && !defined(NETWARE)
+    char *crypt_pw;
+#endif
+    if (!strncmp(hash, apr1_id, strlen(apr1_id))) {
+        /*
+         * The hash was created using our custom algorithm.
+         */
+        apr_md5_encode(passwd, hash, sample, sizeof(sample));
+    }
+    else if (!strncmp(hash, APR_SHA1PW_ID, APR_SHA1PW_IDLEN)) {
+         apr_sha1_base64(passwd, (int)strlen(passwd), sample);
+    }
+    else {
+        /*
+         * It's not our algorithm, so feed it to crypt() if possible.
+         */
+#if defined(WIN32) || defined(BEOS) || defined(NETWARE)
+        apr_cpystrn(sample, passwd, sizeof(sample) - 1);
+#elif defined(CRYPT_R_CRYPTD)
+        CRYPTD buffer;
+
+        crypt_pw = crypt_r(passwd, hash, &buffer);
+        apr_cpystrn(sample, crypt_pw, sizeof(sample) - 1);
+#elif defined(CRYPT_R_STRUCT_CRYPT_DATA)
+        struct crypt_data buffer;
+
+        /* having to clear this seems bogus... GNU doc is
+         * confusing...  user report found from google says
+         * the crypt_data struct had to be cleared to get
+         * the same result as plain crypt()
+         */
+        memset(&buffer, 0, sizeof(buffer));
+        crypt_pw = crypt_r(passwd, hash, &buffer);
+        apr_cpystrn(sample, crypt_pw, sizeof(sample) - 1);
+#else
+        /* Do a bit of sanity checking since we know that crypt_r()
+         * should always be used for threaded builds on AIX, and
+         * problems in configure logic can result in the wrong
+         * choice being made.
+         */
+#if defined(_AIX) && APR_HAS_THREADS
+#error Configuration error!  crypt_r() should have been selected!
+#endif
+
+        /* Handle thread safety issues by holding a mutex around the
+         * call to crypt().
+         */
+        crypt_mutex_lock();
+        crypt_pw = crypt(passwd, hash);
+        apr_cpystrn(sample, crypt_pw, sizeof(sample) - 1);
+        crypt_mutex_unlock();
+#endif
+    }
+    return (strcmp(sample, hash) == 0) ? APR_SUCCESS : APR_EMISMATCH;
+}
diff --git a/crypto/apr_sha1.c b/crypto/apr_sha1.c
new file mode 100644
index 0000000..31a9f9c
--- /dev/null
+++ b/crypto/apr_sha1.c
@@ -0,0 +1,372 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * The exported function:
+ *
+ * 	 apr_sha1_base64(const char *clear, int len, char *out);
+ *
+ * provides a means to SHA1 crypt/encode a plaintext password in
+ * a way which makes password files compatible with those commonly
+ * used in netscape web and ldap installations. It was put together
+ * by Clinton Wong <clintdw@netcom.com>, who also notes that:
+ *
+ * Note: SHA1 support is useful for migration purposes, but is less
+ *     secure than Apache's password format, since Apache's (MD5)
+ *     password format uses a random eight character salt to generate
+ *     one of many possible hashes for the same password.  Netscape
+ *     uses plain SHA1 without a salt, so the same password
+ *     will always generate the same hash, making it easier
+ *     to break since the search space is smaller.
+ *
+ * See also the documentation in support/SHA1 as to hints on how to
+ * migrate an existing netscape installation and other supplied utitlites.
+ *
+ * This software also makes use of the following component:
+ *
+ * NIST Secure Hash Algorithm
+ *  	heavily modified by Uwe Hollerbach uh@alumni.caltech edu
+ *	from Peter C. Gutmann's implementation as found in
+ *	Applied Cryptography by Bruce Schneier
+ *	This code is hereby placed in the public domain
+ */
+
+#include "apr_sha1.h"
+#include "apr_base64.h"
+#include "apr_strings.h"
+#include "apr_lib.h"
+#if APR_CHARSET_EBCDIC
+#include "apr_xlate.h"
+#endif /*APR_CHARSET_EBCDIC*/
+#include <string.h>
+
+/* a bit faster & bigger, if defined */
+#define UNROLL_LOOPS
+
+/* NIST's proposed modification to SHA, 7/11/94 */
+#define USE_MODIFIED_SHA
+
+/* SHA f()-functions */
+#define f1(x,y,z)	((x & y) | (~x & z))
+#define f2(x,y,z)	(x ^ y ^ z)
+#define f3(x,y,z)	((x & y) | (x & z) | (y & z))
+#define f4(x,y,z)	(x ^ y ^ z)
+
+/* SHA constants */
+#define CONST1		0x5a827999L
+#define CONST2		0x6ed9eba1L
+#define CONST3		0x8f1bbcdcL
+#define CONST4		0xca62c1d6L
+
+/* 32-bit rotate */
+
+#define ROT32(x,n)	((x << n) | (x >> (32 - n)))
+
+#define FUNC(n,i)						\
+    temp = ROT32(A,5) + f##n(B,C,D) + E + W[i] + CONST##n;	\
+    E = D; D = C; C = ROT32(B,30); B = A; A = temp
+
+#define SHA_BLOCKSIZE           64
+
+#if APR_CHARSET_EBCDIC
+static apr_xlate_t *ebcdic2ascii_xlate;
+
+APU_DECLARE(apr_status_t) apr_SHA1InitEBCDIC(apr_xlate_t *x)
+{
+    apr_status_t rv;
+    int onoff;
+
+    /* Only single-byte conversion is supported.
+     */
+    rv = apr_xlate_sb_get(x, &onoff);
+    if (rv) {
+        return rv;
+    }
+    if (!onoff) { /* If conversion is not single-byte-only */
+        return APR_EINVAL;
+    }
+    ebcdic2ascii_xlate = x;
+    return APR_SUCCESS;
+}
+#endif
+
+/* do SHA transformation */
+static void sha_transform(apr_sha1_ctx_t *sha_info)
+{
+    int i;
+    apr_uint32_t temp, A, B, C, D, E, W[80];
+
+    for (i = 0; i < 16; ++i) {
+	W[i] = sha_info->data[i];
+    }
+    for (i = 16; i < 80; ++i) {
+	W[i] = W[i-3] ^ W[i-8] ^ W[i-14] ^ W[i-16];
+#ifdef USE_MODIFIED_SHA
+	W[i] = ROT32(W[i], 1);
+#endif /* USE_MODIFIED_SHA */
+    }
+    A = sha_info->digest[0];
+    B = sha_info->digest[1];
+    C = sha_info->digest[2];
+    D = sha_info->digest[3];
+    E = sha_info->digest[4];
+#ifdef UNROLL_LOOPS
+    FUNC(1, 0);  FUNC(1, 1);  FUNC(1, 2);  FUNC(1, 3);  FUNC(1, 4);
+    FUNC(1, 5);  FUNC(1, 6);  FUNC(1, 7);  FUNC(1, 8);  FUNC(1, 9);
+    FUNC(1,10);  FUNC(1,11);  FUNC(1,12);  FUNC(1,13);  FUNC(1,14);
+    FUNC(1,15);  FUNC(1,16);  FUNC(1,17);  FUNC(1,18);  FUNC(1,19);
+
+    FUNC(2,20);  FUNC(2,21);  FUNC(2,22);  FUNC(2,23);  FUNC(2,24);
+    FUNC(2,25);  FUNC(2,26);  FUNC(2,27);  FUNC(2,28);  FUNC(2,29);
+    FUNC(2,30);  FUNC(2,31);  FUNC(2,32);  FUNC(2,33);  FUNC(2,34);
+    FUNC(2,35);  FUNC(2,36);  FUNC(2,37);  FUNC(2,38);  FUNC(2,39);
+
+    FUNC(3,40);  FUNC(3,41);  FUNC(3,42);  FUNC(3,43);  FUNC(3,44);
+    FUNC(3,45);  FUNC(3,46);  FUNC(3,47);  FUNC(3,48);  FUNC(3,49);
+    FUNC(3,50);  FUNC(3,51);  FUNC(3,52);  FUNC(3,53);  FUNC(3,54);
+    FUNC(3,55);  FUNC(3,56);  FUNC(3,57);  FUNC(3,58);  FUNC(3,59);
+
+    FUNC(4,60);  FUNC(4,61);  FUNC(4,62);  FUNC(4,63);  FUNC(4,64);
+    FUNC(4,65);  FUNC(4,66);  FUNC(4,67);  FUNC(4,68);  FUNC(4,69);
+    FUNC(4,70);  FUNC(4,71);  FUNC(4,72);  FUNC(4,73);  FUNC(4,74);
+    FUNC(4,75);  FUNC(4,76);  FUNC(4,77);  FUNC(4,78);  FUNC(4,79);
+#else /* !UNROLL_LOOPS */
+    for (i = 0; i < 20; ++i) {
+	FUNC(1,i);
+    }
+    for (i = 20; i < 40; ++i) {
+	FUNC(2,i);
+    }
+    for (i = 40; i < 60; ++i) {
+	FUNC(3,i);
+    }
+    for (i = 60; i < 80; ++i) {
+	FUNC(4,i);
+    }
+#endif /* !UNROLL_LOOPS */
+    sha_info->digest[0] += A;
+    sha_info->digest[1] += B;
+    sha_info->digest[2] += C;
+    sha_info->digest[3] += D;
+    sha_info->digest[4] += E;
+}
+
+union endianTest {
+    long Long;
+    char Char[sizeof(long)];
+};
+
+static char isLittleEndian(void)
+{
+    static union endianTest u;
+    u.Long = 1;
+    return (u.Char[0] == 1);
+}
+
+/* change endianness of data */
+
+/* count is the number of bytes to do an endian flip */
+static void maybe_byte_reverse(apr_uint32_t *buffer, int count)
+{
+    int i;
+    apr_byte_t ct[4], *cp;
+
+    if (isLittleEndian()) {	/* do the swap only if it is little endian */
+	count /= sizeof(apr_uint32_t);
+	cp = (apr_byte_t *) buffer;
+	for (i = 0; i < count; ++i) {
+	    ct[0] = cp[0];
+	    ct[1] = cp[1];
+	    ct[2] = cp[2];
+	    ct[3] = cp[3];
+	    cp[0] = ct[3];
+	    cp[1] = ct[2];
+	    cp[2] = ct[1];
+	    cp[3] = ct[0];
+	    cp += sizeof(apr_uint32_t);
+	}
+    }
+}
+
+/* initialize the SHA digest */
+
+APU_DECLARE(void) apr_sha1_init(apr_sha1_ctx_t *sha_info)
+{
+    sha_info->digest[0] = 0x67452301L;
+    sha_info->digest[1] = 0xefcdab89L;
+    sha_info->digest[2] = 0x98badcfeL;
+    sha_info->digest[3] = 0x10325476L;
+    sha_info->digest[4] = 0xc3d2e1f0L;
+    sha_info->count_lo = 0L;
+    sha_info->count_hi = 0L;
+    sha_info->local = 0;
+}
+
+/* update the SHA digest */
+
+APU_DECLARE(void) apr_sha1_update_binary(apr_sha1_ctx_t *sha_info,
+                                     const unsigned char *buffer,
+                                     unsigned int count)
+{
+    unsigned int i;
+
+    if ((sha_info->count_lo + ((apr_uint32_t) count << 3)) < sha_info->count_lo) {
+	++sha_info->count_hi;
+    }
+    sha_info->count_lo += (apr_uint32_t) count << 3;
+    sha_info->count_hi += (apr_uint32_t) count >> 29;
+    if (sha_info->local) {
+	i = SHA_BLOCKSIZE - sha_info->local;
+	if (i > count) {
+	    i = count;
+	}
+	memcpy(((apr_byte_t *) sha_info->data) + sha_info->local, buffer, i);
+	count -= i;
+	buffer += i;
+	sha_info->local += i;
+	if (sha_info->local == SHA_BLOCKSIZE) {
+	    maybe_byte_reverse(sha_info->data, SHA_BLOCKSIZE);
+	    sha_transform(sha_info);
+	}
+	else {
+	    return;
+	}
+    }
+    while (count >= SHA_BLOCKSIZE) {
+	memcpy(sha_info->data, buffer, SHA_BLOCKSIZE);
+	buffer += SHA_BLOCKSIZE;
+	count -= SHA_BLOCKSIZE;
+	maybe_byte_reverse(sha_info->data, SHA_BLOCKSIZE);
+	sha_transform(sha_info);
+    }
+    memcpy(sha_info->data, buffer, count);
+    sha_info->local = count;
+}
+
+APU_DECLARE(void) apr_sha1_update(apr_sha1_ctx_t *sha_info, const char *buf,
+                              unsigned int count)
+{
+#if APR_CHARSET_EBCDIC
+    int i;
+    const apr_byte_t *buffer = (const apr_byte_t *) buf;
+    apr_size_t inbytes_left, outbytes_left;
+
+    if ((sha_info->count_lo + ((apr_uint32_t) count << 3)) < sha_info->count_lo) {
+	++sha_info->count_hi;
+    }
+    sha_info->count_lo += (apr_uint32_t) count << 3;
+    sha_info->count_hi += (apr_uint32_t) count >> 29;
+    /* Is there a remainder of the previous Update operation? */
+    if (sha_info->local) {
+	i = SHA_BLOCKSIZE - sha_info->local;
+	if (i > count) {
+	    i = count;
+	}
+        inbytes_left = outbytes_left = i;
+        apr_xlate_conv_buffer(ebcdic2ascii_xlate, buffer, &inbytes_left,
+                              ((apr_byte_t *) sha_info->data) + sha_info->local,
+                              &outbytes_left);
+	count -= i;
+	buffer += i;
+	sha_info->local += i;
+	if (sha_info->local == SHA_BLOCKSIZE) {
+	    maybe_byte_reverse(sha_info->data, SHA_BLOCKSIZE);
+	    sha_transform(sha_info);
+	}
+	else {
+	    return;
+	}
+    }
+    while (count >= SHA_BLOCKSIZE) {
+        inbytes_left = outbytes_left = SHA_BLOCKSIZE;
+        apr_xlate_conv_buffer(ebcdic2ascii_xlate, buffer, &inbytes_left,
+                              (apr_byte_t *) sha_info->data, &outbytes_left);
+	buffer += SHA_BLOCKSIZE;
+	count -= SHA_BLOCKSIZE;
+	maybe_byte_reverse(sha_info->data, SHA_BLOCKSIZE);
+	sha_transform(sha_info);
+    }
+    inbytes_left = outbytes_left = count;
+    apr_xlate_conv_buffer(ebcdic2ascii_xlate, buffer, &inbytes_left,
+                          (apr_byte_t *) sha_info->data, &outbytes_left);
+    sha_info->local = count;
+#else
+    apr_sha1_update_binary(sha_info, (const unsigned char *) buf, count);
+#endif
+}
+
+/* finish computing the SHA digest */
+
+APU_DECLARE(void) apr_sha1_final(unsigned char digest[APR_SHA1_DIGESTSIZE],
+                             apr_sha1_ctx_t *sha_info)
+{
+    int count, i, j;
+    apr_uint32_t lo_bit_count, hi_bit_count, k;
+
+    lo_bit_count = sha_info->count_lo;
+    hi_bit_count = sha_info->count_hi;
+    count = (int) ((lo_bit_count >> 3) & 0x3f);
+    ((apr_byte_t *) sha_info->data)[count++] = 0x80;
+    if (count > SHA_BLOCKSIZE - 8) {
+	memset(((apr_byte_t *) sha_info->data) + count, 0, SHA_BLOCKSIZE - count);
+	maybe_byte_reverse(sha_info->data, SHA_BLOCKSIZE);
+	sha_transform(sha_info);
+	memset((apr_byte_t *) sha_info->data, 0, SHA_BLOCKSIZE - 8);
+    }
+    else {
+	memset(((apr_byte_t *) sha_info->data) + count, 0,
+	       SHA_BLOCKSIZE - 8 - count);
+    }
+    maybe_byte_reverse(sha_info->data, SHA_BLOCKSIZE);
+    sha_info->data[14] = hi_bit_count;
+    sha_info->data[15] = lo_bit_count;
+    sha_transform(sha_info);
+
+    for (i = 0, j = 0; j < APR_SHA1_DIGESTSIZE; i++) {
+	k = sha_info->digest[i];
+	digest[j++] = (unsigned char) ((k >> 24) & 0xff);
+	digest[j++] = (unsigned char) ((k >> 16) & 0xff);
+	digest[j++] = (unsigned char) ((k >> 8) & 0xff);
+	digest[j++] = (unsigned char) (k & 0xff);
+    }
+}
+
+
+APU_DECLARE(void) apr_sha1_base64(const char *clear, int len, char *out)
+{
+    int l;
+    apr_sha1_ctx_t context;
+    apr_byte_t digest[APR_SHA1_DIGESTSIZE];
+
+    if (strncmp(clear, APR_SHA1PW_ID, APR_SHA1PW_IDLEN) == 0) {
+	clear += APR_SHA1PW_IDLEN;
+    }
+
+    apr_sha1_init(&context);
+    apr_sha1_update(&context, clear, len);
+    apr_sha1_final(digest, &context);
+
+    /* private marker. */
+    apr_cpystrn(out, APR_SHA1PW_ID, APR_SHA1PW_IDLEN + 1);
+
+    /* SHA1 hash is always 20 chars */
+    l = apr_base64_encode_binary(out + APR_SHA1PW_IDLEN, digest, sizeof(digest));
+    out[l + APR_SHA1PW_IDLEN] = '\0';
+
+    /*
+     * output of base64 encoded SHA1 is always 28 chars + APR_SHA1PW_IDLEN
+     */
+}
diff --git a/crypto/getuuid.c b/crypto/getuuid.c
new file mode 100644
index 0000000..0cb324b
--- /dev/null
+++ b/crypto/getuuid.c
@@ -0,0 +1,208 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * This attempts to generate V1 UUIDs according to the Internet Draft
+ * located at http://www.webdav.org/specs/draft-leach-uuids-guids-01.txt
+ */
+#include "apr.h"
+#include "apr_uuid.h"
+#include "apr_md5.h"
+#include "apr_general.h"
+#include "apr_portable.h"
+
+
+#if APR_HAVE_UNISTD_H
+#include <unistd.h>     /* for getpid, gethostname */
+#endif
+#if APR_HAVE_STDLIB_H
+#include <stdlib.h>     /* for rand, srand */
+#endif
+
+
+#if APR_HAVE_STRING_H
+#include <string.h>
+#endif
+#if APR_HAVE_STRINGS_H
+#include <strings.h>
+#endif
+#if APR_HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#if APR_HAVE_SYS_TIME_H
+#include <sys/time.h>   /* for gettimeofday */
+#endif
+
+#define NODE_LENGTH 6
+
+static int uuid_state_seqnum;
+static unsigned char uuid_state_node[NODE_LENGTH] = { 0 };
+
+
+static void get_random_info(unsigned char node[NODE_LENGTH])
+{
+#if APR_HAS_RANDOM
+
+    (void) apr_generate_random_bytes(node, NODE_LENGTH);
+
+#else
+
+    unsigned char seed[APR_MD5_DIGESTSIZE];
+    apr_md5_ctx_t c;
+
+    /* ### probably should revise some of this to be a bit more portable */
+
+    /* Leach & Salz use Linux-specific struct sysinfo;
+     * replace with pid/tid for portability (in the spirit of mod_unique_id) */
+    struct {
+	/* Add thread id here, if applicable, when we get to pthread or apr */
+        pid_t pid;
+#ifdef NETWARE
+        apr_uint64_t t;
+#else
+        struct timeval t;
+#endif
+        char hostname[257];
+
+    } r;
+
+    apr_md5_init(&c);
+#ifdef NETWARE
+    r.pid = NXThreadGetId();
+    NXGetTime(NX_SINCE_BOOT, NX_USECONDS, &(r.t));
+#else
+    r.pid = getpid();
+    gettimeofday(&r.t, (struct timezone *)0);
+#endif
+    gethostname(r.hostname, 256);
+    apr_md5_update(&c, (const unsigned char *)&r, sizeof(r));
+    apr_md5_final(seed, &c);
+
+    memcpy(node, seed, NODE_LENGTH);    /* use a subset of the seed bytes */
+#endif
+}
+
+/* This implementation generates a random node ID instead of a
+   system-dependent call to get IEEE node ID. This is also more secure:
+   we aren't passing out our MAC address.
+*/
+static void get_pseudo_node_identifier(unsigned char *node)
+{
+    get_random_info(node);
+    node[0] |= 0x01;                    /* this designates a random node ID */
+}
+
+static void get_system_time(apr_uint64_t *uuid_time)
+{
+    /* ### fix this call to be more portable? */
+    *uuid_time = apr_time_now();
+
+    /* Offset between UUID formatted times and Unix formatted times.
+       UUID UTC base time is October 15, 1582.
+       Unix base time is January 1, 1970.      */
+    *uuid_time = (*uuid_time * 10) + APR_TIME_C(0x01B21DD213814000);
+}
+
+/* true_random -- generate a crypto-quality random number. */
+static int true_random(void)
+{
+    apr_uint64_t time_now;
+
+#if APR_HAS_RANDOM
+    unsigned char buf[2];
+
+    if (apr_generate_random_bytes(buf, 2) == APR_SUCCESS) {
+        return (buf[0] << 8) | buf[1];
+    }
+#endif
+
+    /* crap. this isn't crypto quality, but it will be Good Enough */
+
+    get_system_time(&time_now);
+    srand((unsigned int)(((time_now >> 32) ^ time_now) & 0xffffffff));
+
+    return rand() & 0x0FFFF;
+}
+
+static void init_state(void)
+{
+    uuid_state_seqnum = true_random();
+    get_pseudo_node_identifier(uuid_state_node);
+}
+
+static void get_current_time(apr_uint64_t *timestamp)
+{
+    /* ### this needs to be made thread-safe! */
+
+    apr_uint64_t time_now;
+    static apr_uint64_t time_last = 0;
+    static apr_uint64_t fudge = 0;
+
+    get_system_time(&time_now);
+        
+    /* if clock reading changed since last UUID generated... */
+    if (time_last != time_now) {
+        /* The clock reading has changed since the last UUID was generated.
+           Reset the fudge factor. if we are generating them too fast, then
+           the fudge may need to be reset to something greater than zero. */
+        if (time_last + fudge > time_now)
+            fudge = time_last + fudge - time_now + 1;
+        else
+            fudge = 0;
+        time_last = time_now;
+    }
+    else {
+        /* We generated two really fast. Bump the fudge factor. */
+        ++fudge;
+    }
+
+    *timestamp = time_now + fudge;
+}
+
+APU_DECLARE(void) apr_uuid_get(apr_uuid_t *uuid)
+{
+    apr_uint64_t timestamp;
+    unsigned char *d = uuid->data;
+
+#if APR_HAS_OS_UUID
+    if (apr_os_uuid_get(d) == APR_SUCCESS) {
+        return;
+    }
+#endif /* !APR_HAS_OS_UUID */
+
+    if (!uuid_state_node[0])
+        init_state();
+
+    get_current_time(&timestamp);
+
+    /* time_low, uint32 */
+    d[3] = (unsigned char)timestamp;
+    d[2] = (unsigned char)(timestamp >> 8);
+    d[1] = (unsigned char)(timestamp >> 16);
+    d[0] = (unsigned char)(timestamp >> 24);
+    /* time_mid, uint16 */
+    d[5] = (unsigned char)(timestamp >> 32);
+    d[4] = (unsigned char)(timestamp >> 40);
+    /* time_hi_and_version, uint16 */
+    d[7] = (unsigned char)(timestamp >> 48);
+    d[6] = (unsigned char)(((timestamp >> 56) & 0x0F) | 0x10);
+    /* clock_seq_hi_and_reserved, uint8 */
+    d[8] = (unsigned char)(((uuid_state_seqnum >> 8) & 0x3F) | 0x80);
+    /* clock_seq_low, uint8 */
+    d[9] = (unsigned char)uuid_state_seqnum;
+    /* node, byte[6] */
+    memcpy(&d[10], uuid_state_node, NODE_LENGTH);
+}
diff --git a/crypto/uuid.c b/crypto/uuid.c
new file mode 100644
index 0000000..6e45d71
--- /dev/null
+++ b/crypto/uuid.c
@@ -0,0 +1,130 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdio.h>      /* for sprintf */
+
+#include "apr.h"
+#include "apr_uuid.h"
+#include "apr_errno.h"
+#include "apr_lib.h"
+
+
+APU_DECLARE(void) apr_uuid_format(char *buffer, const apr_uuid_t *uuid)
+{
+    const unsigned char *d = uuid->data;
+
+    sprintf(buffer,
+            "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x",
+            d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7],
+            d[8], d[9], d[10], d[11], d[12], d[13], d[14], d[15]);
+}
+
+/* convert a pair of hex digits to an integer value [0,255] */
+#if 'A' == 65
+static unsigned char parse_hexpair(const char *s)
+{
+    int result;
+    int temp;
+
+    result = s[0] - '0';
+    if (result > 48)
+	result = (result - 39) << 4;
+    else if (result > 16)
+	result = (result - 7) << 4;
+    else
+	result = result << 4;
+
+    temp = s[1] - '0';
+    if (temp > 48)
+	result |= temp - 39;
+    else if (temp > 16)
+	result |= temp - 7;
+    else
+	result |= temp;
+
+    return (unsigned char)result;
+}
+#else
+static unsigned char parse_hexpair(const char *s)
+{
+    int result;
+
+    if (isdigit(*s)) {
+        result = (*s - '0') << 4;
+    }
+    else {
+        if (isupper(*s)) {
+            result = (*s - 'A' + 10) << 4;
+        }
+        else {
+            result = (*s - 'a' + 10) << 4;
+        }
+    }
+
+    ++s;
+    if (isdigit(*s)) {
+        result |= (*s - '0');
+    }
+    else {
+        if (isupper(*s)) {
+            result |= (*s - 'A' + 10);
+        }
+        else {
+            result |= (*s - 'a' + 10);
+        }
+    }
+
+    return (unsigned char)result;
+}
+#endif
+
+APU_DECLARE(apr_status_t) apr_uuid_parse(apr_uuid_t *uuid,
+                                         const char *uuid_str)
+{
+    int i;
+    unsigned char *d = uuid->data;
+
+    for (i = 0; i < 36; ++i) {
+	char c = uuid_str[i];
+	if (!apr_isxdigit(c) &&
+	    !(c == '-' && (i == 8 || i == 13 || i == 18 || i == 23)))
+            /* ### need a better value */
+	    return APR_BADARG;
+    }
+    if (uuid_str[36] != '\0') {
+        /* ### need a better value */
+	return APR_BADARG;
+    }
+
+    d[0] = parse_hexpair(&uuid_str[0]);
+    d[1] = parse_hexpair(&uuid_str[2]);
+    d[2] = parse_hexpair(&uuid_str[4]);
+    d[3] = parse_hexpair(&uuid_str[6]);
+
+    d[4] = parse_hexpair(&uuid_str[9]);
+    d[5] = parse_hexpair(&uuid_str[11]);
+
+    d[6] = parse_hexpair(&uuid_str[14]);
+    d[7] = parse_hexpair(&uuid_str[16]);
+
+    d[8] = parse_hexpair(&uuid_str[19]);
+    d[9] = parse_hexpair(&uuid_str[21]);
+
+    for (i = 6; i--;)
+	d[10 + i] = parse_hexpair(&uuid_str[i*2+24]);
+
+    return APR_SUCCESS;
+}
diff --git a/dbd/NWGNUdbdmysql b/dbd/NWGNUdbdmysql
new file mode 100644
index 0000000..cc207e2
--- /dev/null
+++ b/dbd/NWGNUdbdmysql
@@ -0,0 +1,296 @@
+#

+# Declare the sub-directories to be built here

+#

+

+SUBDIRS = \

+	$(EOLIST)

+

+#

+# Get the 'head' of the build environment.  This includes default targets and

+# paths to tools

+#

+

+ifndef EnvironmentDefined

+include $(APR_WORK)\build\NWGNUhead.inc

+endif

+

+#include $(APR)\build\NWGNUcustom.inc

+

+#

+# build this level's files

+

+#

+# Make sure all needed macro's are defined

+#

+

+# LINK_STATIC = 1

+

+# for now defined here - should finally go into build/NWGNUenvironment.inc

+MYSQL_INC = $(MYSQLSDK)/include

+MYSQL_IMP = $(MYSQLSDK)/lib/libmysql.imp

+MYSQL_LIB = $(MYSQLSDK)/lib/libmysqlclient_r.lib $(MYSQLSDK)/lib/libz.lib

+MYSQL_NLM = libmysql

+

+#

+# These directories will be at the beginning of the include list, followed by

+# INCDIRS

+#

+XINCDIRS	+= \

+			$(APR)/include/arch/netware \

+			$(APR)/include \

+			$(APRUTIL)/include \

+			$(APRUTIL)/include/private \

+			$(APR) \

+			$(MYSQL_INC) \

+			$(EOLIST)

+

+#

+# These flags will come after CFLAGS

+#

+XCFLAGS		+= \

+			$(EOLIST)

+

+#

+# These defines will come after DEFINES

+#

+XDEFINES	+= \

+			-DAPU_HAVE_MYSQL=1 \

+			-DHAVE_MYSQL_H \

+			$(EOLIST)

+

+#

+# These flags will be added to the link.opt file

+#

+XLFLAGS		+= \

+			$(EOLIST)

+

+ifdef LINK_STATIC

+XLFLAGS		+= \

+			-l $(MYSQLSDK)/lib \

+			$(EOLIST)

+endif

+

+#

+# These values will be appended to the correct variables based on the value of

+# RELEASE

+#

+ifeq "$(RELEASE)" "debug"

+XINCDIRS	+= \

+			$(EOLIST)

+

+XCFLAGS		+= \

+			$(EOLIST)

+

+XDEFINES	+= \

+			$(EOLIST)

+

+XLFLAGS		+= \

+			$(EOLIST)

+endif

+

+ifeq "$(RELEASE)" "noopt"

+XINCDIRS	+= \

+			$(EOLIST)

+

+XCFLAGS		+= \

+			$(EOLIST)

+

+XDEFINES	+= \

+			$(EOLIST)

+

+XLFLAGS		+= \

+			$(EOLIST)

+endif

+

+ifeq "$(RELEASE)" "release"

+XINCDIRS	+= \

+			$(EOLIST)

+

+XCFLAGS		+= \

+			$(EOLIST)

+

+XDEFINES	+= \

+			$(EOLIST)

+

+XLFLAGS		+= \

+			$(EOLIST)

+endif

+

+#

+# These are used by the link target if an NLM is being generated

+# This is used by the link 'name' directive to name the nlm.  If left blank

+# TARGET_nlm (see below) will be used.

+#

+NLM_NAME	= dbdmysql

+

+#

+# This is used by the link '-desc ' directive.

+# If left blank, NLM_NAME will be used.

+#

+NLM_DESCRIPTION	= Apache Portability Runtime Library $(VERSION_STR) DBD MySQL Driver Module

+

+#

+# This is used by the '-threadname' directive.  If left blank,

+# NLM_NAME Thread will be used.

+#

+NLM_THREAD_NAME	= dbdmysql

+

+#

+# If this is specified, it will override VERSION value in

+# $(AP_WORK)\build\NWGNUenvironment.inc

+#

+NLM_VERSION	=

+

+#

+# If this is specified, it will override the default of 64K

+#

+NLM_STACK_SIZE	= 8192

+

+

+#

+# If this is specified it will be used by the link '-entry' directive

+#

+NLM_ENTRY_SYM	= _LibCPrelude

+

+#

+# If this is specified it will be used by the link '-exit' directive

+#

+NLM_EXIT_SYM	= _LibCPostlude

+

+#

+# If this is specified it will be used by the link '-check' directive

+#

+NLM_CHECK_SYM	=

+

+#

+# If these are specified it will be used by the link '-flags' directive

+#

+NLM_FLAGS	= AUTOUNLOAD, PSEUDOPREEMPTION

+

+#

+# If this is specified it will be linked in with the XDCData option in the def

+# file instead of the default of $(NWOS)/apache.xdc.  XDCData can be disabled

+# by setting APACHE_UNIPROC in the environment

+#

+XDCDATA		=

+

+#

+# If there is an NLM target, put it here

+#

+TARGET_nlm = \

+	$(OBJDIR)\$(NLM_NAME).nlm \

+	$(EOLIST)

+

+#

+# If there is an LIB target, put it here

+#

+TARGET_lib = \

+	$(EOLIST)

+

+#

+# These are the OBJ files needed to create the NLM target above.

+# Paths must all use the '/' character

+#

+FILES_nlm_objs = \

+	$(OBJDIR)/apr_dbd_mysql.o \

+	$(EOLIST)

+

+#

+# These are the LIB files needed to create the NLM target above.

+# These will be added as a library command in the link.opt file.

+#

+FILES_nlm_libs = \

+	libcpre.o \

+	$(EOLIST)

+

+ifeq ($(LINK_STATIC),1)

+FILES_nlm_libs += \

+	$(MYSQL_LIB) \

+	$(EOLIST)

+endif

+

+#

+# These are the modules that the above NLM target depends on to load.

+# These will be added as a module command in the link.opt file.

+#

+FILES_nlm_modules = \

+	aprlib \

+	libc \

+	$(EOLIST)

+

+ifneq ($(LINK_STATIC),1)

+FILES_nlm_modules += \

+	$(MYSQL_NLM) \

+	$(EOLIST)

+endif

+

+#

+# If the nlm has a msg file, put it's path here

+#

+FILE_nlm_msg =

+

+#

+# If the nlm has a hlp file put it's path here

+#

+FILE_nlm_hlp =

+

+#

+# If this is specified, it will override $(NWOS)\copyright.txt.

+#

+FILE_nlm_copyright =

+

+#

+# Any additional imports go here

+#

+FILES_nlm_Ximports = \

+	@$(APR)/aprlib.imp \

+	@libc.imp \

+	$(EOLIST)

+

+ifneq ($(LINK_STATIC),1)

+FILES_nlm_Ximports += \

+	@$(MYSQL_IMP) \

+	$(EOLIST)

+endif

+

+#

+# Any symbols exported to here

+#

+FILES_nlm_exports = \

+	apr_dbd_mysql_driver \

+	$(EOLIST)

+

+#

+# These are the OBJ files needed to create the LIB target above.

+# Paths must all use the '/' character

+#

+FILES_lib_objs = \

+	$(EOLIST)

+

+#

+# implement targets and dependancies (leave this section alone)

+#

+

+libs :: $(OBJDIR) $(TARGET_lib)

+

+nlms :: libs $(TARGET_nlm)

+

+#

+# Updated this target to create necessary directories and copy files to the

+# correct place.  (See $(AP_WORK)\build\NWGNUhead.inc for examples)

+#

+install :: nlms FORCE

+

+#

+# Any specialized rules here

+#

+

+#

+# Include the 'tail' makefile that has targets that depend on variables defined

+# in this makefile

+#

+

+include $(APR_WORK)\build\NWGNUtail.inc

+

+

+

diff --git a/dbd/NWGNUdbdpgsql b/dbd/NWGNUdbdpgsql
new file mode 100644
index 0000000..e90665c
--- /dev/null
+++ b/dbd/NWGNUdbdpgsql
@@ -0,0 +1,296 @@
+#

+# Declare the sub-directories to be built here

+#

+

+SUBDIRS = \

+	$(EOLIST)

+

+#

+# Get the 'head' of the build environment.  This includes default targets and

+# paths to tools

+#

+

+ifndef EnvironmentDefined

+include $(APR_WORK)\build\NWGNUhead.inc

+endif

+

+#include $(APR)\build\NWGNUcustom.inc

+

+#

+# build this level's files

+

+#

+# Make sure all needed macro's are defined

+#

+

+# LINK_STATIC = 1

+

+# for now defined here - should finally go into build/NWGNUenvironment.inc

+PGSQL_INC = $(PGSQLSDK)/inc

+PGSQL_IMP = $(PGSQLSDK)/imp/libpq.imp

+PGSQL_LIB = $(PGSQLSDK)/lib/libpq.lib

+PGSQL_NLM = libpq

+

+#

+# These directories will be at the beginning of the include list, followed by

+# INCDIRS

+#

+XINCDIRS	+= \

+			$(APR)/include/arch/netware \

+			$(APR)/include \

+			$(APRUTIL)/include \

+			$(APRUTIL)/include/private \

+			$(APR) \

+			$(PGSQL_INC) \

+			$(EOLIST)

+

+#

+# These flags will come after CFLAGS

+#

+XCFLAGS		+= \

+			$(EOLIST)

+

+#

+# These defines will come after DEFINES

+#

+XDEFINES	+= \

+			-DAPU_HAVE_PGSQL=1 \

+			-DHAVE_LIBPQ_FE_H \

+			$(EOLIST)

+

+#

+# These flags will be added to the link.opt file

+#

+XLFLAGS		+= \

+			$(EOLIST)

+

+ifdef LINK_STATIC

+XLFLAGS		+= \

+			-l $(PGSQLSDK)/lib \

+			$(EOLIST)

+endif

+

+#

+# These values will be appended to the correct variables based on the value of

+# RELEASE

+#

+ifeq "$(RELEASE)" "debug"

+XINCDIRS	+= \

+			$(EOLIST)

+

+XCFLAGS		+= \

+			$(EOLIST)

+

+XDEFINES	+= \

+			$(EOLIST)

+

+XLFLAGS		+= \

+			$(EOLIST)

+endif

+

+ifeq "$(RELEASE)" "noopt"

+XINCDIRS	+= \

+			$(EOLIST)

+

+XCFLAGS		+= \

+			$(EOLIST)

+

+XDEFINES	+= \

+			$(EOLIST)

+

+XLFLAGS		+= \

+			$(EOLIST)

+endif

+

+ifeq "$(RELEASE)" "release"

+XINCDIRS	+= \

+			$(EOLIST)

+

+XCFLAGS		+= \

+			$(EOLIST)

+

+XDEFINES	+= \

+			$(EOLIST)

+

+XLFLAGS		+= \

+			$(EOLIST)

+endif

+

+#

+# These are used by the link target if an NLM is being generated

+# This is used by the link 'name' directive to name the nlm.  If left blank

+# TARGET_nlm (see below) will be used.

+#

+NLM_NAME	= dbdpgsql

+

+#

+# This is used by the link '-desc ' directive.

+# If left blank, NLM_NAME will be used.

+#

+NLM_DESCRIPTION	= Apache Portability Runtime Library $(VERSION_STR) DBD PostgreSQL Driver Module

+

+#

+# This is used by the '-threadname' directive.  If left blank,

+# NLM_NAME Thread will be used.

+#

+NLM_THREAD_NAME	= dbdpgsql

+

+#

+# If this is specified, it will override VERSION value in

+# $(AP_WORK)\build\NWGNUenvironment.inc

+#

+NLM_VERSION	=

+

+#

+# If this is specified, it will override the default of 64K

+#

+NLM_STACK_SIZE	= 8192

+

+

+#

+# If this is specified it will be used by the link '-entry' directive

+#

+NLM_ENTRY_SYM	= _LibCPrelude

+

+#

+# If this is specified it will be used by the link '-exit' directive

+#

+NLM_EXIT_SYM	= _LibCPostlude

+

+#

+# If this is specified it will be used by the link '-check' directive

+#

+NLM_CHECK_SYM	=

+

+#

+# If these are specified it will be used by the link '-flags' directive

+#

+NLM_FLAGS	= AUTOUNLOAD, PSEUDOPREEMPTION

+

+#

+# If this is specified it will be linked in with the XDCData option in the def

+# file instead of the default of $(NWOS)/apache.xdc.  XDCData can be disabled

+# by setting APACHE_UNIPROC in the environment

+#

+XDCDATA		=

+

+#

+# If there is an NLM target, put it here

+#

+TARGET_nlm = \

+	$(OBJDIR)\$(NLM_NAME).nlm \

+	$(EOLIST)

+

+#

+# If there is an LIB target, put it here

+#

+TARGET_lib = \

+	$(EOLIST)

+

+#

+# These are the OBJ files needed to create the NLM target above.

+# Paths must all use the '/' character

+#

+FILES_nlm_objs = \

+	$(OBJDIR)/apr_dbd_pgsql.o \

+	$(EOLIST)

+

+#

+# These are the LIB files needed to create the NLM target above.

+# These will be added as a library command in the link.opt file.

+#

+FILES_nlm_libs = \

+	libcpre.o \

+	$(EOLIST)

+

+ifeq ($(LINK_STATIC),1)

+FILES_nlm_libs += \

+	$(PGSQL_LIB) \

+	$(EOLIST)

+endif

+

+#

+# These are the modules that the above NLM target depends on to load.

+# These will be added as a module command in the link.opt file.

+#

+FILES_nlm_modules = \

+	aprlib \

+	libc \

+	$(EOLIST)

+

+ifneq ($(LINK_STATIC),1)

+FILES_nlm_modules += \

+	$(PGSQL_NLM) \

+	$(EOLIST)

+endif

+

+#

+# If the nlm has a msg file, put it's path here

+#

+FILE_nlm_msg =

+

+#

+# If the nlm has a hlp file put it's path here

+#

+FILE_nlm_hlp =

+

+#

+# If this is specified, it will override $(NWOS)\copyright.txt.

+#

+FILE_nlm_copyright =

+

+#

+# Any additional imports go here

+#

+FILES_nlm_Ximports = \

+	@$(APR)/aprlib.imp \

+	@libc.imp \

+	$(EOLIST)

+

+ifneq ($(LINK_STATIC),1)

+FILES_nlm_Ximports += \

+	@$(PGSQL_IMP) \

+	$(EOLIST)

+endif

+

+#

+# Any symbols exported to here

+#

+FILES_nlm_exports = \

+	apr_dbd_pgsql_driver \

+	$(EOLIST)

+

+#

+# These are the OBJ files needed to create the LIB target above.

+# Paths must all use the '/' character

+#

+FILES_lib_objs = \

+	$(EOLIST)

+

+#

+# implement targets and dependancies (leave this section alone)

+#

+

+libs :: $(OBJDIR) $(TARGET_lib)

+

+nlms :: libs $(TARGET_nlm)

+

+#

+# Updated this target to create necessary directories and copy files to the

+# correct place.  (See $(AP_WORK)\build\NWGNUhead.inc for examples)

+#

+install :: nlms FORCE

+

+#

+# Any specialized rules here

+#

+

+#

+# Include the 'tail' makefile that has targets that depend on variables defined

+# in this makefile

+#

+

+include $(APR_WORK)\build\NWGNUtail.inc

+

+

+

diff --git a/dbd/NWGNUdbdsqli2 b/dbd/NWGNUdbdsqli2
new file mode 100644
index 0000000..7aa95c9
--- /dev/null
+++ b/dbd/NWGNUdbdsqli2
@@ -0,0 +1,295 @@
+#

+# Declare the sub-directories to be built here

+#

+

+SUBDIRS = \

+	$(EOLIST)

+

+#

+# Get the 'head' of the build environment.  This includes default targets and

+# paths to tools

+#

+

+ifndef EnvironmentDefined

+include $(APR_WORK)\build\NWGNUhead.inc

+endif

+

+#include $(APR)\build\NWGNUcustom.inc

+

+#

+# build this level's files

+

+#

+# Make sure all needed macro's are defined

+#

+

+# LINK_STATIC = 1

+

+# for now defined here - should finally go into build/NWGNUenvironment.inc

+SQLITE2_INC = $(SQLITE2SDK)/src

+SQLITE2_IMP = $(SQLITE2SDK)/lsqlite2.imp

+SQLITE2_LIB = $(SQLITE2SDK)/lsqlite2.lib

+SQLITE2_NLM = lsqlite2

+

+#

+# These directories will be at the beginning of the include list, followed by

+# INCDIRS

+#

+XINCDIRS	+= \

+			$(APR)/include/arch/netware \

+			$(APR)/include \

+			$(APRUTIL)/include \

+			$(APRUTIL)/include/private \

+			$(APR) \

+			$(SQLITE2_INC) \

+			$(EOLIST)

+

+#

+# These flags will come after CFLAGS

+#

+XCFLAGS		+= \

+			$(EOLIST)

+

+#

+# These defines will come after DEFINES

+#

+XDEFINES	+= \

+			-DAPU_HAVE_SQLITE2=1 \

+			$(EOLIST)

+

+#

+# These flags will be added to the link.opt file

+#

+XLFLAGS		+= \

+			$(EOLIST)

+

+ifdef LINK_STATIC

+XLFLAGS		+= \

+			-l $(SQLITE2SDK) \

+			$(EOLIST)

+endif

+

+#

+# These values will be appended to the correct variables based on the value of

+# RELEASE

+#

+ifeq "$(RELEASE)" "debug"

+XINCDIRS	+= \

+			$(EOLIST)

+

+XCFLAGS		+= \

+			$(EOLIST)

+

+XDEFINES	+= \

+			$(EOLIST)

+

+XLFLAGS		+= \

+			$(EOLIST)

+endif

+

+ifeq "$(RELEASE)" "noopt"

+XINCDIRS	+= \

+			$(EOLIST)

+

+XCFLAGS		+= \

+			$(EOLIST)

+

+XDEFINES	+= \

+			$(EOLIST)

+

+XLFLAGS		+= \

+			$(EOLIST)

+endif

+

+ifeq "$(RELEASE)" "release"

+XINCDIRS	+= \

+			$(EOLIST)

+

+XCFLAGS		+= \

+			$(EOLIST)

+

+XDEFINES	+= \

+			$(EOLIST)

+

+XLFLAGS		+= \

+			$(EOLIST)

+endif

+

+#

+# These are used by the link target if an NLM is being generated

+# This is used by the link 'name' directive to name the nlm.  If left blank

+# TARGET_nlm (see below) will be used.

+#

+NLM_NAME	= dbdsqli2

+

+#

+# This is used by the link '-desc ' directive.

+# If left blank, NLM_NAME will be used.

+#

+NLM_DESCRIPTION	= Apache Portability Runtime Library $(VERSION_STR) DBD SQLite2 Driver Module

+

+#

+# This is used by the '-threadname' directive.  If left blank,

+# NLM_NAME Thread will be used.

+#

+NLM_THREAD_NAME	= dbdsqli2

+

+#

+# If this is specified, it will override VERSION value in

+# $(AP_WORK)\build\NWGNUenvironment.inc

+#

+NLM_VERSION	=

+

+#

+# If this is specified, it will override the default of 64K

+#

+NLM_STACK_SIZE	= 8192

+

+

+#

+# If this is specified it will be used by the link '-entry' directive

+#

+NLM_ENTRY_SYM	= _LibCPrelude

+

+#

+# If this is specified it will be used by the link '-exit' directive

+#

+NLM_EXIT_SYM	= _LibCPostlude

+

+#

+# If this is specified it will be used by the link '-check' directive

+#

+NLM_CHECK_SYM	=

+

+#

+# If these are specified it will be used by the link '-flags' directive

+#

+NLM_FLAGS	= AUTOUNLOAD, PSEUDOPREEMPTION

+

+#

+# If this is specified it will be linked in with the XDCData option in the def

+# file instead of the default of $(NWOS)/apache.xdc.  XDCData can be disabled

+# by setting APACHE_UNIPROC in the environment

+#

+XDCDATA		=

+

+#

+# If there is an NLM target, put it here

+#

+TARGET_nlm = \

+	$(OBJDIR)\$(NLM_NAME).nlm \

+	$(EOLIST)

+

+#

+# If there is an LIB target, put it here

+#

+TARGET_lib = \

+	$(EOLIST)

+

+#

+# These are the OBJ files needed to create the NLM target above.

+# Paths must all use the '/' character

+#

+FILES_nlm_objs = \

+	$(OBJDIR)/apr_dbd_sqlite2.o \

+	$(EOLIST)

+

+#

+# These are the LIB files needed to create the NLM target above.

+# These will be added as a library command in the link.opt file.

+#

+FILES_nlm_libs = \

+	libcpre.o \

+	$(EOLIST)

+

+ifeq ($(LINK_STATIC),1)

+FILES_nlm_libs += \

+	$(SQLITE2_LIB) \

+	$(EOLIST)

+endif

+

+#

+# These are the modules that the above NLM target depends on to load.

+# These will be added as a module command in the link.opt file.

+#

+FILES_nlm_modules = \

+	aprlib \

+	libc \

+	$(EOLIST)

+

+ifneq ($(LINK_STATIC),1)

+FILES_nlm_modules += \

+	$(SQLITE2_NLM) \

+	$(EOLIST)

+endif

+

+#

+# If the nlm has a msg file, put it's path here

+#

+FILE_nlm_msg =

+

+#

+# If the nlm has a hlp file put it's path here

+#

+FILE_nlm_hlp =

+

+#

+# If this is specified, it will override $(NWOS)\copyright.txt.

+#

+FILE_nlm_copyright =

+

+#

+# Any additional imports go here

+#

+FILES_nlm_Ximports = \

+	@$(APR)/aprlib.imp \

+	@libc.imp \

+	$(EOLIST)

+

+ifneq ($(LINK_STATIC),1)

+FILES_nlm_Ximports += \

+	@$(SQLITE2_IMP) \

+	$(EOLIST)

+endif

+

+#

+# Any symbols exported to here

+#

+FILES_nlm_exports = \

+	apr_dbd_sqlite2_driver \

+	$(EOLIST)

+

+#

+# These are the OBJ files needed to create the LIB target above.

+# Paths must all use the '/' character

+#

+FILES_lib_objs = \

+	$(EOLIST)

+

+#

+# implement targets and dependancies (leave this section alone)

+#

+

+libs :: $(OBJDIR) $(TARGET_lib)

+

+nlms :: libs $(TARGET_nlm)

+

+#

+# Updated this target to create necessary directories and copy files to the

+# correct place.  (See $(AP_WORK)\build\NWGNUhead.inc for examples)

+#

+install :: nlms FORCE

+

+#

+# Any specialized rules here

+#

+

+#

+# Include the 'tail' makefile that has targets that depend on variables defined

+# in this makefile

+#

+

+include $(APR_WORK)\build\NWGNUtail.inc

+

+

+

diff --git a/dbd/NWGNUdbdsqli3 b/dbd/NWGNUdbdsqli3
new file mode 100644
index 0000000..81bd4db
--- /dev/null
+++ b/dbd/NWGNUdbdsqli3
@@ -0,0 +1,297 @@
+#

+# Declare the sub-directories to be built here

+#

+

+SUBDIRS = \

+	$(EOLIST)

+

+#

+# Get the 'head' of the build environment.  This includes default targets and

+# paths to tools

+#

+

+ifndef EnvironmentDefined

+include $(APR_WORK)\build\NWGNUhead.inc

+endif

+

+#include $(APR)\build\NWGNUcustom.inc

+

+#

+# build this level's files

+

+#

+# Make sure all needed macro's are defined

+#

+

+# LINK_STATIC = 1

+

+# for now defined here - should finally go into build/NWGNUenvironment.inc

+SQLITE3_INC = $(SQLITE3SDK)/src

+SQLITE3_IMP = $(SQLITE3SDK)/lsqlite3.imp

+SQLITE3_LIB = $(SQLITE3SDK)/lsqlite3.lib

+SQLITE3_NLM = lsqlite3

+

+#

+# These directories will be at the beginning of the include list, followed by

+# INCDIRS

+#

+XINCDIRS	+= \

+			$(APR)/include/arch/netware \

+			$(APR)/include \

+			$(APRUTIL)/include \

+			$(APRUTIL)/include/private \

+			$(APR) \

+			$(SQLITE3_INC) \

+			$(EOLIST)

+

+#

+# These flags will come after CFLAGS

+#

+XCFLAGS		+= \

+			$(EOLIST)

+

+#

+# These defines will come after DEFINES

+#

+XDEFINES	+= \

+			-DAPU_HAVE_SQLITE3=1 \

+			$(EOLIST)

+

+#

+# These flags will be added to the link.opt file

+#

+XLFLAGS		+= \

+			$(EOLIST)

+

+ifdef LINK_STATIC

+XLFLAGS		+= \

+			-l $(SQLITE3SDK) \

+			$(EOLIST)

+endif

+

+#

+# These values will be appended to the correct variables based on the value of

+# RELEASE

+#

+ifeq "$(RELEASE)" "debug"

+XINCDIRS	+= \

+			$(EOLIST)

+

+XCFLAGS		+= \

+			$(EOLIST)

+

+XDEFINES	+= \

+			$(EOLIST)

+

+XLFLAGS		+= \

+			$(EOLIST)

+endif

+

+ifeq "$(RELEASE)" "noopt"

+XINCDIRS	+= \

+			$(EOLIST)

+

+XCFLAGS		+= \

+			$(EOLIST)

+

+XDEFINES	+= \

+			$(EOLIST)

+

+XLFLAGS		+= \

+			$(EOLIST)

+endif

+

+ifeq "$(RELEASE)" "release"

+XINCDIRS	+= \

+			$(EOLIST)

+

+XCFLAGS		+= \

+			$(EOLIST)

+

+XDEFINES	+= \

+			$(EOLIST)

+

+XLFLAGS		+= \

+			$(EOLIST)

+endif

+

+#

+# These are used by the link target if an NLM is being generated

+# This is used by the link 'name' directive to name the nlm.  If left blank

+# TARGET_nlm (see below) will be used.

+#

+NLM_NAME	= dbdsqli3

+

+#

+# This is used by the link '-desc ' directive.

+# If left blank, NLM_NAME will be used.

+#

+NLM_DESCRIPTION	= Apache Portability Runtime Library $(VERSION_STR) DBD SQLite3 Driver Module

+

+#

+# This is used by the '-threadname' directive.  If left blank,

+# NLM_NAME Thread will be used.

+#

+NLM_THREAD_NAME	= dbdsqli3

+

+#

+# If this is specified, it will override VERSION value in

+# $(AP_WORK)\build\NWGNUenvironment.inc

+#

+NLM_VERSION	=

+

+#

+# If this is specified, it will override the default of 64K

+#

+NLM_STACK_SIZE	= 8192

+

+

+#

+# If this is specified it will be used by the link '-entry' directive

+#

+NLM_ENTRY_SYM	= _LibCPrelude

+

+#

+# If this is specified it will be used by the link '-exit' directive

+#

+NLM_EXIT_SYM	= _LibCPostlude

+

+#

+# If this is specified it will be used by the link '-check' directive

+#

+NLM_CHECK_SYM	=

+

+#

+# If these are specified it will be used by the link '-flags' directive

+#

+NLM_FLAGS	= AUTOUNLOAD, PSEUDOPREEMPTION

+

+#

+# If this is specified it will be linked in with the XDCData option in the def

+# file instead of the default of $(NWOS)/apache.xdc.  XDCData can be disabled

+# by setting APACHE_UNIPROC in the environment

+#

+XDCDATA		=

+

+#

+# If there is an NLM target, put it here

+#

+TARGET_nlm = \

+	$(OBJDIR)\$(NLM_NAME).nlm \

+	$(EOLIST)

+

+#

+# If there is an LIB target, put it here

+#

+TARGET_lib = \

+	$(EOLIST)

+

+#

+# These are the OBJ files needed to create the NLM target above.

+# Paths must all use the '/' character

+#

+FILES_nlm_objs = \

+	$(OBJDIR)/apr_dbd_sqlite3.o \

+	$(EOLIST)

+

+#

+# These are the LIB files needed to create the NLM target above.

+# These will be added as a library command in the link.opt file.

+#

+FILES_nlm_libs = \

+	libcpre.o \

+	$(EOLIST)

+

+ifeq ($(LINK_STATIC),1)

+FILES_nlm_libs += \

+	$(SQLITE3_LIB) \

+	$(EOLIST)

+endif

+

+#

+# These are the modules that the above NLM target depends on to load.

+# These will be added as a module command in the link.opt file.

+#

+FILES_nlm_modules = \

+	aprlib \

+	libc \

+	$(EOLIST)

+

+ifneq ($(LINK_STATIC),1)

+FILES_nlm_modules += \

+	$(SQLITE3_NLM) \

+	$(EOLIST)

+endif

+

+#

+# If the nlm has a msg file, put it's path here

+#

+FILE_nlm_msg =

+

+#

+# If the nlm has a hlp file put it's path here

+#

+FILE_nlm_hlp =

+

+#

+# If this is specified, it will override $(NWOS)\copyright.txt.

+#

+FILE_nlm_copyright =

+

+#

+# Any additional imports go here

+#

+FILES_nlm_Ximports = \

+	@$(APR)/aprlib.imp \

+	@libc.imp \

+	apr_dbd_mutex_lock \

+	apr_dbd_mutex_unlock \

+	$(EOLIST)

+

+ifneq ($(LINK_STATIC),1)

+FILES_nlm_Ximports += \

+	@$(SQLITE3_IMP) \

+	$(EOLIST)

+endif

+

+#

+# Any symbols exported to here

+#

+FILES_nlm_exports = \

+	apr_dbd_sqlite3_driver \

+	$(EOLIST)

+

+#

+# These are the OBJ files needed to create the LIB target above.

+# Paths must all use the '/' character

+#

+FILES_lib_objs = \

+	$(EOLIST)

+

+#

+# implement targets and dependancies (leave this section alone)

+#

+

+libs :: $(OBJDIR) $(TARGET_lib)

+

+nlms :: libs $(TARGET_nlm)

+

+#

+# Updated this target to create necessary directories and copy files to the

+# correct place.  (See $(AP_WORK)\build\NWGNUhead.inc for examples)

+#

+install :: nlms FORCE

+

+#

+# Any specialized rules here

+#

+

+#

+# Include the 'tail' makefile that has targets that depend on variables defined

+# in this makefile

+#

+

+include $(APR_WORK)\build\NWGNUtail.inc

+

+

+

diff --git a/dbd/NWGNUmakefile b/dbd/NWGNUmakefile
new file mode 100644
index 0000000..bf04fc8
--- /dev/null
+++ b/dbd/NWGNUmakefile
@@ -0,0 +1,259 @@
+#

+# Declare the sub-directories to be built here

+#

+

+SUBDIRS = \

+	$(EOLIST)

+

+#

+# Get the 'head' of the build environment.  This includes default targets and

+# paths to tools

+#

+

+include $(APR_WORK)\build\NWGNUhead.inc

+

+#

+# build this level's files

+

+#

+# Make sure all needed macro's are defined

+#

+

+#

+# These directories will be at the beginning of the include list, followed by

+# INCDIRS

+#

+XINCDIRS	+= \

+			$(EOLIST)

+

+#

+# These flags will come after CFLAGS

+#

+XCFLAGS		+= \

+			$(EOLIST)

+

+#

+# These defines will come after DEFINES

+#

+XDEFINES	+= \

+			$(EOLIST)

+

+#

+# These flags will be added to the link.opt file

+#

+XLFLAGS		+= \

+			$(EOLIST)

+

+#

+# These values will be appended to the correct variables based on the value of

+# RELEASE

+#

+ifeq "$(RELEASE)" "debug"

+XINCDIRS	+= \

+			$(EOLIST)

+

+XCFLAGS		+= \

+			$(EOLIST)

+

+XDEFINES	+= \

+			$(EOLIST)

+

+XLFLAGS		+= \

+			$(EOLIST)

+endif

+

+ifeq "$(RELEASE)" "noopt"

+XINCDIRS	+= \

+			$(EOLIST)

+

+XCFLAGS		+= \

+			$(EOLIST)

+

+XDEFINES	+= \

+			$(EOLIST)

+

+XLFLAGS		+= \

+			$(EOLIST)

+endif

+

+ifeq "$(RELEASE)" "release"

+XINCDIRS	+= \

+			$(EOLIST)

+

+XCFLAGS		+= \

+			$(EOLIST)

+

+XDEFINES	+= \

+			$(EOLIST)

+

+XLFLAGS		+= \

+			$(EOLIST)

+endif

+

+#

+# These are used by the link target if an NLM is being generated

+# This is used by the link 'name' directive to name the nlm.  If left blank

+# TARGET_nlm (see below) will be used.

+#

+NLM_NAME	=

+

+#

+# This is used by the link '-desc ' directive.

+# If left blank, NLM_NAME will be used.

+#

+NLM_DESCRIPTION	=

+

+#

+# This is used by the '-threadname' directive.  If left blank,

+# NLM_NAME Thread will be used.

+#

+NLM_THREAD_NAME	=

+

+#

+# If this is specified, it will override VERSION value in

+# $(AP_WORK)\build\NWGNUenvironment.inc

+#

+NLM_VERSION	=

+

+#

+# If this is specified, it will override the default of 64K

+#

+NLM_STACK_SIZE	=

+

+

+#

+# If this is specified it will be used by the link '-entry' directive

+#

+NLM_ENTRY_SYM	=

+

+#

+# If this is specified it will be used by the link '-exit' directive

+#

+NLM_EXIT_SYM	=

+

+#

+# If this is specified it will be used by the link '-check' directive

+#

+NLM_CHECK_SYM	=

+

+#

+# If these are specified it will be used by the link '-flags' directive

+#

+NLM_FLAGS	=

+

+#

+# If this is specified it will be linked in with the XDCData option in the def

+# file instead of the default of $(NWOS)/apache.xdc.  XDCData can be disabled

+# by setting APACHE_UNIPROC in the environment

+#

+XDCDATA		=

+

+#

+# If there is an NLM target, put it here

+#

+TARGET_nlm = \

+	$(EOLIST)

+

+ifeq "$(APU_HAVE_MYSQL)" "1"

+ifeq "$(wildcard apr_dbd_mysql.c)" "apr_dbd_mysql.c"

+TARGET_nlm += $(OBJDIR)/dbdmysql.nlm $(OBJDIR)/dbdmysql.nlm $(EOLIST)

+endif

+endif

+ifeq "$(APU_HAVE_PGSQL)" "1"

+TARGET_nlm += $(OBJDIR)/dbdpgsql.nlm $(OBJDIR)/dbdpgsql.nlm $(EOLIST)

+endif

+ifeq "$(APU_HAVE_SQLITE2)" "1"

+TARGET_nlm += $(OBJDIR)/dbdsqli2.nlm $(OBJDIR)/dbdsqli2.nlm $(EOLIST)

+endif

+ifeq "$(APU_HAVE_SQLITE3)" "1"

+TARGET_nlm += $(OBJDIR)/dbdsqli3.nlm $(OBJDIR)/dbdsqli3.nlm $(EOLIST)

+endif

+

+#

+# If there is an LIB target, put it here

+#

+TARGET_lib = \

+	$(EOLIST)

+

+#

+# These are the OBJ files needed to create the NLM target above.

+# Paths must all use the '/' character

+#

+FILES_nlm_objs = \

+	$(EOLIST)

+

+#

+# These are the LIB files needed to create the NLM target above.

+# These will be added as a library command in the link.opt file.

+#

+FILES_nlm_libs = \

+	$(EOLIST)

+

+#

+# These are the modules that the above NLM target depends on to load.

+# These will be added as a module command in the link.opt file.

+#

+FILES_nlm_modules = \

+	$(EOLIST)

+

+#

+# If the nlm has a msg file, put it's path here

+#

+FILE_nlm_msg =

+

+#

+# If the nlm has a hlp file put it's path here

+#

+FILE_nlm_hlp =

+

+#

+# If this is specified, it will override $(NWOS)\copyright.txt.

+#

+FILE_nlm_copyright =

+

+#

+# Any additional imports go here

+#

+FILES_nlm_Ximports = \

+	$(EOLIST)

+

+#

+# Any symbols exported to here

+#

+FILES_nlm_exports = \

+	$(EOLIST)

+

+#

+# These are the OBJ files needed to create the LIB target above.

+# Paths must all use the '/' character

+#

+FILES_lib_objs = \

+	$(EOLIST)

+

+#

+# implement targets and dependancies (leave this section alone)

+#

+

+libs :: $(OBJDIR) $(TARGET_lib)

+

+nlms :: libs $(TARGET_nlm)

+

+#

+# Updated this target to create necessary directories and copy files to the

+# correct place.  (See $(AP_WORK)\build\NWGNUhead.inc for examples)

+#

+install :: nlms $(INSTDIRS) FORCE

+	copy $(OBJDIR)\*.nlm $(INSTALLBASE)

+

+#

+# Any specialized rules here

+#

+

+#

+# Include the 'tail' makefile that has targets that depend on variables defined

+# in this makefile

+#

+

+include $(APR_WORK)\build\NWGNUtail.inc

+

+

diff --git a/dbd/apr_dbd.c b/dbd/apr_dbd.c
new file mode 100644
index 0000000..4eed391
--- /dev/null
+++ b/dbd/apr_dbd.c
@@ -0,0 +1,305 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdio.h>
+
+#include "apu.h"
+#include "apr_pools.h"
+#include "apr_dbd_internal.h"
+#include "apr_dbd.h"
+#include "apr_hash.h"
+#include "apr_thread_mutex.h"
+#include "apr_dso.h"
+#include "apr_strings.h"
+
+static apr_hash_t *drivers = NULL;
+
+#define CLEANUP_CAST (apr_status_t (*)(void*))
+
+/* Once the autofoo supports building it for dynamic load, we can use
+ * #define APR_DSO_BUILD APR_HAS_DSO
+ */
+
+#if APR_DSO_BUILD
+#if APR_HAS_THREADS
+static apr_thread_mutex_t* mutex = NULL;
+#endif
+#else
+#define DRIVER_LOAD(name,driver,pool) \
+    {   \
+        extern const apr_dbd_driver_t driver; \
+        apr_hash_set(drivers,name,APR_HASH_KEY_STRING,&driver); \
+        if (driver.init) {     \
+            driver.init(pool); \
+        }  \
+    }
+#endif
+
+static apr_status_t apr_dbd_term(void *ptr)
+{
+    /* set drivers to NULL so init can work again */
+    drivers = NULL;
+
+    /* Everything else we need is handled by cleanups registered
+     * when we created mutexes and loaded DSOs
+     */
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_status_t) apr_dbd_init(apr_pool_t *pool)
+{
+    apr_status_t ret = APR_SUCCESS;
+
+    if (drivers != NULL) {
+        return APR_SUCCESS;
+    }
+    drivers = apr_hash_make(pool);
+    apr_pool_cleanup_register(pool, NULL, apr_dbd_term,
+                              apr_pool_cleanup_null);
+
+#if APR_DSO_BUILD
+
+#if APR_HAS_THREADS
+    ret = apr_thread_mutex_create(&mutex, APR_THREAD_MUTEX_DEFAULT, pool);
+    /* This already registers a pool cleanup */
+#endif
+
+#else
+
+#if APU_HAVE_MYSQL
+    DRIVER_LOAD("mysql", apr_dbd_mysql_driver, pool);
+#endif
+#if APU_HAVE_PGSQL
+    DRIVER_LOAD("pgsql", apr_dbd_pgsql_driver, pool);
+#endif
+#if APU_HAVE_SQLITE3
+    DRIVER_LOAD("sqlite3", apr_dbd_sqlite3_driver, pool);
+#endif
+#if APU_HAVE_SQLITE2
+    DRIVER_LOAD("sqlite2", apr_dbd_sqlite2_driver, pool);
+#endif
+#if APU_HAVE_SOME_OTHER_BACKEND
+    DRIVER_LOAD("firebird", apr_dbd_other_driver, pool);
+#endif
+#endif
+    return ret;
+}
+APU_DECLARE(apr_status_t) apr_dbd_get_driver(apr_pool_t *pool, const char *name,
+                                             const apr_dbd_driver_t **driver)
+{
+#if APR_DSO_BUILD
+    char path[80];
+    apr_dso_handle_t *dlhandle = NULL;
+#endif
+    apr_status_t rv;
+
+   *driver = apr_hash_get(drivers, name, APR_HASH_KEY_STRING);
+    if (*driver) {
+        return APR_SUCCESS;
+    }
+
+#if APR_DSO_BUILD
+
+#if APR_HAS_THREADS
+    rv = apr_thread_mutex_lock(mutex);
+    if (rv != APR_SUCCESS) {
+        goto unlock;
+    }
+    *driver = apr_hash_get(drivers, name, APR_HASH_KEY_STRING);
+    if (*driver) {
+        goto unlock;
+    }
+#endif
+
+#ifdef WIN32
+    apr_snprintf(path, sizeof path, "apr_dbd_%s.dll", name);
+#elif defined(NETWARE)
+    apr_snprintf(path, sizeof path, "dbd%s.nlm", name);
+#else
+    apr_snprintf(path, sizeof path, "apr_dbd_%s.so", name);
+#endif
+    rv = apr_dso_load(&dlhandle, path, pool);
+    if (rv != APR_SUCCESS) { /* APR_EDSOOPEN */
+        goto unlock;
+    }
+    apr_snprintf(path, sizeof path, "apr_dbd_%s_driver", name);
+    rv = apr_dso_sym((void*)driver, dlhandle, path);
+    if (rv != APR_SUCCESS) { /* APR_ESYMNOTFOUND */
+        apr_dso_unload(dlhandle);
+        goto unlock;
+    }
+    if ((*driver)->init) {
+        (*driver)->init(pool);
+    }
+    apr_hash_set(drivers, name, APR_HASH_KEY_STRING, *driver);
+
+unlock:
+#if APR_HAS_THREADS
+    apr_thread_mutex_unlock(mutex);
+#endif
+
+#else	/* APR_DSO_BUILD - so if it wasn't already loaded, it's NOTIMPL */
+    rv = APR_ENOTIMPL;
+#endif
+
+    return rv;
+}
+APU_DECLARE(apr_status_t) apr_dbd_open(const apr_dbd_driver_t *driver,
+                                       apr_pool_t *pool, const char *params,
+                                       apr_dbd_t **handle)
+{
+    apr_status_t rv;
+    *handle = (driver->open)(pool, params);
+    if (*handle == NULL) {
+        return APR_EGENERAL;
+    }
+    rv = apr_dbd_check_conn(driver, pool, *handle);
+    if ((rv != APR_SUCCESS) && (rv != APR_ENOTIMPL)) {
+        apr_dbd_close(driver, *handle);
+        return APR_EGENERAL;
+    }
+    return APR_SUCCESS;
+}
+APU_DECLARE(int) apr_dbd_transaction_start(const apr_dbd_driver_t *driver,
+                                           apr_pool_t *pool, apr_dbd_t *handle,
+                                           apr_dbd_transaction_t **trans)
+{
+    int ret = driver->start_transaction(pool, handle, trans);
+    if (*trans) {
+        apr_pool_cleanup_register(pool, *trans,
+                                  CLEANUP_CAST driver->end_transaction,
+                                  apr_pool_cleanup_null);
+    }
+    return ret;
+}
+APU_DECLARE(int) apr_dbd_transaction_end(const apr_dbd_driver_t *driver,
+                                         apr_pool_t *pool,
+                                         apr_dbd_transaction_t *trans)
+{
+    apr_pool_cleanup_kill(pool, trans, CLEANUP_CAST driver->end_transaction);
+    return driver->end_transaction(trans);
+}
+
+APU_DECLARE(apr_status_t) apr_dbd_close(const apr_dbd_driver_t *driver,
+                                        apr_dbd_t *handle)
+{
+    return driver->close(handle);
+}
+APU_DECLARE(const char*) apr_dbd_name(const apr_dbd_driver_t *driver)
+{
+    return driver->name;
+}
+APU_DECLARE(void*) apr_dbd_native_handle(const apr_dbd_driver_t *driver,
+                                         apr_dbd_t *handle)
+{
+    return driver->native_handle(handle);
+}
+APU_DECLARE(int) apr_dbd_check_conn(const apr_dbd_driver_t *driver, apr_pool_t *pool,
+                                    apr_dbd_t *handle)
+{
+    return driver->check_conn(pool, handle);
+}
+APU_DECLARE(int) apr_dbd_set_dbname(const apr_dbd_driver_t *driver, apr_pool_t *pool,
+                                   apr_dbd_t *handle, const char *name)
+{
+    return driver->set_dbname(pool,handle,name);
+}
+APU_DECLARE(int) apr_dbd_query(const apr_dbd_driver_t *driver, apr_dbd_t *handle,
+                               int *nrows, const char *statement)
+{
+    return driver->query(handle,nrows,statement);
+}
+APU_DECLARE(int) apr_dbd_select(const apr_dbd_driver_t *driver, apr_pool_t *pool,
+                                apr_dbd_t *handle, apr_dbd_results_t **res,
+                                const char *statement, int random)
+{
+    return driver->select(pool,handle,res,statement,random);
+}
+APU_DECLARE(int) apr_dbd_num_cols(const apr_dbd_driver_t *driver,
+                                  apr_dbd_results_t *res)
+{
+    return driver->num_cols(res);
+}
+APU_DECLARE(int) apr_dbd_num_tuples(const apr_dbd_driver_t *driver,
+                                    apr_dbd_results_t *res)
+{
+    return driver->num_tuples(res);
+}
+APU_DECLARE(int) apr_dbd_get_row(const apr_dbd_driver_t *driver, apr_pool_t *pool,
+                                 apr_dbd_results_t *res, apr_dbd_row_t **row,
+                                 int rownum)
+{
+    return driver->get_row(pool,res,row,rownum);
+}
+APU_DECLARE(const char*) apr_dbd_get_entry(const apr_dbd_driver_t *driver,
+                                           apr_dbd_row_t *row, int col)
+{
+    return driver->get_entry(row,col);
+}
+APU_DECLARE(const char*) apr_dbd_error(const apr_dbd_driver_t *driver,
+                                       apr_dbd_t *handle, int errnum)
+{
+    return driver->error(handle,errnum);
+}
+APU_DECLARE(const char*) apr_dbd_escape(const apr_dbd_driver_t *driver,
+                                        apr_pool_t *pool, const char *string,
+                                        apr_dbd_t *handle)
+{
+    return driver->escape(pool,string,handle);
+}
+APU_DECLARE(int) apr_dbd_prepare(const apr_dbd_driver_t *driver, apr_pool_t *pool,
+                                 apr_dbd_t *handle, const char *query,
+                                 const char *label,
+                                 apr_dbd_prepared_t **statement)
+{
+    return driver->prepare(pool,handle,query,label,statement);
+}
+APU_DECLARE(int) apr_dbd_pquery(const apr_dbd_driver_t *driver, apr_pool_t *pool,
+                                apr_dbd_t *handle, int *nrows,
+                                apr_dbd_prepared_t *statement, int nargs,
+                                const char **args)
+{
+    return driver->pquery(pool,handle,nrows,statement,nargs,args);
+}
+APU_DECLARE(int) apr_dbd_pselect(const apr_dbd_driver_t *driver, apr_pool_t *pool,
+                                 apr_dbd_t *handle, apr_dbd_results_t **res,
+                                 apr_dbd_prepared_t *statement, int random,
+                                 int nargs, const char **args)
+{
+    return driver->pselect(pool,handle,res,statement,random,nargs,args);
+}
+APU_DECLARE(int) apr_dbd_pvquery(const apr_dbd_driver_t *driver, apr_pool_t *pool,
+                                 apr_dbd_t *handle, int *nrows,
+                                 apr_dbd_prepared_t *statement,...)
+{
+    int ret;
+    va_list args;
+    va_start(args, statement);
+    ret = driver->pvquery(pool,handle,nrows,statement,args);
+    va_end(args);
+    return ret;
+}
+APU_DECLARE(int) apr_dbd_pvselect(const apr_dbd_driver_t *driver, apr_pool_t *pool,
+                                  apr_dbd_t *handle, apr_dbd_results_t **res,
+                                  apr_dbd_prepared_t *statement, int random,...)
+{
+    int ret;
+    va_list args;
+    va_start(args, random);
+    ret = driver->pvselect(pool,handle,res,statement,random,args);
+    va_end(args);
+    return ret;
+}
diff --git a/dbd/apr_dbd_mysql.c b/dbd/apr_dbd_mysql.c
new file mode 100644
index 0000000..65b862e
--- /dev/null
+++ b/dbd/apr_dbd_mysql.c
@@ -0,0 +1,771 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apu.h"
+#define HAVE_MYSQL_MYSQL_H
+
+#if APU_HAVE_MYSQL
+
+#include "apu_version.h"
+#include "apu_config.h"
+
+#include <ctype.h>
+#include <stdlib.h>
+
+#ifdef HAVE_MYSQL_H
+#include <mysql.h>
+#include <errmsg.h>
+#elif defined(HAVE_MYSQL_MYSQL_H)
+#include <mysql/mysql.h>
+#include <mysql/errmsg.h>
+#endif
+
+#include "apr_strings.h"
+#include "apr_buckets.h"
+
+#include "apr_dbd_internal.h"
+
+/* default maximum field size 1 MB */
+#define FIELDSIZE 1048575
+
+struct apr_dbd_prepared_t {
+    MYSQL_STMT* stmt;
+};
+
+struct apr_dbd_transaction_t {
+    int errnum;
+    apr_dbd_t *handle;
+};
+
+struct apr_dbd_t {
+    MYSQL* conn ;
+    apr_dbd_transaction_t* trans ;
+    unsigned long fldsz;
+};
+
+struct apr_dbd_results_t {
+    int random;
+    MYSQL_RES *res;
+    MYSQL_STMT *statement;
+    MYSQL_BIND *bind;
+};
+struct apr_dbd_row_t {
+    MYSQL_ROW row;
+    apr_dbd_results_t *res;
+};
+
+static apr_status_t free_result(void *data)
+{
+    mysql_free_result(data);
+    return APR_SUCCESS;
+}
+
+static int dbd_mysql_select(apr_pool_t *pool, apr_dbd_t *sql,
+                            apr_dbd_results_t **results,
+                            const char *query, int seek)
+{
+    int sz;
+    int ret;
+    if (sql->trans && sql->trans->errnum) {
+        return sql->trans->errnum;
+    }
+    ret = mysql_query(sql->conn, query);
+    if (!ret) {
+        if (sz = mysql_field_count(sql->conn), sz > 0) {
+            if (!*results) {
+                *results = apr_palloc(pool, sizeof(apr_dbd_results_t));
+            }
+            (*results)->random = seek;
+            (*results)->statement = NULL;
+            if (seek) {
+                (*results)->res = mysql_store_result(sql->conn);
+            }
+            else {
+                (*results)->res = mysql_use_result(sql->conn);
+            }
+            apr_pool_cleanup_register(pool, (*results)->res,
+                                      free_result,apr_pool_cleanup_null);
+        }
+    } else {
+        ret = mysql_errno(sql->conn);
+    }
+    
+    if (sql->trans) {
+        sql->trans->errnum = ret;
+    }
+    return ret;
+}
+
+static int dbd_mysql_get_row(apr_pool_t *pool, apr_dbd_results_t *res,
+                             apr_dbd_row_t **row, int rownum)
+{
+    MYSQL_ROW r = NULL;
+    int ret = 0;
+
+    if (res->statement) {
+        if (res->random) {
+            if (rownum >= 0) {
+                mysql_stmt_data_seek(res->statement, (my_ulonglong)rownum);
+            }
+        }
+        ret = mysql_stmt_fetch(res->statement);
+        switch (ret) {
+        case 1:
+            ret = mysql_stmt_errno(res->statement);
+            break;
+        case MYSQL_NO_DATA:
+            ret = -1;
+            break;
+        default:
+            ret = 0; /* bad luck - get_entry will deal with this */
+            break;
+        }
+    }
+    else {
+        if (res->random) {
+            if (rownum >= 0) {
+                mysql_data_seek(res->res, (my_ulonglong) rownum);
+            }
+        }
+        r = mysql_fetch_row(res->res);
+        if (r == NULL) {
+            ret = -1;
+        }
+    }
+    if (ret == 0) {
+        if (!*row) {
+            *row = apr_palloc(pool, sizeof(apr_dbd_row_t));
+        }
+        (*row)->row = r;
+        (*row)->res = res;
+    }
+    else {
+        apr_pool_cleanup_run(pool, res->res, free_result);
+    }
+    return ret;
+}
+#if 0
+/* An improved API that was proposed but not followed up */
+static int dbd_mysql_get_entry(const apr_dbd_row_t *row, int n,
+                               apr_dbd_datum_t *val)
+{
+    MYSQL_BIND *bind;
+    if (row->res->statement) {
+        bind = &row->res->bind[n];
+        if (mysql_stmt_fetch_column(row->res->statement, bind, n, 0) != 0) {
+            val->type = APR_DBD_VALUE_NULL;
+            return -1;
+        }
+        if (*bind->is_null) {
+            val->type = APR_DBD_VALUE_NULL;
+            return -1;
+        }
+        else {
+            val->type = APR_DBD_VALUE_STRING;
+            val->value.stringval = bind->buffer;
+        }
+    }
+    else {
+        val->type = APR_DBD_VALUE_STRING;
+        val->value.stringval = row->row[n];
+    }
+    return 0;
+}
+#else
+
+static const char *dbd_mysql_get_entry(const apr_dbd_row_t *row, int n)
+{
+    MYSQL_BIND *bind;
+    if (row->res->statement) {
+        bind = &row->res->bind[n];
+        if (mysql_stmt_fetch_column(row->res->statement, bind, n, 0) != 0) {
+            return NULL;
+        }
+        if (*bind->is_null) {
+            return NULL;
+        }
+        else {
+            return bind->buffer;
+        }
+    }
+    else {
+        return row->row[n];
+    }
+    return NULL;
+}
+#endif
+
+static const char *dbd_mysql_error(apr_dbd_t *sql, int n)
+{
+    return mysql_error(sql->conn);
+}
+
+static int dbd_mysql_query(apr_dbd_t *sql, int *nrows, const char *query)
+{
+    int ret;
+    if (sql->trans && sql->trans->errnum) {
+        return sql->trans->errnum;
+    }
+    ret = mysql_query(sql->conn, query);
+    if (ret != 0) {
+        ret = mysql_errno(sql->conn);
+    }
+    *nrows = mysql_affected_rows(sql->conn);
+    if (sql->trans) {
+        sql->trans->errnum = ret;
+    }
+    return ret;
+}
+
+static const char *dbd_mysql_escape(apr_pool_t *pool, const char *arg,
+                                    apr_dbd_t *sql)
+{
+    unsigned long len = strlen(arg);
+    char *ret = apr_palloc(pool, 2*len + 1);
+    mysql_real_escape_string(sql->conn, ret, arg, len);
+    return ret;
+}
+
+static apr_status_t stmt_close(void *data)
+{
+    mysql_stmt_close(data);
+    return APR_SUCCESS;
+}
+
+static int dbd_mysql_prepare(apr_pool_t *pool, apr_dbd_t *sql,
+                             const char *query, const char *label,
+                             apr_dbd_prepared_t **statement)
+{
+    /* Translate from apr_dbd to native query format */
+    char *myquery = apr_pstrdup(pool, query);
+    char *p = myquery;
+    const char *q;
+    int ret;
+    for (q = query; *q; ++q) {
+        if (q[0] == '%') {
+            if (isalpha(q[1])) {
+                *p++ = '?';
+                ++q;
+            }
+            else if (q[1] == '%') {
+                /* reduce %% to % */
+                *p++ = *q++;
+            }
+            else {
+                *p++ = *q;
+            }
+        }
+        else {
+            *p++ = *q;
+        }
+    } 
+    *p = 0;
+    if (!*statement) {
+        *statement = apr_palloc(pool, sizeof(apr_dbd_prepared_t));
+    }
+    (*statement)->stmt = mysql_stmt_init(sql->conn);
+
+    if ((*statement)->stmt) {
+        apr_pool_cleanup_register(pool, (*statement)->stmt,
+                                  stmt_close, apr_pool_cleanup_null);
+        ret = mysql_stmt_prepare((*statement)->stmt, myquery, strlen(myquery));
+
+        if (ret != 0) {
+            ret = mysql_stmt_errno((*statement)->stmt);
+        }
+
+        return ret;
+    }
+
+    return CR_OUT_OF_MEMORY;
+}
+
+static int dbd_mysql_pquery(apr_pool_t *pool, apr_dbd_t *sql,
+                            int *nrows, apr_dbd_prepared_t *statement,
+                            int nargs, const char **values)
+{
+    MYSQL_BIND *bind;
+    char *arg;
+    int ret;
+    int i;
+    my_bool is_null = FALSE;
+
+    if (sql->trans && sql->trans->errnum) {
+        return sql->trans->errnum;
+    }
+    nargs = mysql_stmt_param_count(statement->stmt);
+
+    bind = apr_palloc(pool, nargs*sizeof(MYSQL_BIND));
+    for (i=0; i < nargs; ++i) {
+        arg = (char*)values[i];
+        bind[i].buffer_type = MYSQL_TYPE_VAR_STRING;
+        bind[i].buffer = arg;
+        bind[i].buffer_length = strlen(arg);
+        bind[i].length = &bind[i].buffer_length;
+        bind[i].is_null = &is_null;
+        bind[i].is_unsigned = 0;
+    }
+
+    ret = mysql_stmt_bind_param(statement->stmt, bind);
+    if (ret != 0) {
+        *nrows = 0;
+        ret = mysql_stmt_errno(statement->stmt);
+    }
+    else {
+        ret = mysql_stmt_execute(statement->stmt);
+        if (ret != 0) {
+            ret = mysql_stmt_errno(statement->stmt);
+        }
+        *nrows = mysql_stmt_affected_rows(statement->stmt);
+    }
+    if (sql->trans) {
+        sql->trans->errnum = ret;
+    }
+    return ret;
+}
+
+static int dbd_mysql_pvquery(apr_pool_t *pool, apr_dbd_t *sql, int *nrows,
+                             apr_dbd_prepared_t *statement, va_list args)
+{
+    MYSQL_BIND *bind;
+    char *arg;
+    int ret;
+    int nargs = 0;
+    int i;
+    my_bool is_null = FALSE;
+
+    if (sql->trans && sql->trans->errnum) {
+        return sql->trans->errnum;
+    }
+    nargs = mysql_stmt_param_count(statement->stmt);
+
+    bind = apr_palloc(pool, nargs*sizeof(MYSQL_BIND));
+    for (i=0; i < nargs; ++i) {
+        arg = va_arg(args, char*);
+        bind[i].buffer_type = MYSQL_TYPE_VAR_STRING;
+        bind[i].buffer = arg;
+        bind[i].buffer_length = strlen(arg);
+        bind[i].length = &bind[i].buffer_length;
+        bind[i].is_null = &is_null;
+        bind[i].is_unsigned = 0;
+    }
+
+    ret = mysql_stmt_bind_param(statement->stmt, bind);
+    if (ret != 0) {
+        *nrows = 0;
+        ret = mysql_stmt_errno(statement->stmt);
+    }
+    else {
+        ret = mysql_stmt_execute(statement->stmt);
+        if (ret != 0) {
+            ret = mysql_stmt_errno(statement->stmt);
+        }
+        *nrows = mysql_stmt_affected_rows(statement->stmt);
+    }
+    if (sql->trans) {
+        sql->trans->errnum = ret;
+    }
+    return ret;
+}
+
+static int dbd_mysql_pselect(apr_pool_t *pool, apr_dbd_t *sql,
+                             apr_dbd_results_t **res,
+                             apr_dbd_prepared_t *statement, int random,
+                             int nargs, const char **args)
+{
+    int i;
+    int nfields;
+    char *arg;
+    my_bool is_null = FALSE;
+    my_bool *is_nullr;
+#if MYSQL_VERSION_ID >= 50000
+    my_bool *error;
+#endif
+    int ret;
+    unsigned long *length, maxlen;
+    MYSQL_BIND *bind;
+
+    if (sql->trans && sql->trans->errnum) {
+        return sql->trans->errnum;
+    }
+
+    nargs = mysql_stmt_param_count(statement->stmt);
+    bind = apr_palloc(pool, nargs*sizeof(MYSQL_BIND));
+
+    for (i=0; i < nargs; ++i) {
+        arg = (char*)args[i];
+        bind[i].buffer_type = MYSQL_TYPE_VAR_STRING;
+        bind[i].buffer = arg;
+        bind[i].buffer_length = strlen(arg);
+        bind[i].length = &bind[i].buffer_length;
+        bind[i].is_null = &is_null;
+        bind[i].is_unsigned = 0;
+    }
+
+    ret = mysql_stmt_bind_param(statement->stmt, bind);
+    if (ret == 0) {
+        ret = mysql_stmt_execute(statement->stmt);
+        if (!ret) {
+            if (!*res) {
+                *res = apr_pcalloc(pool, sizeof(apr_dbd_results_t));
+            }
+            (*res)->random = random;
+            (*res)->statement = statement->stmt;
+            (*res)->res = mysql_stmt_result_metadata(statement->stmt);
+            apr_pool_cleanup_register(pool, (*res)->res,
+                                      free_result, apr_pool_cleanup_null);
+            nfields = mysql_num_fields((*res)->res);
+            if (!(*res)->bind) {
+                (*res)->bind = apr_palloc(pool, nfields*sizeof(MYSQL_BIND));
+                length = apr_pcalloc(pool, nfields*sizeof(unsigned long));
+#if MYSQL_VERSION_ID >= 50000
+                error = apr_palloc(pool, nfields*sizeof(my_bool));
+#endif
+                is_nullr = apr_pcalloc(pool, nfields*sizeof(my_bool));
+                for ( i = 0; i < nfields; ++i ) {
+                    maxlen = ((*res)->res->fields[i].length < sql->fldsz ?
+                              (*res)->res->fields[i].length : sql->fldsz) + 1;
+                    (*res)->bind[i].buffer_type = MYSQL_TYPE_VAR_STRING;
+                    (*res)->bind[i].buffer_length = maxlen;
+                    (*res)->bind[i].length = &length[i];
+                    (*res)->bind[i].buffer = apr_palloc(pool, maxlen);
+                    (*res)->bind[i].is_null = is_nullr+i;
+#if MYSQL_VERSION_ID >= 50000
+                    (*res)->bind[i].error = error+i;
+#endif
+                }
+            }
+            ret = mysql_stmt_bind_result(statement->stmt, (*res)->bind);
+            if (!ret) {
+                ret = mysql_stmt_store_result(statement->stmt);
+            }
+        }
+    }
+    if (ret != 0) {
+        ret = mysql_stmt_errno(statement->stmt);
+    }
+    if (sql->trans) {
+        sql->trans->errnum = ret;
+    }
+    return ret;
+}
+
+static int dbd_mysql_pvselect(apr_pool_t *pool, apr_dbd_t *sql,
+                              apr_dbd_results_t **res,
+                              apr_dbd_prepared_t *statement, int random,
+                              va_list args)
+{
+    int i;
+    int nfields;
+    char *arg;
+    my_bool is_null = FALSE;
+    my_bool *is_nullr;
+#if MYSQL_VERSION_ID >= 50000
+    my_bool *error;
+#endif
+    int ret;
+    unsigned long *length, maxlen;
+    int nargs;
+    MYSQL_BIND *bind;
+
+    if (sql->trans && sql->trans->errnum) {
+        return sql->trans->errnum;
+    }
+
+    nargs = mysql_stmt_param_count(statement->stmt);
+    bind = apr_palloc(pool, nargs*sizeof(MYSQL_BIND));
+
+    for (i=0; i < nargs; ++i) {
+        arg = va_arg(args, char*);
+        bind[i].buffer_type = MYSQL_TYPE_VAR_STRING;
+        bind[i].buffer = arg;
+        bind[i].buffer_length = strlen(arg);
+        bind[i].length = &bind[i].buffer_length;
+        bind[i].is_null = &is_null;
+        bind[i].is_unsigned = 0;
+    }
+
+    ret = mysql_stmt_bind_param(statement->stmt, bind);
+    if (ret == 0) {
+        ret = mysql_stmt_execute(statement->stmt);
+        if (!ret) {
+            if (!*res) {
+                *res = apr_pcalloc(pool, sizeof(apr_dbd_results_t));
+            }
+            (*res)->random = random;
+            (*res)->statement = statement->stmt;
+            (*res)->res = mysql_stmt_result_metadata(statement->stmt);
+            apr_pool_cleanup_register(pool, (*res)->res,
+                                      free_result, apr_pool_cleanup_null);
+            nfields = mysql_num_fields((*res)->res);
+            if (!(*res)->bind) {
+                (*res)->bind = apr_palloc(pool, nfields*sizeof(MYSQL_BIND));
+                length = apr_pcalloc(pool, nfields*sizeof(unsigned long));
+#if MYSQL_VERSION_ID >= 50000
+                error = apr_palloc(pool, nfields*sizeof(my_bool));
+#endif
+                is_nullr = apr_pcalloc(pool, nfields*sizeof(my_bool));
+                for ( i = 0; i < nfields; ++i ) {
+                    maxlen = ((*res)->res->fields[i].length < sql->fldsz ?
+                              (*res)->res->fields[i].length : sql->fldsz) + 1;
+                    (*res)->bind[i].buffer_type = MYSQL_TYPE_VAR_STRING;
+                    (*res)->bind[i].buffer_length = maxlen;
+                    (*res)->bind[i].length = &length[i];
+                    (*res)->bind[i].buffer = apr_palloc(pool, maxlen);
+                    (*res)->bind[i].is_null = is_nullr+i;
+#if MYSQL_VERSION_ID >= 50000
+                    (*res)->bind[i].error = error+i;
+#endif
+                }
+            }
+            ret = mysql_stmt_bind_result(statement->stmt, (*res)->bind);
+            if (!ret) {
+                ret = mysql_stmt_store_result(statement->stmt);
+            }
+        }
+    }
+    if (ret != 0) {
+        ret = mysql_stmt_errno(statement->stmt);
+    }
+    if (sql->trans) {
+        sql->trans->errnum = ret;
+    }
+    return ret;
+}
+
+static int dbd_mysql_end_transaction(apr_dbd_transaction_t *trans)
+{
+    int ret = -1;
+    if (trans) {
+        if (trans->errnum) {
+            trans->errnum = 0;
+            ret = mysql_rollback(trans->handle->conn);
+        }
+        else {
+            ret = mysql_commit(trans->handle->conn);
+        }
+    }
+    ret |= mysql_autocommit(trans->handle->conn, 1);
+    trans->handle->trans = NULL;
+    return ret;
+}
+/* Whether or not transactions work depends on whether the
+ * underlying DB supports them within MySQL.  Unfortunately
+ * it fails silently with the default InnoDB.
+ */
+
+static int dbd_mysql_transaction(apr_pool_t *pool, apr_dbd_t *handle,
+                                 apr_dbd_transaction_t **trans)
+{
+    /* Don't try recursive transactions here */
+    if (handle->trans) {
+        dbd_mysql_end_transaction(handle->trans) ;
+    }
+    if (!*trans) {
+        *trans = apr_pcalloc(pool, sizeof(apr_dbd_transaction_t));
+    }
+    (*trans)->errnum = mysql_autocommit(handle->conn, 0);
+    (*trans)->handle = handle;
+    handle->trans = *trans;
+    return (*trans)->errnum;
+}
+
+static apr_dbd_t *dbd_mysql_open(apr_pool_t *pool, const char *params)
+{
+    static const char *const delims = " \r\n\t;|,";
+    const char *ptr;
+    int i;
+    const char *key;
+    size_t klen;
+    const char *value;
+    size_t vlen;
+#if MYSQL_VERSION_ID >= 50013
+    my_bool do_reconnect = 1;
+#endif
+    MYSQL *real_conn;
+    unsigned long flags = 0;
+    
+    struct {
+        const char *field;
+        const char *value;
+    } fields[] = {
+        {"host", NULL},
+        {"user", NULL},
+        {"pass", NULL},
+        {"dbname", NULL},
+        {"port", NULL},
+        {"sock", NULL},
+        {"flags", NULL},
+        {"fldsz", NULL},
+        {"group", NULL},
+        {NULL, NULL}
+    };
+    unsigned int port = 0;
+    apr_dbd_t *sql = apr_pcalloc(pool, sizeof(apr_dbd_t));
+    sql->fldsz = FIELDSIZE;
+    sql->conn = mysql_init(sql->conn);
+    if ( sql->conn == NULL ) {
+        return NULL;
+    }
+    for (ptr = strchr(params, '='); ptr; ptr = strchr(ptr, '=')) {
+        for (key = ptr-1; isspace(*key); --key);
+        klen = 0;
+        while (isalpha(*key)) {
+            /* don't parse backwards off the start of the string */
+            if (key == params) {
+                --key;
+                ++klen;
+                break;
+            }
+            --key;
+            ++klen;
+        }
+        ++key;
+        for (value = ptr+1; isspace(*value); ++value);
+        vlen = strcspn(value, delims);
+        for (i = 0; fields[i].field != NULL; i++) {
+            if (!strncasecmp(fields[i].field, key, klen)) {
+                fields[i].value = apr_pstrndup(pool, value, vlen);
+                break;
+            }
+        }
+        ptr = value+vlen;
+    }
+    if (fields[4].value != NULL) {
+        port = atoi(fields[4].value);
+    }
+    if (fields[6].value != NULL &&
+        !strcmp(fields[6].value, "CLIENT_FOUND_ROWS")) {
+        flags |= CLIENT_FOUND_ROWS; /* only option we know */
+    }
+    if (fields[7].value != NULL) {
+        sql->fldsz = atol(fields[7].value);
+    }
+    if (fields[8].value != NULL) {
+         mysql_options(sql->conn, MYSQL_READ_DEFAULT_GROUP, fields[8].value);
+    }
+
+#if MYSQL_VERSION_ID >= 50013
+    /* the MySQL manual says this should be BEFORE mysql_real_connect */
+    mysql_options(sql->conn, MYSQL_OPT_RECONNECT, &do_reconnect);
+#endif
+    
+    real_conn = mysql_real_connect(sql->conn, fields[0].value,
+                                   fields[1].value, fields[2].value,
+                                   fields[3].value, port,
+                                   fields[5].value, flags);
+
+    if(real_conn == NULL) {
+        mysql_close(sql->conn);
+        return NULL;
+    }
+
+#if MYSQL_VERSION_ID >= 50013
+    /* Some say this should be AFTER mysql_real_connect */
+    mysql_options(sql->conn, MYSQL_OPT_RECONNECT, &do_reconnect);
+#endif
+
+    return sql;
+}
+
+static apr_status_t dbd_mysql_close(apr_dbd_t *handle)
+{
+    mysql_close(handle->conn);
+    return APR_SUCCESS;
+}
+
+static apr_status_t dbd_mysql_check_conn(apr_pool_t *pool,
+                                         apr_dbd_t *handle)
+{
+    return mysql_ping(handle->conn) ? APR_EGENERAL : APR_SUCCESS;
+}
+
+static int dbd_mysql_select_db(apr_pool_t *pool, apr_dbd_t* handle,
+                               const char* name)
+{
+    return mysql_select_db(handle->conn, name);
+}
+
+static void *dbd_mysql_native(apr_dbd_t *handle)
+{
+    return handle->conn;
+}
+
+static int dbd_mysql_num_cols(apr_dbd_results_t *res)
+{
+    if (res->statement) {
+        return mysql_stmt_field_count(res->statement);
+    }
+    else {
+        return mysql_num_fields(res->res);
+    }
+}
+
+static int dbd_mysql_num_tuples(apr_dbd_results_t *res)
+{
+    if (res->random) {
+        if (res->statement) {
+            return (int) mysql_stmt_num_rows(res->statement);
+        }
+        else {
+            return (int) mysql_num_rows(res->res);
+        }
+    }
+    else {
+        return -1;
+    }
+}
+
+static apr_status_t thread_end(void *data)
+{
+    mysql_thread_end();
+    return APR_SUCCESS;
+}
+
+static void dbd_mysql_init(apr_pool_t *pool)
+{
+    my_init();
+    mysql_thread_init();
+
+    /* FIXME: this is a guess; find out what it really does */ 
+    apr_pool_cleanup_register(pool, NULL, thread_end, apr_pool_cleanup_null);
+}
+APU_DECLARE_DATA const apr_dbd_driver_t apr_dbd_mysql_driver = {
+    "mysql",
+    dbd_mysql_init,
+    dbd_mysql_native,
+    dbd_mysql_open,
+    dbd_mysql_check_conn,
+    dbd_mysql_close,
+    dbd_mysql_select_db,
+    dbd_mysql_transaction,
+    dbd_mysql_end_transaction,
+    dbd_mysql_query,
+    dbd_mysql_select,
+    dbd_mysql_num_cols,
+    dbd_mysql_num_tuples,
+    dbd_mysql_get_row,
+    dbd_mysql_get_entry,
+    dbd_mysql_error,
+    dbd_mysql_escape,
+    dbd_mysql_prepare,
+    dbd_mysql_pvquery,
+    dbd_mysql_pvselect,
+    dbd_mysql_pquery,
+    dbd_mysql_pselect
+};
+
+#endif
diff --git a/dbd/apr_dbd_pgsql.c b/dbd/apr_dbd_pgsql.c
new file mode 100644
index 0000000..2fc28ac
--- /dev/null
+++ b/dbd/apr_dbd_pgsql.c
@@ -0,0 +1,664 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apu.h"
+
+#if APU_HAVE_PGSQL
+
+#include "apu_config.h"
+
+#include <ctype.h>
+#include <stdlib.h>
+
+#ifdef HAVE_LIBPQ_FE_H
+#include <libpq-fe.h>
+#elif defined(HAVE_POSTGRESQL_LIBPQ_FE_H)
+#include <postgresql/libpq-fe.h>
+#endif
+
+#include "apr_strings.h"
+#include "apr_time.h"
+
+#include "apr_dbd_internal.h"
+
+#define QUERY_MAX_ARGS 40
+
+struct apr_dbd_transaction_t {
+    int errnum;
+    apr_dbd_t *handle;
+};
+
+struct apr_dbd_t {
+    PGconn *conn;
+    apr_dbd_transaction_t *trans;
+};
+
+struct apr_dbd_results_t {
+    int random;
+    PGconn *handle;
+    PGresult *res;
+    size_t ntuples;
+    size_t sz;
+    size_t index;
+};
+
+struct apr_dbd_row_t {
+    int n;
+    apr_dbd_results_t *res;
+};
+
+struct apr_dbd_prepared_t {
+    const char *name;
+    int prepared;
+    int nargs;
+};
+
+#define dbd_pgsql_is_success(x) (((x) == PGRES_EMPTY_QUERY) \
+                                 || ((x) == PGRES_COMMAND_OK) \
+                                 || ((x) == PGRES_TUPLES_OK))
+
+static apr_status_t clear_result(void *data)
+{
+    PQclear(data);
+    return APR_SUCCESS;
+}
+
+static int dbd_pgsql_select(apr_pool_t *pool, apr_dbd_t *sql,
+                            apr_dbd_results_t **results,
+                            const char *query, int seek)
+{
+    PGresult *res;
+    int ret;
+    if ( sql->trans && sql->trans->errnum ) {
+        return sql->trans->errnum;
+    }
+    if (seek) { /* synchronous query */
+        res = PQexec(sql->conn, query);
+        if (res) {
+            ret = PQresultStatus(res);
+            if (dbd_pgsql_is_success(ret)) {
+                ret = 0;
+            } else {
+                PQclear(res);
+            }
+        } else {
+            ret = PGRES_FATAL_ERROR;
+        }
+        if (ret != 0) {
+            if (sql->trans) {
+                sql->trans->errnum = ret;
+            }
+            return ret;
+        }
+        if (!*results) {
+            *results = apr_pcalloc(pool, sizeof(apr_dbd_results_t));
+        }
+        (*results)->res = res;
+        (*results)->ntuples = PQntuples(res);
+        (*results)->sz = PQnfields(res);
+        (*results)->random = seek;
+        apr_pool_cleanup_register(pool, res, clear_result,
+                                  apr_pool_cleanup_null);
+    }
+    else {
+        if (PQsendQuery(sql->conn, query) == 0) {
+            if (sql->trans) {
+                sql->trans->errnum = 1;
+            }
+            return 1;
+        }
+        if (*results == NULL) {
+            *results = apr_pcalloc(pool, sizeof(apr_dbd_results_t));
+        }
+        (*results)->random = seek;
+        (*results)->handle = sql->conn;
+    }
+    return 0;
+}
+
+static int dbd_pgsql_get_row(apr_pool_t *pool, apr_dbd_results_t *res,
+                             apr_dbd_row_t **rowp, int rownum)
+{
+    apr_dbd_row_t *row = *rowp;
+    int sequential = ((rownum >= 0) && res->random) ? 0 : 1;
+
+    if (row == NULL) {
+        row = apr_palloc(pool, sizeof(apr_dbd_row_t));
+        *rowp = row;
+        row->res = res;
+        row->n = sequential ? 0 : rownum;
+    }
+    else {
+        if ( sequential ) {
+            ++row->n;
+        }
+        else {
+            row->n = rownum;
+        }
+    }
+
+    if (res->random) {
+        if (row->n >= res->ntuples) {
+            *rowp = NULL;
+            apr_pool_cleanup_run(pool, res->res, clear_result);
+            res->res = NULL;
+            return -1;
+        }
+    }
+    else {
+        if (row->n >= res->ntuples) {
+            /* no data; we have to fetch some */
+            row->n -= res->ntuples;
+            if (res->res != NULL) {
+                PQclear(res->res);
+            }
+            res->res = PQgetResult(res->handle);
+            if (res->res) {
+                res->ntuples = PQntuples(res->res);
+                while (res->ntuples == 0) {
+                    /* if we got an empty result, clear it, wait a mo, try
+                     * again */
+                    PQclear(res->res);
+                    apr_sleep(100000);        /* 0.1 secs */
+                    res->res = PQgetResult(res->handle);
+                    if (res->res) {
+                        res->ntuples = PQntuples(res->res);
+                    }
+                    else {
+                        return -1;
+                    }
+                }
+                if (res->sz == 0) {
+                    res->sz = PQnfields(res->res);
+                }
+            }
+            else {
+                return -1;
+            }
+        }
+    }
+    return 0;
+}
+
+static const char *dbd_pgsql_get_entry(const apr_dbd_row_t *row, int n)
+{
+    return PQgetvalue(row->res->res, row->n, n);
+}
+
+static const char *dbd_pgsql_error(apr_dbd_t *sql, int n)
+{
+    return PQerrorMessage(sql->conn);
+}
+
+static int dbd_pgsql_query(apr_dbd_t *sql, int *nrows, const char *query)
+{
+    PGresult *res;
+    int ret;
+    if (sql->trans && sql->trans->errnum) {
+        return sql->trans->errnum;
+    }
+    res = PQexec(sql->conn, query);
+    if (res) {
+        ret = PQresultStatus(res);
+        if (dbd_pgsql_is_success(ret)) {
+            /* ugh, making 0 return-success doesn't fit */
+            ret = 0;
+        }
+        *nrows = atoi(PQcmdTuples(res));
+        PQclear(res);
+    }
+    else {
+        ret = PGRES_FATAL_ERROR;
+    }
+    if (sql->trans) {
+        sql->trans->errnum = ret;
+    }
+    return ret;
+}
+
+static const char *dbd_pgsql_escape(apr_pool_t *pool, const char *arg,
+                                    apr_dbd_t *sql)
+{
+    size_t len = strlen(arg);
+    char *ret = apr_palloc(pool, 2*(len + 1));
+    PQescapeString(ret, arg, len);
+    return ret;
+}
+
+static int dbd_pgsql_prepare(apr_pool_t *pool, apr_dbd_t *sql,
+                             const char *query, const char *label,
+                             apr_dbd_prepared_t **statement)
+{
+    char *sqlcmd;
+    char *sqlptr;
+    size_t length;
+    size_t i = 0;
+    const char *args[QUERY_MAX_ARGS];
+    size_t alen;
+    int ret;
+    PGresult *res;
+    char *pgquery;
+    char *pgptr;
+
+    if (!*statement) {
+        *statement = apr_palloc(pool, sizeof(apr_dbd_prepared_t));
+    }
+    (*statement)->nargs = 0;
+    /* Translate from apr_dbd to native query format */
+    for (sqlptr = (char*)query; *sqlptr; ++sqlptr) {
+        if (sqlptr[0] == '%') {
+            if (isalpha(sqlptr[1])) {
+                ++(*statement)->nargs;
+            }
+            else if (sqlptr[1] == '%') {
+                ++sqlptr;
+            }
+        }
+    }
+    length = strlen(query) + 1;
+    if ((*statement)->nargs > 8) {
+        length += (*statement)->nargs - 8;
+    }
+    pgptr = pgquery = apr_palloc(pool, length) ;
+
+    for (sqlptr = (char*)query; *sqlptr; ++sqlptr) {
+        if ((sqlptr[0] == '%') && isalpha(sqlptr[1])) {
+            *pgptr++ = '$';
+            if (i < 9) {
+                *pgptr++ = '1' + i;
+            }
+            else {
+                *pgptr++ = '0' + ((i+1)/10);
+                *pgptr++ = '0' + ((i+1)%10);
+            }
+            switch (*++sqlptr) {
+            case 'd':
+                args[i] = "integer";
+                break;
+            case 's':
+                args[i] = "varchar";
+                break;
+            default:
+                args[i] = "varchar";
+                break;
+            }
+            length += 1 + strlen(args[i]);
+            ++i;
+        }
+        else if ((sqlptr[0] == '%') && (sqlptr[1] == '%')) {
+            /* reduce %% to % */
+            *pgptr++ = *sqlptr++;
+        }
+        else {
+            *pgptr++ = *sqlptr;
+        }
+    }
+    *pgptr = 0;
+
+    if (!label) {
+        /* don't really prepare; use in execParams instead */
+        (*statement)->prepared = 0;
+        (*statement)->name = apr_pstrdup(pool, pgquery);
+        return 0;
+    }
+    (*statement)->name = apr_pstrdup(pool, label);
+
+    /* length of SQL query that prepares this statement */
+    length = 8 + strlen(label) + 2 + 4 + length + 1;
+    sqlcmd = apr_palloc(pool, length);
+    sqlptr = sqlcmd;
+    memcpy(sqlptr, "PREPARE ", 8);
+    sqlptr += 8;
+    length = strlen(label);
+    memcpy(sqlptr, label, length);
+    sqlptr += length;
+    if ((*statement)->nargs > 0) {
+        memcpy(sqlptr, " (",2);
+        sqlptr += 2;
+        for (i=0; i < (*statement)->nargs; ++i) {
+            alen = strlen(args[i]);
+            memcpy(sqlptr, args[i], alen);
+            sqlptr += alen;
+            *sqlptr++ = ',';
+        }
+        sqlptr[-1] =  ')';
+    }
+    memcpy(sqlptr, " AS ", 4);
+    sqlptr += 4;
+    memcpy(sqlptr, pgquery, strlen(pgquery));
+    sqlptr += strlen(pgquery);
+    *sqlptr = 0;
+
+    res = PQexec(sql->conn, sqlcmd);
+    if ( res ) {
+        ret = PQresultStatus(res);
+        if (dbd_pgsql_is_success(ret)) {
+            ret = 0;
+        }
+        /* Hmmm, do we do this here or register it on the pool? */
+        PQclear(res);
+    }
+    else {
+        ret = PGRES_FATAL_ERROR;
+    }
+    (*statement)->prepared = 1;
+
+    return ret;
+}
+
+static int dbd_pgsql_pquery(apr_pool_t *pool, apr_dbd_t *sql,
+                            int *nrows, apr_dbd_prepared_t *statement,
+                            int nargs, const char **values)
+{
+    int ret;
+    PGresult *res;
+
+    if (sql->trans && sql->trans->errnum) {
+        return sql->trans->errnum;
+    }
+
+    if (statement->prepared) {
+        res = PQexecPrepared(sql->conn, statement->name, nargs, values, 0, 0,
+                             0);
+    }
+    else {
+        res = PQexecParams(sql->conn, statement->name, nargs, 0, values, 0, 0,
+                           0);
+    }
+    if (res) {
+        ret = PQresultStatus(res);
+        if (dbd_pgsql_is_success(ret)) {
+            ret = 0;
+        }
+	*nrows = atoi(PQcmdTuples(res));
+        PQclear(res);
+    }
+    else {
+        ret = PGRES_FATAL_ERROR;
+    }
+
+    if (sql->trans) {
+        sql->trans->errnum = ret;
+    }
+    return ret;
+}
+
+static int dbd_pgsql_pvquery(apr_pool_t *pool, apr_dbd_t *sql,
+                             int *nrows, apr_dbd_prepared_t *statement,
+                             va_list args)
+{
+    const char **values;
+    int i;
+
+    if (sql->trans && sql->trans->errnum) {
+        return sql->trans->errnum;
+    }
+
+    values = apr_palloc(pool, sizeof(*values) * statement->nargs);
+
+    for (i = 0; i < statement->nargs; i++) {
+        values[i] = apr_pstrdup(pool, va_arg(args, const char*));
+    }
+
+    return dbd_pgsql_pquery(pool, sql, nrows, statement,
+                            statement->nargs, values);
+}
+
+static int dbd_pgsql_pselect(apr_pool_t *pool, apr_dbd_t *sql,
+                             apr_dbd_results_t **results,
+                             apr_dbd_prepared_t *statement,
+                             int seek, int nargs, const char **values)
+{
+    PGresult *res;
+    int rv;
+    int ret = 0;
+
+    if (sql->trans && sql->trans->errnum) {
+        return sql->trans->errnum;
+    }
+
+    if (seek) { /* synchronous query */
+        if (statement->prepared) {
+            res = PQexecPrepared(sql->conn, statement->name, nargs, values, 0,
+                                 0, 0);
+        }
+        else {
+            res = PQexecParams(sql->conn, statement->name, nargs, 0, values, 0,
+                               0, 0);
+        }
+        if (res) {
+            ret = PQresultStatus(res);
+            if (dbd_pgsql_is_success(ret)) {
+                ret = 0;
+            }
+            else {
+                PQclear(res);
+            }
+        }
+        else {
+            ret = PGRES_FATAL_ERROR;
+        }
+        if (ret != 0) {
+            if (sql->trans) {
+                sql->trans->errnum = ret;
+            }
+            return ret;
+        }
+        if (!*results) {
+            *results = apr_pcalloc(pool, sizeof(apr_dbd_results_t));
+        }
+        (*results)->res = res;
+        (*results)->ntuples = PQntuples(res);
+        (*results)->sz = PQnfields(res);
+        (*results)->random = seek;
+        apr_pool_cleanup_register(pool, res, clear_result,
+                                  apr_pool_cleanup_null);
+    }
+    else {
+        if (statement->prepared) {
+            rv = PQsendQueryPrepared(sql->conn, statement->name, nargs, values,
+                                     0, 0, 0);
+        }
+        else {
+            rv = PQsendQueryParams(sql->conn, statement->name, nargs, 0,
+                                   values, 0, 0, 0);
+        }
+        if (rv == 0) {
+            if (sql->trans) {
+                sql->trans->errnum = 1;
+            }
+            return 1;
+        }
+        if (!*results) {
+            *results = apr_pcalloc(pool, sizeof(apr_dbd_results_t));
+        }
+        (*results)->random = seek;
+        (*results)->handle = sql->conn;
+    }
+
+    if (sql->trans) {
+        sql->trans->errnum = ret;
+    }
+    return ret;
+}
+
+static int dbd_pgsql_pvselect(apr_pool_t *pool, apr_dbd_t *sql,
+                              apr_dbd_results_t **results,
+                              apr_dbd_prepared_t *statement,
+                              int seek, va_list args)
+{
+    const char **values;
+    int i;
+
+    if (sql->trans && sql->trans->errnum) {
+        return sql->trans->errnum;
+    }
+
+    values = apr_palloc(pool, sizeof(*values) * statement->nargs);
+
+    for (i = 0; i < statement->nargs; i++) {
+        values[i] = apr_pstrdup(pool, va_arg(args, const char*));
+    }
+
+    return dbd_pgsql_pselect(pool, sql, results, statement,
+                             seek, statement->nargs, values) ;
+}
+
+static int dbd_pgsql_start_transaction(apr_pool_t *pool, apr_dbd_t *handle,
+                                       apr_dbd_transaction_t **trans)
+{
+    int ret = 0;
+    PGresult *res;
+
+    /* XXX handle recursive transactions here */
+
+    res = PQexec(handle->conn, "BEGIN TRANSACTION");
+    if (res) {
+        ret = PQresultStatus(res);
+        if (dbd_pgsql_is_success(ret)) {
+            ret = 0;
+            if (!*trans) {
+                *trans = apr_pcalloc(pool, sizeof(apr_dbd_transaction_t));
+            }
+        }
+        PQclear(res);
+        (*trans)->handle = handle;
+        handle->trans = *trans;
+    }
+    else {
+        ret = PGRES_FATAL_ERROR;
+    }
+    return ret;
+}
+
+static int dbd_pgsql_end_transaction(apr_dbd_transaction_t *trans)
+{
+    PGresult *res;
+    int ret = -1;                /* no transaction is an error cond */
+    if (trans) {
+        if (trans->errnum) {
+            trans->errnum = 0;
+            res = PQexec(trans->handle->conn, "ROLLBACK");
+        }
+        else {
+            res = PQexec(trans->handle->conn, "COMMIT");
+        }
+        if (res) {
+            ret = PQresultStatus(res);
+            if (dbd_pgsql_is_success(ret)) {
+                ret = 0;
+            }
+            PQclear(res);
+        }
+        else {
+            ret = PGRES_FATAL_ERROR;
+        }
+        trans->handle->trans = NULL;
+    }
+    return ret;
+}
+
+static apr_dbd_t *dbd_pgsql_open(apr_pool_t *pool, const char *params)
+{
+    apr_dbd_t *sql;
+    
+    PGconn *conn = PQconnectdb(params);
+
+    /* if there's an error in the connect string or something we get
+     * back a * bogus connection object, and things like PQreset are
+     * liable to segfault, so just close it out now.  it would be nice
+     * if we could give an indication of why we failed to connect... */
+    if (PQstatus(conn) != CONNECTION_OK) {
+        PQfinish(conn);
+        return NULL;
+    }
+
+    sql = apr_pcalloc (pool, sizeof (*sql));
+
+    sql->conn = conn;
+
+    return sql;
+}
+
+static apr_status_t dbd_pgsql_close(apr_dbd_t *handle)
+{
+    PQfinish(handle->conn);
+    return APR_SUCCESS;
+}
+
+static apr_status_t dbd_pgsql_check_conn(apr_pool_t *pool,
+                                         apr_dbd_t *handle)
+{
+    if (PQstatus(handle->conn) != CONNECTION_OK) {
+        PQreset(handle->conn);
+        if (PQstatus(handle->conn) != CONNECTION_OK) {
+            return APR_EGENERAL;
+        }
+    }
+    return APR_SUCCESS;
+}
+
+static int dbd_pgsql_select_db(apr_pool_t *pool, apr_dbd_t *handle,
+                               const char *name)
+{
+    return APR_ENOTIMPL;
+}
+
+static void *dbd_pgsql_native(apr_dbd_t *handle)
+{
+    return handle->conn;
+}
+
+static int dbd_pgsql_num_cols(apr_dbd_results_t* res)
+{
+    return res->sz;
+}
+
+static int dbd_pgsql_num_tuples(apr_dbd_results_t* res)
+{
+    if (res->random) {
+        return res->ntuples;
+    }
+    else {
+        return -1;
+    }
+}
+
+APU_DECLARE_DATA const apr_dbd_driver_t apr_dbd_pgsql_driver = {
+    "pgsql",
+    NULL,
+    dbd_pgsql_native,
+    dbd_pgsql_open,
+    dbd_pgsql_check_conn,
+    dbd_pgsql_close,
+    dbd_pgsql_select_db,
+    dbd_pgsql_start_transaction,
+    dbd_pgsql_end_transaction,
+    dbd_pgsql_query,
+    dbd_pgsql_select,
+    dbd_pgsql_num_cols,
+    dbd_pgsql_num_tuples,
+    dbd_pgsql_get_row,
+    dbd_pgsql_get_entry,
+    dbd_pgsql_error,
+    dbd_pgsql_escape,
+    dbd_pgsql_prepare,
+    dbd_pgsql_pvquery,
+    dbd_pgsql_pvselect,
+    dbd_pgsql_pquery,
+    dbd_pgsql_pselect,
+};
+#endif
diff --git a/dbd/apr_dbd_sqlite2.c b/dbd/apr_dbd_sqlite2.c
new file mode 100644
index 0000000..6907be7
--- /dev/null
+++ b/dbd/apr_dbd_sqlite2.c
@@ -0,0 +1,396 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apu.h"
+
+#if APU_HAVE_SQLITE2
+
+#include <ctype.h>
+#include <stdlib.h>
+
+#include <sqlite.h>
+
+#include "apr_strings.h"
+#include "apr_time.h"
+
+#include "apr_dbd_internal.h"
+
+struct apr_dbd_transaction_t {
+    int errnum;
+    apr_dbd_t *handle;
+};
+
+struct apr_dbd_t {
+    sqlite *conn;
+    char *errmsg;
+    apr_dbd_transaction_t *trans;
+};
+
+struct apr_dbd_results_t {
+    int random;
+    sqlite *handle;
+    char **res;
+    size_t ntuples;
+    size_t sz;
+    size_t index;
+};
+
+struct apr_dbd_row_t {
+    int n;
+    char **data;
+    apr_dbd_results_t *res;
+};
+
+struct apr_dbd_prepared_t {
+    const char *name;
+    int prepared;
+};
+
+#define FREE_ERROR_MSG(dbd) \
+	do { \
+		if(dbd && dbd->errmsg) { \
+			free(dbd->errmsg); \
+			dbd->errmsg = NULL; \
+		} \
+	} while(0);
+
+static apr_status_t free_table(void *data)
+{
+    sqlite_free_table(data); 
+    return APR_SUCCESS;
+}
+
+static int dbd_sqlite_select(apr_pool_t * pool, apr_dbd_t * sql,
+                             apr_dbd_results_t ** results, const char *query,
+                             int seek)
+{
+    char **result;
+    int ret = 0;
+    int tuples = 0;
+    int fields = 0;
+
+    if (sql->trans && sql->trans->errnum) {
+        return sql->trans->errnum;
+    }
+
+    FREE_ERROR_MSG(sql);
+
+    ret = sqlite_get_table(sql->conn, query, &result, &tuples, &fields,
+                          &sql->errmsg);
+
+    if (ret == SQLITE_OK) {
+        if (!*results) {
+            *results = apr_pcalloc(pool, sizeof(apr_dbd_results_t));
+        }
+
+        (*results)->res = result;
+        (*results)->ntuples = tuples;
+        (*results)->sz = fields;
+        (*results)->random = seek;
+
+        if (tuples > 0)
+            apr_pool_cleanup_register(pool, result, free_table,
+                                      apr_pool_cleanup_null);
+
+        ret = 0;
+    }
+    else {
+        sql->trans->errnum = ret;
+    }
+
+    return ret;
+}
+
+static int dbd_sqlite_get_row(apr_pool_t * pool, apr_dbd_results_t * res,
+                              apr_dbd_row_t ** rowp, int rownum)
+{
+    apr_dbd_row_t *row = *rowp;
+    int sequential = ((rownum >= 0) && res->random) ? 0 : 1;
+
+    if (row == NULL) {
+        row = apr_palloc(pool, sizeof(apr_dbd_row_t));
+        *rowp = row;
+        row->res = res;
+        row->n = sequential ? 0 : rownum - 1;
+    }
+    else {
+        if (sequential) {
+            ++row->n;
+        }
+        else {
+            row->n = rownum - 1;
+        }
+    }
+
+    if (row->n >= res->ntuples) {
+        *rowp = NULL;
+        apr_pool_cleanup_run(pool, res->res, free_table);
+        res->res = NULL;
+        return -1;
+    }
+
+    /* Pointer magic explanation:
+     *      The sqlite result is an array such that the first res->sz elements are 
+     *      the column names and each tuple follows afterwards 
+     *      ex: (from the sqlite2 documentation)
+     SELECT employee_name, login, host FROM users WHERE login LIKE *        'd%';
+
+     nrow = 2
+     ncolumn = 3
+     result[0] = "employee_name"
+     result[1] = "login"
+     result[2] = "host"
+     result[3] = "dummy"
+     result[4] = "No such user"
+     result[5] = 0
+     result[6] = "D. Richard Hipp"
+     result[7] = "drh"
+     result[8] = "zadok"
+     */
+
+    row->data = res->res + res->sz + (res->sz * row->n);
+
+    return 0;
+}
+
+static const char *dbd_sqlite_get_entry(const apr_dbd_row_t * row, int n)
+{
+    if ((n < 0) || (n >= row->res->sz)) {
+      return NULL;
+    }
+
+    return row->data[n];
+}
+
+static const char *dbd_sqlite_error(apr_dbd_t * sql, int n)
+{
+    return sql->errmsg;
+}
+
+static int dbd_sqlite_query(apr_dbd_t * sql, int *nrows, const char *query)
+{
+    char **result;
+    int ret;
+    int tuples = 0;
+    int fields = 0;
+
+    if (sql->trans && sql->trans->errnum) {
+        return sql->trans->errnum;
+    }
+
+    FREE_ERROR_MSG(sql);
+
+    ret =
+        sqlite_get_table(sql->conn, query, &result, &tuples, &fields,
+                         &sql->errmsg);
+    if (ret == SQLITE_OK) {
+        *nrows = sqlite_changes(sql->conn);
+
+        if (tuples > 0)
+            free(result);
+
+        ret = 0;
+    }
+
+    if (sql->trans) {
+        sql->trans->errnum = ret;
+    }
+
+    return ret;
+}
+
+static apr_status_t free_mem(void *data)
+{
+    sqlite_freemem(data);
+    return APR_SUCCESS;
+}
+
+static const char *dbd_sqlite_escape(apr_pool_t * pool, const char *arg,
+                                     apr_dbd_t * sql)
+{
+    char *ret = sqlite_mprintf("%q", arg);
+    apr_pool_cleanup_register(pool, ret, free_mem, apr_pool_cleanup_null);
+    return ret;
+}
+
+static int dbd_sqlite_prepare(apr_pool_t * pool, apr_dbd_t * sql,
+                              const char *query, const char *label,
+                              apr_dbd_prepared_t ** statement)
+{
+    return APR_ENOTIMPL;
+}
+
+static int dbd_sqlite_pquery(apr_pool_t * pool, apr_dbd_t * sql,
+                             int *nrows, apr_dbd_prepared_t * statement,
+                             int nargs, const char **values)
+{
+    return APR_ENOTIMPL;
+}
+
+static int dbd_sqlite_pvquery(apr_pool_t * pool, apr_dbd_t * sql,
+                              int *nrows, apr_dbd_prepared_t * statement,
+                              va_list args)
+{
+    return APR_ENOTIMPL;
+}
+
+static int dbd_sqlite_pselect(apr_pool_t * pool, apr_dbd_t * sql,
+                              apr_dbd_results_t ** results,
+                              apr_dbd_prepared_t * statement,
+                              int seek, int nargs, const char **values)
+{
+    return APR_ENOTIMPL;
+}
+
+static int dbd_sqlite_pvselect(apr_pool_t * pool, apr_dbd_t * sql,
+                               apr_dbd_results_t ** results,
+                               apr_dbd_prepared_t * statement, int seek,
+                               va_list args)
+{
+    return APR_ENOTIMPL;
+}
+
+static int dbd_sqlite_start_transaction(apr_pool_t * pool, apr_dbd_t * handle,
+                                        apr_dbd_transaction_t ** trans)
+{
+    int ret, rows;
+
+    ret = dbd_sqlite_query(handle, &rows, "BEGIN TRANSACTION");
+    if (ret == 0) {
+        if (!*trans) {
+            *trans = apr_pcalloc(pool, sizeof(apr_dbd_transaction_t));
+        }
+        (*trans)->handle = handle;
+        handle->trans = *trans;
+    }
+    else {
+        ret = -1;
+    }
+    return ret;
+}
+
+static int dbd_sqlite_end_transaction(apr_dbd_transaction_t * trans)
+{
+    int rows;
+    int ret = -1;               /* no transaction is an error cond */
+
+    if (trans) {
+        if (trans->errnum) {
+            trans->errnum = 0;
+            ret =
+                dbd_sqlite_query(trans->handle, &rows,
+                                 "ROLLBACK TRANSACTION");
+        }
+        else {
+            ret =
+                dbd_sqlite_query(trans->handle, &rows, "COMMIT TRANSACTION");
+        }
+        trans->handle->trans = NULL;
+    }
+
+    return ret;
+}
+
+static apr_dbd_t *dbd_sqlite_open(apr_pool_t * pool, const char *params_)
+{
+    apr_dbd_t *sql;
+    sqlite *conn = NULL;
+    char *perm;
+    int iperms = 600;
+    char* params = apr_pstrdup(pool, params_);
+    /* params = "[filename]:[permissions]"
+     *    example: "shopping.db:600"
+     */
+
+    perm = strstr(params, ":");
+    if (perm) {
+        *(perm++) = '\x00';     /* split the filename and permissions */
+
+        if (strlen(perm) > 0)
+            iperms = atoi(perm);
+    }
+
+    conn = sqlite_open(params, iperms, NULL);
+
+    sql = apr_pcalloc(pool, sizeof(*sql));
+    sql->conn = conn;
+
+    return sql;
+}
+
+static apr_status_t dbd_sqlite_close(apr_dbd_t * handle)
+{
+    if (handle->conn) {
+        sqlite_close(handle->conn);
+        handle->conn = NULL;
+    }
+    return APR_SUCCESS;
+}
+
+static apr_status_t dbd_sqlite_check_conn(apr_pool_t * pool,
+                                          apr_dbd_t * handle)
+{
+    if (handle->conn == NULL)
+        return -1;
+    return APR_SUCCESS;
+}
+
+static int dbd_sqlite_select_db(apr_pool_t * pool, apr_dbd_t * handle,
+                                const char *name)
+{
+    return APR_ENOTIMPL;
+}
+
+static void *dbd_sqlite_native(apr_dbd_t * handle)
+{
+    return handle->conn;
+}
+
+static int dbd_sqlite_num_cols(apr_dbd_results_t * res)
+{
+    return res->sz;
+}
+
+static int dbd_sqlite_num_tuples(apr_dbd_results_t * res)
+{
+    return res->ntuples;
+}
+
+APU_DECLARE_DATA const apr_dbd_driver_t apr_dbd_sqlite2_driver = {
+    "sqlite2",
+    NULL,
+    dbd_sqlite_native,
+    dbd_sqlite_open,
+    dbd_sqlite_check_conn,
+    dbd_sqlite_close,
+    dbd_sqlite_select_db,
+    dbd_sqlite_start_transaction,
+    dbd_sqlite_end_transaction,
+    dbd_sqlite_query,
+    dbd_sqlite_select,
+    dbd_sqlite_num_cols,
+    dbd_sqlite_num_tuples,
+    dbd_sqlite_get_row,
+    dbd_sqlite_get_entry,
+    dbd_sqlite_error,
+    dbd_sqlite_escape,
+    dbd_sqlite_prepare,
+    dbd_sqlite_pvquery,
+    dbd_sqlite_pvselect,
+    dbd_sqlite_pquery,
+    dbd_sqlite_pselect,
+};
+#endif
diff --git a/dbd/apr_dbd_sqlite3.c b/dbd/apr_dbd_sqlite3.c
new file mode 100644
index 0000000..32073fc
--- /dev/null
+++ b/dbd/apr_dbd_sqlite3.c
@@ -0,0 +1,723 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apu.h"
+
+#if APU_HAVE_SQLITE3
+
+#include <ctype.h>
+#include <stdlib.h>
+
+#include <sqlite3.h>
+
+#include "apr_strings.h"
+#include "apr_time.h"
+
+#include "apr_dbd_internal.h"
+
+#define MAX_RETRY_COUNT 15
+#define MAX_RETRY_SLEEP 100000
+
+struct apr_dbd_transaction_t {
+    int errnum;
+    apr_dbd_t *handle;
+};
+
+struct apr_dbd_t {
+    sqlite3 *conn;
+    apr_dbd_transaction_t *trans;
+#if APR_HAS_THREADS
+    apr_thread_mutex_t *mutex;
+#endif
+    apr_pool_t *pool;
+    apr_dbd_prepared_t *prep;
+};
+
+typedef struct {
+    char *name;
+    char *value;
+    int size;
+    int type;
+} apr_dbd_column_t;
+
+struct apr_dbd_row_t {
+    apr_dbd_results_t *res;
+    apr_dbd_column_t **columns;
+    apr_dbd_row_t *next_row;
+    int columnCount;
+    int rownum;
+};
+
+struct apr_dbd_results_t {
+    int random;
+    sqlite3 *handle;
+    sqlite3_stmt *stmt;
+    apr_dbd_row_t *next_row;
+    size_t sz;
+    int tuples;
+    char **col_names;
+};
+
+struct apr_dbd_prepared_t {
+    sqlite3_stmt *stmt;
+    apr_dbd_prepared_t *next;
+};
+
+#define dbd_sqlite3_is_success(x) (((x) == SQLITE_DONE ) \
+		|| ((x) == SQLITE_OK ))
+
+static int dbd_sqlite3_select(apr_pool_t * pool, apr_dbd_t * sql, apr_dbd_results_t ** results, const char *query, int seek)
+{
+    sqlite3_stmt *stmt = NULL;
+    const char *tail = NULL;
+    int i, ret, retry_count = 0;
+    size_t num_tuples = 0;
+    int increment = 0;
+    apr_dbd_row_t *row = NULL;
+    apr_dbd_row_t *lastrow = NULL;
+    apr_dbd_column_t *column;
+    char *hold = NULL;
+
+    if (sql->trans && sql->trans->errnum) {
+        return sql->trans->errnum;
+    }
+
+#if APR_HAS_THREADS
+    apr_thread_mutex_lock(sql->mutex);
+#endif
+
+    ret = sqlite3_prepare(sql->conn, query, strlen(query), &stmt, &tail);
+    if (!dbd_sqlite3_is_success(ret)) {
+#if APR_HAS_THREADS
+        apr_thread_mutex_unlock(sql->mutex);
+#endif
+        return ret;
+    } else {
+        int column_count;
+        column_count = sqlite3_column_count(stmt);
+        if (!*results) {
+            *results = apr_pcalloc(pool, sizeof(apr_dbd_results_t));
+        }
+        (*results)->stmt = stmt;
+        (*results)->sz = column_count;
+        (*results)->random = seek;
+        (*results)->next_row = 0;
+        (*results)->tuples = 0;
+        (*results)->col_names = apr_pcalloc(pool,
+                                            column_count * sizeof(char *));
+        do {
+            ret = sqlite3_step(stmt);
+            if (ret == SQLITE_BUSY) {
+                if (retry_count++ > MAX_RETRY_COUNT) {
+                    ret = SQLITE_ERROR;
+                } else {
+#if APR_HAS_THREADS
+                    apr_thread_mutex_unlock(sql->mutex);
+#endif
+                    apr_sleep(MAX_RETRY_SLEEP);
+#if APR_HAS_THREADS
+                    apr_thread_mutex_lock(sql->mutex);
+#endif
+                }
+            } else if (ret == SQLITE_ROW) {
+                int length;
+                apr_dbd_column_t *col;
+                row = apr_palloc(pool, sizeof(apr_dbd_row_t));
+                row->res = *results;
+                increment = sizeof(apr_dbd_column_t *);
+                length = increment * (*results)->sz;
+                row->columns = apr_palloc(pool, length);
+                row->columnCount = column_count;
+                for (i = 0; i < (*results)->sz; i++) {
+                    column = apr_palloc(pool, sizeof(apr_dbd_column_t));
+                    row->columns[i] = column;
+                    /* copy column name once only */
+                    if ((*results)->col_names[i] == NULL) {
+                      (*results)->col_names[i] =
+                          apr_pstrdup(pool, sqlite3_column_name(stmt, i));
+                    }
+                    column->name = (*results)->col_names[i];
+                    column->size = sqlite3_column_bytes(stmt, i);
+                    column->type = sqlite3_column_type(stmt, i);
+                    column->value = NULL;
+                    switch (column->type) {
+                    case SQLITE_FLOAT:
+                    case SQLITE_INTEGER:
+                    case SQLITE_TEXT:
+                        hold = NULL;
+                        hold = (char *) sqlite3_column_text(stmt, i);
+                        if (hold) {
+                            column->value = apr_palloc(pool, column->size + 1);
+                            strncpy(column->value, hold, column->size + 1);
+                        }
+                        break;
+                    case SQLITE_BLOB:
+                        break;
+                    case SQLITE_NULL:
+                        break;
+                    }
+                    col = row->columns[i];
+                }
+                row->rownum = num_tuples++;
+                row->next_row = 0;
+                (*results)->tuples = num_tuples;
+                if ((*results)->next_row == 0) {
+                    (*results)->next_row = row;
+                }
+                if (lastrow != 0) {
+                    lastrow->next_row = row;
+                }
+                lastrow = row;
+            } else if (ret == SQLITE_DONE) {
+                ret = SQLITE_OK;
+            }
+        } while (ret == SQLITE_ROW || ret == SQLITE_BUSY);
+    }
+    ret = sqlite3_finalize(stmt);
+#if APR_HAS_THREADS
+    apr_thread_mutex_unlock(sql->mutex);
+#endif
+
+    if (sql->trans) {
+        sql->trans->errnum = ret;
+    }
+    return ret;
+}
+
+static int dbd_sqlite3_get_row(apr_pool_t *pool, apr_dbd_results_t *res,
+                               apr_dbd_row_t **rowp, int rownum)
+{
+    int i = 0;
+
+    if (rownum == -1) {
+        *rowp = res->next_row;
+        if (*rowp == 0)
+            return -1;
+        res->next_row = (*rowp)->next_row;
+        return 0;
+    }
+    if (rownum > res->tuples) {
+        return -1;
+    }
+    rownum--;
+    *rowp = res->next_row;
+    for (; *rowp != 0; i++, *rowp = (*rowp)->next_row) {
+        if (i == rownum) {
+            return 0;
+        }
+    }
+
+    return -1;
+
+}
+
+static const char *dbd_sqlite3_get_entry(const apr_dbd_row_t *row, int n)
+{
+    apr_dbd_column_t *column;
+    const char *value;
+    if ((n < 0) || (n >= row->columnCount)) {
+        return NULL;
+    }
+    column = row->columns[n];
+    value = column->value;
+    return value;
+}
+
+static const char *dbd_sqlite3_error(apr_dbd_t *sql, int n)
+{
+    return sqlite3_errmsg(sql->conn);
+}
+
+static int dbd_sqlite3_query(apr_dbd_t *sql, int *nrows, const char *query)
+{
+    sqlite3_stmt *stmt = NULL;
+    const char *tail = NULL;
+    int ret = -1, length = 0;
+
+    if (sql->trans && sql->trans->errnum) {
+        return sql->trans->errnum;
+    }
+
+    length = strlen(query);
+#if APR_HAS_THREADS
+    apr_thread_mutex_lock(sql->mutex);
+#endif
+
+    do {
+        int retry_count = 0;
+
+        ret = sqlite3_prepare(sql->conn, query, length, &stmt, &tail);
+        if (ret != SQLITE_OK) {
+            sqlite3_finalize(stmt);
+            break;
+        }
+
+        while(retry_count++ <= MAX_RETRY_COUNT) {
+            ret = sqlite3_step(stmt);
+            if (ret != SQLITE_BUSY)
+                break;
+
+#if APR_HAS_THREADS
+            apr_thread_mutex_unlock(sql->mutex);
+#endif
+            apr_sleep(MAX_RETRY_SLEEP);
+#if APR_HAS_THREADS
+            apr_thread_mutex_lock(sql->mutex);
+#endif
+        }
+
+        *nrows = sqlite3_changes(sql->conn);
+        sqlite3_finalize(stmt);
+        length -= (tail - query);
+        query = tail;
+    } while (length > 0);
+
+    if (dbd_sqlite3_is_success(ret)) {
+        ret = 0;
+    }
+#if APR_HAS_THREADS
+    apr_thread_mutex_unlock(sql->mutex);
+#endif
+    if (sql->trans) {
+        sql->trans->errnum = ret;
+    }
+    return ret;
+}
+
+static apr_status_t free_mem(void *data)
+{
+    sqlite3_free(data);
+    return APR_SUCCESS;
+}
+
+static const char *dbd_sqlite3_escape(apr_pool_t *pool, const char *arg,
+                                      apr_dbd_t *sql)
+{
+    char *ret = sqlite3_mprintf("%q", arg);
+    apr_pool_cleanup_register(pool, ret, free_mem,
+                              apr_pool_cleanup_null);
+    return ret;
+}
+
+static int dbd_sqlite3_prepare(apr_pool_t *pool, apr_dbd_t *sql,
+                               const char *query, const char *label,
+                               apr_dbd_prepared_t **statement)
+{
+    sqlite3_stmt *stmt;
+    char *p, *slquery = apr_pstrdup(pool, query);
+    const char *tail = NULL, *q;
+    int ret;
+
+    for (p = slquery, q = query; *q; ++q) {
+        if (q[0] == '%') {
+            if (isalpha(q[1])) {
+                *p++ = '?';
+                ++q;
+            }
+            else if (q[1] == '%') {
+                /* reduce %% to % */
+                *p++ = *q++;
+            }
+            else {
+                *p++ = *q;
+            }
+        }
+        else {
+            *p++ = *q;
+        }
+    }
+    *p = 0;
+
+#if APR_HAS_THREADS
+    apr_thread_mutex_lock(sql->mutex);
+#endif
+
+    ret = sqlite3_prepare(sql->conn, slquery, strlen(query), &stmt, &tail);
+    if (ret == SQLITE_OK) {
+        apr_dbd_prepared_t *prep; 
+
+        prep = apr_pcalloc(sql->pool, sizeof(*prep));
+        prep->stmt = stmt;
+        prep->next = sql->prep;
+
+        /* link new statement to the handle */
+        sql->prep = prep;
+
+        *statement = prep;
+    } else {
+        sqlite3_finalize(stmt);
+    }
+   
+#if APR_HAS_THREADS
+    apr_thread_mutex_unlock(sql->mutex);
+#endif
+
+    return ret;
+}
+
+static int dbd_sqlite3_pquery(apr_pool_t *pool, apr_dbd_t *sql,
+                              int *nrows, apr_dbd_prepared_t *statement,
+                              int nargs, const char **values)
+{
+    sqlite3_stmt *stmt = statement->stmt;
+    int ret = -1, retry_count = 0, i;
+
+    if (sql->trans && sql->trans->errnum) {
+        return sql->trans->errnum;
+    }
+
+#if APR_HAS_THREADS
+    apr_thread_mutex_lock(sql->mutex);
+#endif
+
+    ret = sqlite3_reset(stmt);
+    if (ret == SQLITE_OK) {
+        for (i=0; i < nargs; i++) {
+            sqlite3_bind_text(stmt, i + 1, values[i], strlen(values[i]),
+                              SQLITE_STATIC);
+        }
+
+        while(retry_count++ <= MAX_RETRY_COUNT) {
+            ret = sqlite3_step(stmt);
+            if (ret != SQLITE_BUSY)
+                break;
+
+#if APR_HAS_THREADS
+            apr_thread_mutex_unlock(sql->mutex);
+#endif
+            apr_sleep(MAX_RETRY_SLEEP);
+#if APR_HAS_THREADS
+            apr_thread_mutex_lock(sql->mutex);
+#endif
+        }
+
+        *nrows = sqlite3_changes(sql->conn);
+
+        sqlite3_reset(stmt);
+    }
+
+    if (dbd_sqlite3_is_success(ret)) {
+        ret = 0;
+    }
+#if APR_HAS_THREADS
+    apr_thread_mutex_unlock(sql->mutex);
+#endif
+    if (sql->trans) {
+        sql->trans->errnum = ret;
+    }
+
+    return ret;
+}
+
+static int dbd_sqlite3_pvquery(apr_pool_t *pool, apr_dbd_t *sql, int *nrows,
+                               apr_dbd_prepared_t *statement, va_list args)
+{
+    const char **values;
+    int i, nargs;
+
+    if (sql->trans && sql->trans->errnum) {
+        return sql->trans->errnum;
+    }
+
+    nargs = sqlite3_bind_parameter_count(statement->stmt);
+    values = apr_palloc(pool, sizeof(*values) * nargs);
+
+    for (i = 0; i < nargs; i++) {
+        values[i] = apr_pstrdup(pool, va_arg(args, const char*));
+    }
+
+    return dbd_sqlite3_pquery(pool, sql, nrows, statement, nargs, values);
+}
+
+static int dbd_sqlite3_pselect(apr_pool_t *pool, apr_dbd_t *sql,
+                               apr_dbd_results_t **results,
+                               apr_dbd_prepared_t *statement, int seek,
+                               int nargs, const char **values)
+{
+    sqlite3_stmt *stmt = statement->stmt;
+    int i, ret, retry_count = 0;
+    size_t num_tuples = 0;
+    int increment = 0;
+    apr_dbd_row_t *row = NULL;
+    apr_dbd_row_t *lastrow = NULL;
+    apr_dbd_column_t *column;
+    char *hold = NULL;
+
+    if (sql->trans && sql->trans->errnum) {
+        return sql->trans->errnum;
+    }
+
+#if APR_HAS_THREADS
+    apr_thread_mutex_lock(sql->mutex);
+#endif
+
+    ret = sqlite3_reset(stmt);
+    if (ret == SQLITE_OK) {
+        int column_count;
+
+        for (i=0; i < nargs; i++) {
+            sqlite3_bind_text(stmt, i + 1, values[i], strlen(values[i]),
+                              SQLITE_STATIC);
+        }
+
+        column_count = sqlite3_column_count(stmt);
+        if (!*results) {
+            *results = apr_pcalloc(pool, sizeof(apr_dbd_results_t));
+        }
+        (*results)->stmt = stmt;
+        (*results)->sz = column_count;
+        (*results)->random = seek;
+        (*results)->next_row = 0;
+        (*results)->tuples = 0;
+        (*results)->col_names = apr_pcalloc(pool,
+                                            column_count * sizeof(char *));
+        do {
+            ret = sqlite3_step(stmt);
+            if (ret == SQLITE_BUSY) {
+                if (retry_count++ > MAX_RETRY_COUNT) {
+                    ret = SQLITE_ERROR;
+                } else {
+#if APR_HAS_THREADS
+                    apr_thread_mutex_unlock(sql->mutex);
+#endif
+                    apr_sleep(MAX_RETRY_SLEEP);
+#if APR_HAS_THREADS
+                    apr_thread_mutex_lock(sql->mutex);
+#endif
+                }
+            } else if (ret == SQLITE_ROW) {
+                int length;
+                apr_dbd_column_t *col;
+                row = apr_palloc(pool, sizeof(apr_dbd_row_t));
+                row->res = *results;
+                increment = sizeof(apr_dbd_column_t *);
+                length = increment * (*results)->sz;
+                row->columns = apr_palloc(pool, length);
+                row->columnCount = column_count;
+                for (i = 0; i < (*results)->sz; i++) {
+                    column = apr_palloc(pool, sizeof(apr_dbd_column_t));
+                    row->columns[i] = column;
+                    /* copy column name once only */
+                    if ((*results)->col_names[i] == NULL) {
+                      (*results)->col_names[i] =
+                          apr_pstrdup(pool, sqlite3_column_name(stmt, i));
+                    }
+                    column->name = (*results)->col_names[i];
+                    column->size = sqlite3_column_bytes(stmt, i);
+                    column->type = sqlite3_column_type(stmt, i);
+                    column->value = NULL;
+                    switch (column->type) {
+                    case SQLITE_FLOAT:
+                    case SQLITE_INTEGER:
+                    case SQLITE_TEXT:
+                        hold = NULL;
+                        hold = (char *) sqlite3_column_text(stmt, i);
+                        if (hold) {
+                            column->value = apr_palloc(pool, column->size + 1);
+                            strncpy(column->value, hold, column->size + 1);
+                        }
+                        break;
+                    case SQLITE_BLOB:
+                        break;
+                    case SQLITE_NULL:
+                        break;
+                    }
+                    col = row->columns[i];
+                }
+                row->rownum = num_tuples++;
+                row->next_row = 0;
+                (*results)->tuples = num_tuples;
+                if ((*results)->next_row == 0) {
+                    (*results)->next_row = row;
+                }
+                if (lastrow != 0) {
+                    lastrow->next_row = row;
+                }
+                lastrow = row;
+            } else if (ret == SQLITE_DONE) {
+                ret = SQLITE_OK;
+            }
+        } while (ret == SQLITE_ROW || ret == SQLITE_BUSY);
+
+        sqlite3_reset(stmt);
+    }
+#if APR_HAS_THREADS
+    apr_thread_mutex_unlock(sql->mutex);
+#endif
+
+    if (sql->trans) {
+        sql->trans->errnum = ret;
+    }
+    return ret;
+}
+
+static int dbd_sqlite3_pvselect(apr_pool_t *pool, apr_dbd_t *sql,
+                                apr_dbd_results_t **results,
+                                apr_dbd_prepared_t *statement, int seek,
+                                va_list args)
+{
+    const char **values;
+    int i, nargs;
+
+    if (sql->trans && sql->trans->errnum) {
+        return sql->trans->errnum;
+    }
+
+    nargs = sqlite3_bind_parameter_count(statement->stmt);
+    values = apr_palloc(pool, sizeof(*values) * nargs);
+
+    for (i = 0; i < nargs; i++) {
+        values[i] = apr_pstrdup(pool, va_arg(args, const char*));
+    }
+
+    return dbd_sqlite3_pselect(pool, sql, results, statement,
+                               seek, nargs, values);
+}
+
+static int dbd_sqlite3_start_transaction(apr_pool_t *pool,
+                                         apr_dbd_t *handle,
+                                         apr_dbd_transaction_t **trans)
+{
+    int ret = 0;
+    int nrows = 0;
+
+    ret = dbd_sqlite3_query(handle, &nrows, "BEGIN");
+    if (!*trans) {
+        *trans = apr_pcalloc(pool, sizeof(apr_dbd_transaction_t));
+        (*trans)->handle = handle;
+        handle->trans = *trans;
+    }
+
+    return ret;
+}
+
+static int dbd_sqlite3_end_transaction(apr_dbd_transaction_t *trans)
+{
+    int ret = -1; /* ending transaction that was never started is an error */
+    int nrows = 0;
+
+    if (trans) {
+        if (trans->errnum) {
+            trans->errnum = 0;
+            ret = dbd_sqlite3_query(trans->handle, &nrows, "ROLLBACK");
+        } else {
+            ret = dbd_sqlite3_query(trans->handle, &nrows, "COMMIT");
+        }
+        trans->handle->trans = NULL;
+    }
+
+    return ret;
+}
+
+static apr_dbd_t *dbd_sqlite3_open(apr_pool_t *pool, const char *params)
+{
+    apr_dbd_t *sql = NULL;
+    sqlite3 *conn = NULL;
+    apr_status_t res;
+    int sqlres;
+    if (!params)
+        return NULL;
+    sqlres = sqlite3_open(params, &conn);
+    if (sqlres != SQLITE_OK) {
+        sqlite3_close(conn);
+        return NULL;
+    }
+    /* should we register rand or power functions to the sqlite VM? */
+    sql = apr_pcalloc(pool, sizeof(*sql));
+    sql->conn = conn;
+    sql->pool = pool;
+    sql->trans = NULL;
+#if APR_HAS_THREADS
+    /* Create a mutex */
+    res = apr_thread_mutex_create(&sql->mutex, APR_THREAD_MUTEX_DEFAULT,
+                                  pool);
+    if (res != APR_SUCCESS) {
+        return NULL;
+    }
+#endif
+
+    return sql;
+}
+
+static apr_status_t dbd_sqlite3_close(apr_dbd_t *handle)
+{
+    apr_dbd_prepared_t *prep = handle->prep;
+
+    /* finalize all prepared statements, or we'll get SQLITE_BUSY on close */
+    while (prep) {
+        sqlite3_finalize(prep->stmt);
+        prep = prep->next;
+    }
+
+    sqlite3_close(handle->conn);
+#if APR_HAS_THREADS
+    apr_thread_mutex_destroy(handle->mutex);
+#endif
+    return APR_SUCCESS;
+}
+
+static apr_status_t dbd_sqlite3_check_conn(apr_pool_t *pool,
+                                           apr_dbd_t *handle)
+{
+    return (handle->conn != NULL) ? APR_SUCCESS : APR_EGENERAL;
+}
+
+static int dbd_sqlite3_select_db(apr_pool_t *pool, apr_dbd_t *handle,
+                                 const char *name)
+{
+    return APR_ENOTIMPL;
+}
+
+static void *dbd_sqlite3_native(apr_dbd_t *handle)
+{
+    return handle->conn;
+}
+
+static int dbd_sqlite3_num_cols(apr_dbd_results_t *res)
+{
+    return res->sz;
+}
+
+static int dbd_sqlite3_num_tuples(apr_dbd_results_t *res)
+{
+    return res->tuples;
+}
+
+APU_DECLARE_DATA const apr_dbd_driver_t apr_dbd_sqlite3_driver = {
+    "sqlite3",
+    NULL,
+    dbd_sqlite3_native,
+    dbd_sqlite3_open,
+    dbd_sqlite3_check_conn,
+    dbd_sqlite3_close,
+    dbd_sqlite3_select_db,
+    dbd_sqlite3_start_transaction,
+    dbd_sqlite3_end_transaction,
+    dbd_sqlite3_query,
+    dbd_sqlite3_select,
+    dbd_sqlite3_num_cols,
+    dbd_sqlite3_num_tuples,
+    dbd_sqlite3_get_row,
+    dbd_sqlite3_get_entry,
+    dbd_sqlite3_error,
+    dbd_sqlite3_escape,
+    dbd_sqlite3_prepare,
+    dbd_sqlite3_pvquery,
+    dbd_sqlite3_pvselect,
+    dbd_sqlite3_pquery,
+    dbd_sqlite3_pselect,
+};
+#endif
diff --git a/dbm/apr_dbm.c b/dbm/apr_dbm.c
new file mode 100644
index 0000000..d4fed7b
--- /dev/null
+++ b/dbm/apr_dbm.c
@@ -0,0 +1,207 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr.h"
+#include "apr_errno.h"
+#include "apr_pools.h"
+#include "apr_strings.h"
+#define APR_WANT_MEMFUNC
+#define APR_WANT_STRFUNC
+#include "apr_want.h"
+#include "apr_general.h"
+
+#include "apu.h"
+#include "apu_select_dbm.h"
+#include "apr_dbm.h"
+#include "apr_dbm_private.h"
+
+/* ### note: the setting of DBM_VTABLE will go away once we have multiple
+   ### DBMs in here. 
+   ### Well, that day is here.  So, do we remove DBM_VTABLE and the old
+   ### API entirely?  Oh, what to do.  We need an APU_DEFAULT_DBM #define.
+   ### Sounds like a job for autoconf. */
+
+#if APU_USE_SDBM
+#define DBM_VTABLE apr_dbm_type_sdbm
+#elif APU_USE_GDBM
+#define DBM_VTABLE apr_dbm_type_gdbm
+#elif APU_USE_DB
+#define DBM_VTABLE apr_dbm_type_db
+#elif APU_USE_NDBM
+#define DBM_VTABLE apr_dbm_type_ndbm
+#else /* Not in the USE_xDBM list above */
+#error a DBM implementation was not specified
+#endif
+
+APU_DECLARE(apr_status_t) apr_dbm_open_ex(apr_dbm_t **pdb, const char*type, 
+                                       const char *pathname, 
+                                       apr_int32_t mode, apr_fileperms_t perm,
+                                       apr_pool_t *pool)
+{
+#if APU_HAVE_GDBM
+    if (!strcasecmp(type, "GDBM")) {
+        return (*apr_dbm_type_gdbm.open)(pdb, pathname, mode, perm, pool);
+    }
+#endif
+#if APU_HAVE_SDBM
+    if (!strcasecmp(type, "SDBM")) {
+        return (*apr_dbm_type_sdbm.open)(pdb, pathname, mode, perm, pool);
+    }
+#endif
+#if APU_HAVE_DB
+    if (!strcasecmp(type, "DB")) {
+        return (*apr_dbm_type_db.open)(pdb, pathname, mode, perm, pool);
+    }
+#endif
+#if APU_HAVE_NDBM
+    if (!strcasecmp(type, "NDBM")) {
+        return (*apr_dbm_type_ndbm.open)(pdb, pathname, mode, perm, pool);
+    }
+#endif
+
+    if (!strcasecmp(type, "default")) {
+        return (*DBM_VTABLE.open)(pdb, pathname, mode, perm, pool);
+    }
+
+    return APR_ENOTIMPL;
+} 
+
+APU_DECLARE(apr_status_t) apr_dbm_open(apr_dbm_t **pdb, const char *pathname, 
+                                       apr_int32_t mode, apr_fileperms_t perm,
+                                       apr_pool_t *pool)
+{
+    return (*DBM_VTABLE.open)(pdb, pathname, mode, perm, pool);
+}
+
+APU_DECLARE(void) apr_dbm_close(apr_dbm_t *dbm)
+{
+    (*dbm->type->close)(dbm);
+}
+
+APU_DECLARE(apr_status_t) apr_dbm_fetch(apr_dbm_t *dbm, apr_datum_t key,
+                                        apr_datum_t *pvalue)
+{
+    return (*dbm->type->fetch)(dbm, key, pvalue);
+}
+
+APU_DECLARE(apr_status_t) apr_dbm_store(apr_dbm_t *dbm, apr_datum_t key,
+                                        apr_datum_t value)
+{
+    return (*dbm->type->store)(dbm, key, value);
+}
+
+APU_DECLARE(apr_status_t) apr_dbm_delete(apr_dbm_t *dbm, apr_datum_t key)
+{
+    return (*dbm->type->del)(dbm, key);
+}
+
+APU_DECLARE(int) apr_dbm_exists(apr_dbm_t *dbm, apr_datum_t key)
+{
+    return (*dbm->type->exists)(dbm, key);
+}
+
+APU_DECLARE(apr_status_t) apr_dbm_firstkey(apr_dbm_t *dbm, apr_datum_t *pkey)
+{
+    return (*dbm->type->firstkey)(dbm, pkey);
+}
+
+APU_DECLARE(apr_status_t) apr_dbm_nextkey(apr_dbm_t *dbm, apr_datum_t *pkey)
+{
+    return (*dbm->type->nextkey)(dbm, pkey);
+}
+
+APU_DECLARE(void) apr_dbm_freedatum(apr_dbm_t *dbm, apr_datum_t data)
+{
+    (*dbm->type->freedatum)(dbm, data);
+}
+
+APU_DECLARE(char *) apr_dbm_geterror(apr_dbm_t *dbm, int *errcode,
+                                     char *errbuf, apr_size_t errbufsize)
+{
+    if (errcode != NULL)
+        *errcode = dbm->errcode;
+
+    /* assert: errbufsize > 0 */
+
+    if (dbm->errmsg == NULL)
+        *errbuf = '\0';
+    else
+        (void) apr_cpystrn(errbuf, dbm->errmsg, errbufsize);
+    return errbuf;
+}
+
+APU_DECLARE(apr_status_t) apr_dbm_get_usednames_ex(apr_pool_t *p, 
+                                                   const char *type, 
+                                                   const char *pathname,
+                                                   const char **used1,
+                                                   const char **used2)
+{
+#if APU_HAVE_GDBM
+    if (!strcasecmp(type, "GDBM")) {
+        (*apr_dbm_type_gdbm.getusednames)(p,pathname,used1,used2);
+        return APR_SUCCESS;
+    }
+#endif
+#if APU_HAVE_SDBM
+    if (!strcasecmp(type, "SDBM")) {
+        (*apr_dbm_type_sdbm.getusednames)(p,pathname,used1,used2);
+        return APR_SUCCESS;
+    }
+#endif
+#if APU_HAVE_DB
+    if (!strcasecmp(type, "DB")) {
+        (*apr_dbm_type_db.getusednames)(p,pathname,used1,used2);
+        return APR_SUCCESS;
+    }
+#endif
+#if APU_HAVE_NDBM
+    if (!strcasecmp(type, "NDBM")) {
+        (*apr_dbm_type_ndbm.getusednames)(p,pathname,used1,used2);
+        return APR_SUCCESS;
+    }
+#endif
+
+    if (!strcasecmp(type, "default")) {
+        (*DBM_VTABLE.getusednames)(p, pathname, used1, used2);
+        return APR_SUCCESS;
+    }
+
+    return APR_ENOTIMPL;
+} 
+
+APU_DECLARE(void) apr_dbm_get_usednames(apr_pool_t *p,
+                                        const char *pathname,
+                                        const char **used1,
+                                        const char **used2)
+{
+    /* ### one day, a DBM type name will be passed and we'll need to look it
+       ### up. for now, it is constant. */
+
+    (*DBM_VTABLE.getusednames)(p, pathname, used1, used2);
+}
+
+/* Most DBM libraries take a POSIX mode for creating files.  Don't trust
+ * the mode_t type, some platforms may not support it, int is safe.
+ */
+APU_DECLARE(int) apr_posix_perms2mode(apr_fileperms_t perm)
+{
+    int mode = 0;
+
+    mode |= 0700 & (perm >> 2); /* User  is off-by-2 bits */
+    mode |= 0070 & (perm >> 1); /* Group is off-by-1 bit */
+    mode |= 0007 & (perm);      /* World maps 1 for 1 */
+    return mode;
+}
diff --git a/dbm/apr_dbm_berkeleydb.c b/dbm/apr_dbm_berkeleydb.c
new file mode 100644
index 0000000..0627742
--- /dev/null
+++ b/dbm/apr_dbm_berkeleydb.c
@@ -0,0 +1,403 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_strings.h"
+#define APR_WANT_MEMFUNC
+#include "apr_want.h"
+
+#define APU_WANT_DB
+#include "apu_want.h"
+
+#if APR_HAVE_STDLIB_H
+#include <stdlib.h> /* for abort() */
+#endif
+
+#include "apu.h"
+
+#if APU_HAVE_DB 
+#include "apr_dbm_private.h"
+
+/*
+ * We pick up all varieties of Berkeley DB through db.h (included through
+ * apu_select_dbm.h). This code has been compiled/tested against DB1,
+ * DB_185, DB2, DB3, and DB4.
+ */
+
+#if   defined(DB_VERSION_MAJOR) && (DB_VERSION_MAJOR == 4)
+/* We will treat anything greater than 4.1 as DB4.
+ * We can treat 4.0 as DB3.
+ */
+#if   defined(DB_VERSION_MINOR) && (DB_VERSION_MINOR >= 1)
+#define DB_VER 4
+#else
+#define DB_VER 3
+#endif
+#elif defined(DB_VERSION_MAJOR) && (DB_VERSION_MAJOR == 3)
+#define DB_VER 3
+#elif defined(DB_VERSION_MAJOR) && (DB_VERSION_MAJOR == 2)
+#define DB_VER 2
+#else
+#define DB_VER 1
+#endif
+
+typedef struct {
+    DB *bdb;
+#if DB_VER != 1
+    DBC *curs;
+#endif
+} real_file_t;
+
+
+#if DB_VER == 1
+#define TXN_ARG
+#else
+#define TXN_ARG NULL,
+#endif
+
+#define GET_BDB(f)      (((real_file_t *)(f))->bdb)
+
+#define do_fetch(bdb, k, v)     ((*(bdb)->get)(bdb, TXN_ARG &(k), &(v), 0))
+
+#if DB_VER == 1
+#include <sys/fcntl.h>
+#define APR_DBM_DBMODE_RO       O_RDONLY
+#define APR_DBM_DBMODE_RW       O_RDWR
+#define APR_DBM_DBMODE_RWCREATE (O_CREAT | O_RDWR)
+#define APR_DBM_DBMODE_RWTRUNC  (O_CREAT | O_RDWR | O_TRUNC)
+#else
+#define APR_DBM_DBMODE_RO       DB_RDONLY
+#define APR_DBM_DBMODE_RW       0
+#define APR_DBM_DBMODE_RWCREATE DB_CREATE
+#define APR_DBM_DBMODE_RWTRUNC  DB_TRUNCATE
+#endif /* DBVER == 1 */
+
+/* --------------------------------------------------------------------------
+**
+** UTILITY FUNCTIONS
+*/
+
+/* map a DB error to an apr_status_t */
+static apr_status_t db2s(int dberr)
+{
+    if (dberr != 0) {
+        /* ### need to fix this */
+        return APR_OS_START_USEERR + dberr;
+    }
+
+    return APR_SUCCESS;
+}
+
+
+static apr_status_t set_error(apr_dbm_t *dbm, apr_status_t dbm_said)
+{
+    apr_status_t rv = APR_SUCCESS;
+
+    /* ### ignore whatever the DBM said (dbm_said); ask it explicitly */
+
+    if (dbm_said == APR_SUCCESS) {
+        dbm->errcode = 0;
+        dbm->errmsg = NULL;
+    }
+    else {
+        /* ### need to fix. dberr was tossed in db2s(). */
+        /* ### use db_strerror() */
+        dbm->errcode = dbm_said;
+#if DB_VER == 1 || DB_VER == 2
+        dbm->errmsg = NULL;
+#else
+        dbm->errmsg = db_strerror(dbm_said - APR_OS_START_USEERR);
+#endif
+        rv = dbm_said;
+    }
+
+    return rv;
+}
+
+/* --------------------------------------------------------------------------
+**
+** DEFINE THE VTABLE FUNCTIONS FOR BERKELEY DB
+**
+** ### we may need three sets of these: db1, db2, db3
+*/
+
+static apr_status_t vt_db_open(apr_dbm_t **pdb, const char *pathname,
+                               apr_int32_t mode, apr_fileperms_t perm,
+                               apr_pool_t *pool)
+{
+    real_file_t file;
+    int dbmode;
+
+    *pdb = NULL;
+
+    switch (mode) {
+    case APR_DBM_READONLY:
+        dbmode = APR_DBM_DBMODE_RO;
+        break;
+    case APR_DBM_READWRITE:
+        dbmode = APR_DBM_DBMODE_RW;
+        break;
+    case APR_DBM_RWCREATE:
+        dbmode = APR_DBM_DBMODE_RWCREATE;
+        break;
+    case APR_DBM_RWTRUNC:
+        dbmode = APR_DBM_DBMODE_RWTRUNC;
+        break;
+    default:
+        return APR_EINVAL;
+    }
+
+    {
+        int dberr;
+
+#if DB_VER >= 3
+        if ((dberr = db_create(&file.bdb, NULL, 0)) == 0) {
+            if ((dberr = (*file.bdb->open)(file.bdb,
+#if DB_VER == 4
+                                           NULL,
+#endif
+                                           pathname, NULL, 
+                                           DB_HASH, dbmode, 
+                                           apr_posix_perms2mode(perm))) != 0) {
+                /* close the DB handler */
+                (void) (*file.bdb->close)(file.bdb, 0);
+            }
+        }
+        file.curs = NULL;
+#elif DB_VER == 2
+        dberr = db_open(pathname, DB_HASH, dbmode, apr_posix_perms2mode(perm),
+                        NULL, NULL, &file.bdb);
+        file.curs = NULL;
+#else
+        file.bdb = dbopen(pathname, dbmode, apr_posix_perms2mode(perm),
+                          DB_HASH, NULL);
+        if (file.bdb == NULL)
+            return APR_EGENERAL;      /* ### need a better error */
+        dberr = 0;
+#endif
+        if (dberr != 0)
+            return db2s(dberr);
+    }
+
+    /* we have an open database... return it */
+    *pdb = apr_pcalloc(pool, sizeof(**pdb));
+    (*pdb)->pool = pool;
+    (*pdb)->type = &apr_dbm_type_db;
+    (*pdb)->file = apr_pmemdup(pool, &file, sizeof(file));
+
+    /* ### register a cleanup to close the DBM? */
+
+    return APR_SUCCESS;
+}
+
+static void vt_db_close(apr_dbm_t *dbm)
+{
+    (*GET_BDB(dbm->file)->close)(GET_BDB(dbm->file)
+#if DB_VER != 1
+                                 , 0
+#endif
+        );
+}
+
+static apr_status_t vt_db_fetch(apr_dbm_t *dbm, apr_datum_t key,
+                                apr_datum_t * pvalue)
+{
+    DBT ckey = { 0 };
+    DBT rd = { 0 };
+    int dberr;
+
+    ckey.data = key.dptr;
+    ckey.size = key.dsize;
+
+    dberr = do_fetch(GET_BDB(dbm->file), ckey, rd);
+
+    /* "not found" is not an error. return zero'd value. */
+    if (dberr ==
+#if DB_VER == 1
+        RET_SPECIAL
+#else
+        DB_NOTFOUND
+#endif
+        ) {
+        memset(&rd, 0, sizeof(rd));
+        dberr = 0;
+    }
+
+    pvalue->dptr = rd.data;
+    pvalue->dsize = rd.size;
+
+    /* store the error info into DBM, and return a status code. Also, note
+       that *pvalue should have been cleared on error. */
+    return set_error(dbm, db2s(dberr));
+}
+
+static apr_status_t vt_db_store(apr_dbm_t *dbm, apr_datum_t key,
+                                apr_datum_t value)
+{
+    apr_status_t rv;
+    DBT ckey = { 0 };
+    DBT cvalue = { 0 };
+
+    ckey.data = key.dptr;
+    ckey.size = key.dsize;
+
+    cvalue.data = value.dptr;
+    cvalue.size = value.dsize;
+
+    rv = db2s((*GET_BDB(dbm->file)->put)(GET_BDB(dbm->file),
+                                         TXN_ARG
+                                         &ckey,
+                                         &cvalue,
+                                         0));
+
+    /* store any error info into DBM, and return a status code. */
+    return set_error(dbm, rv);
+}
+
+static apr_status_t vt_db_del(apr_dbm_t *dbm, apr_datum_t key)
+{
+    apr_status_t rv;
+    DBT ckey = { 0 };
+
+    ckey.data = key.dptr;
+    ckey.size = key.dsize;
+
+    rv = db2s((*GET_BDB(dbm->file)->del)(GET_BDB(dbm->file),
+                                         TXN_ARG
+                                         &ckey,
+                                         0));
+
+    /* store any error info into DBM, and return a status code. */
+    return set_error(dbm, rv);
+}
+
+static int vt_db_exists(apr_dbm_t *dbm, apr_datum_t key)
+{
+    DBT ckey = { 0 };   /* converted key */
+    DBT data = { 0 };
+    int dberr;
+
+    ckey.data = key.dptr;
+    ckey.size = key.dsize;
+
+    dberr = do_fetch(GET_BDB(dbm->file), ckey, data);
+
+    /* note: the result data is "loaned" to us; we don't need to free it */
+
+    /* DB returns DB_NOTFOUND if it doesn't exist. but we want to say
+       that *any* error means it doesn't exist. */
+    return dberr == 0;
+}
+
+static apr_status_t vt_db_firstkey(apr_dbm_t *dbm, apr_datum_t * pkey)
+{
+    real_file_t *f = dbm->file;
+    DBT first = { 0 };
+    DBT data = { 0 };
+    int dberr;
+
+#if DB_VER == 1
+    dberr = (*f->bdb->seq)(f->bdb, &first, &data, R_FIRST);
+#else
+    if ((dberr = (*f->bdb->cursor)(f->bdb, NULL, &f->curs
+#if DB_VER >= 3 || ((DB_VERSION_MAJOR == 2) && (DB_VERSION_MINOR > 5))
+                                   , 0
+#endif
+             )) == 0) {
+        dberr = (*f->curs->c_get)(f->curs, &first, &data, DB_FIRST);
+        if (dberr == DB_NOTFOUND) {
+            memset(&first, 0, sizeof(first));
+            (*f->curs->c_close)(f->curs);
+            f->curs = NULL;
+            dberr = 0;
+        }
+    }
+#endif
+
+    pkey->dptr = first.data;
+    pkey->dsize = first.size;
+
+    /* store any error info into DBM, and return a status code. */
+    return set_error(dbm, db2s(dberr));
+}
+
+static apr_status_t vt_db_nextkey(apr_dbm_t *dbm, apr_datum_t * pkey)
+{
+    real_file_t *f = dbm->file;
+    DBT ckey = { 0 };
+    DBT data = { 0 };
+    int dberr;
+
+    ckey.data = pkey->dptr;
+    ckey.size = pkey->dsize;
+
+#if DB_VER == 1
+    dberr = (*f->bdb->seq)(f->bdb, &ckey, &data, R_NEXT);
+    if (dberr == RET_SPECIAL) {
+        dberr = 0;
+        ckey.data = NULL;
+        ckey.size = 0;
+    }
+#else
+    if (f->curs == NULL)
+        return APR_EINVAL;
+
+    dberr = (*f->curs->c_get)(f->curs, &ckey, &data, DB_NEXT);
+    if (dberr == DB_NOTFOUND) {
+        (*f->curs->c_close)(f->curs);
+        f->curs = NULL;
+        dberr = 0;
+        ckey.data = NULL;
+        ckey.size = 0;
+    }
+#endif
+
+    pkey->dptr = ckey.data;
+    pkey->dsize = ckey.size;
+
+    /* store any error info into DBM, and return a status code. */
+    /* ### or use db2s(dberr) instead of APR_SUCCESS? */
+    return set_error(dbm, APR_SUCCESS);
+}
+
+static void vt_db_freedatum(apr_dbm_t *dbm, apr_datum_t data)
+{
+    /* nothing to do */
+}
+
+static void vt_db_usednames(apr_pool_t *pool, const char *pathname,
+                            const char **used1, const char **used2)
+{
+    *used1 = apr_pstrdup(pool, pathname);
+    *used2 = NULL;
+}
+
+
+APU_DECLARE_DATA const apr_dbm_type_t apr_dbm_type_db = {
+    "db",
+
+    vt_db_open,
+    vt_db_close,
+    vt_db_fetch,
+    vt_db_store,
+    vt_db_del,
+    vt_db_exists,
+    vt_db_firstkey,
+    vt_db_nextkey,
+    vt_db_freedatum,
+    vt_db_usednames
+};
+
+#endif /* APU_HAVE_DB */
diff --git a/dbm/apr_dbm_gdbm.c b/dbm/apr_dbm_gdbm.c
new file mode 100644
index 0000000..f0baee8
--- /dev/null
+++ b/dbm/apr_dbm_gdbm.c
@@ -0,0 +1,270 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_strings.h"
+
+#if APR_HAVE_STDLIB_H
+#include <stdlib.h>     /* for free() */
+#endif
+
+#include "apu.h"
+
+#if APU_HAVE_GDBM 
+#include "apr_dbm_private.h"
+
+#include <gdbm.h>
+
+/* this is used in a few places to define a noop "function". it is needed
+   to stop "no effect" warnings from GCC. */
+#define NOOP_FUNCTION if (0) ; else
+
+/* ### define defaults for now; these will go away in a while */
+#define REGISTER_CLEANUP(dbm, pdatum) NOOP_FUNCTION
+#define SET_FILE(pdb, f) ((pdb)->file = (f))
+
+typedef GDBM_FILE real_file_t;
+
+typedef datum *cvt_datum_t;
+#define CONVERT_DATUM(cvt, pinput) ((cvt) = (datum *)(pinput))
+
+typedef datum result_datum_t;
+#define RETURN_DATUM(poutput, rd) ((poutput)->dptr = (rd).dptr, (poutput)->dsize = (apr_size_t) (rd).dsize)
+
+#define APR_DBM_CLOSE(f)        gdbm_close(f)
+#define APR_DBM_FETCH(f, k, v)  ((v) = gdbm_fetch(f, *(k)), APR_SUCCESS)
+#define APR_DBM_STORE(f, k, v)  g2s(gdbm_store(f, *(k), *(v), GDBM_REPLACE))
+#define APR_DBM_DELETE(f, k)    g2s(gdbm_delete(f, *(k)))
+#define APR_DBM_FIRSTKEY(f, k)  ((k) = gdbm_firstkey(f), APR_SUCCESS)
+#define APR_DBM_NEXTKEY(f, k, nk) ((nk) = gdbm_nextkey(f, *(k)), APR_SUCCESS)
+#define APR_DBM_FREEDPTR(dptr)  ((dptr) ? free(dptr) : 0)
+
+#undef REGISTER_CLEANUP
+#define REGISTER_CLEANUP(dbm, pdatum) \
+    if ((pdatum)->dptr) \
+        apr_pool_cleanup_register((dbm)->pool, (pdatum)->dptr, \
+                             datum_cleanup, apr_pool_cleanup_null); \
+    else
+
+#define APR_DBM_DBMODE_RO       GDBM_READER
+#define APR_DBM_DBMODE_RW       GDBM_WRITER
+#define APR_DBM_DBMODE_RWCREATE GDBM_WRCREAT
+#define APR_DBM_DBMODE_RWTRUNC  GDBM_NEWDB
+
+/* map a GDBM error to an apr_status_t */
+static apr_status_t g2s(int gerr)
+{
+    if (gerr == -1) {
+        /* ### need to fix this */
+        return APR_EGENERAL;
+    }
+
+    return APR_SUCCESS;
+}
+
+static apr_status_t datum_cleanup(void *dptr)
+{
+    if (dptr)
+        free(dptr);
+
+    return APR_SUCCESS;
+}
+
+static apr_status_t set_error(apr_dbm_t *dbm, apr_status_t dbm_said)
+{
+    apr_status_t rv = APR_SUCCESS;
+
+    /* ### ignore whatever the DBM said (dbm_said); ask it explicitly */
+
+    if ((dbm->errcode = gdbm_errno) == GDBM_NO_ERROR) {
+        dbm->errmsg = NULL;
+    }
+    else {
+        dbm->errmsg = gdbm_strerror(gdbm_errno);
+        rv = APR_EGENERAL;        /* ### need something better */
+    }
+
+    /* captured it. clear it now. */
+    gdbm_errno = GDBM_NO_ERROR;
+
+    return rv;
+}
+
+/* --------------------------------------------------------------------------
+**
+** DEFINE THE VTABLE FUNCTIONS FOR GDBM
+*/
+
+static apr_status_t vt_gdbm_open(apr_dbm_t **pdb, const char *pathname,
+                                 apr_int32_t mode, apr_fileperms_t perm,
+                                 apr_pool_t *pool)
+{
+    real_file_t file;
+    int dbmode;
+
+    *pdb = NULL;
+
+    switch (mode) {
+    case APR_DBM_READONLY:
+        dbmode = APR_DBM_DBMODE_RO;
+        break;
+    case APR_DBM_READWRITE:
+        dbmode = APR_DBM_DBMODE_RW;
+        break;
+    case APR_DBM_RWCREATE:
+        dbmode = APR_DBM_DBMODE_RWCREATE;
+        break;
+    case APR_DBM_RWTRUNC:
+        dbmode = APR_DBM_DBMODE_RWTRUNC;
+        break;
+    default:
+        return APR_EINVAL;
+    }
+
+    {
+        /* Note: stupid cast to get rid of "const" on the pathname */
+        file = gdbm_open((char *) pathname, 0, dbmode,
+                         apr_posix_perms2mode(perm), NULL);
+        if (file == NULL)
+            return APR_EGENERAL;      /* ### need a better error */
+    }
+
+    /* we have an open database... return it */
+    *pdb = apr_pcalloc(pool, sizeof(**pdb));
+    (*pdb)->pool = pool;
+    (*pdb)->type = &apr_dbm_type_gdbm;
+    SET_FILE(*pdb, file);
+
+    /* ### register a cleanup to close the DBM? */
+
+    return APR_SUCCESS;
+}
+
+static void vt_gdbm_close(apr_dbm_t *dbm)
+{
+    APR_DBM_CLOSE(dbm->file);
+}
+
+static apr_status_t vt_gdbm_fetch(apr_dbm_t *dbm, apr_datum_t key,
+                                  apr_datum_t * pvalue)
+{
+    apr_status_t rv;
+    cvt_datum_t ckey;
+    result_datum_t rd;
+
+    CONVERT_DATUM(ckey, &key);
+    rv = APR_DBM_FETCH(dbm->file, ckey, rd);
+    RETURN_DATUM(pvalue, rd);
+
+    REGISTER_CLEANUP(dbm, pvalue);
+
+    /* store the error info into DBM, and return a status code. Also, note
+       that *pvalue should have been cleared on error. */
+    return set_error(dbm, rv);
+}
+
+static apr_status_t vt_gdbm_store(apr_dbm_t *dbm, apr_datum_t key,
+                                  apr_datum_t value)
+{
+    apr_status_t rv;
+    cvt_datum_t ckey;
+    cvt_datum_t cvalue;
+
+    CONVERT_DATUM(ckey, &key);
+    CONVERT_DATUM(cvalue, &value);
+    rv = APR_DBM_STORE(dbm->file, ckey, cvalue);
+
+    /* store any error info into DBM, and return a status code. */
+    return set_error(dbm, rv);
+}
+
+static apr_status_t vt_gdbm_del(apr_dbm_t *dbm, apr_datum_t key)
+{
+    apr_status_t rv;
+    cvt_datum_t ckey;
+
+    CONVERT_DATUM(ckey, &key);
+    rv = APR_DBM_DELETE(dbm->file, ckey);
+
+    /* store any error info into DBM, and return a status code. */
+    return set_error(dbm, rv);
+}
+
+static int vt_gdbm_exists(apr_dbm_t *dbm, apr_datum_t key)
+{
+    datum *ckey = (datum *)&key;
+
+    return gdbm_exists(dbm->file, *ckey) != 0;
+}
+
+static apr_status_t vt_gdbm_firstkey(apr_dbm_t *dbm, apr_datum_t * pkey)
+{
+    apr_status_t rv;
+    result_datum_t rd;
+
+    rv = APR_DBM_FIRSTKEY(dbm->file, rd);
+    RETURN_DATUM(pkey, rd);
+
+    REGISTER_CLEANUP(dbm, pkey);
+
+    /* store any error info into DBM, and return a status code. */
+    return set_error(dbm, rv);
+}
+
+static apr_status_t vt_gdbm_nextkey(apr_dbm_t *dbm, apr_datum_t * pkey)
+{
+    apr_status_t rv;
+    cvt_datum_t ckey;
+    result_datum_t rd;
+
+    CONVERT_DATUM(ckey, pkey);
+    rv = APR_DBM_NEXTKEY(dbm->file, ckey, rd);
+    RETURN_DATUM(pkey, rd);
+
+    REGISTER_CLEANUP(dbm, pkey);
+
+    /* store any error info into DBM, and return a status code. */
+    return set_error(dbm, APR_SUCCESS);
+}
+
+static void vt_gdbm_freedatum(apr_dbm_t *dbm, apr_datum_t data)
+{
+    (void) apr_pool_cleanup_run(dbm->pool, data.dptr, datum_cleanup);
+}
+
+static void vt_gdbm_usednames(apr_pool_t *pool, const char *pathname,
+                              const char **used1, const char **used2)
+{
+    *used1 = apr_pstrdup(pool, pathname);
+    *used2 = NULL;
+}
+
+
+APU_DECLARE_DATA const apr_dbm_type_t apr_dbm_type_gdbm = {
+    "gdbm",
+
+    vt_gdbm_open,
+    vt_gdbm_close,
+    vt_gdbm_fetch,
+    vt_gdbm_store,
+    vt_gdbm_del,
+    vt_gdbm_exists,
+    vt_gdbm_firstkey,
+    vt_gdbm_nextkey,
+    vt_gdbm_freedatum,
+    vt_gdbm_usednames
+};
+
+#endif /* APU_HAVE_GDBM */
diff --git a/dbm/apr_dbm_ndbm.c b/dbm/apr_dbm_ndbm.c
new file mode 100644
index 0000000..c4bcfcf
--- /dev/null
+++ b/dbm/apr_dbm_ndbm.c
@@ -0,0 +1,227 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_strings.h"
+
+#if APR_HAVE_STDLIB_H
+#include <stdlib.h>     /* for free() */
+#endif
+
+#include "apu.h"
+
+#if APU_HAVE_NDBM 
+#include "apr_dbm_private.h"
+
+#include <ndbm.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+/* this is used in a few places to define a noop "function". it is needed
+   to stop "no effect" warnings from GCC. */
+#define NOOP_FUNCTION if (0) ; else
+
+#define APR_DBM_DBMODE_RO       O_RDONLY
+#define APR_DBM_DBMODE_RW       O_RDWR
+#define APR_DBM_DBMODE_RWCREATE (O_RDWR|O_CREAT)
+#define APR_DBM_DBMODE_RWTRUNC  (O_RDWR|O_CREAT|O_TRUNC)
+
+/* map a NDBM error to an apr_status_t */
+static apr_status_t ndbm2s(int ndbmerr)
+{
+    if (ndbmerr == -1) {
+        /* ### need to fix this */
+        return APR_EGENERAL;
+    }
+
+    return APR_SUCCESS;
+}
+
+static apr_status_t set_error(apr_dbm_t *dbm, apr_status_t dbm_said)
+{
+    apr_status_t rv = APR_SUCCESS;
+
+    /* ### ignore whatever the DBM said (dbm_said); ask it explicitly */
+
+    dbm->errmsg = NULL;
+    if (dbm_error((DBM*)dbm->file)) {
+        dbm->errmsg = NULL;
+        rv = APR_EGENERAL;        /* ### need something better */
+    }
+
+    /* captured it. clear it now. */
+    dbm_clearerr((DBM*)dbm->file);
+
+    return rv;
+}
+
+/* --------------------------------------------------------------------------
+**
+** DEFINE THE VTABLE FUNCTIONS FOR NDBM
+*/
+
+static apr_status_t vt_ndbm_open(apr_dbm_t **pdb, const char *pathname,
+                                 apr_int32_t mode, apr_fileperms_t perm,
+                                 apr_pool_t *pool)
+{
+    DBM *file;
+    int dbmode;
+
+    *pdb = NULL;
+
+    switch (mode) {
+    case APR_DBM_READONLY:
+        dbmode = APR_DBM_DBMODE_RO;
+        break;
+    case APR_DBM_READWRITE:
+        dbmode = APR_DBM_DBMODE_RW;
+        break;
+    case APR_DBM_RWCREATE:
+        dbmode = APR_DBM_DBMODE_RWCREATE;
+        break;
+    case APR_DBM_RWTRUNC:
+        dbmode = APR_DBM_DBMODE_RWTRUNC;
+        break;
+    default:
+        return APR_EINVAL;
+    }
+
+    {
+        file = dbm_open(pathname, dbmode, apr_posix_perms2mode(perm));
+        if (file == NULL)
+            return APR_EGENERAL;      /* ### need a better error */
+    }
+
+    /* we have an open database... return it */
+    *pdb = apr_pcalloc(pool, sizeof(**pdb));
+    (*pdb)->pool = pool;
+    (*pdb)->type = &apr_dbm_type_ndbm;
+    (*pdb)->file = file;
+
+    /* ### register a cleanup to close the DBM? */
+
+    return APR_SUCCESS;
+}
+
+static void vt_ndbm_close(apr_dbm_t *dbm)
+{
+    dbm_close(dbm->file);
+}
+
+static apr_status_t vt_ndbm_fetch(apr_dbm_t *dbm, apr_datum_t key,
+                                  apr_datum_t * pvalue)
+{
+    datum *ckey;
+    datum rd;
+
+    ckey = (datum*)&key;
+    rd = dbm_fetch(dbm->file, *ckey);
+    *pvalue = *(apr_datum_t*)&rd;
+
+    /* store the error info into DBM, and return a status code. Also, note
+       that *pvalue should have been cleared on error. */
+    return set_error(dbm, APR_SUCCESS);
+}
+
+static apr_status_t vt_ndbm_store(apr_dbm_t *dbm, apr_datum_t key,
+                                  apr_datum_t value)
+{
+    apr_status_t rv;
+    datum *ckey;
+    datum *cvalue;
+
+    ckey =  (datum*)&key;
+    cvalue = (datum*)&value;
+    rv = ndbm2s( dbm_store( dbm->file, *ckey, *cvalue, DBM_REPLACE));
+
+    /* store any error info into DBM, and return a status code. */
+    return set_error(dbm, rv);
+}
+
+static apr_status_t vt_ndbm_del(apr_dbm_t *dbm, apr_datum_t key)
+{
+    apr_status_t rv;
+    datum *ckey;
+
+    ckey = (datum*)&key;
+    rv = ndbm2s( dbm_delete(dbm->file, *ckey));
+
+    /* store any error info into DBM, and return a status code. */
+    return set_error(dbm, rv);
+}
+
+static int vt_ndbm_exists(apr_dbm_t *dbm, apr_datum_t key)
+{
+    datum *ckey = (datum *)&key;
+    datum value;
+
+    value = dbm_fetch( dbm->file, *ckey);
+
+    return value.dptr != NULL;
+}
+
+static apr_status_t vt_ndbm_firstkey(apr_dbm_t *dbm, apr_datum_t * pkey)
+{
+    datum rd;
+
+    rd = dbm_firstkey(dbm->file);
+    *pkey = *(apr_datum_t*)&rd;
+
+    /* store any error info into DBM, and return a status code. */
+    return set_error(dbm, APR_SUCCESS);
+}
+
+static apr_status_t vt_ndbm_nextkey(apr_dbm_t *dbm, apr_datum_t * pkey)
+{
+    datum *ckey;
+    datum rd;
+
+    ckey = (datum*)pkey;
+    rd = dbm_nextkey(dbm->file);
+    *pkey = *(apr_datum_t*)&rd;
+
+    /* store any error info into DBM, and return a status code. */
+    return set_error(dbm, APR_SUCCESS);
+}
+
+static void vt_ndbm_freedatum(apr_dbm_t *dbm, apr_datum_t data)
+{
+  /* nothing to do */
+}
+
+static void vt_ndbm_usednames(apr_pool_t *pool, const char *pathname,
+                              const char **used1, const char **used2)
+{
+    *used1 = apr_pstrdup(pool, pathname);
+    *used2 = NULL;
+}
+
+
+APU_DECLARE_DATA const apr_dbm_type_t apr_dbm_type_ndbm = {
+    "ndbm",
+
+    vt_ndbm_open,
+    vt_ndbm_close,
+    vt_ndbm_fetch,
+    vt_ndbm_store,
+    vt_ndbm_del,
+    vt_ndbm_exists,
+    vt_ndbm_firstkey,
+    vt_ndbm_nextkey,
+    vt_ndbm_freedatum,
+    vt_ndbm_usednames
+};
+#endif /* APU_HAVE_NDBM  */
diff --git a/dbm/apr_dbm_sdbm.c b/dbm/apr_dbm_sdbm.c
new file mode 100644
index 0000000..f99b380
--- /dev/null
+++ b/dbm/apr_dbm_sdbm.c
@@ -0,0 +1,267 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_strings.h"
+#define APR_WANT_MEMFUNC
+#define APR_WANT_STRFUNC
+#include "apr_want.h"
+
+#include "apu.h"
+
+#if APU_HAVE_SDBM
+
+#include "apr_dbm_private.h"
+
+#include "apr_sdbm.h"
+#if APR_HAVE_STDLIB_H
+#include <stdlib.h>  /* For abort() */
+#endif
+
+/* this is used in a few places to define a noop "function". it is needed
+   to stop "no effect" warnings from GCC. */
+#define NOOP_FUNCTION if (0) ; else
+
+/* ### define defaults for now; these will go away in a while */
+#define REGISTER_CLEANUP(dbm, pdatum) NOOP_FUNCTION
+#define SET_FILE(pdb, f) ((pdb)->file = (f))
+
+typedef apr_sdbm_t *real_file_t;
+
+typedef apr_sdbm_datum_t cvt_datum_t;
+#define CONVERT_DATUM(cvt, pinput) \
+        ((cvt).dptr = (pinput)->dptr, (cvt).dsize = (int)(pinput)->dsize)
+
+typedef apr_sdbm_datum_t result_datum_t;
+#define RETURN_DATUM(poutput, rd) \
+        ((poutput)->dptr = (rd).dptr, (poutput)->dsize = (rd).dsize)
+
+#define APR_DBM_CLOSE(f)        apr_sdbm_close(f)
+#define APR_DBM_FETCH(f, k, v)  apr_sdbm_fetch(f, &(v), (k))
+#define APR_DBM_STORE(f, k, v)  apr_sdbm_store(f, (k), (v), APR_SDBM_REPLACE)
+#define APR_DBM_DELETE(f, k)    apr_sdbm_delete(f, (k))
+#define APR_DBM_FIRSTKEY(f, k)  apr_sdbm_firstkey(f, &(k))
+#define APR_DBM_NEXTKEY(f, k, nk) apr_sdbm_nextkey(f, &(nk))
+#define APR_DBM_FREEDPTR(dptr)  NOOP_FUNCTION
+
+#define APR_DBM_DBMODE_RO       APR_READ
+#define APR_DBM_DBMODE_RW       (APR_READ | APR_WRITE)
+#define APR_DBM_DBMODE_RWCREATE (APR_READ | APR_WRITE | APR_CREATE)
+#define APR_DBM_DBMODE_RWTRUNC  (APR_READ | APR_WRITE | APR_CREATE | \
+                                 APR_TRUNCATE)
+
+static apr_status_t set_error(apr_dbm_t *dbm, apr_status_t dbm_said)
+{
+    apr_status_t rv = APR_SUCCESS;
+
+    /* ### ignore whatever the DBM said (dbm_said); ask it explicitly */
+
+    if ((dbm->errcode = dbm_said) == APR_SUCCESS) {
+        dbm->errmsg = NULL;
+    }
+    else {
+        dbm->errmsg = "I/O error occurred.";
+        rv = APR_EGENERAL;        /* ### need something better */
+    }
+
+    return rv;
+}
+
+/* --------------------------------------------------------------------------
+**
+** DEFINE THE VTABLE FUNCTIONS FOR SDBM
+*/
+
+static apr_status_t vt_sdbm_open(apr_dbm_t **pdb, const char *pathname,
+                                 apr_int32_t mode, apr_fileperms_t perm,
+                                 apr_pool_t *pool)
+{
+    real_file_t file;
+    int dbmode;
+
+    *pdb = NULL;
+
+    switch (mode) {
+    case APR_DBM_READONLY:
+        dbmode = APR_DBM_DBMODE_RO;
+        break;
+    case APR_DBM_READWRITE:
+        dbmode = APR_DBM_DBMODE_RW;
+        break;
+    case APR_DBM_RWCREATE:
+        dbmode = APR_DBM_DBMODE_RWCREATE;
+        break;
+    case APR_DBM_RWTRUNC:
+        dbmode = APR_DBM_DBMODE_RWTRUNC;
+        break;
+    default:
+        return APR_EINVAL;
+    }
+
+    {
+        apr_status_t rv;
+
+        rv = apr_sdbm_open(&file, pathname, dbmode, perm, pool);
+        if (rv != APR_SUCCESS)
+            return rv;
+    }
+
+    /* we have an open database... return it */
+    *pdb = apr_pcalloc(pool, sizeof(**pdb));
+    (*pdb)->pool = pool;
+    (*pdb)->type = &apr_dbm_type_sdbm;
+    SET_FILE(*pdb, file);
+
+    /* ### register a cleanup to close the DBM? */
+
+    return APR_SUCCESS;
+}
+
+static void vt_sdbm_close(apr_dbm_t *dbm)
+{
+    APR_DBM_CLOSE(dbm->file);
+}
+
+static apr_status_t vt_sdbm_fetch(apr_dbm_t *dbm, apr_datum_t key,
+                                  apr_datum_t * pvalue)
+{
+    apr_status_t rv;
+    cvt_datum_t ckey;
+    result_datum_t rd;
+
+    CONVERT_DATUM(ckey, &key);
+    rv = APR_DBM_FETCH(dbm->file, ckey, rd);
+    RETURN_DATUM(pvalue, rd);
+
+    REGISTER_CLEANUP(dbm, pvalue);
+
+    /* store the error info into DBM, and return a status code. Also, note
+       that *pvalue should have been cleared on error. */
+    return set_error(dbm, rv);
+}
+
+static apr_status_t vt_sdbm_store(apr_dbm_t *dbm, apr_datum_t key,
+                                  apr_datum_t value)
+{
+    apr_status_t rv;
+    cvt_datum_t ckey;
+    cvt_datum_t cvalue;
+
+    CONVERT_DATUM(ckey, &key);
+    CONVERT_DATUM(cvalue, &value);
+    rv = APR_DBM_STORE(dbm->file, ckey, cvalue);
+
+    /* store any error info into DBM, and return a status code. */
+    return set_error(dbm, rv);
+}
+
+static apr_status_t vt_sdbm_del(apr_dbm_t *dbm, apr_datum_t key)
+{
+    apr_status_t rv;
+    cvt_datum_t ckey;
+
+    CONVERT_DATUM(ckey, &key);
+    rv = APR_DBM_DELETE(dbm->file, ckey);
+
+    /* store any error info into DBM, and return a status code. */
+    return set_error(dbm, rv);
+}
+
+static int vt_sdbm_exists(apr_dbm_t *dbm, apr_datum_t key)
+{
+    int exists;
+    apr_sdbm_datum_t ckey;
+
+    CONVERT_DATUM(ckey, &key);
+
+    {
+        apr_sdbm_datum_t value;
+        if (apr_sdbm_fetch(dbm->file, &value, ckey) != APR_SUCCESS) {
+            exists = 0;
+        }
+        else
+            exists = value.dptr != NULL;
+    }
+
+    return exists;
+}
+
+static apr_status_t vt_sdbm_firstkey(apr_dbm_t *dbm, apr_datum_t * pkey)
+{
+    apr_status_t rv;
+    result_datum_t rd;
+
+    rv = APR_DBM_FIRSTKEY(dbm->file, rd);
+    RETURN_DATUM(pkey, rd);
+
+    REGISTER_CLEANUP(dbm, pkey);
+
+    /* store any error info into DBM, and return a status code. */
+    return set_error(dbm, rv);
+}
+
+static apr_status_t vt_sdbm_nextkey(apr_dbm_t *dbm, apr_datum_t * pkey)
+{
+    apr_status_t rv;
+    cvt_datum_t ckey;
+    result_datum_t rd;
+
+    CONVERT_DATUM(ckey, pkey);
+    rv = APR_DBM_NEXTKEY(dbm->file, ckey, rd);
+    RETURN_DATUM(pkey, rd);
+
+    REGISTER_CLEANUP(dbm, pkey);
+
+    /* store any error info into DBM, and return a status code. */
+    return set_error(dbm, APR_SUCCESS);
+}
+
+static void vt_sdbm_freedatum(apr_dbm_t *dbm, apr_datum_t data)
+{
+    APR_DBM_FREEDPTR(data.dptr);
+}
+
+static void vt_sdbm_usednames(apr_pool_t *pool, const char *pathname,
+                              const char **used1, const char **used2)
+{
+    char *work;
+
+    /* ### this could be optimized by computing strlen() once and using
+       ### memcpy and pmemdup instead. but why bother? */
+
+    *used1 = apr_pstrcat(pool, pathname, APR_SDBM_DIRFEXT, NULL);
+    *used2 = work = apr_pstrdup(pool, *used1);
+
+    /* we know the extension is 4 characters */
+    memcpy(&work[strlen(work) - 4], APR_SDBM_PAGFEXT, 4);
+}
+
+
+APU_DECLARE_DATA const apr_dbm_type_t apr_dbm_type_sdbm = {
+    "sdbm",
+
+    vt_sdbm_open,
+    vt_sdbm_close,
+    vt_sdbm_fetch,
+    vt_sdbm_store,
+    vt_sdbm_del,
+    vt_sdbm_exists,
+    vt_sdbm_firstkey,
+    vt_sdbm_nextkey,
+    vt_sdbm_freedatum,
+    vt_sdbm_usednames
+};
+
+#endif /* APU_HAVE_SDBM */
diff --git a/dbm/sdbm/sdbm.c b/dbm/sdbm/sdbm.c
new file mode 100644
index 0000000..787f235
--- /dev/null
+++ b/dbm/sdbm/sdbm.c
@@ -0,0 +1,588 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * sdbm - ndbm work-alike hashed database library
+ * based on Per-Aake Larson's Dynamic Hashing algorithms. BIT 18 (1978).
+ * author: oz@nexus.yorku.ca
+ * ex-public domain, ported to APR for Apache 2
+ * core routines
+ */
+
+#include "apr.h"
+#include "apr_file_io.h"
+#include "apr_strings.h"
+#include "apr_errno.h"
+#include "apr_sdbm.h"
+
+#include "sdbm_tune.h"
+#include "sdbm_pair.h"
+#include "sdbm_private.h"
+
+#include <string.h>     /* for memset() */
+#include <stdlib.h>     /* for malloc() and free() */
+
+/*
+ * forward
+ */
+static int getdbit (apr_sdbm_t *, long);
+static apr_status_t setdbit(apr_sdbm_t *, long);
+static apr_status_t getpage(apr_sdbm_t *db, long);
+static apr_status_t getnext(apr_sdbm_datum_t *key, apr_sdbm_t *db);
+static apr_status_t makroom(apr_sdbm_t *, long, int);
+
+/*
+ * useful macros
+ */
+#define bad(x)		((x).dptr == NULL || (x).dsize <= 0)
+#define exhash(item)	sdbm_hash((item).dptr, (item).dsize)
+
+/* ### Does anything need these externally? */
+#define sdbm_dirfno(db)	((db)->dirf)
+#define sdbm_pagfno(db)	((db)->pagf)
+
+#define OFF_PAG(off)	(apr_off_t) (off) * PBLKSIZ
+#define OFF_DIR(off)	(apr_off_t) (off) * DBLKSIZ
+
+static long masks[] = {
+        000000000000, 000000000001, 000000000003, 000000000007,
+        000000000017, 000000000037, 000000000077, 000000000177,
+        000000000377, 000000000777, 000000001777, 000000003777,
+        000000007777, 000000017777, 000000037777, 000000077777,
+        000000177777, 000000377777, 000000777777, 000001777777,
+        000003777777, 000007777777, 000017777777, 000037777777,
+        000077777777, 000177777777, 000377777777, 000777777777,
+        001777777777, 003777777777, 007777777777, 017777777777
+};
+
+const apr_sdbm_datum_t sdbm_nullitem = { NULL, 0 };
+
+static apr_status_t database_cleanup(void *data)
+{
+    apr_sdbm_t *db = data;
+
+    /*
+     * Can't rely on apr_sdbm_unlock, since it will merely
+     * decrement the refcnt if several locks are held.
+     */
+    if (db->flags & (SDBM_SHARED_LOCK | SDBM_EXCLUSIVE_LOCK))
+        (void) apr_file_unlock(db->dirf);
+    (void) apr_file_close(db->dirf);
+    (void) apr_file_close(db->pagf);
+    free(db);
+
+    return APR_SUCCESS;
+}
+
+static apr_status_t prep(apr_sdbm_t **pdb, const char *dirname, const char *pagname,
+                         apr_int32_t flags, apr_fileperms_t perms, apr_pool_t *p)
+{
+    apr_sdbm_t *db;
+    apr_status_t status;
+
+    *pdb = NULL;
+
+    db = malloc(sizeof(*db));
+    memset(db, 0, sizeof(*db));
+
+    db->pool = p;
+
+    /*
+     * adjust user flags so that WRONLY becomes RDWR, 
+     * as required by this package. Also set our internal
+     * flag for RDONLY if needed.
+     */
+    if (!(flags & APR_WRITE)) {
+        db->flags |= SDBM_RDONLY;
+    }
+
+    /*
+     * adjust the file open flags so that we handle locking
+     * on our own (don't rely on any locking behavior within
+     * an apr_file_t, in case it's ever introduced, and set
+     * our own flag.
+     */
+    if (flags & APR_SHARELOCK) {
+        db->flags |= SDBM_SHARED;
+        flags &= ~APR_SHARELOCK;
+    }
+
+    flags |= APR_BINARY | APR_READ;
+
+    /*
+     * open the files in sequence, and stat the dirfile.
+     * If we fail anywhere, undo everything, return NULL.
+     */
+
+    if ((status = apr_file_open(&db->dirf, dirname, flags, perms, p))
+                != APR_SUCCESS)
+        goto error;
+
+    if ((status = apr_file_open(&db->pagf, pagname, flags, perms, p))
+                != APR_SUCCESS)
+        goto error;
+
+    if ((status = apr_sdbm_lock(db, (db->flags & SDBM_RDONLY) 
+                                        ? APR_FLOCK_SHARED
+                                        : APR_FLOCK_EXCLUSIVE))
+                != APR_SUCCESS)
+        goto error;
+
+    /* apr_pcalloc zeroed the buffers
+     * apr_sdbm_lock stated the dirf->size and invalidated the cache
+     */
+
+    /*
+     * if we are opened in SHARED mode, unlock ourself 
+     */
+    if (db->flags & SDBM_SHARED)
+        if ((status = apr_sdbm_unlock(db)) != APR_SUCCESS)
+            goto error;
+
+    /* make sure that we close the database at some point */
+    apr_pool_cleanup_register(p, db, database_cleanup, apr_pool_cleanup_null);
+
+    /* Done! */
+    *pdb = db;
+    return APR_SUCCESS;
+
+error:
+    if (db->dirf && db->pagf)
+        (void) apr_sdbm_unlock(db);
+    if (db->dirf != NULL)
+        (void) apr_file_close(db->dirf);
+    if (db->pagf != NULL) {
+        (void) apr_file_close(db->pagf);
+    }
+    free(db);
+    return status;
+}
+
+APU_DECLARE(apr_status_t) apr_sdbm_open(apr_sdbm_t **db, const char *file, 
+                                        apr_int32_t flags, 
+                                        apr_fileperms_t perms, apr_pool_t *p)
+{
+    char *dirname = apr_pstrcat(p, file, APR_SDBM_DIRFEXT, NULL);
+    char *pagname = apr_pstrcat(p, file, APR_SDBM_PAGFEXT, NULL);
+    
+    return prep(db, dirname, pagname, flags, perms, p);
+}
+
+APU_DECLARE(apr_status_t) apr_sdbm_close(apr_sdbm_t *db)
+{
+    return apr_pool_cleanup_run(db->pool, db, database_cleanup);
+}
+
+APU_DECLARE(apr_status_t) apr_sdbm_fetch(apr_sdbm_t *db, apr_sdbm_datum_t *val,
+                                         apr_sdbm_datum_t key)
+{
+    apr_status_t status;
+    
+    if (db == NULL || bad(key))
+        return APR_EINVAL;
+
+    if ((status = apr_sdbm_lock(db, APR_FLOCK_SHARED)) != APR_SUCCESS)
+        return status;
+
+    if ((status = getpage(db, exhash(key))) == APR_SUCCESS) {
+        *val = getpair(db->pagbuf, key);
+        /* ### do we want a not-found result? */
+    }
+
+    (void) apr_sdbm_unlock(db);
+
+    return status;
+}
+
+static apr_status_t write_page(apr_sdbm_t *db, const char *buf, long pagno)
+{
+    apr_status_t status;
+    apr_off_t off = OFF_PAG(pagno);
+    
+    if ((status = apr_file_seek(db->pagf, APR_SET, &off)) == APR_SUCCESS)
+        status = apr_file_write_full(db->pagf, buf, PBLKSIZ, NULL);
+
+    return status;
+}
+
+APU_DECLARE(apr_status_t) apr_sdbm_delete(apr_sdbm_t *db, 
+                                          const apr_sdbm_datum_t key)
+{
+    apr_status_t status;
+    
+    if (db == NULL || bad(key))
+        return APR_EINVAL;
+    if (apr_sdbm_rdonly(db))
+        return APR_EINVAL;
+    
+    if ((status = apr_sdbm_lock(db, APR_FLOCK_EXCLUSIVE)) != APR_SUCCESS)
+        return status;
+
+    if ((status = getpage(db, exhash(key))) == APR_SUCCESS) {
+        if (!delpair(db->pagbuf, key))
+            /* ### should we define some APRUTIL codes? */
+            status = APR_EGENERAL;
+        else
+            status = write_page(db, db->pagbuf, db->pagbno);
+    }
+
+    (void) apr_sdbm_unlock(db);
+
+    return status;
+}
+
+APU_DECLARE(apr_status_t) apr_sdbm_store(apr_sdbm_t *db, apr_sdbm_datum_t key,
+                                         apr_sdbm_datum_t val, int flags)
+{
+    int need;
+    register long hash;
+    apr_status_t status;
+    
+    if (db == NULL || bad(key))
+        return APR_EINVAL;
+    if (apr_sdbm_rdonly(db))
+        return APR_EINVAL;
+    need = key.dsize + val.dsize;
+    /*
+     * is the pair too big (or too small) for this database ??
+     */
+    if (need < 0 || need > PAIRMAX)
+        return APR_EINVAL;
+
+    if ((status = apr_sdbm_lock(db, APR_FLOCK_EXCLUSIVE)) != APR_SUCCESS)
+        return status;
+
+    if ((status = getpage(db, (hash = exhash(key)))) == APR_SUCCESS) {
+
+        /*
+         * if we need to replace, delete the key/data pair
+         * first. If it is not there, ignore.
+         */
+        if (flags == APR_SDBM_REPLACE)
+            (void) delpair(db->pagbuf, key);
+        else if (!(flags & APR_SDBM_INSERTDUP) && duppair(db->pagbuf, key)) {
+            status = APR_EEXIST;
+            goto error;
+        }
+        /*
+         * if we do not have enough room, we have to split.
+         */
+        if (!fitpair(db->pagbuf, need))
+            if ((status = makroom(db, hash, need)) != APR_SUCCESS)
+                goto error;
+        /*
+         * we have enough room or split is successful. insert the key,
+         * and update the page file.
+         */
+        (void) putpair(db->pagbuf, key, val);
+
+        status = write_page(db, db->pagbuf, db->pagbno);
+    }
+
+error:
+    (void) apr_sdbm_unlock(db);    
+
+    return status;
+}
+
+/*
+ * makroom - make room by splitting the overfull page
+ * this routine will attempt to make room for SPLTMAX times before
+ * giving up.
+ */
+static apr_status_t makroom(apr_sdbm_t *db, long hash, int need)
+{
+    long newp;
+    char twin[PBLKSIZ];
+    char *pag = db->pagbuf;
+    char *new = twin;
+    register int smax = SPLTMAX;
+    apr_status_t status;
+
+    do {
+        /*
+         * split the current page
+         */
+        (void) splpage(pag, new, db->hmask + 1);
+        /*
+         * address of the new page
+         */
+        newp = (hash & db->hmask) | (db->hmask + 1);
+
+        /*
+         * write delay, read avoidence/cache shuffle:
+         * select the page for incoming pair: if key is to go to the new page,
+         * write out the previous one, and copy the new one over, thus making
+         * it the current page. If not, simply write the new page, and we are
+         * still looking at the page of interest. current page is not updated
+         * here, as sdbm_store will do so, after it inserts the incoming pair.
+         */
+        if (hash & (db->hmask + 1)) {
+            if ((status = write_page(db, db->pagbuf, db->pagbno)) 
+                        != APR_SUCCESS)
+                return status;
+                    
+            db->pagbno = newp;
+            (void) memcpy(pag, new, PBLKSIZ);
+        }
+        else {
+            if ((status = write_page(db, new, newp)) != APR_SUCCESS)
+                return status;
+        }
+
+        if ((status = setdbit(db, db->curbit)) != APR_SUCCESS)
+            return status;
+        /*
+         * see if we have enough room now
+         */
+        if (fitpair(pag, need))
+            return APR_SUCCESS;
+        /*
+         * try again... update curbit and hmask as getpage would have
+         * done. because of our update of the current page, we do not
+         * need to read in anything. BUT we have to write the current
+         * [deferred] page out, as the window of failure is too great.
+         */
+        db->curbit = 2 * db->curbit
+                   + ((hash & (db->hmask + 1)) ? 2 : 1);
+        db->hmask |= db->hmask + 1;
+            
+        if ((status = write_page(db, db->pagbuf, db->pagbno))
+                    != APR_SUCCESS)
+            return status;
+            
+    } while (--smax);
+
+    /*
+     * if we are here, this is real bad news. After SPLTMAX splits,
+     * we still cannot fit the key. say goodnight.
+     */
+#if 0
+    (void) write(2, "sdbm: cannot insert after SPLTMAX attempts.\n", 44);
+#endif
+    /* ### ENOSPC not really appropriate but better than nothing */
+    return APR_ENOSPC;
+
+}
+
+/* Reads 'len' bytes from file 'f' at offset 'off' into buf.
+ * 'off' is given relative to the start of the file.
+ * If EOF is returned while reading, this is taken as success.
+ */
+static apr_status_t read_from(apr_file_t *f, void *buf, 
+             apr_off_t off, apr_size_t len)
+{
+    apr_status_t status;
+
+    if ((status = apr_file_seek(f, APR_SET, &off)) != APR_SUCCESS ||
+        ((status = apr_file_read_full(f, buf, len, NULL)) != APR_SUCCESS)) {
+        /* if EOF is reached, pretend we read all zero's */
+        if (status == APR_EOF) {
+            memset(buf, 0, len);
+            status = APR_SUCCESS;
+        }
+    }
+
+    return status;
+}
+
+/*
+ * the following two routines will break if
+ * deletions aren't taken into account. (ndbm bug)
+ */
+APU_DECLARE(apr_status_t) apr_sdbm_firstkey(apr_sdbm_t *db, 
+                                            apr_sdbm_datum_t *key)
+{
+    apr_status_t status;
+    
+    if ((status = apr_sdbm_lock(db, APR_FLOCK_SHARED)) != APR_SUCCESS)
+        return status;
+
+    /*
+     * start at page 0
+     */
+    if ((status = read_from(db->pagf, db->pagbuf, OFF_PAG(0), PBLKSIZ))
+                == APR_SUCCESS) {
+        db->pagbno = 0;
+        db->blkptr = 0;
+        db->keyptr = 0;
+        status = getnext(key, db);
+    }
+
+    (void) apr_sdbm_unlock(db);
+
+    return status;
+}
+
+APU_DECLARE(apr_status_t) apr_sdbm_nextkey(apr_sdbm_t *db, 
+                                           apr_sdbm_datum_t *key)
+{
+    apr_status_t status;
+    
+    if ((status = apr_sdbm_lock(db, APR_FLOCK_SHARED)) != APR_SUCCESS)
+        return status;
+
+    status = getnext(key, db);
+
+    (void) apr_sdbm_unlock(db);
+
+    return status;
+}
+
+/*
+ * all important binary tree traversal
+ */
+static apr_status_t getpage(apr_sdbm_t *db, long hash)
+{
+    register int hbit;
+    register long dbit;
+    register long pagb;
+    apr_status_t status;
+
+    dbit = 0;
+    hbit = 0;
+    while (dbit < db->maxbno && getdbit(db, dbit))
+    dbit = 2 * dbit + ((hash & (1 << hbit++)) ? 2 : 1);
+
+    debug(("dbit: %d...", dbit));
+
+    db->curbit = dbit;
+    db->hmask = masks[hbit];
+
+    pagb = hash & db->hmask;
+    /*
+     * see if the block we need is already in memory.
+     * note: this lookaside cache has about 10% hit rate.
+     */
+    if (pagb != db->pagbno) { 
+        /*
+         * note: here, we assume a "hole" is read as 0s.
+         * if not, must zero pagbuf first.
+         * ### joe: this assumption was surely never correct? but
+         * ### we make it so in read_from anyway.
+         */
+        if ((status = read_from(db->pagf, db->pagbuf, OFF_PAG(pagb), PBLKSIZ)) 
+                    != APR_SUCCESS)
+            return status;
+
+        if (!chkpage(db->pagbuf))
+            return APR_ENOSPC; /* ### better error? */
+        db->pagbno = pagb;
+
+        debug(("pag read: %d\n", pagb));
+    }
+    return APR_SUCCESS;
+}
+
+static int getdbit(apr_sdbm_t *db, long dbit)
+{
+    register long c;
+    register long dirb;
+
+    c = dbit / BYTESIZ;
+    dirb = c / DBLKSIZ;
+
+    if (dirb != db->dirbno) {
+        if (read_from(db->dirf, db->dirbuf, OFF_DIR(dirb), DBLKSIZ)
+                    != APR_SUCCESS)
+            return 0;
+
+        db->dirbno = dirb;
+
+        debug(("dir read: %d\n", dirb));
+    }
+
+    return db->dirbuf[c % DBLKSIZ] & (1 << dbit % BYTESIZ);
+}
+
+static apr_status_t setdbit(apr_sdbm_t *db, long dbit)
+{
+    register long c;
+    register long dirb;
+    apr_status_t status;
+    apr_off_t off;
+
+    c = dbit / BYTESIZ;
+    dirb = c / DBLKSIZ;
+
+    if (dirb != db->dirbno) {
+        if ((status = read_from(db->dirf, db->dirbuf, OFF_DIR(dirb), DBLKSIZ))
+                    != APR_SUCCESS)
+            return status;
+
+        db->dirbno = dirb;
+        
+        debug(("dir read: %d\n", dirb));
+    }
+
+    db->dirbuf[c % DBLKSIZ] |= (1 << dbit % BYTESIZ);
+
+    if (dbit >= db->maxbno)
+        db->maxbno += DBLKSIZ * BYTESIZ;
+
+    off = OFF_DIR(dirb);
+    if ((status = apr_file_seek(db->dirf, APR_SET, &off)) == APR_SUCCESS)
+        status = apr_file_write_full(db->dirf, db->dirbuf, DBLKSIZ, NULL);
+
+    return status;
+}
+
+/*
+* getnext - get the next key in the page, and if done with
+* the page, try the next page in sequence
+*/
+static apr_status_t getnext(apr_sdbm_datum_t *key, apr_sdbm_t *db)
+{
+    apr_status_t status;
+    for (;;) {
+        db->keyptr++;
+        *key = getnkey(db->pagbuf, db->keyptr);
+        if (key->dptr != NULL)
+            return APR_SUCCESS;
+        /*
+         * we either run out, or there is nothing on this page..
+         * try the next one... If we lost our position on the
+         * file, we will have to seek.
+         */
+        db->keyptr = 0;
+        if (db->pagbno != db->blkptr++) {
+            apr_off_t off = OFF_PAG(db->blkptr);
+            if ((status = apr_file_seek(db->pagf, APR_SET, &off) 
+                        != APR_SUCCESS))
+                return status;
+        }
+
+        db->pagbno = db->blkptr;
+        /* ### EOF acceptable here too? */
+        if ((status = apr_file_read_full(db->pagf, db->pagbuf, PBLKSIZ, NULL))
+                    != APR_SUCCESS)
+            return status;
+        if (!chkpage(db->pagbuf))
+            return APR_EGENERAL;     /* ### need better error */
+    }
+
+    /* NOTREACHED */
+}
+
+
+APU_DECLARE(int) apr_sdbm_rdonly(apr_sdbm_t *db)
+{
+    /* ### Should we return true if the first lock is a share lock,
+     *     to reflect that apr_sdbm_store and apr_sdbm_delete will fail?
+     */
+    return (db->flags & SDBM_RDONLY) != 0;
+}
+
diff --git a/dbm/sdbm/sdbm_hash.c b/dbm/sdbm/sdbm_hash.c
new file mode 100644
index 0000000..e4d7517
--- /dev/null
+++ b/dbm/sdbm/sdbm_hash.c
@@ -0,0 +1,63 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * sdbm - ndbm work-alike hashed database library
+ * based on Per-Aake Larson's Dynamic Hashing algorithms. BIT 18 (1978).
+ * author: oz@nexus.yorku.ca
+ * status: ex-public domain. keep it that way.
+ *
+ * hashing routine
+ */
+
+#include "apr_sdbm.h"
+#include "sdbm_private.h"
+
+/*
+ * polynomial conversion ignoring overflows
+ * [this seems to work remarkably well, in fact better
+ * then the ndbm hash function. Replace at your own risk]
+ * use: 65599	nice.
+ *      65587   even better. 
+ */
+long sdbm_hash(const char *str, int len)
+{
+	register unsigned long n = 0;
+
+#define DUFF	/* go ahead and use the loop-unrolled version */
+#ifdef DUFF
+
+#define HASHC	n = *str++ + 65599 * n
+
+	if (len > 0) {
+		register int loop = (len + 8 - 1) >> 3;
+
+		switch(len & (8 - 1)) {
+		case 0:	do {
+			HASHC;	case 7:	HASHC;
+		case 6:	HASHC;	case 5:	HASHC;
+		case 4:	HASHC;	case 3:	HASHC;
+		case 2:	HASHC;	case 1:	HASHC;
+			} while (--loop);
+		}
+
+	}
+#else
+	while (len--)
+		n = *str++ + 65599 * n;
+#endif
+	return n;
+}
diff --git a/dbm/sdbm/sdbm_lock.c b/dbm/sdbm/sdbm_lock.c
new file mode 100644
index 0000000..b2a3011
--- /dev/null
+++ b/dbm/sdbm/sdbm_lock.c
@@ -0,0 +1,78 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_file_info.h"
+#include "apr_file_io.h"
+#include "apr_sdbm.h"
+
+#include "sdbm_private.h"
+#include "sdbm_tune.h"
+
+/* NOTE: this function blocks until it acquires the lock */
+APU_DECLARE(apr_status_t) apr_sdbm_lock(apr_sdbm_t *db, int type)
+{
+    apr_status_t status;
+
+    if (!(type == APR_FLOCK_SHARED || type == APR_FLOCK_EXCLUSIVE))
+        return APR_EINVAL;
+
+    if (db->flags & SDBM_EXCLUSIVE_LOCK) {
+        ++db->lckcnt;
+        return APR_SUCCESS;
+    }
+    else if (db->flags & SDBM_SHARED_LOCK) {
+        /*
+         * Cannot promote a shared lock to an exlusive lock
+         * in a cross-platform compatibile manner.
+         */
+        if (type == APR_FLOCK_EXCLUSIVE)
+            return APR_EINVAL;
+        ++db->lckcnt;
+        return APR_SUCCESS;
+    }
+    /*
+     * zero size: either a fresh database, or one with a single,
+     * unsplit data page: dirpage is all zeros.
+     */
+    if ((status = apr_file_lock(db->dirf, type)) == APR_SUCCESS) 
+    {
+        apr_finfo_t finfo;
+        if ((status = apr_file_info_get(&finfo, APR_FINFO_SIZE, db->dirf))
+                != APR_SUCCESS) {
+            (void) apr_file_unlock(db->dirf);
+            return status;
+        }
+
+        SDBM_INVALIDATE_CACHE(db, finfo);
+
+        ++db->lckcnt;
+        if (type == APR_FLOCK_SHARED)
+            db->flags |= SDBM_SHARED_LOCK;
+        else if (type == APR_FLOCK_EXCLUSIVE)
+            db->flags |= SDBM_EXCLUSIVE_LOCK;
+    }
+    return status;
+}
+
+APU_DECLARE(apr_status_t) apr_sdbm_unlock(apr_sdbm_t *db)
+{
+    if (!(db->flags & (SDBM_SHARED_LOCK | SDBM_EXCLUSIVE_LOCK)))
+        return APR_EINVAL;
+    if (--db->lckcnt > 0)
+        return APR_SUCCESS;
+    db->flags &= ~(SDBM_SHARED_LOCK | SDBM_EXCLUSIVE_LOCK);
+    return apr_file_unlock(db->dirf);
+}
diff --git a/dbm/sdbm/sdbm_pair.c b/dbm/sdbm/sdbm_pair.c
new file mode 100644
index 0000000..2130200
--- /dev/null
+++ b/dbm/sdbm/sdbm_pair.c
@@ -0,0 +1,319 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * sdbm - ndbm work-alike hashed database library
+ * based on Per-Aake Larson's Dynamic Hashing algorithms. BIT 18 (1978).
+ * author: oz@nexus.yorku.ca
+ * status: ex-public domain.
+ *
+ * page-level routines
+ */
+
+#include "apr_sdbm.h"
+
+#include "sdbm_tune.h"
+#include "sdbm_pair.h"
+#include "sdbm_private.h"
+
+#include <string.h>	/* for memset() */
+
+
+#define exhash(item)	sdbm_hash((item).dptr, (item).dsize)
+
+/* 
+ * forward 
+ */
+static int seepair(char *, int, char *, int);
+
+/*
+ * page format:
+ *	+------------------------------+
+ * ino	| n | keyoff | datoff | keyoff |
+ * 	+------------+--------+--------+
+ *	| datoff | - - - ---->	       |
+ *	+--------+---------------------+
+ *	|	 F R E E A R E A       |
+ *	+--------------+---------------+
+ *	|  <---- - - - | data          |
+ *	+--------+-----+----+----------+
+ *	|  key   | data     | key      |
+ *	+--------+----------+----------+
+ *
+ * calculating the offsets for free area:  if the number
+ * of entries (ino[0]) is zero, the offset to the END of
+ * the free area is the block size. Otherwise, it is the
+ * nth (ino[ino[0]]) entry's offset.
+ */
+
+int
+fitpair(pag, need)
+char *pag;
+int need;
+{
+	register int n;
+	register int off;
+	register int avail;
+	register short *ino = (short *) pag;
+
+	off = ((n = ino[0]) > 0) ? ino[n] : PBLKSIZ;
+	avail = off - (n + 1) * sizeof(short);
+	need += 2 * sizeof(short);
+
+	debug(("avail %d need %d\n", avail, need));
+
+	return need <= avail;
+}
+
+void
+putpair(pag, key, val)
+char *pag;
+apr_sdbm_datum_t key;
+apr_sdbm_datum_t val;
+{
+	register int n;
+	register int off;
+	register short *ino = (short *) pag;
+
+	off = ((n = ino[0]) > 0) ? ino[n] : PBLKSIZ;
+/*
+ * enter the key first
+ */
+	off -= key.dsize;
+	(void) memcpy(pag + off, key.dptr, key.dsize);
+	ino[n + 1] = off;
+/*
+ * now the data
+ */
+	off -= val.dsize;
+	(void) memcpy(pag + off, val.dptr, val.dsize);
+	ino[n + 2] = off;
+/*
+ * adjust item count
+ */
+	ino[0] += 2;
+}
+
+apr_sdbm_datum_t
+getpair(pag, key)
+char *pag;
+apr_sdbm_datum_t key;
+{
+	register int i;
+	register int n;
+	apr_sdbm_datum_t val;
+	register short *ino = (short *) pag;
+
+	if ((n = ino[0]) == 0)
+		return sdbm_nullitem;
+
+	if ((i = seepair(pag, n, key.dptr, key.dsize)) == 0)
+		return sdbm_nullitem;
+
+	val.dptr = pag + ino[i + 1];
+	val.dsize = ino[i] - ino[i + 1];
+	return val;
+}
+
+int
+duppair(pag, key)
+char *pag;
+apr_sdbm_datum_t key;
+{
+	register short *ino = (short *) pag;
+	return ino[0] > 0 && seepair(pag, ino[0], key.dptr, key.dsize) > 0;
+}
+
+apr_sdbm_datum_t
+getnkey(pag, num)
+char *pag;
+int num;
+{
+	apr_sdbm_datum_t key;
+	register int off;
+	register short *ino = (short *) pag;
+
+	num = num * 2 - 1;
+	if (ino[0] == 0 || num > ino[0])
+		return sdbm_nullitem;
+
+	off = (num > 1) ? ino[num - 1] : PBLKSIZ;
+
+	key.dptr = pag + ino[num];
+	key.dsize = off - ino[num];
+
+	return key;
+}
+
+int
+delpair(pag, key)
+char *pag;
+apr_sdbm_datum_t key;
+{
+	register int n;
+	register int i;
+	register short *ino = (short *) pag;
+
+	if ((n = ino[0]) == 0)
+		return 0;
+
+	if ((i = seepair(pag, n, key.dptr, key.dsize)) == 0)
+		return 0;
+/*
+ * found the key. if it is the last entry
+ * [i.e. i == n - 1] we just adjust the entry count.
+ * hard case: move all data down onto the deleted pair,
+ * shift offsets onto deleted offsets, and adjust them.
+ * [note: 0 < i < n]
+ */
+	if (i < n - 1) {
+		register int m;
+		register char *dst = pag + (i == 1 ? PBLKSIZ : ino[i - 1]);
+		register char *src = pag + ino[i + 1];
+		register short zoo = (short) (dst - src);
+
+		debug(("free-up %d ", zoo));
+/*
+ * shift data/keys down
+ */
+		m = ino[i + 1] - ino[n];
+
+#undef DUFF	/* just use memmove. it should be plenty fast. */
+#ifdef DUFF
+#define MOVB 	*--dst = *--src
+
+		if (m > 0) {
+			register int loop = (m + 8 - 1) >> 3;
+
+			switch (m & (8 - 1)) {
+			case 0:	do {
+				MOVB;	case 7:	MOVB;
+			case 6:	MOVB;	case 5:	MOVB;
+			case 4:	MOVB;	case 3:	MOVB;
+			case 2:	MOVB;	case 1:	MOVB;
+				} while (--loop);
+			}
+		}
+#else
+		dst -= m;
+		src -= m;
+		memmove(dst, src, m);
+#endif
+
+/*
+ * adjust offset index up
+ */
+		while (i < n - 1) {
+			ino[i] = ino[i + 2] + zoo;
+			i++;
+		}
+	}
+	ino[0] -= 2;
+	return 1;
+}
+
+/*
+ * search for the key in the page.
+ * return offset index in the range 0 < i < n.
+ * return 0 if not found.
+ */
+static int
+seepair(pag, n, key, siz)
+char *pag;
+register int n;
+register char *key;
+register int siz;
+{
+	register int i;
+	register int off = PBLKSIZ;
+	register short *ino = (short *) pag;
+
+	for (i = 1; i < n; i += 2) {
+		if (siz == off - ino[i] &&
+		    memcmp(key, pag + ino[i], siz) == 0)
+			return i;
+		off = ino[i + 1];
+	}
+	return 0;
+}
+
+void
+splpage(pag, new, sbit)
+char *pag;
+char *new;
+long sbit;
+{
+	apr_sdbm_datum_t key;
+	apr_sdbm_datum_t val;
+
+	register int n;
+	register int off = PBLKSIZ;
+	char cur[PBLKSIZ];
+	register short *ino = (short *) cur;
+
+	(void) memcpy(cur, pag, PBLKSIZ);
+	(void) memset(pag, 0, PBLKSIZ);
+	(void) memset(new, 0, PBLKSIZ);
+
+	n = ino[0];
+	for (ino++; n > 0; ino += 2) {
+		key.dptr = cur + ino[0]; 
+		key.dsize = off - ino[0];
+		val.dptr = cur + ino[1];
+		val.dsize = ino[0] - ino[1];
+/*
+ * select the page pointer (by looking at sbit) and insert
+ */
+		(void) putpair((exhash(key) & sbit) ? new : pag, key, val);
+
+		off = ino[1];
+		n -= 2;
+	}
+
+	debug(("%d split %d/%d\n", ((short *) cur)[0] / 2, 
+	       ((short *) new)[0] / 2,
+	       ((short *) pag)[0] / 2));
+}
+
+/*
+ * check page sanity: 
+ * number of entries should be something
+ * reasonable, and all offsets in the index should be in order.
+ * this could be made more rigorous.
+ */
+int
+chkpage(pag)
+char *pag;
+{
+	register int n;
+	register int off;
+	register short *ino = (short *) pag;
+
+	if ((n = ino[0]) < 0 || n > PBLKSIZ / sizeof(short))
+		return 0;
+
+	if (n > 0) {
+		off = PBLKSIZ;
+		for (ino++; n > 0; ino += 2) {
+			if (ino[0] > off || ino[1] > off ||
+			    ino[1] > ino[0])
+				return 0;
+			off = ino[1];
+			n -= 2;
+		}
+	}
+	return 1;
+}
diff --git a/dbm/sdbm/sdbm_pair.h b/dbm/sdbm/sdbm_pair.h
new file mode 100644
index 0000000..222c5e1
--- /dev/null
+++ b/dbm/sdbm/sdbm_pair.h
@@ -0,0 +1,40 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef SDBM_PAIR_H
+#define SDBM_PAIR_H
+
+/* Mini EMBED (pair.c) */
+#define chkpage apu__sdbm_chkpage
+#define delpair apu__sdbm_delpair
+#define duppair apu__sdbm_duppair
+#define fitpair apu__sdbm_fitpair
+#define getnkey apu__sdbm_getnkey
+#define getpair apu__sdbm_getpair
+#define putpair apu__sdbm_putpair
+#define splpage apu__sdbm_splpage
+
+int fitpair(char *, int);
+void  putpair(char *, apr_sdbm_datum_t, apr_sdbm_datum_t);
+apr_sdbm_datum_t getpair(char *, apr_sdbm_datum_t);
+int  delpair(char *, apr_sdbm_datum_t);
+int  chkpage (char *);
+apr_sdbm_datum_t getnkey(char *, int);
+void splpage(char *, char *, long);
+int duppair(char *, apr_sdbm_datum_t);
+
+#endif /* SDBM_PAIR_H */
+
diff --git a/dbm/sdbm/sdbm_private.h b/dbm/sdbm/sdbm_private.h
new file mode 100644
index 0000000..f5d1ae0
--- /dev/null
+++ b/dbm/sdbm/sdbm_private.h
@@ -0,0 +1,84 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * sdbm - ndbm work-alike hashed database library
+ * based on Per-Ake Larson's Dynamic Hashing algorithms. BIT 18 (1978).
+ * author: oz@nexus.yorku.ca
+ */
+
+#ifndef SDBM_PRIVATE_H
+#define SDBM_PRIVATE_H
+
+#include "apr.h"
+#include "apr_pools.h"
+#include "apr_file_io.h"
+#include "apr_errno.h" /* for apr_status_t */
+
+#if 0
+/* if the block/page size is increased, it breaks perl apr_sdbm_t compatibility */
+#define DBLKSIZ 16384
+#define PBLKSIZ 8192
+#define PAIRMAX 8008			/* arbitrary on PBLKSIZ-N */
+#else
+#define DBLKSIZ 4096
+#define PBLKSIZ 1024
+#define PAIRMAX 1008			/* arbitrary on PBLKSIZ-N */
+#endif
+#define SPLTMAX	10			/* maximum allowed splits */
+
+/* for apr_sdbm_t.flags */
+#define SDBM_RDONLY	        0x1    /* data base open read-only */
+#define SDBM_SHARED	        0x2    /* data base open for sharing */
+#define SDBM_SHARED_LOCK	0x4    /* data base locked for shared read */
+#define SDBM_EXCLUSIVE_LOCK	0x8    /* data base locked for write */
+
+struct apr_sdbm_t {
+    apr_pool_t *pool;
+    apr_file_t *dirf;		       /* directory file descriptor */
+    apr_file_t *pagf;		       /* page file descriptor */
+    apr_int32_t flags;		       /* status/error flags, see below */
+    long maxbno;		       /* size of dirfile in bits */
+    long curbit;		       /* current bit number */
+    long hmask;			       /* current hash mask */
+    long blkptr;		       /* current block for nextkey */
+    int  keyptr;		       /* current key for nextkey */
+    long blkno;			       /* current page to read/write */
+    long pagbno;		       /* current page in pagbuf */
+    char pagbuf[PBLKSIZ];	       /* page file block buffer */
+    long dirbno;		       /* current block in dirbuf */
+    char dirbuf[DBLKSIZ];	       /* directory file block buffer */
+    int  lckcnt;                       /* number of calls to sdbm_lock */
+};
+
+
+#define sdbm_hash apu__sdbm_hash
+#define sdbm_nullitem apu__sdbm_nullitem
+
+extern const apr_sdbm_datum_t sdbm_nullitem;
+
+long sdbm_hash(const char *str, int len);
+
+/*
+ * zero the cache
+ */
+#define SDBM_INVALIDATE_CACHE(db, finfo) \
+    do { db->dirbno = (!finfo.size) ? 0 : -1; \
+         db->pagbno = -1; \
+         db->maxbno = (long)(finfo.size * BYTESIZ); \
+    } while (0);
+
+#endif /* SDBM_PRIVATE_H */
diff --git a/dbm/sdbm/sdbm_tune.h b/dbm/sdbm/sdbm_tune.h
new file mode 100644
index 0000000..9bf3d09
--- /dev/null
+++ b/dbm/sdbm/sdbm_tune.h
@@ -0,0 +1,40 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * sdbm - ndbm work-alike hashed database library
+ * tuning and portability constructs [not nearly enough]
+ * author: oz@nexus.yorku.ca
+ */
+
+#ifndef SDBM_TUNE_H
+#define SDBM_TUNE_H
+
+#include "apr_errno.h"
+
+/* ### this might be better off as sizeof(char *) */
+#define BYTESIZ		8
+
+/*
+ * misc
+ */
+#ifdef DEBUG
+#define debug(x)	printf x
+#else
+#define debug(x)
+#endif
+
+#endif /* SDBM_TUNE_H */
diff --git a/docs/doxygen.conf b/docs/doxygen.conf
new file mode 100644
index 0000000..dc49609
--- /dev/null
+++ b/docs/doxygen.conf
@@ -0,0 +1,30 @@
+PROJECT_NAME="Apache Portable Runtime Utility Library"
+
+INPUT=.
+QUIET=YES
+RECURSIVE=YES
+FILE_PATTERNS=*.h
+
+OUTPUT_DIRECTORY=docs/dox
+
+MACRO_EXPANSION=YES
+EXPAND_ONLY_PREDEF=YES
+#EXPAND_AS_DEFINED=
+# not sure why this doesn't work as EXPAND_AS_DEFINED, it should!
+PREDEFINED="APU_DECLARE(x)=x" \
+           "APU_DECLARE_NONSTD(x)=x" \
+           "APU_DECLARE_DATA" \
+           "APR_HAS_MMAP" \
+           "APR_HAS_THREADS" \
+           "APR_HAS_XLATE" \
+           "__attribute__(x)=" \
+           DOXYGEN=
+
+OPTIMIZE_OUTPUT_FOR_C=YES
+
+FULL_PATH_NAMES=YES
+CASE_SENSE_NAMES=NO
+# some autoconf guru needs to make configure set this correctly...
+#STRIP_FROM_PATH=/root/apache/httpd-2.0-8/srclib/apr-util
+
+GENERATE_TAGFILE=docs/dox/apu.tag
diff --git a/encoding/apr_base64.c b/encoding/apr_base64.c
new file mode 100644
index 0000000..1eed153
--- /dev/null
+++ b/encoding/apr_base64.c
@@ -0,0 +1,268 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* base64 encoder/decoder. Originally part of main/util.c
+ * but moved here so that support/ab and apr_sha1.c could
+ * use it. This meant removing the apr_palloc()s and adding
+ * ugly 'len' functions, which is quite a nasty cost.
+ */
+
+#include "apr_base64.h"
+#if APR_CHARSET_EBCDIC
+#include "apr_xlate.h"
+#endif				/* APR_CHARSET_EBCDIC */
+
+/* aaaack but it's fast and const should make it shared text page. */
+static const unsigned char pr2six[256] =
+{
+#if !APR_CHARSET_EBCDIC
+    /* ASCII table */
+    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 62, 64, 64, 64, 63,
+    52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 64, 64, 64, 64, 64, 64,
+    64,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
+    15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 64, 64, 64, 64, 64,
+    64, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+    41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 64, 64, 64, 64, 64,
+    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64
+#else /*APR_CHARSET_EBCDIC*/
+    /* EBCDIC table */
+    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 62, 64,
+    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+    64, 63, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+    64, 26, 27, 28, 29, 30, 31, 32, 33, 34, 64, 64, 64, 64, 64, 64,
+    64, 35, 36, 37, 38, 39, 40, 41, 42, 43, 64, 64, 64, 64, 64, 64,
+    64, 64, 44, 45, 46, 47, 48, 49, 50, 51, 64, 64, 64, 64, 64, 64,
+    64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+    64,  0,  1,  2,  3,  4,  5,  6,  7,  8, 64, 64, 64, 64, 64, 64,
+    64,  9, 10, 11, 12, 13, 14, 15, 16, 17, 64, 64, 64, 64, 64, 64,
+    64, 64, 18, 19, 20, 21, 22, 23, 24, 25, 64, 64, 64, 64, 64, 64,
+    52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 64, 64, 64, 64, 64, 64
+#endif /*APR_CHARSET_EBCDIC*/
+};
+
+#if APR_CHARSET_EBCDIC
+static apr_xlate_t *xlate_to_ebcdic;
+static unsigned char os_toascii[256];
+
+APU_DECLARE(apr_status_t) apr_base64init_ebcdic(apr_xlate_t *to_ascii,
+                                             apr_xlate_t *to_ebcdic)
+{
+    int i;
+    apr_size_t inbytes_left, outbytes_left;
+    apr_status_t rv;
+    int onoff;
+    
+    /* Only single-byte conversion is supported.
+     */
+    rv = apr_xlate_sb_get(to_ascii, &onoff);
+    if (rv) {
+        return rv;
+    }
+    if (!onoff) { /* If conversion is not single-byte-only */
+        return APR_EINVAL;
+    }
+    rv = apr_xlate_sb_get(to_ebcdic, &onoff);
+    if (rv) {
+        return rv;
+    }
+    if (!onoff) { /* If conversion is not single-byte-only */
+        return APR_EINVAL;
+    }
+    xlate_to_ebcdic = to_ebcdic;
+    for (i = 0; i < sizeof(os_toascii); i++) {
+        os_toascii[i] = i;
+    }
+    inbytes_left = outbytes_left = sizeof(os_toascii);
+    apr_xlate_conv_buffer(to_ascii, os_toascii, &inbytes_left,
+                          os_toascii, &outbytes_left);
+
+    return APR_SUCCESS;
+}
+#endif /*APR_CHARSET_EBCDIC*/
+
+APU_DECLARE(int) apr_base64_decode_len(const char *bufcoded)
+{
+    int nbytesdecoded;
+    register const unsigned char *bufin;
+    register apr_size_t nprbytes;
+
+    bufin = (const unsigned char *) bufcoded;
+    while (pr2six[*(bufin++)] <= 63);
+
+    nprbytes = (bufin - (const unsigned char *) bufcoded) - 1;
+    nbytesdecoded = (((int)nprbytes + 3) / 4) * 3;
+
+    return nbytesdecoded + 1;
+}
+
+APU_DECLARE(int) apr_base64_decode(char *bufplain, const char *bufcoded)
+{
+#if APR_CHARSET_EBCDIC
+    apr_size_t inbytes_left, outbytes_left;
+#endif				/* APR_CHARSET_EBCDIC */
+    int len;
+    
+    len = apr_base64_decode_binary((unsigned char *) bufplain, bufcoded);
+#if APR_CHARSET_EBCDIC
+    inbytes_left = outbytes_left = len;
+    apr_xlate_conv_buffer(xlate_to_ebcdic, bufplain, &inbytes_left,
+                          bufplain, &outbytes_left);
+#endif				/* APR_CHARSET_EBCDIC */
+    bufplain[len] = '\0';
+    return len;
+}
+
+/* This is the same as apr_base64_decode() except on EBCDIC machines, where
+ * the conversion of the output to ebcdic is left out.
+ */
+APU_DECLARE(int) apr_base64_decode_binary(unsigned char *bufplain,
+				   const char *bufcoded)
+{
+    int nbytesdecoded;
+    register const unsigned char *bufin;
+    register unsigned char *bufout;
+    register apr_size_t nprbytes;
+
+    bufin = (const unsigned char *) bufcoded;
+    while (pr2six[*(bufin++)] <= 63);
+    nprbytes = (bufin - (const unsigned char *) bufcoded) - 1;
+    nbytesdecoded = (((int)nprbytes + 3) / 4) * 3;
+
+    bufout = (unsigned char *) bufplain;
+    bufin = (const unsigned char *) bufcoded;
+
+    while (nprbytes > 4) {
+	*(bufout++) =
+	    (unsigned char) (pr2six[*bufin] << 2 | pr2six[bufin[1]] >> 4);
+	*(bufout++) =
+	    (unsigned char) (pr2six[bufin[1]] << 4 | pr2six[bufin[2]] >> 2);
+	*(bufout++) =
+	    (unsigned char) (pr2six[bufin[2]] << 6 | pr2six[bufin[3]]);
+	bufin += 4;
+	nprbytes -= 4;
+    }
+
+    /* Note: (nprbytes == 1) would be an error, so just ingore that case */
+    if (nprbytes > 1) {
+	*(bufout++) =
+	    (unsigned char) (pr2six[*bufin] << 2 | pr2six[bufin[1]] >> 4);
+    }
+    if (nprbytes > 2) {
+	*(bufout++) =
+	    (unsigned char) (pr2six[bufin[1]] << 4 | pr2six[bufin[2]] >> 2);
+    }
+    if (nprbytes > 3) {
+	*(bufout++) =
+	    (unsigned char) (pr2six[bufin[2]] << 6 | pr2six[bufin[3]]);
+    }
+
+    nbytesdecoded -= (4 - (int)nprbytes) & 3;
+    return nbytesdecoded;
+}
+
+static const char basis_64[] =
+    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+
+APU_DECLARE(int) apr_base64_encode_len(int len)
+{
+    return ((len + 2) / 3 * 4) + 1;
+}
+
+APU_DECLARE(int) apr_base64_encode(char *encoded, const char *string, int len)
+{
+#if !APR_CHARSET_EBCDIC
+    return apr_base64_encode_binary(encoded, (const unsigned char *) string, len);
+#else /* APR_CHARSET_EBCDIC */
+    int i;
+    char *p;
+
+    p = encoded;
+    for (i = 0; i < len - 2; i += 3) {
+	*p++ = basis_64[(os_toascii[string[i]] >> 2) & 0x3F];
+	*p++ = basis_64[((os_toascii[string[i]] & 0x3) << 4) |
+	                ((int) (os_toascii[string[i + 1]] & 0xF0) >> 4)];
+	*p++ = basis_64[((os_toascii[string[i + 1]] & 0xF) << 2) |
+	                ((int) (os_toascii[string[i + 2]] & 0xC0) >> 6)];
+	*p++ = basis_64[os_toascii[string[i + 2]] & 0x3F];
+    }
+    if (i < len) {
+	*p++ = basis_64[(os_toascii[string[i]] >> 2) & 0x3F];
+	if (i == (len - 1)) {
+	    *p++ = basis_64[((os_toascii[string[i]] & 0x3) << 4)];
+	    *p++ = '=';
+	}
+	else {
+	    *p++ = basis_64[((os_toascii[string[i]] & 0x3) << 4) |
+	                    ((int) (os_toascii[string[i + 1]] & 0xF0) >> 4)];
+	    *p++ = basis_64[((os_toascii[string[i + 1]] & 0xF) << 2)];
+	}
+	*p++ = '=';
+    }
+
+    *p++ = '\0';
+    return p - encoded;
+#endif				/* APR_CHARSET_EBCDIC */
+}
+
+/* This is the same as apr_base64_encode() except on EBCDIC machines, where
+ * the conversion of the input to ascii is left out.
+ */
+APU_DECLARE(int) apr_base64_encode_binary(char *encoded,
+                                      const unsigned char *string, int len)
+{
+    int i;
+    char *p;
+
+    p = encoded;
+    for (i = 0; i < len - 2; i += 3) {
+	*p++ = basis_64[(string[i] >> 2) & 0x3F];
+	*p++ = basis_64[((string[i] & 0x3) << 4) |
+	                ((int) (string[i + 1] & 0xF0) >> 4)];
+	*p++ = basis_64[((string[i + 1] & 0xF) << 2) |
+	                ((int) (string[i + 2] & 0xC0) >> 6)];
+	*p++ = basis_64[string[i + 2] & 0x3F];
+    }
+    if (i < len) {
+	*p++ = basis_64[(string[i] >> 2) & 0x3F];
+	if (i == (len - 1)) {
+	    *p++ = basis_64[((string[i] & 0x3) << 4)];
+	    *p++ = '=';
+	}
+	else {
+	    *p++ = basis_64[((string[i] & 0x3) << 4) |
+	                    ((int) (string[i + 1] & 0xF0) >> 4)];
+	    *p++ = basis_64[((string[i + 1] & 0xF) << 2)];
+	}
+	*p++ = '=';
+    }
+
+    *p++ = '\0';
+    return (int)(p - encoded);
+}
diff --git a/export_vars.sh.in b/export_vars.sh.in
new file mode 100644
index 0000000..96a9352
--- /dev/null
+++ b/export_vars.sh.in
@@ -0,0 +1,13 @@
+#
+# export_vars.sh
+#
+# This shell script is used to export vars to the application using the
+# APRUTIL library. This script should be "sourced" to ensure the variable
+# values are set within the calling script's context. For example:
+#
+#   $ . path/to/apr-util/export_vars.sh
+#
+
+APRUTIL_EXPORT_INCLUDES="@APRUTIL_INCLUDES@"
+APRUTIL_EXPORT_LIBS="@APRUTIL_EXPORT_LIBS@"
+APRUTIL_LDFLAGS="@APRUTIL_LDFLAGS@"
diff --git a/hooks/apr_hooks.c b/hooks/apr_hooks.c
new file mode 100644
index 0000000..44353cb
--- /dev/null
+++ b/hooks/apr_hooks.c
@@ -0,0 +1,402 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "apr_pools.h"
+#include "apr_tables.h"
+#include "apr.h"
+#include "apr_hooks.h"
+#include "apr_hash.h"
+#include "apr_optional_hooks.h"
+#include "apr_optional.h"
+#define APR_WANT_MEMFUNC
+#define APR_WANT_STRFUNC
+#include "apr_want.h"
+
+#if 0
+#define apr_palloc(pool,size)	malloc(size)
+#endif
+
+APU_DECLARE_DATA apr_pool_t *apr_hook_global_pool = NULL;
+APU_DECLARE_DATA int apr_hook_debug_enabled = 0;
+APU_DECLARE_DATA const char *apr_hook_debug_current = NULL;
+
+/** @deprecated @see apr_hook_global_pool */
+APU_DECLARE_DATA apr_pool_t *apr_global_hook_pool = NULL;
+
+/** @deprecated @see apr_hook_debug_enabled */
+APU_DECLARE_DATA int apr_debug_module_hooks = 0;
+
+/** @deprecated @see apr_hook_debug_current */
+APU_DECLARE_DATA const char *apr_current_hooking_module = NULL;
+
+/* NB: This must echo the LINK_##name structure */
+typedef struct
+{
+    void (*dummy)(void *);
+    const char *szName;
+    const char * const *aszPredecessors;
+    const char * const *aszSuccessors;
+    int nOrder;
+} TSortData;
+
+typedef struct tsort_
+{
+    void *pData;
+    int nPredecessors;
+    struct tsort_ **ppPredecessors;
+    struct tsort_ *pNext;
+} TSort;
+
+#ifdef NETWARE
+#include "apr_private.h"
+#define get_apd                 APP_DATA* apd = (APP_DATA*)get_app_data(gLibId);
+#define s_aHooksToSort          ((apr_array_header_t *)(apd->gs_aHooksToSort))
+#define s_phOptionalHooks       ((apr_hash_t *)(apd->gs_phOptionalHooks))
+#define s_phOptionalFunctions   ((apr_hash_t *)(apd->gs_phOptionalFunctions))
+#endif
+
+static int crude_order(const void *a_,const void *b_)
+{
+    const TSortData *a=a_;
+    const TSortData *b=b_;
+
+    return a->nOrder-b->nOrder;
+}
+
+static TSort *prepare(apr_pool_t *p,TSortData *pItems,int nItems)
+{
+    TSort *pData=apr_palloc(p,nItems*sizeof *pData);
+    int n;
+    
+    qsort(pItems,nItems,sizeof *pItems,crude_order);
+    for(n=0 ; n < nItems ; ++n) {
+	pData[n].nPredecessors=0;
+	pData[n].ppPredecessors=apr_pcalloc(p,nItems*sizeof *pData[n].ppPredecessors);
+	pData[n].pNext=NULL;
+	pData[n].pData=&pItems[n];
+    }
+
+    for(n=0 ; n < nItems ; ++n) {
+	int i,k;
+
+	for(i=0 ; pItems[n].aszPredecessors && pItems[n].aszPredecessors[i] ; ++i)
+	    for(k=0 ; k < nItems ; ++k)
+		if(!strcmp(pItems[k].szName,pItems[n].aszPredecessors[i])) {
+		    int l;
+
+		    for(l=0 ; l < pData[n].nPredecessors ; ++l)
+			if(pData[n].ppPredecessors[l] == &pData[k])
+			    goto got_it;
+		    pData[n].ppPredecessors[pData[n].nPredecessors]=&pData[k];
+		    ++pData[n].nPredecessors;
+		got_it:
+		    break;
+		}
+	for(i=0 ; pItems[n].aszSuccessors && pItems[n].aszSuccessors[i] ; ++i)
+	    for(k=0 ; k < nItems ; ++k)
+		if(!strcmp(pItems[k].szName,pItems[n].aszSuccessors[i])) {
+		    int l;
+
+		    for(l=0 ; l < pData[k].nPredecessors ; ++l)
+			if(pData[k].ppPredecessors[l] == &pData[n])
+			    goto got_it2;
+		    pData[k].ppPredecessors[pData[k].nPredecessors]=&pData[n];
+		    ++pData[k].nPredecessors;
+		got_it2:
+		    break;
+		}
+    }
+
+    return pData;
+}
+
+/* Topologically sort, dragging out-of-order items to the front. Note that
+   this tends to preserve things that want to be near the front better, and
+   changing that behaviour might compromise some of Apache's behaviour (in
+   particular, mod_log_forensic might otherwise get pushed to the end, and
+   core.c's log open function used to end up at the end when pushing items
+   to the back was the methedology). Also note that the algorithm could
+   go back to its original simplicity by sorting from the back instead of
+   the front.
+*/
+static TSort *tsort(TSort *pData,int nItems)
+{
+    int nTotal;
+    TSort *pHead=NULL;
+    TSort *pTail=NULL;
+
+    for(nTotal=0 ; nTotal < nItems ; ++nTotal) {
+	int n,i,k;
+
+	for(n=0 ; ; ++n) {
+	    if(n == nItems)
+		assert(0);      /* we have a loop... */
+	    if(!pData[n].pNext) {
+		if(pData[n].nPredecessors) {
+		    for(k=0 ; ; ++k) {
+			assert(k < nItems);
+			if(pData[n].ppPredecessors[k])
+			    break;
+		    }
+		    for(i=0 ; ; ++i) {
+			assert(i < nItems);
+			if(&pData[i] == pData[n].ppPredecessors[k]) {
+			    n=i-1;
+			    break;
+			}
+		    }
+		} else
+		    break;
+	    }
+	}
+	if(pTail)
+	    pTail->pNext=&pData[n];
+	else
+	    pHead=&pData[n];
+	pTail=&pData[n];
+	pTail->pNext=pTail;     /* fudge it so it looks linked */
+	for(i=0 ; i < nItems ; ++i)
+	    for(k=0 ; k < nItems ; ++k)
+		if(pData[i].ppPredecessors[k] == &pData[n]) {
+		    --pData[i].nPredecessors;
+		    pData[i].ppPredecessors[k]=NULL;
+		    break;
+		}
+    }
+    pTail->pNext=NULL;  /* unfudge the tail */
+    return pHead;
+}
+
+static apr_array_header_t *sort_hook(apr_array_header_t *pHooks,
+				     const char *szName)
+{
+    apr_pool_t *p;
+    TSort *pSort;
+    apr_array_header_t *pNew;
+    int n;
+
+    apr_pool_create(&p, apr_hook_global_pool);
+    pSort=prepare(p,(TSortData *)pHooks->elts,pHooks->nelts);
+    pSort=tsort(pSort,pHooks->nelts);
+    pNew=apr_array_make(apr_hook_global_pool,pHooks->nelts,sizeof(TSortData));
+    if(apr_hook_debug_enabled)
+	printf("Sorting %s:",szName);
+    for(n=0 ; pSort ; pSort=pSort->pNext,++n) {
+	TSortData *pHook;
+	assert(n < pHooks->nelts);
+	pHook=apr_array_push(pNew);
+	memcpy(pHook,pSort->pData,sizeof *pHook);
+	if(apr_hook_debug_enabled)
+	    printf(" %s",pHook->szName);
+    }
+    if(apr_hook_debug_enabled)
+	fputc('\n',stdout);
+    return pNew;
+}
+
+#ifndef NETWARE
+static apr_array_header_t *s_aHooksToSort;
+#endif
+
+typedef struct
+{
+    const char *szHookName;
+    apr_array_header_t **paHooks;
+} HookSortEntry;
+
+APU_DECLARE(void) apr_hook_sort_register(const char *szHookName,
+					apr_array_header_t **paHooks)
+{
+#ifdef NETWARE
+    get_apd
+#endif
+    HookSortEntry *pEntry;
+
+    if(!s_aHooksToSort)
+        s_aHooksToSort=apr_array_make(apr_hook_global_pool,1,sizeof(HookSortEntry));
+    pEntry=apr_array_push(s_aHooksToSort);
+    pEntry->szHookName=szHookName;
+    pEntry->paHooks=paHooks;
+}
+
+APU_DECLARE(void) apr_hook_sort_all(void)
+{
+#ifdef NETWARE
+    get_apd
+#endif
+    int n;
+
+    for(n=0 ; n < s_aHooksToSort->nelts ; ++n) {
+	HookSortEntry *pEntry=&((HookSortEntry *)s_aHooksToSort->elts)[n];
+	*pEntry->paHooks=sort_hook(*pEntry->paHooks,pEntry->szHookName);
+    }
+}
+
+#ifndef NETWARE
+static apr_hash_t *s_phOptionalHooks;
+static apr_hash_t *s_phOptionalFunctions;
+#endif
+
+APU_DECLARE(void) apr_hook_deregister_all(void)
+{
+#ifdef NETWARE
+    get_apd
+#endif
+    int n;    
+
+    for(n=0 ; n < s_aHooksToSort->nelts ; ++n) {
+        HookSortEntry *pEntry=&((HookSortEntry *)s_aHooksToSort->elts)[n];
+        *pEntry->paHooks=NULL;
+    }
+    s_aHooksToSort=NULL;
+    s_phOptionalHooks=NULL;
+    s_phOptionalFunctions=NULL;
+}
+
+APU_DECLARE(void) apr_hook_debug_show(const char *szName,
+                                      const char * const *aszPre,
+			              const char * const *aszSucc)
+{
+    int nFirst;
+
+    printf("  Hooked %s",szName);
+    if(aszPre) {
+	fputs(" pre(",stdout);
+	nFirst=1;
+	while(*aszPre) {
+	    if(!nFirst)
+		fputc(',',stdout);
+	    nFirst=0;
+	    fputs(*aszPre,stdout);
+	    ++aszPre;
+	}
+	fputc(')',stdout);
+    }
+    if(aszSucc) {
+	fputs(" succ(",stdout);
+	nFirst=1;
+	while(*aszSucc) {
+	    if(!nFirst)
+		fputc(',',stdout);
+	    nFirst=0;
+	    fputs(*aszSucc,stdout);
+	    ++aszSucc;
+	}
+	fputc(')',stdout);
+    }
+    fputc('\n',stdout);
+}
+
+/* Optional hook support */
+
+APR_DECLARE_EXTERNAL_HOOK(apr,APU,void,_optional,(void))
+
+APU_DECLARE(apr_array_header_t *) apr_optional_hook_get(const char *szName)
+{
+#ifdef NETWARE
+    get_apd
+#endif
+    apr_array_header_t **ppArray;
+
+    if(!s_phOptionalHooks)
+	return NULL;
+    ppArray=apr_hash_get(s_phOptionalHooks,szName,strlen(szName));
+    if(!ppArray)
+	return NULL;
+    return *ppArray;
+}
+
+APU_DECLARE(void) apr_optional_hook_add(const char *szName,void (*pfn)(void),
+					const char * const *aszPre,
+					const char * const *aszSucc,int nOrder)
+{
+#ifdef NETWARE
+    get_apd
+#endif
+    apr_array_header_t *pArray=apr_optional_hook_get(szName);
+    apr_LINK__optional_t *pHook;
+
+    if(!pArray) {
+	apr_array_header_t **ppArray;
+
+	pArray=apr_array_make(apr_hook_global_pool,1,
+			      sizeof(apr_LINK__optional_t));
+	if(!s_phOptionalHooks)
+	    s_phOptionalHooks=apr_hash_make(apr_hook_global_pool);
+	ppArray=apr_palloc(apr_hook_global_pool,sizeof *ppArray);
+	*ppArray=pArray;
+	apr_hash_set(s_phOptionalHooks,szName,strlen(szName),ppArray);
+	apr_hook_sort_register(szName,ppArray);
+    }
+    pHook=apr_array_push(pArray);
+    pHook->pFunc=pfn;
+    pHook->aszPredecessors=aszPre;
+    pHook->aszSuccessors=aszSucc;
+    pHook->nOrder=nOrder;
+    pHook->szName=apr_hook_debug_current;
+    if(apr_hook_debug_enabled)
+	apr_hook_debug_show(szName,aszPre,aszSucc);
+}
+
+/* optional function support */
+
+APU_DECLARE(apr_opt_fn_t *) apr_dynamic_fn_retrieve(const char *szName)
+{
+#ifdef NETWARE
+    get_apd
+#endif
+    if(!s_phOptionalFunctions)
+	return NULL;
+    return (void(*)(void))apr_hash_get(s_phOptionalFunctions,szName,strlen(szName));
+}
+
+/* Deprecated */
+APU_DECLARE_NONSTD(void) apr_dynamic_fn_register(const char *szName,
+                                                  apr_opt_fn_t *pfn)
+{
+#ifdef NETWARE
+    get_apd
+#endif
+    if(!s_phOptionalFunctions)
+	s_phOptionalFunctions=apr_hash_make(apr_hook_global_pool);
+    apr_hash_set(s_phOptionalFunctions,szName,strlen(szName),(void *)pfn);
+}
+
+#if 0
+void main()
+{
+    const char *aszAPre[]={"b","c",NULL};
+    const char *aszBPost[]={"a",NULL};
+    const char *aszCPost[]={"b",NULL};
+    TSortData t1[]=
+    {
+	{ "a",aszAPre,NULL },
+	{ "b",NULL,aszBPost },
+	{ "c",NULL,aszCPost }
+    };
+    TSort *pResult;
+
+    pResult=prepare(t1,3);
+    pResult=tsort(pResult,3);
+
+    for( ; pResult ; pResult=pResult->pNext)
+	printf("%s\n",pResult->pData->szName);
+}
+#endif
diff --git a/include/apr_anylock.h b/include/apr_anylock.h
new file mode 100644
index 0000000..51e97ff
--- /dev/null
+++ b/include/apr_anylock.h
@@ -0,0 +1,128 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @file apr_anylock.h
+ * @brief APR-Util transparent any lock flavor wrapper
+ */
+#ifndef APR_ANYLOCK_H
+#define APR_ANYLOCK_H
+
+#include "apr_proc_mutex.h"
+#include "apr_thread_mutex.h"
+#include "apr_thread_rwlock.h"
+
+/** Structure that may contain any APR lock type */
+typedef struct apr_anylock_t {
+    /** Indicates what type of lock is in lock */
+    enum tm_lock {
+        apr_anylock_none,           /**< None */
+        apr_anylock_procmutex,      /**< Process-based */
+        apr_anylock_threadmutex,    /**< Thread-based */
+        apr_anylock_readlock,       /**< Read lock */
+        apr_anylock_writelock       /**< Write lock */
+    } type;
+    /** Union of all possible APR locks */
+    union apr_anylock_u_t {
+        apr_proc_mutex_t *pm;       /**< Process mutex */
+#if APR_HAS_THREADS
+        apr_thread_mutex_t *tm;     /**< Thread mutex */
+        apr_thread_rwlock_t *rw;    /**< Read-write lock */
+#endif
+    } lock;
+} apr_anylock_t;
+
+#if APR_HAS_THREADS
+
+/** Lock an apr_anylock_t structure */
+#define APR_ANYLOCK_LOCK(lck)                \
+    (((lck)->type == apr_anylock_none)         \
+      ? APR_SUCCESS                              \
+      : (((lck)->type == apr_anylock_threadmutex)  \
+          ? apr_thread_mutex_lock((lck)->lock.tm)    \
+          : (((lck)->type == apr_anylock_procmutex)    \
+              ? apr_proc_mutex_lock((lck)->lock.pm)      \
+              : (((lck)->type == apr_anylock_readlock)     \
+                  ? apr_thread_rwlock_rdlock((lck)->lock.rw) \
+                  : (((lck)->type == apr_anylock_writelock)    \
+                      ? apr_thread_rwlock_wrlock((lck)->lock.rw) \
+                      : APR_EINVAL)))))
+
+#else /* APR_HAS_THREADS */
+
+#define APR_ANYLOCK_LOCK(lck)                \
+    (((lck)->type == apr_anylock_none)         \
+      ? APR_SUCCESS                              \
+          : (((lck)->type == apr_anylock_procmutex)    \
+              ? apr_proc_mutex_lock((lck)->lock.pm)      \
+                      : APR_EINVAL))
+
+#endif /* APR_HAS_THREADS */
+
+#if APR_HAS_THREADS
+
+/** Try to lock an apr_anylock_t structure */
+#define APR_ANYLOCK_TRYLOCK(lck)                \
+    (((lck)->type == apr_anylock_none)            \
+      ? APR_SUCCESS                                 \
+      : (((lck)->type == apr_anylock_threadmutex)     \
+          ? apr_thread_mutex_trylock((lck)->lock.tm)    \
+          : (((lck)->type == apr_anylock_procmutex)       \
+              ? apr_proc_mutex_trylock((lck)->lock.pm)      \
+              : (((lck)->type == apr_anylock_readlock)        \
+                  ? apr_thread_rwlock_tryrdlock((lck)->lock.rw) \
+                  : (((lck)->type == apr_anylock_writelock)       \
+                      ? apr_thread_rwlock_trywrlock((lck)->lock.rw) \
+                          : APR_EINVAL)))))
+
+#else /* APR_HAS_THREADS */
+
+#define APR_ANYLOCK_TRYLOCK(lck)                \
+    (((lck)->type == apr_anylock_none)            \
+      ? APR_SUCCESS                                 \
+          : (((lck)->type == apr_anylock_procmutex)       \
+              ? apr_proc_mutex_trylock((lck)->lock.pm)      \
+                          : APR_EINVAL))
+
+#endif /* APR_HAS_THREADS */
+
+#if APR_HAS_THREADS
+
+/** Unlock an apr_anylock_t structure */
+#define APR_ANYLOCK_UNLOCK(lck)              \
+    (((lck)->type == apr_anylock_none)         \
+      ? APR_SUCCESS                              \
+      : (((lck)->type == apr_anylock_threadmutex)  \
+          ? apr_thread_mutex_unlock((lck)->lock.tm)  \
+          : (((lck)->type == apr_anylock_procmutex)    \
+              ? apr_proc_mutex_unlock((lck)->lock.pm)    \
+              : ((((lck)->type == apr_anylock_readlock) || \
+                  ((lck)->type == apr_anylock_writelock))    \
+                  ? apr_thread_rwlock_unlock((lck)->lock.rw)   \
+                      : APR_EINVAL))))
+
+#else /* APR_HAS_THREADS */
+
+#define APR_ANYLOCK_UNLOCK(lck)              \
+    (((lck)->type == apr_anylock_none)         \
+      ? APR_SUCCESS                              \
+          : (((lck)->type == apr_anylock_procmutex)    \
+              ? apr_proc_mutex_unlock((lck)->lock.pm)    \
+                      : APR_EINVAL))
+
+#endif /* APR_HAS_THREADS */
+
+#endif /* !APR_ANYLOCK_H */
diff --git a/include/apr_base64.h b/include/apr_base64.h
new file mode 100644
index 0000000..b4b2b88
--- /dev/null
+++ b/include/apr_base64.h
@@ -0,0 +1,112 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * The apr_vsnprintf/apr_snprintf functions are based on, and used with the
+ * permission of, the  SIO stdio-replacement strx_* functions by Panos
+ * Tsirigotis <panos@alumni.cs.colorado.edu> for xinetd.
+ */
+
+/**
+ * @file apr_base64.h
+ * @brief APR-UTIL Base64 Encoding
+ */
+#ifndef APR_BASE64_H
+#define APR_BASE64_H
+
+#include "apu.h"
+#include "apr_general.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @defgroup APR_Util_Base64 Base64 Encoding
+ * @ingroup APR_Util
+ * @{
+ */
+
+/* Simple BASE64 encode/decode functions.
+ * 
+ * As we might encode binary strings, hence we require the length of
+ * the incoming plain source. And return the length of what we decoded.
+ *
+ * The decoding function takes any non valid char (i.e. whitespace, \0
+ * or anything non A-Z,0-9 etc as terminal.
+ * 
+ * plain strings/binary sequences are not assumed '\0' terminated. Encoded
+ * strings are neither. But probably should.
+ *
+ */
+
+/**
+ * Given the length of an un-encrypted string, get the length of the 
+ * encrypted string.
+ * @param len the length of an unencrypted string.
+ * @return the length of the string after it is encrypted
+ */ 
+APU_DECLARE(int) apr_base64_encode_len(int len);
+
+/**
+ * Encode a text string using base64encoding.
+ * @param coded_dst The destination string for the encoded string.
+ * @param plain_src The original string in plain text
+ * @param len_plain_src The length of the plain text string
+ * @return the length of the encoded string
+ */ 
+APU_DECLARE(int) apr_base64_encode(char * coded_dst, const char *plain_src, 
+                                 int len_plain_src);
+
+/**
+ * Encode an EBCDIC string using base64encoding.
+ * @param coded_dst The destination string for the encoded string.
+ * @param plain_src The original string in plain text
+ * @param len_plain_src The length of the plain text string
+ * @return the length of the encoded string
+ */ 
+APU_DECLARE(int) apr_base64_encode_binary(char * coded_dst, 
+                                        const unsigned char *plain_src,
+                                        int len_plain_src);
+
+/**
+ * Determine the maximum buffer length required to decode the plain text
+ * string given the encoded string.
+ * @param coded_src The encoded string
+ * @return the maximum required buffer length for the plain text string
+ */ 
+APU_DECLARE(int) apr_base64_decode_len(const char * coded_src);
+
+/**
+ * Decode a string to plain text
+ * @param plain_dst The destination string for the plain text
+ * @param coded_src The encoded string 
+ * @return the length of the plain text string
+ */ 
+APU_DECLARE(int) apr_base64_decode(char * plain_dst, const char *coded_src);
+
+/**
+ * Decode an EBCDIC string to plain text
+ * @param plain_dst The destination string for the plain text
+ * @param coded_src The encoded string 
+ * @return the length of the plain text string
+ */ 
+APU_DECLARE(int) apr_base64_decode_binary(unsigned char * plain_dst, 
+                                        const char *coded_src);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* !APR_BASE64_H */
diff --git a/include/apr_buckets.h b/include/apr_buckets.h
new file mode 100644
index 0000000..8983a37
--- /dev/null
+++ b/include/apr_buckets.h
@@ -0,0 +1,1464 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * @file apr_buckets.h
+ * @brief APR-UTIL Buckets/Bucket Brigades
+ */
+
+#ifndef APR_BUCKETS_H
+#define APR_BUCKETS_H
+
+#if defined(APR_BUCKET_DEBUG) && !defined(APR_RING_DEBUG)
+#define APR_RING_DEBUG
+#endif
+
+#include "apu.h"
+#include "apr_network_io.h"
+#include "apr_file_io.h"
+#include "apr_general.h"
+#include "apr_mmap.h"
+#include "apr_errno.h"
+#include "apr_ring.h"
+#include "apr.h"
+#if APR_HAVE_SYS_UIO_H
+#include <sys/uio.h>	/* for struct iovec */
+#endif
+#if APR_HAVE_STDARG_H
+#include <stdarg.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @defgroup APR_Util_Bucket_Brigades Bucket Brigades
+ * @ingroup APR_Util
+ * @{ 
+ */
+
+/** default bucket buffer size - 8KB minus room for memory allocator headers */
+#define APR_BUCKET_BUFF_SIZE 8000
+
+/** Determines how a bucket or brigade should be read */
+typedef enum {
+    APR_BLOCK_READ,   /**< block until data becomes available */
+    APR_NONBLOCK_READ /**< return immediately if no data is available */
+} apr_read_type_e;
+
+/**
+ * The one-sentence buzzword-laden overview: Bucket brigades represent
+ * a complex data stream that can be passed through a layered IO
+ * system without unnecessary copying. A longer overview follows...
+ *
+ * A bucket brigade is a doubly linked list (ring) of buckets, so we
+ * aren't limited to inserting at the front and removing at the end.
+ * Buckets are only passed around as members of a brigade, although
+ * singleton buckets can occur for short periods of time.
+ *
+ * Buckets are data stores of various types. They can refer to data in
+ * memory, or part of a file or mmap area, or the output of a process,
+ * etc. Buckets also have some type-dependent accessor functions:
+ * read, split, copy, setaside, and destroy.
+ *
+ * read returns the address and size of the data in the bucket. If the
+ * data isn't in memory then it is read in and the bucket changes type
+ * so that it can refer to the new location of the data. If all the
+ * data doesn't fit in the bucket then a new bucket is inserted into
+ * the brigade to hold the rest of it.
+ *
+ * split divides the data in a bucket into two regions. After a split
+ * the original bucket refers to the first part of the data and a new
+ * bucket inserted into the brigade after the original bucket refers
+ * to the second part of the data. Reference counts are maintained as
+ * necessary.
+ *
+ * setaside ensures that the data in the bucket has a long enough
+ * lifetime. Sometimes it is convenient to create a bucket referring
+ * to data on the stack in the expectation that it will be consumed
+ * (output to the network) before the stack is unwound. If that
+ * expectation turns out not to be valid, the setaside function is
+ * called to move the data somewhere safer.
+ *
+ * copy makes a duplicate of the bucket structure as long as it's
+ * possible to have multiple references to a single copy of the
+ * data itself.  Not all bucket types can be copied.
+ *
+ * destroy maintains the reference counts on the resources used by a
+ * bucket and frees them if necessary.
+ *
+ * Note: all of the above functions have wrapper macros (apr_bucket_read(),
+ * apr_bucket_destroy(), etc), and those macros should be used rather
+ * than using the function pointers directly.
+ *
+ * To write a bucket brigade, they are first made into an iovec, so that we
+ * don't write too little data at one time.  Currently we ignore compacting the
+ * buckets into as few buckets as possible, but if we really want good
+ * performance, then we need to compact the buckets before we convert to an
+ * iovec, or possibly while we are converting to an iovec.
+ */
+
+/*
+ * Forward declaration of the main types.
+ */
+
+/** @see apr_bucket_brigade */
+typedef struct apr_bucket_brigade apr_bucket_brigade;
+/** @see apr_bucket */
+typedef struct apr_bucket apr_bucket;
+/** @see apr_bucket_alloc_t */
+typedef struct apr_bucket_alloc_t apr_bucket_alloc_t;
+
+/** @see apr_bucket_type_t */
+typedef struct apr_bucket_type_t apr_bucket_type_t;
+
+/**
+ * Basic bucket type
+ */
+struct apr_bucket_type_t {
+    /**
+     * The name of the bucket type
+     */
+    const char *name;
+    /** 
+     * The number of functions this bucket understands.  Can not be less than
+     * five.
+     */
+    int num_func;
+    /**
+     * Whether the bucket contains metadata (ie, information that
+     * describes the regular contents of the brigade).  The metadata
+     * is not returned by apr_bucket_read() and is not indicated by
+     * the ->length of the apr_bucket itself.  In other words, an
+     * empty bucket is safe to arbitrarily remove if and only if it
+     * contains no metadata.  In this sense, "data" is just raw bytes
+     * that are the "content" of the brigade and "metadata" describes
+     * that data but is not a proper part of it.
+     */
+    enum {
+        /** This bucket type represents actual data to send to the client. */
+        APR_BUCKET_DATA = 0,
+        /** This bucket type represents metadata. */
+        APR_BUCKET_METADATA = 1
+    } is_metadata;
+    /**
+     * Free the private data and any resources used by the bucket (if they
+     *  aren't shared with another bucket).  This function is required to be
+     *  implemented for all bucket types, though it might be a no-op on some
+     *  of them (namely ones that never allocate any private data structures).
+     * @param data The private data pointer from the bucket to be destroyed
+     */
+    void (*destroy)(void *data);
+
+    /**
+     * Read the data from the bucket. This is required to be implemented
+     *  for all bucket types.
+     * @param b The bucket to read from
+     * @param str A place to store the data read.  Allocation should only be
+     *            done if absolutely necessary. 
+     * @param len The amount of data read.
+     * @param block Should this read function block if there is more data that
+     *              cannot be read immediately.
+     */
+    apr_status_t (*read)(apr_bucket *b, const char **str, apr_size_t *len, 
+                         apr_read_type_e block);
+    
+    /**
+     * Make it possible to set aside the data for at least as long as the
+     *  given pool. Buckets containing data that could potentially die before
+     *  this pool (e.g. the data resides on the stack, in a child pool of
+     *  the given pool, or in a disjoint pool) must somehow copy, shift, or
+     *  transform the data to have the proper lifetime.
+     * @param e The bucket to convert
+     * @remark Some bucket types contain data that will always outlive the
+     *         bucket itself. For example no data (EOS and FLUSH), or the data
+     *         resides in global, constant memory (IMMORTAL), or the data is on
+     *      the heap (HEAP). For these buckets, apr_bucket_setaside_noop can
+     *      be used.
+     */
+    apr_status_t (*setaside)(apr_bucket *e, apr_pool_t *pool);
+
+    /**
+     * Split one bucket in two at the specified position by duplicating
+     *  the bucket structure (not the data) and modifying any necessary
+     *  start/end/offset information.  If it's not possible to do this
+     *  for the bucket type (perhaps the length of the data is indeterminate,
+     *  as with pipe and socket buckets), then APR_ENOTIMPL is returned.
+     * @param e The bucket to split
+     * @param point The offset of the first byte in the new bucket
+     */
+    apr_status_t (*split)(apr_bucket *e, apr_size_t point);
+
+    /**
+     * Copy the bucket structure (not the data), assuming that this is
+     *  possible for the bucket type. If it's not, APR_ENOTIMPL is returned.
+     * @param e The bucket to copy
+     * @param c Returns a pointer to the new bucket
+     */
+    apr_status_t (*copy)(apr_bucket *e, apr_bucket **c);
+
+};
+
+/**
+ * apr_bucket structures are allocated on the malloc() heap and
+ * their lifetime is controlled by the parent apr_bucket_brigade
+ * structure. Buckets can move from one brigade to another e.g. by
+ * calling APR_BRIGADE_CONCAT(). In general the data in a bucket has
+ * the same lifetime as the bucket and is freed when the bucket is
+ * destroyed; if the data is shared by more than one bucket (e.g.
+ * after a split) the data is freed when the last bucket goes away.
+ */
+struct apr_bucket {
+    /** Links to the rest of the brigade */
+    APR_RING_ENTRY(apr_bucket) link;
+    /** The type of bucket.  */
+    const apr_bucket_type_t *type;
+    /** The length of the data in the bucket.  This could have been implemented
+     *  with a function, but this is an optimization, because the most
+     *  common thing to do will be to get the length.  If the length is unknown,
+     *  the value of this field will be (apr_size_t)(-1).
+     */
+    apr_size_t length;
+    /** The start of the data in the bucket relative to the private base
+     *  pointer.  The vast majority of bucket types allow a fixed block of
+     *  data to be referenced by multiple buckets, each bucket pointing to
+     *  a different segment of the data.  That segment starts at base+start
+     *  and ends at base+start+length.  
+     *  If the length == (apr_size_t)(-1), then start == -1.
+     */
+    apr_off_t start;
+    /** type-dependent data hangs off this pointer */
+    void *data;	
+    /**
+     * Pointer to function used to free the bucket. This function should
+     * always be defined and it should be consistent with the memory
+     * function used to allocate the bucket. For example, if malloc() is 
+     * used to allocate the bucket, this pointer should point to free().
+     * @param e Pointer to the bucket being freed
+     */
+    void (*free)(void *e);
+    /** The freelist from which this bucket was allocated */
+    apr_bucket_alloc_t *list;
+};
+
+/** A list of buckets */
+struct apr_bucket_brigade {
+    /** The pool to associate the brigade with.  The data is not allocated out
+     *  of the pool, but a cleanup is registered with this pool.  If the 
+     *  brigade is destroyed by some mechanism other than pool destruction,
+     *  the destroying function is responsible for killing the cleanup.
+     */
+    apr_pool_t *p;
+    /** The buckets in the brigade are on this list. */
+    /*
+     * The apr_bucket_list structure doesn't actually need a name tag
+     * because it has no existence independent of struct apr_bucket_brigade;
+     * the ring macros are designed so that you can leave the name tag
+     * argument empty in this situation but apparently the Windows compiler
+     * doesn't like that.
+     */
+    APR_RING_HEAD(apr_bucket_list, apr_bucket) list;
+    /** The freelist from which this bucket was allocated */
+    apr_bucket_alloc_t *bucket_alloc;
+};
+
+
+/**
+ * Function called when a brigade should be flushed
+ */
+typedef apr_status_t (*apr_brigade_flush)(apr_bucket_brigade *bb, void *ctx);
+
+/*
+ * define APR_BUCKET_DEBUG if you want your brigades to be checked for
+ * validity at every possible instant.  this will slow your code down
+ * substantially but is a very useful debugging tool.
+ */
+#ifdef APR_BUCKET_DEBUG
+
+#define APR_BRIGADE_CHECK_CONSISTENCY(b)				\
+        APR_RING_CHECK_CONSISTENCY(&(b)->list, apr_bucket, link)
+
+#define APR_BUCKET_CHECK_CONSISTENCY(e)					\
+        APR_RING_CHECK_ELEM_CONSISTENCY((e), apr_bucket, link)
+
+#else
+/**
+ * checks the ring pointers in a bucket brigade for consistency.  an
+ * abort() will be triggered if any inconsistencies are found.
+ *   note: this is a no-op unless APR_BUCKET_DEBUG is defined.
+ * @param b The brigade
+ */
+#define APR_BRIGADE_CHECK_CONSISTENCY(b)
+/**
+ * checks the brigade a bucket is in for ring consistency.  an
+ * abort() will be triggered if any inconsistencies are found.
+ *   note: this is a no-op unless APR_BUCKET_DEBUG is defined.
+ * @param e The bucket
+ */
+#define APR_BUCKET_CHECK_CONSISTENCY(e)
+#endif
+
+
+/**
+ * Wrappers around the RING macros to reduce the verbosity of the code
+ * that handles bucket brigades.
+ */
+/**
+ * The magic pointer value that indicates the head of the brigade
+ * @remark This is used to find the beginning and end of the brigade, eg:
+ * <pre>
+ *      while (e != APR_BRIGADE_SENTINEL(b)) {
+ *          ...
+ *          e = APR_BUCKET_NEXT(e);
+ *      }
+ * </pre>
+ * @param  b The brigade
+ * @return The magic pointer value
+ */
+#define APR_BRIGADE_SENTINEL(b)	APR_RING_SENTINEL(&(b)->list, apr_bucket, link)
+
+/**
+ * Determine if the bucket brigade is empty
+ * @param b The brigade to check
+ * @return true or false
+ */
+#define APR_BRIGADE_EMPTY(b)	APR_RING_EMPTY(&(b)->list, apr_bucket, link)
+
+/**
+ * Return the first bucket in a brigade
+ * @param b The brigade to query
+ * @return The first bucket in the brigade
+ */
+#define APR_BRIGADE_FIRST(b)	APR_RING_FIRST(&(b)->list)
+/**
+ * Return the last bucket in a brigade
+ * @param b The brigade to query
+ * @return The last bucket in the brigade
+ */
+#define APR_BRIGADE_LAST(b)	APR_RING_LAST(&(b)->list)
+
+/**
+ * Insert a list of buckets at the front of a brigade
+ * @param b The brigade to add to
+ * @param e The first bucket in a list of buckets to insert
+ */
+#define APR_BRIGADE_INSERT_HEAD(b, e) do {				\
+	apr_bucket *ap__b = (e);                                        \
+	APR_RING_INSERT_HEAD(&(b)->list, ap__b, apr_bucket, link);	\
+        APR_BRIGADE_CHECK_CONSISTENCY((b));				\
+    } while (0)
+
+/**
+ * Insert a list of buckets at the end of a brigade
+ * @param b The brigade to add to
+ * @param e The first bucket in a list of buckets to insert
+ */
+#define APR_BRIGADE_INSERT_TAIL(b, e) do {				\
+	apr_bucket *ap__b = (e);					\
+	APR_RING_INSERT_TAIL(&(b)->list, ap__b, apr_bucket, link);	\
+        APR_BRIGADE_CHECK_CONSISTENCY((b));				\
+    } while (0)
+
+/**
+ * Concatenate brigade b onto the end of brigade a, leaving brigade b empty
+ * @param a The first brigade
+ * @param b The second brigade
+ */
+#define APR_BRIGADE_CONCAT(a, b) do {					\
+        APR_RING_CONCAT(&(a)->list, &(b)->list, apr_bucket, link);	\
+        APR_BRIGADE_CHECK_CONSISTENCY((a));				\
+    } while (0)
+
+/**
+ * Prepend brigade b onto the beginning of brigade a, leaving brigade b empty
+ * @param a The first brigade
+ * @param b The second brigade
+ */
+#define APR_BRIGADE_PREPEND(a, b) do {					\
+        APR_RING_PREPEND(&(a)->list, &(b)->list, apr_bucket, link);	\
+        APR_BRIGADE_CHECK_CONSISTENCY((a));				\
+    } while (0)
+
+/**
+ * Insert a list of buckets before a specified bucket
+ * @param a The bucket to insert before
+ * @param b The buckets to insert
+ */
+#define APR_BUCKET_INSERT_BEFORE(a, b) do {				\
+	apr_bucket *ap__a = (a), *ap__b = (b);				\
+	APR_RING_INSERT_BEFORE(ap__a, ap__b, link);			\
+        APR_BUCKET_CHECK_CONSISTENCY(ap__a);				\
+    } while (0)
+
+/**
+ * Insert a list of buckets after a specified bucket
+ * @param a The bucket to insert after
+ * @param b The buckets to insert
+ */
+#define APR_BUCKET_INSERT_AFTER(a, b) do {				\
+	apr_bucket *ap__a = (a), *ap__b = (b);				\
+	APR_RING_INSERT_AFTER(ap__a, ap__b, link);			\
+        APR_BUCKET_CHECK_CONSISTENCY(ap__a);				\
+    } while (0)
+
+/**
+ * Get the next bucket in the list
+ * @param e The current bucket
+ * @return The next bucket
+ */
+#define APR_BUCKET_NEXT(e)	APR_RING_NEXT((e), link)
+/**
+ * Get the previous bucket in the list
+ * @param e The current bucket
+ * @return The previous bucket
+ */
+#define APR_BUCKET_PREV(e)	APR_RING_PREV((e), link)
+
+/**
+ * Remove a bucket from its bucket brigade
+ * @param e The bucket to remove
+ */
+#define APR_BUCKET_REMOVE(e)	APR_RING_REMOVE((e), link)
+
+/**
+ * Initialize a new bucket's prev/next pointers
+ * @param e The bucket to initialize
+ */
+#define APR_BUCKET_INIT(e)	APR_RING_ELEM_INIT((e), link)
+
+/**
+ * Determine if a bucket contains metadata.  An empty bucket is
+ * safe to arbitrarily remove if and only if this is false.
+ * @param e The bucket to inspect
+ * @return true or false
+ */
+#define APR_BUCKET_IS_METADATA(e)    ((e)->type->is_metadata)
+
+/**
+ * Determine if a bucket is a FLUSH bucket
+ * @param e The bucket to inspect
+ * @return true or false
+ */
+#define APR_BUCKET_IS_FLUSH(e)       ((e)->type == &apr_bucket_type_flush)
+/**
+ * Determine if a bucket is an EOS bucket
+ * @param e The bucket to inspect
+ * @return true or false
+ */
+#define APR_BUCKET_IS_EOS(e)         ((e)->type == &apr_bucket_type_eos)
+/**
+ * Determine if a bucket is a FILE bucket
+ * @param e The bucket to inspect
+ * @return true or false
+ */
+#define APR_BUCKET_IS_FILE(e)        ((e)->type == &apr_bucket_type_file)
+/**
+ * Determine if a bucket is a PIPE bucket
+ * @param e The bucket to inspect
+ * @return true or false
+ */
+#define APR_BUCKET_IS_PIPE(e)        ((e)->type == &apr_bucket_type_pipe)
+/**
+ * Determine if a bucket is a SOCKET bucket
+ * @param e The bucket to inspect
+ * @return true or false
+ */
+#define APR_BUCKET_IS_SOCKET(e)      ((e)->type == &apr_bucket_type_socket)
+/**
+ * Determine if a bucket is a HEAP bucket
+ * @param e The bucket to inspect
+ * @return true or false
+ */
+#define APR_BUCKET_IS_HEAP(e)        ((e)->type == &apr_bucket_type_heap)
+/**
+ * Determine if a bucket is a TRANSIENT bucket
+ * @param e The bucket to inspect
+ * @return true or false
+ */
+#define APR_BUCKET_IS_TRANSIENT(e)   ((e)->type == &apr_bucket_type_transient)
+/**
+ * Determine if a bucket is a IMMORTAL bucket
+ * @param e The bucket to inspect
+ * @return true or false
+ */
+#define APR_BUCKET_IS_IMMORTAL(e)    ((e)->type == &apr_bucket_type_immortal)
+#if APR_HAS_MMAP
+/**
+ * Determine if a bucket is a MMAP bucket
+ * @param e The bucket to inspect
+ * @return true or false
+ */
+#define APR_BUCKET_IS_MMAP(e)        ((e)->type == &apr_bucket_type_mmap)
+#endif
+/**
+ * Determine if a bucket is a POOL bucket
+ * @param e The bucket to inspect
+ * @return true or false
+ */
+#define APR_BUCKET_IS_POOL(e)        ((e)->type == &apr_bucket_type_pool)
+
+/*
+ * General-purpose reference counting for the various bucket types.
+ *
+ * Any bucket type that keeps track of the resources it uses (i.e.
+ * most of them except for IMMORTAL, TRANSIENT, and EOS) needs to
+ * attach a reference count to the resource so that it can be freed
+ * when the last bucket that uses it goes away. Resource-sharing may
+ * occur because of bucket splits or buckets that refer to globally
+ * cached data. */
+
+/** @see apr_bucket_refcount */
+typedef struct apr_bucket_refcount apr_bucket_refcount;
+/**
+ * The structure used to manage the shared resource must start with an
+ * apr_bucket_refcount which is updated by the general-purpose refcount
+ * code. A pointer to the bucket-type-dependent private data structure
+ * can be cast to a pointer to an apr_bucket_refcount and vice versa.
+ */
+struct apr_bucket_refcount {
+    /** The number of references to this bucket */
+    int          refcount;
+};
+
+/*  *****  Reference-counted bucket types  *****  */
+
+/** @see apr_bucket_heap */
+typedef struct apr_bucket_heap apr_bucket_heap;
+/**
+ * A bucket referring to data allocated off the heap.
+ */
+struct apr_bucket_heap {
+    /** Number of buckets using this memory */
+    apr_bucket_refcount  refcount;
+    /** The start of the data actually allocated.  This should never be
+     * modified, it is only used to free the bucket.
+     */
+    char    *base;
+    /** how much memory was allocated */
+    apr_size_t  alloc_len;
+    /** function to use to delete the data */
+    void (*free_func)(void *data);
+};
+
+/** @see apr_bucket_pool */
+typedef struct apr_bucket_pool apr_bucket_pool;
+/**
+ * A bucket referring to data allocated from a pool
+ */
+struct apr_bucket_pool {
+    /** The pool bucket must be able to be easily morphed to a heap
+     * bucket if the pool gets cleaned up before all references are
+     * destroyed.  This apr_bucket_heap structure is populated automatically
+     * when the pool gets cleaned up, and subsequent calls to pool_read()
+     * will result in the apr_bucket in question being morphed into a
+     * regular heap bucket.  (To avoid having to do many extra refcount
+     * manipulations and b->data manipulations, the apr_bucket_pool
+     * struct actually *contains* the apr_bucket_heap struct that it
+     * will become as its first element; the two share their
+     * apr_bucket_refcount members.)
+     */
+    apr_bucket_heap  heap;
+    /** The block of data actually allocated from the pool.
+     * Segments of this block are referenced by adjusting
+     * the start and length of the apr_bucket accordingly.
+     * This will be NULL after the pool gets cleaned up.
+     */
+    const char *base;
+    /** The pool the data was allocated from.  When the pool
+     * is cleaned up, this gets set to NULL as an indicator
+     * to pool_read() that the data is now on the heap and
+     * so it should morph the bucket into a regular heap
+     * bucket before continuing.
+     */
+    apr_pool_t *pool;
+    /** The freelist this structure was allocated from, which is
+     * needed in the cleanup phase in order to allocate space on the heap
+     */
+    apr_bucket_alloc_t *list;
+};
+
+#if APR_HAS_MMAP
+/** @see apr_bucket_mmap */
+typedef struct apr_bucket_mmap apr_bucket_mmap;
+/**
+ * A bucket referring to an mmap()ed file
+ */
+struct apr_bucket_mmap {
+    /** Number of buckets using this memory */
+    apr_bucket_refcount  refcount;
+    /** The mmap this sub_bucket refers to */
+    apr_mmap_t *mmap;
+};
+#endif
+
+/** @see apr_bucket_file */
+typedef struct apr_bucket_file apr_bucket_file;
+/**
+ * A bucket referring to an file
+ */
+struct apr_bucket_file {
+    /** Number of buckets using this memory */
+    apr_bucket_refcount  refcount;
+    /** The file this bucket refers to */
+    apr_file_t *fd;
+    /** The pool into which any needed structures should
+     *  be created while reading from this file bucket */
+    apr_pool_t *readpool;
+#if APR_HAS_MMAP
+    /** Whether this bucket should be memory-mapped if
+     *  a caller tries to read from it */
+    int can_mmap;
+#endif /* APR_HAS_MMAP */
+};
+
+/** @see apr_bucket_structs */
+typedef union apr_bucket_structs apr_bucket_structs;
+/**
+ * A union of all bucket structures so we know what
+ * the max size is.
+ */
+union apr_bucket_structs {
+    apr_bucket      b;      /**< Bucket */
+    apr_bucket_heap heap;   /**< Heap */
+    apr_bucket_pool pool;   /**< Pool */
+#if APR_HAS_MMAP
+    apr_bucket_mmap mmap;   /**< MMap */
+#endif
+    apr_bucket_file file;   /**< File */
+};
+
+/**
+ * The amount that apr_bucket_alloc() should allocate in the common case.
+ * Note: this is twice as big as apr_bucket_structs to allow breathing
+ * room for third-party bucket types.
+ */
+#define APR_BUCKET_ALLOC_SIZE  APR_ALIGN_DEFAULT(2*sizeof(apr_bucket_structs))
+
+/*  *****  Bucket Brigade Functions  *****  */
+/**
+ * Create a new bucket brigade.  The bucket brigade is originally empty.
+ * @param p The pool to associate with the brigade.  Data is not allocated out
+ *          of the pool, but a cleanup is registered.
+ * @param list The bucket allocator to use
+ * @return The empty bucket brigade
+ */
+APU_DECLARE(apr_bucket_brigade *) apr_brigade_create(apr_pool_t *p,
+                                                     apr_bucket_alloc_t *list);
+
+/**
+ * destroy an entire bucket brigade.  This includes destroying all of the
+ * buckets within the bucket brigade's bucket list. 
+ * @param b The bucket brigade to destroy
+ */
+APU_DECLARE(apr_status_t) apr_brigade_destroy(apr_bucket_brigade *b);
+
+/**
+ * empty out an entire bucket brigade.  This includes destroying all of the
+ * buckets within the bucket brigade's bucket list.  This is similar to
+ * apr_brigade_destroy(), except that it does not deregister the brigade's
+ * pool cleanup function.
+ * @param data The bucket brigade to clean up
+ * @remark Generally, you should use apr_brigade_destroy().  This function
+ *         can be useful in situations where you have a single brigade that
+ *         you wish to reuse many times by destroying all of the buckets in
+ *         the brigade and putting new buckets into it later.
+ */
+APU_DECLARE(apr_status_t) apr_brigade_cleanup(void *data);
+
+/**
+ * Split a bucket brigade into two, such that the given bucket is the
+ * first in the new bucket brigade. This function is useful when a
+ * filter wants to pass only the initial part of a brigade to the next
+ * filter.
+ * @param b The brigade to split
+ * @param e The first element of the new brigade
+ * @return The new brigade
+ */
+APU_DECLARE(apr_bucket_brigade *) apr_brigade_split(apr_bucket_brigade *b,
+                                                    apr_bucket *e);
+
+/**
+ * Partition a bucket brigade at a given offset (in bytes from the start of
+ * the brigade).  This is useful whenever a filter wants to use known ranges
+ * of bytes from the brigade; the ranges can even overlap.
+ * @param b The brigade to partition
+ * @param point The offset at which to partition the brigade
+ * @param after_point Returns a pointer to the first bucket after the partition
+ * @return APR_SUCCESS on success, APR_INCOMPLETE if the contents of the
+ * brigade were shorter than @a point, or an error code.
+ * @remark if APR_INCOMPLETE is returned, @a after_point will be set to
+ * the brigade sentinel.
+ */
+APU_DECLARE(apr_status_t) apr_brigade_partition(apr_bucket_brigade *b,
+                                                apr_off_t point,
+                                                apr_bucket **after_point);
+
+/**
+ * Return the total length of the brigade.
+ * @param bb The brigade to compute the length of
+ * @param read_all Read unknown-length buckets to force a size
+ * @param length Returns the length of the brigade, or -1 if the brigade has
+ *               buckets of indeterminate length and read_all is 0.
+ */
+APU_DECLARE(apr_status_t) apr_brigade_length(apr_bucket_brigade *bb,
+                                             int read_all,
+                                             apr_off_t *length);
+
+/**
+ * Take a bucket brigade and store the data in a flat char*
+ * @param bb The bucket brigade to create the char* from
+ * @param c The char* to write into
+ * @param len The maximum length of the char array. On return, it is the
+ *            actual length of the char array.
+ */
+APU_DECLARE(apr_status_t) apr_brigade_flatten(apr_bucket_brigade *bb,
+                                              char *c,
+                                              apr_size_t *len);
+
+/**
+ * Creates a pool-allocated string representing a flat bucket brigade
+ * @param bb The bucket brigade to create the char array from
+ * @param c On return, the allocated char array
+ * @param len On return, the length of the char array.
+ * @param pool The pool to allocate the string from.
+ */
+APU_DECLARE(apr_status_t) apr_brigade_pflatten(apr_bucket_brigade *bb, 
+                                               char **c,
+                                               apr_size_t *len,
+                                               apr_pool_t *pool);
+
+/**
+ * Split a brigade to represent one LF line.
+ * @param bbOut The bucket brigade that will have the LF line appended to.
+ * @param bbIn The input bucket brigade to search for a LF-line.
+ * @param block The blocking mode to be used to split the line.
+ * @param maxbytes The maximum bytes to read.  If this many bytes are seen
+ *                 without a LF, the brigade will contain a partial line.
+ */
+APU_DECLARE(apr_status_t) apr_brigade_split_line(apr_bucket_brigade *bbOut,
+                                                 apr_bucket_brigade *bbIn,
+                                                 apr_read_type_e block,
+                                                 apr_off_t maxbytes);
+
+/**
+ * create an iovec of the elements in a bucket_brigade... return number 
+ * of elements used.  This is useful for writing to a file or to the
+ * network efficiently.
+ * @param b The bucket brigade to create the iovec from
+ * @param vec The iovec to create
+ * @param nvec The number of elements in the iovec. On return, it is the
+ *             number of iovec elements actually filled out.
+ */
+APU_DECLARE(apr_status_t) apr_brigade_to_iovec(apr_bucket_brigade *b, 
+                                               struct iovec *vec, int *nvec);
+
+/**
+ * This function writes a list of strings into a bucket brigade. 
+ * @param b The bucket brigade to add to
+ * @param flush The flush function to use if the brigade is full
+ * @param ctx The structure to pass to the flush function
+ * @param va A list of strings to add
+ * @return APR_SUCCESS or error code.
+ */
+APU_DECLARE(apr_status_t) apr_brigade_vputstrs(apr_bucket_brigade *b,
+                                               apr_brigade_flush flush,
+                                               void *ctx,
+                                               va_list va);
+
+/**
+ * This function writes a string into a bucket brigade.
+ * @param b The bucket brigade to add to
+ * @param flush The flush function to use if the brigade is full
+ * @param ctx The structure to pass to the flush function
+ * @param str The string to add
+ * @param nbyte The number of bytes to write
+ * @return APR_SUCCESS or error code
+ */
+APU_DECLARE(apr_status_t) apr_brigade_write(apr_bucket_brigade *b,
+                                            apr_brigade_flush flush, void *ctx,
+                                            const char *str, apr_size_t nbyte);
+
+/**
+ * This function writes multiple strings into a bucket brigade.
+ * @param b The bucket brigade to add to
+ * @param flush The flush function to use if the brigade is full
+ * @param ctx The structure to pass to the flush function
+ * @param vec The strings to add (address plus length for each)
+ * @param nvec The number of entries in iovec
+ * @return APR_SUCCESS or error code
+ */
+APU_DECLARE(apr_status_t) apr_brigade_writev(apr_bucket_brigade *b,
+                                             apr_brigade_flush flush,
+                                             void *ctx,
+                                             const struct iovec *vec,
+                                             apr_size_t nvec);
+
+/**
+ * This function writes a string into a bucket brigade.
+ * @param bb The bucket brigade to add to
+ * @param flush The flush function to use if the brigade is full
+ * @param ctx The structure to pass to the flush function
+ * @param str The string to add
+ * @return APR_SUCCESS or error code
+ */
+APU_DECLARE(apr_status_t) apr_brigade_puts(apr_bucket_brigade *bb,
+                                           apr_brigade_flush flush, void *ctx,
+                                           const char *str);
+
+/**
+ * This function writes a character into a bucket brigade.
+ * @param b The bucket brigade to add to
+ * @param flush The flush function to use if the brigade is full
+ * @param ctx The structure to pass to the flush function
+ * @param c The character to add
+ * @return APR_SUCCESS or error code
+ */
+APU_DECLARE(apr_status_t) apr_brigade_putc(apr_bucket_brigade *b,
+                                           apr_brigade_flush flush, void *ctx,
+                                           const char c);
+
+/**
+ * This function writes an unspecified number of strings into a bucket brigade.
+ * @param b The bucket brigade to add to
+ * @param flush The flush function to use if the brigade is full
+ * @param ctx The structure to pass to the flush function
+ * @param ... The strings to add
+ * @return APR_SUCCESS or error code
+ */
+APU_DECLARE_NONSTD(apr_status_t) apr_brigade_putstrs(apr_bucket_brigade *b,
+                                                     apr_brigade_flush flush,
+                                                     void *ctx, ...);
+
+/**
+ * Evaluate a printf and put the resulting string at the end 
+ * of the bucket brigade.
+ * @param b The brigade to write to
+ * @param flush The flush function to use if the brigade is full
+ * @param ctx The structure to pass to the flush function
+ * @param fmt The format of the string to write
+ * @param ... The arguments to fill out the format
+ * @return APR_SUCCESS or error code
+ */
+APU_DECLARE_NONSTD(apr_status_t) apr_brigade_printf(apr_bucket_brigade *b, 
+                                                    apr_brigade_flush flush,
+                                                    void *ctx,
+                                                    const char *fmt, ...)
+        __attribute__((format(printf,4,5)));
+
+/**
+ * Evaluate a printf and put the resulting string at the end 
+ * of the bucket brigade.
+ * @param b The brigade to write to
+ * @param flush The flush function to use if the brigade is full
+ * @param ctx The structure to pass to the flush function
+ * @param fmt The format of the string to write
+ * @param va The arguments to fill out the format
+ * @return APR_SUCCESS or error code
+ */
+APU_DECLARE(apr_status_t) apr_brigade_vprintf(apr_bucket_brigade *b, 
+                                              apr_brigade_flush flush,
+                                              void *ctx,
+                                              const char *fmt, va_list va);
+
+/**
+ * Utility function to insert a file (or a segment of a file) onto the
+ * end of the brigade.  The file is split into multiple buckets if it
+ * is larger than the maximum size which can be represented by a
+ * single bucket.
+ * @param bb the brigade to insert into
+ * @param f the file to insert
+ * @param start the offset of the start of the segment
+ * @param len the length of the segment of the file to insert
+ * @param p pool from which file buckets are allocated
+ * @return the last bucket inserted
+ */
+APU_DECLARE(apr_bucket *) apr_brigade_insert_file(apr_bucket_brigade *bb,
+                                                  apr_file_t *f,
+                                                  apr_off_t start,
+                                                  apr_off_t len,
+                                                  apr_pool_t *p);
+
+
+
+/*  *****  Bucket freelist functions *****  */
+/**
+ * Create a bucket allocator.
+ * @param p This pool's underlying apr_allocator_t is used to allocate memory
+ *          for the bucket allocator.  When the pool is destroyed, the bucket
+ *          allocator's cleanup routine will free all memory that has been
+ *          allocated from it.
+ * @remark  The reason the allocator gets its memory from the pool's
+ *          apr_allocator_t rather than from the pool itself is because
+ *          the bucket allocator will free large memory blocks back to the
+ *          allocator when it's done with them, thereby preventing memory
+ *          footprint growth that would occur if we allocated from the pool.
+ * @warning The allocator must never be used by more than one thread at a time.
+ */
+APU_DECLARE_NONSTD(apr_bucket_alloc_t *) apr_bucket_alloc_create(apr_pool_t *p);
+
+/**
+ * Create a bucket allocator.
+ * @param allocator This apr_allocator_t is used to allocate both the bucket
+ *          allocator and all memory handed out by the bucket allocator.  The
+ *          caller is responsible for destroying the bucket allocator and the
+ *          apr_allocator_t -- no automatic cleanups will happen.
+ * @warning The allocator must never be used by more than one thread at a time.
+ */
+APU_DECLARE_NONSTD(apr_bucket_alloc_t *) apr_bucket_alloc_create_ex(apr_allocator_t *allocator);
+
+/**
+ * Destroy a bucket allocator.
+ * @param list The allocator to be destroyed
+ */
+APU_DECLARE_NONSTD(void) apr_bucket_alloc_destroy(apr_bucket_alloc_t *list);
+
+/**
+ * Allocate memory for use by the buckets.
+ * @param size The amount to allocate.
+ * @param list The allocator from which to allocate the memory.
+ */
+APU_DECLARE_NONSTD(void *) apr_bucket_alloc(apr_size_t size, apr_bucket_alloc_t *list);
+
+/**
+ * Free memory previously allocated with apr_bucket_alloc().
+ * @param block The block of memory to be freed.
+ */
+APU_DECLARE_NONSTD(void) apr_bucket_free(void *block);
+
+
+/*  *****  Bucket Functions  *****  */
+/**
+ * Free the resources used by a bucket. If multiple buckets refer to
+ * the same resource it is freed when the last one goes away.
+ * @see apr_bucket_delete()
+ * @param e The bucket to destroy
+ */
+#define apr_bucket_destroy(e) do {					\
+        (e)->type->destroy((e)->data);					\
+        (e)->free(e);							\
+    } while (0)
+
+/**
+ * Delete a bucket by removing it from its brigade (if any) and then
+ * destroying it.
+ * @remark This mainly acts as an aid in avoiding code verbosity.  It is
+ * the preferred exact equivalent to:
+ * <pre>
+ *      APR_BUCKET_REMOVE(e);
+ *      apr_bucket_destroy(e);
+ * </pre>
+ * @param e The bucket to delete
+ */
+#define apr_bucket_delete(e) do {					\
+        APR_BUCKET_REMOVE(e);						\
+        apr_bucket_destroy(e);						\
+    } while (0)
+
+/**
+ * read the data from the bucket
+ * @param e The bucket to read from
+ * @param str The location to store the data in
+ * @param len The amount of data read
+ * @param block Whether the read function blocks
+ */
+#define apr_bucket_read(e,str,len,block) (e)->type->read(e, str, len, block)
+
+/**
+ * Setaside data so that stack data is not destroyed on returning from
+ * the function
+ * @param e The bucket to setaside
+ * @param p The pool to setaside into
+ */
+#define apr_bucket_setaside(e,p) (e)->type->setaside(e,p)
+
+/**
+ * Split one bucket in two.
+ * @param e The bucket to split
+ * @param point The offset to split the bucket at
+ */
+#define apr_bucket_split(e,point) (e)->type->split(e, point)
+
+/**
+ * Copy a bucket.
+ * @param e The bucket to copy
+ * @param c Returns a pointer to the new bucket
+ */
+#define apr_bucket_copy(e,c) (e)->type->copy(e, c)
+
+/* Bucket type handling */
+
+/**
+ * This function simply returns APR_SUCCESS to denote that the bucket does
+ * not require anything to happen for its setaside() function. This is
+ * appropriate for buckets that have "immortal" data -- the data will live
+ * at least as long as the bucket.
+ * @param data The bucket to setaside
+ * @param pool The pool defining the desired lifetime of the bucket data
+ * @return APR_SUCCESS
+ */ 
+APU_DECLARE_NONSTD(apr_status_t) apr_bucket_setaside_noop(apr_bucket *data,
+                                                          apr_pool_t *pool);
+
+/**
+ * A place holder function that signifies that the setaside function was not
+ * implemented for this bucket
+ * @param data The bucket to setaside
+ * @param pool The pool defining the desired lifetime of the bucket data
+ * @return APR_ENOTIMPL
+ */ 
+APU_DECLARE_NONSTD(apr_status_t) apr_bucket_setaside_notimpl(apr_bucket *data,
+                                                             apr_pool_t *pool);
+
+/**
+ * A place holder function that signifies that the split function was not
+ * implemented for this bucket
+ * @param data The bucket to split
+ * @param point The location to split the bucket
+ * @return APR_ENOTIMPL
+ */ 
+APU_DECLARE_NONSTD(apr_status_t) apr_bucket_split_notimpl(apr_bucket *data,
+                                                          apr_size_t point);
+
+/**
+ * A place holder function that signifies that the copy function was not
+ * implemented for this bucket
+ * @param e The bucket to copy
+ * @param c Returns a pointer to the new bucket
+ * @return APR_ENOTIMPL
+ */
+APU_DECLARE_NONSTD(apr_status_t) apr_bucket_copy_notimpl(apr_bucket *e,
+                                                         apr_bucket **c);
+
+/**
+ * A place holder function that signifies that this bucket does not need
+ * to do anything special to be destroyed.  That's only the case for buckets
+ * that either have no data (metadata buckets) or buckets whose data pointer
+ * points to something that's not a bucket-type-specific structure, as with
+ * simple buckets where data points to a string and pipe buckets where data
+ * points directly to the apr_file_t.
+ * @param data The bucket data to destroy
+ */ 
+APU_DECLARE_NONSTD(void) apr_bucket_destroy_noop(void *data);
+
+/**
+ * There is no apr_bucket_destroy_notimpl, because destruction is required
+ * to be implemented (it could be a noop, but only if that makes sense for
+ * the bucket type)
+ */
+
+/* There is no apr_bucket_read_notimpl, because it is a required function
+ */
+
+
+/* All of the bucket types implemented by the core */
+/**
+ * The flush bucket type.  This signifies that all data should be flushed to
+ * the next filter.  The flush bucket should be sent with the other buckets.
+ */
+APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_flush;
+/**
+ * The EOS bucket type.  This signifies that there will be no more data, ever.
+ * All filters MUST send all data to the next filter when they receive a
+ * bucket of this type
+ */
+APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_eos;
+/**
+ * The FILE bucket type.  This bucket represents a file on disk
+ */
+APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_file;
+/**
+ * The HEAP bucket type.  This bucket represents a data allocated from the
+ * heap.
+ */
+APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_heap;
+#if APR_HAS_MMAP
+/**
+ * The MMAP bucket type.  This bucket represents an MMAP'ed file
+ */
+APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_mmap;
+#endif
+/**
+ * The POOL bucket type.  This bucket represents a data that was allocated
+ * from a pool.  IF this bucket is still available when the pool is cleared,
+ * the data is copied on to the heap.
+ */
+APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_pool;
+/**
+ * The PIPE bucket type.  This bucket represents a pipe to another program.
+ */
+APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_pipe;
+/**
+ * The IMMORTAL bucket type.  This bucket represents a segment of data that
+ * the creator is willing to take responsibility for.  The core will do
+ * nothing with the data in an immortal bucket
+ */
+APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_immortal;
+/**
+ * The TRANSIENT bucket type.  This bucket represents a data allocated off
+ * the stack.  When the setaside function is called, this data is copied on
+ * to the heap
+ */
+APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_transient;
+/**
+ * The SOCKET bucket type.  This bucket represents a socket to another machine
+ */
+APU_DECLARE_DATA extern const apr_bucket_type_t apr_bucket_type_socket;
+
+
+/*  *****  Simple buckets  *****  */
+
+/**
+ * Split a simple bucket into two at the given point.  Most non-reference
+ * counting buckets that allow multiple references to the same block of
+ * data (eg transient and immortal) will use this as their split function
+ * without any additional type-specific handling.
+ * @param b The bucket to be split
+ * @param point The offset of the first byte in the new bucket
+ * @return APR_EINVAL if the point is not within the bucket;
+ *         APR_ENOMEM if allocation failed;
+ *         or APR_SUCCESS
+ */
+APU_DECLARE_NONSTD(apr_status_t) apr_bucket_simple_split(apr_bucket *b,
+                                                         apr_size_t point);
+
+/**
+ * Copy a simple bucket.  Most non-reference-counting buckets that allow
+ * multiple references to the same block of data (eg transient and immortal)
+ * will use this as their copy function without any additional type-specific
+ * handling.
+ * @param a The bucket to copy
+ * @param b Returns a pointer to the new bucket
+ * @return APR_ENOMEM if allocation failed;
+ *         or APR_SUCCESS
+ */
+APU_DECLARE_NONSTD(apr_status_t) apr_bucket_simple_copy(apr_bucket *a,
+                                                        apr_bucket **b);
+
+
+/*  *****  Shared, reference-counted buckets  *****  */
+
+/**
+ * Initialize a bucket containing reference-counted data that may be
+ * shared. The caller must allocate the bucket if necessary and
+ * initialize its type-dependent fields, and allocate and initialize
+ * its own private data structure. This function should only be called
+ * by type-specific bucket creation functions.
+ * @param b The bucket to initialize
+ * @param data A pointer to the private data structure
+ *             with the reference count at the start
+ * @param start The start of the data in the bucket
+ *              relative to the private base pointer
+ * @param length The length of the data in the bucket
+ * @return The new bucket, or NULL if allocation failed
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_shared_make(apr_bucket *b, void *data,
+				                 apr_off_t start, 
+                                                 apr_size_t length);
+
+/**
+ * Decrement the refcount of the data in the bucket. This function
+ * should only be called by type-specific bucket destruction functions.
+ * @param data The private data pointer from the bucket to be destroyed
+ * @return TRUE or FALSE; TRUE if the reference count is now
+ *         zero, indicating that the shared resource itself can
+ *         be destroyed by the caller.
+ */
+APU_DECLARE(int) apr_bucket_shared_destroy(void *data);
+
+/**
+ * Split a bucket into two at the given point, and adjust the refcount
+ * to the underlying data. Most reference-counting bucket types will
+ * be able to use this function as their split function without any
+ * additional type-specific handling.
+ * @param b The bucket to be split
+ * @param point The offset of the first byte in the new bucket
+ * @return APR_EINVAL if the point is not within the bucket;
+ *         APR_ENOMEM if allocation failed;
+ *         or APR_SUCCESS
+ */
+APU_DECLARE_NONSTD(apr_status_t) apr_bucket_shared_split(apr_bucket *b,
+                                                         apr_size_t point);
+
+/**
+ * Copy a refcounted bucket, incrementing the reference count. Most
+ * reference-counting bucket types will be able to use this function
+ * as their copy function without any additional type-specific handling.
+ * @param a The bucket to copy
+ * @param b Returns a pointer to the new bucket
+ * @return APR_ENOMEM if allocation failed;
+           or APR_SUCCESS
+ */
+APU_DECLARE_NONSTD(apr_status_t) apr_bucket_shared_copy(apr_bucket *a,
+                                                        apr_bucket **b);
+
+
+/*  *****  Functions to Create Buckets of varying types  *****  */
+/*
+ * Each bucket type foo has two initialization functions:
+ * apr_bucket_foo_make which sets up some already-allocated memory as a
+ * bucket of type foo; and apr_bucket_foo_create which allocates memory
+ * for the bucket, calls apr_bucket_make_foo, and initializes the
+ * bucket's list pointers. The apr_bucket_foo_make functions are used
+ * inside the bucket code to change the type of buckets in place;
+ * other code should call apr_bucket_foo_create. All the initialization
+ * functions change nothing if they fail.
+ */
+
+/**
+ * Create an End of Stream bucket.  This indicates that there is no more data
+ * coming from down the filter stack.  All filters should flush at this point.
+ * @param list The freelist from which this bucket should be allocated
+ * @return The new bucket, or NULL if allocation failed
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_eos_create(apr_bucket_alloc_t *list);
+
+/**
+ * Make the bucket passed in an EOS bucket.  This indicates that there is no 
+ * more data coming from down the filter stack.  All filters should flush at 
+ * this point.
+ * @param b The bucket to make into an EOS bucket
+ * @return The new bucket, or NULL if allocation failed
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_eos_make(apr_bucket *b);
+
+/**
+ * Create a flush  bucket.  This indicates that filters should flush their
+ * data.  There is no guarantee that they will flush it, but this is the
+ * best we can do.
+ * @param list The freelist from which this bucket should be allocated
+ * @return The new bucket, or NULL if allocation failed
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_flush_create(apr_bucket_alloc_t *list);
+
+/**
+ * Make the bucket passed in a FLUSH  bucket.  This indicates that filters 
+ * should flush their data.  There is no guarantee that they will flush it, 
+ * but this is the best we can do.
+ * @param b The bucket to make into a FLUSH bucket
+ * @return The new bucket, or NULL if allocation failed
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_flush_make(apr_bucket *b);
+
+/**
+ * Create a bucket referring to long-lived data.
+ * @param buf The data to insert into the bucket
+ * @param nbyte The size of the data to insert.
+ * @param list The freelist from which this bucket should be allocated
+ * @return The new bucket, or NULL if allocation failed
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_immortal_create(const char *buf, 
+                                                     apr_size_t nbyte,
+                                                     apr_bucket_alloc_t *list);
+
+/**
+ * Make the bucket passed in a bucket refer to long-lived data
+ * @param b The bucket to make into a IMMORTAL bucket
+ * @param buf The data to insert into the bucket
+ * @param nbyte The size of the data to insert.
+ * @return The new bucket, or NULL if allocation failed
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_immortal_make(apr_bucket *b, 
+                                                   const char *buf, 
+                                                   apr_size_t nbyte);
+
+/**
+ * Create a bucket referring to data on the stack.
+ * @param buf The data to insert into the bucket
+ * @param nbyte The size of the data to insert.
+ * @param list The freelist from which this bucket should be allocated
+ * @return The new bucket, or NULL if allocation failed
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_transient_create(const char *buf, 
+                                                      apr_size_t nbyte,
+                                                      apr_bucket_alloc_t *list);
+
+/**
+ * Make the bucket passed in a bucket refer to stack data
+ * @param b The bucket to make into a TRANSIENT bucket
+ * @param buf The data to insert into the bucket
+ * @param nbyte The size of the data to insert.
+ * @return The new bucket, or NULL if allocation failed
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_transient_make(apr_bucket *b, 
+                                                    const char *buf,
+                                                    apr_size_t nbyte);
+
+/**
+ * Create a bucket referring to memory on the heap. If the caller asks
+ * for the data to be copied, this function always allocates 4K of
+ * memory so that more data can be added to the bucket without
+ * requiring another allocation. Therefore not all the data may be put
+ * into the bucket. If copying is not requested then the bucket takes
+ * over responsibility for free()ing the memory.
+ * @param buf The buffer to insert into the bucket
+ * @param nbyte The size of the buffer to insert.
+ * @param free_func Function to use to free the data; NULL indicates that the
+ *                  bucket should make a copy of the data
+ * @param list The freelist from which this bucket should be allocated
+ * @return The new bucket, or NULL if allocation failed
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_heap_create(const char *buf, 
+                                                 apr_size_t nbyte,
+                                                 void (*free_func)(void *data),
+                                                 apr_bucket_alloc_t *list);
+/**
+ * Make the bucket passed in a bucket refer to heap data
+ * @param b The bucket to make into a HEAP bucket
+ * @param buf The buffer to insert into the bucket
+ * @param nbyte The size of the buffer to insert.
+ * @param free_func Function to use to free the data; NULL indicates that the
+ *                  bucket should make a copy of the data
+ * @return The new bucket, or NULL if allocation failed
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_heap_make(apr_bucket *b, const char *buf,
+                                               apr_size_t nbyte,
+                                               void (*free_func)(void *data));
+
+/**
+ * Create a bucket referring to memory allocated from a pool.
+ *
+ * @param buf The buffer to insert into the bucket
+ * @param length The number of bytes referred to by this bucket
+ * @param pool The pool the memory was allocated from
+ * @param list The freelist from which this bucket should be allocated
+ * @return The new bucket, or NULL if allocation failed
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_pool_create(const char *buf, 
+                                                 apr_size_t length,
+                                                 apr_pool_t *pool,
+                                                 apr_bucket_alloc_t *list);
+
+/**
+ * Make the bucket passed in a bucket refer to pool data
+ * @param b The bucket to make into a pool bucket
+ * @param buf The buffer to insert into the bucket
+ * @param length The number of bytes referred to by this bucket
+ * @param pool The pool the memory was allocated from
+ * @return The new bucket, or NULL if allocation failed
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_pool_make(apr_bucket *b, const char *buf,
+                                               apr_size_t length, 
+                                               apr_pool_t *pool);
+
+#if APR_HAS_MMAP
+/**
+ * Create a bucket referring to mmap()ed memory.
+ * @param mm The mmap to insert into the bucket
+ * @param start The offset of the first byte in the mmap
+ *              that this bucket refers to
+ * @param length The number of bytes referred to by this bucket
+ * @param list The freelist from which this bucket should be allocated
+ * @return The new bucket, or NULL if allocation failed
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_mmap_create(apr_mmap_t *mm, 
+                                                 apr_off_t start,
+                                                 apr_size_t length,
+                                                 apr_bucket_alloc_t *list);
+
+/**
+ * Make the bucket passed in a bucket refer to an MMAP'ed file
+ * @param b The bucket to make into a MMAP bucket
+ * @param mm The mmap to insert into the bucket
+ * @param start The offset of the first byte in the mmap
+ *              that this bucket refers to
+ * @param length The number of bytes referred to by this bucket
+ * @return The new bucket, or NULL if allocation failed
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_mmap_make(apr_bucket *b, apr_mmap_t *mm,
+                                               apr_off_t start, 
+                                               apr_size_t length);
+#endif
+
+/**
+ * Create a bucket referring to a socket.
+ * @param thissock The socket to put in the bucket
+ * @param list The freelist from which this bucket should be allocated
+ * @return The new bucket, or NULL if allocation failed
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_socket_create(apr_socket_t *thissock,
+                                                   apr_bucket_alloc_t *list);
+/**
+ * Make the bucket passed in a bucket refer to a socket
+ * @param b The bucket to make into a SOCKET bucket
+ * @param thissock The socket to put in the bucket
+ * @return The new bucket, or NULL if allocation failed
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_socket_make(apr_bucket *b, 
+                                                 apr_socket_t *thissock);
+
+/**
+ * Create a bucket referring to a pipe.
+ * @param thispipe The pipe to put in the bucket
+ * @param list The freelist from which this bucket should be allocated
+ * @return The new bucket, or NULL if allocation failed
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_pipe_create(apr_file_t *thispipe,
+                                                 apr_bucket_alloc_t *list);
+
+/**
+ * Make the bucket passed in a bucket refer to a pipe
+ * @param b The bucket to make into a PIPE bucket
+ * @param thispipe The pipe to put in the bucket
+ * @return The new bucket, or NULL if allocation failed
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_pipe_make(apr_bucket *b, 
+                                               apr_file_t *thispipe);
+
+/**
+ * Create a bucket referring to a file.
+ * @param fd The file to put in the bucket
+ * @param offset The offset where the data of interest begins in the file
+ * @param len The amount of data in the file we are interested in
+ * @param p The pool into which any needed structures should be created
+ *          while reading from this file bucket
+ * @param list The freelist from which this bucket should be allocated
+ * @return The new bucket, or NULL if allocation failed
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_file_create(apr_file_t *fd,
+                                                 apr_off_t offset,
+                                                 apr_size_t len, 
+                                                 apr_pool_t *p,
+                                                 apr_bucket_alloc_t *list);
+
+/**
+ * Make the bucket passed in a bucket refer to a file
+ * @param b The bucket to make into a FILE bucket
+ * @param fd The file to put in the bucket
+ * @param offset The offset where the data of interest begins in the file
+ * @param len The amount of data in the file we are interested in
+ * @param p The pool into which any needed structures should be created
+ *          while reading from this file bucket
+ * @return The new bucket, or NULL if allocation failed
+ */
+APU_DECLARE(apr_bucket *) apr_bucket_file_make(apr_bucket *b, apr_file_t *fd,
+                                               apr_off_t offset,
+                                               apr_size_t len, apr_pool_t *p);
+
+/**
+ * Enable or disable memory-mapping for a FILE bucket (default is enabled)
+ * @param b The bucket
+ * @param enabled Whether memory-mapping should be enabled
+ * @return APR_SUCCESS normally, or an error code if the operation fails
+ */
+APU_DECLARE(apr_status_t) apr_bucket_file_enable_mmap(apr_bucket *b,
+                                                      int enabled);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !APR_BUCKETS_H */
diff --git a/include/apr_date.h b/include/apr_date.h
new file mode 100644
index 0000000..b098b54
--- /dev/null
+++ b/include/apr_date.h
@@ -0,0 +1,106 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef APR_DATE_H
+#define APR_DATE_H
+
+/**
+ * @file apr_date.h
+ * @brief APR-UTIL date routines
+ */
+
+/**
+ * @defgroup APR_Util_Date Date routines
+ * @ingroup APR_Util
+ * @{
+ */
+
+/*
+ * apr_date.h: prototypes for date parsing utility routines
+ */
+
+#include "apu.h"
+#include "apr_time.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** A bad date. */
+#define APR_DATE_BAD ((apr_time_t)0)
+
+/**
+ * Compare a string to a mask
+ * @param data The string to compare
+ * @param mask Mask characters (arbitrary maximum is 256 characters):
+ * <PRE>
+ *   '\@' - uppercase letter
+ *   '\$' - lowercase letter
+ *   '\&' - hex digit
+ *   '#' - digit
+ *   '~' - digit or space
+ *   '*' - swallow remaining characters
+ * </PRE>
+ * @remark The mask tests for an exact match for any other character
+ * @return 1 if the string matches, 0 otherwise
+ */
+APU_DECLARE(int) apr_date_checkmask(const char *data, const char *mask);
+
+/**
+ * Parses an HTTP date in one of three standard forms:
+ * <PRE>
+ *     Sun, 06 Nov 1994 08:49:37 GMT  ; RFC 822, updated by RFC 1123
+ *     Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
+ *     Sun Nov  6 08:49:37 1994       ; ANSI C's asctime() format
+ * </PRE>
+ * @param date The date in one of the three formats above
+ * @return the apr_time_t number of microseconds since 1 Jan 1970 GMT, or
+ *         0 if this would be out of range or if the date is invalid.
+ */
+APU_DECLARE(apr_time_t) apr_date_parse_http(const char *date);
+
+/**
+ * Parses a string resembling an RFC 822 date.  This is meant to be
+ * leinent in its parsing of dates.  Hence, this will parse a wider 
+ * range of dates than apr_date_parse_http.
+ *
+ * The prominent mailer (or poster, if mailer is unknown) that has
+ * been seen in the wild is included for the unknown formats.
+ * <PRE>
+ *     Sun, 06 Nov 1994 08:49:37 GMT  ; RFC 822, updated by RFC 1123
+ *     Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
+ *     Sun Nov  6 08:49:37 1994       ; ANSI C's asctime() format
+ *     Sun, 6 Nov 1994 08:49:37 GMT   ; RFC 822, updated by RFC 1123
+ *     Sun, 06 Nov 94 08:49:37 GMT    ; RFC 822
+ *     Sun, 6 Nov 94 08:49:37 GMT     ; RFC 822
+ *     Sun, 06 Nov 94 08:49 GMT       ; Unknown [drtr\@ast.cam.ac.uk] 
+ *     Sun, 6 Nov 94 08:49 GMT        ; Unknown [drtr\@ast.cam.ac.uk]
+ *     Sun, 06 Nov 94 8:49:37 GMT     ; Unknown [Elm 70.85]
+ *     Sun, 6 Nov 94 8:49:37 GMT      ; Unknown [Elm 70.85] 
+ * </PRE>
+ *
+ * @param date The date in one of the formats above
+ * @return the apr_time_t number of microseconds since 1 Jan 1970 GMT, or
+ *         0 if this would be out of range or if the date is invalid.
+ */
+APU_DECLARE(apr_time_t) apr_date_parse_rfc(const char *date);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* !APR_DATE_H */
diff --git a/include/apr_dbd.h b/include/apr_dbd.h
new file mode 100644
index 0000000..3fd19e1
--- /dev/null
+++ b/include/apr_dbd.h
@@ -0,0 +1,359 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* Overview of what this is and does:
+ * http://www.apache.org/~niq/dbd.html
+ */
+
+#ifndef APR_DBD_H
+#define APR_DBD_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @file apr_dbd.h
+ * @brief APR-UTIL DBD library
+ */
+/**
+ * @defgroup APR_Util_DBD DBD routines
+ * @ingroup APR_Util
+ * @{
+ */
+
+/* These are opaque structs.  Instantiation is up to each backend */
+typedef struct apr_dbd_driver_t apr_dbd_driver_t;
+typedef struct apr_dbd_t apr_dbd_t;
+typedef struct apr_dbd_transaction_t apr_dbd_transaction_t;
+typedef struct apr_dbd_results_t apr_dbd_results_t;
+typedef struct apr_dbd_row_t apr_dbd_row_t;
+typedef struct apr_dbd_prepared_t apr_dbd_prepared_t;
+
+/** apr_dbd_init: perform once-only initialisation.  Call once only.
+ *
+ *  @param pool - pool to register any shutdown cleanups, etc
+ */
+APU_DECLARE(apr_status_t) apr_dbd_init(apr_pool_t *pool);
+
+/** apr_dbd_get_driver: get the driver struct for a name
+ *
+ *  @param pool - (process) pool to register cleanup
+ *  @param name - driver name
+ *  @param driver - pointer to driver struct.
+ *  @return APR_SUCCESS for success
+ *  @return APR_ENOTIMPL for no driver (when DSO not enabled)
+ *  @return APR_EDSOOPEN if DSO driver file can't be opened
+ *  @return APR_ESYMNOTFOUND if the driver file doesn't contain a driver
+ */
+APU_DECLARE(apr_status_t) apr_dbd_get_driver(apr_pool_t *pool, const char *name,
+                                             const apr_dbd_driver_t **driver);
+
+/** apr_dbd_open: open a connection to a backend
+ *
+ *  @param pool - working pool
+ *  @param params - arguments to driver (implementation-dependent)
+ *  @param handle - pointer to handle to return
+ *  @param driver - driver struct.
+ *  @return APR_SUCCESS for success
+ *  @return APR_EGENERAL if driver exists but connection failed
+ *  @remarks PostgreSQL: the params is passed directly to the PQconnectdb()
+ *  function (check PostgreSQL documentation for more details on the syntax).
+ *  @remarks SQLite2: the params is split on a colon, with the first part used
+ *  as the filename and second part converted to an integer and used as file
+ *  mode.
+ *  @remarks SQLite3: the params is passed directly to the sqlite3_open()
+ *  function as a filename to be opened (check SQLite3 documentation for more
+ *  details).
+ *  @remarks MySQL: the params can have "host", "port", "user", "pass",
+ *  "dbname", "sock", "flags" "fldsz" and "group" keys, each followed by an
+ *  equal sign and a value. Such key/value pairs can be delimited by space,
+ *  CR, LF, tab, semicolon, vertical bar or comma. For now, "flags" can only
+ *  recognise CLIENT_FOUND_ROWS (check MySQL manual for details). The value
+ *  associated with "fldsz" determines maximum amount of memory (in bytes) for
+ *  each of the fields in the result set of prepared statements. By default,
+ *  this value is 1 MB. The value associated with "group" determines which
+ *  group from configuration file to use (see MYSQL_READ_DEFAULT_GROUP option
+ *  of mysql_options() in MySQL manual).
+ */
+APU_DECLARE(apr_status_t) apr_dbd_open(const apr_dbd_driver_t *driver,
+                                       apr_pool_t *pool, const char *params,
+                                       apr_dbd_t **handle);
+
+/** apr_dbd_close: close a connection to a backend
+ *
+ *  @param handle - handle to close
+ *  @param driver - driver struct.
+ *  @return APR_SUCCESS for success or error status
+ */
+APU_DECLARE(apr_status_t) apr_dbd_close(const apr_dbd_driver_t *driver,
+                                        apr_dbd_t *handle);
+
+/* apr-function-shaped versions of things */
+
+/** apr_dbd_name: get the name of the driver
+ *
+ *  @param driver - the driver
+ *  @return - name
+ */
+APU_DECLARE(const char*) apr_dbd_name(const apr_dbd_driver_t *driver);
+
+/** apr_dbd_native_handle: get native database handle of the underlying db
+ *
+ *  @param driver - the driver
+ *  @param handle - apr_dbd handle
+ *  @return - native handle
+ */
+APU_DECLARE(void*) apr_dbd_native_handle(const apr_dbd_driver_t *driver,
+                                         apr_dbd_t *handle);
+
+/** check_conn: check status of a database connection
+ *
+ *  @param driver - the driver
+ *  @param pool - working pool
+ *  @param handle - the connection to check
+ *  @return APR_SUCCESS or error
+ */
+APU_DECLARE(int) apr_dbd_check_conn(const apr_dbd_driver_t *driver, apr_pool_t *pool,
+                                    apr_dbd_t *handle);
+
+/** apr_dbd_set_dbname: select database name.  May be a no-op if not supported.
+ *
+ *  @param driver - the driver
+ *  @param pool - working pool
+ *  @param handle - the connection
+ *  @param name - the database to select
+ *  @return 0 for success or error code
+ */
+APU_DECLARE(int) apr_dbd_set_dbname(const apr_dbd_driver_t *driver, apr_pool_t *pool,
+                                    apr_dbd_t *handle, const char *name);
+
+/** apr_dbd_transaction_start: start a transaction.  May be a no-op.
+ *
+ *  @param driver - the driver
+ *  @param pool - a pool to use for error messages (if any).
+ *  @param handle - the db connection
+ *  @param trans - ptr to a transaction.  May be null on entry
+ *  @return 0 for success or error code
+ *  @remarks If any of the query/select calls during a transaction return
+ *  non-zero status code, the transaction will inherit this code and any
+ *  further query/select calls will fail immediately.
+ */
+APU_DECLARE(int) apr_dbd_transaction_start(const apr_dbd_driver_t *driver,
+                                           apr_pool_t *pool,
+                                           apr_dbd_t *handle,
+                                           apr_dbd_transaction_t **trans);
+
+/** apr_dbd_transaction_end: end a transaction
+ *  (commit on success, rollback on error).
+ *  May be a no-op.
+ *
+ *  @param driver - the driver
+ *  @param handle - the db connection
+ *  @param trans - the transaction.
+ *  @return 0 for success or error code
+ */
+APU_DECLARE(int) apr_dbd_transaction_end(const apr_dbd_driver_t *driver,
+                                         apr_pool_t *pool,
+                                         apr_dbd_transaction_t *trans);
+
+/** apr_dbd_query: execute an SQL query that doesn't return a result set
+ *
+ *  @param driver - the driver
+ *  @param handle - the connection
+ *  @param nrows - number of rows affected.
+ *  @param statement - the SQL statement to execute
+ *  @return 0 for success or error code
+ */
+APU_DECLARE(int) apr_dbd_query(const apr_dbd_driver_t *driver, apr_dbd_t *handle,
+                               int *nrows, const char *statement);
+
+/** apr_dbd_select: execute an SQL query that returns a result set
+ *
+ *  @param driver - the driver
+ *  @param pool - pool to allocate the result set
+ *  @param handle - the connection
+ *  @param res - pointer to result set pointer.  May point to NULL on entry
+ *  @param statement - the SQL statement to execute
+ *  @param random - 1 to support random access to results (seek any row);
+ *                  0 to support only looping through results in order
+ *                    (async access - faster)
+ *  @return 0 for success or error code
+ */
+APU_DECLARE(int) apr_dbd_select(const apr_dbd_driver_t *driver, apr_pool_t *pool,
+                                apr_dbd_t *handle, apr_dbd_results_t **res,
+                                const char *statement, int random);
+
+/** apr_dbd_num_cols: get the number of columns in a results set
+ *
+ *  @param driver - the driver
+ *  @param res - result set.
+ *  @return number of columns
+ */
+APU_DECLARE(int) apr_dbd_num_cols(const apr_dbd_driver_t *driver,
+                                  apr_dbd_results_t *res);
+
+/** apr_dbd_num_tuples: get the number of rows in a results set
+ *  of a synchronous select
+ *
+ *  @param driver - the driver
+ *  @param res - result set.
+ *  @return number of rows, or -1 if the results are asynchronous
+ */
+APU_DECLARE(int) apr_dbd_num_tuples(const apr_dbd_driver_t *driver,
+                                    apr_dbd_results_t *res);
+
+/** apr_dbd_get_row: get a row from a result set
+ *
+ *  @param driver - the driver
+ *  @param pool - pool to allocate the row
+ *  @param res - result set pointer
+ *  @param row - pointer to row pointer.  May point to NULL on entry
+ *  @param rownum - row number, or -1 for "next row".  Ignored if random
+ *                  access is not supported.
+ *  @return 0 for success, -1 for rownum out of range or data finished
+ */
+APU_DECLARE(int) apr_dbd_get_row(const apr_dbd_driver_t *driver, apr_pool_t *pool,
+                                 apr_dbd_results_t *res, apr_dbd_row_t **row,
+                                 int rownum);
+
+/** apr_dbd_get_entry: get an entry from a row
+ *
+ *  @param driver - the driver
+ *  @param row - row pointer
+ *  @param col - entry number
+ *  @return value from the row, or NULL if col is out of bounds.
+ */
+APU_DECLARE(const char*) apr_dbd_get_entry(const apr_dbd_driver_t *driver,
+                                           apr_dbd_row_t *row, int col);
+
+/** apr_dbd_error: get current error message (if any)
+ *
+ *  @param driver - the driver
+ *  @param handle - the connection
+ *  @param errnum - error code from operation that returned an error
+ *  @return the database current error message, or message for errnum
+ *          (implementation-dependent whether errnum is ignored)
+ */
+APU_DECLARE(const char*) apr_dbd_error(const apr_dbd_driver_t *driver,
+                                       apr_dbd_t *handle, int errnum);
+
+/** apr_dbd_escape: escape a string so it is safe for use in query/select
+ *
+ *  @param driver - the driver
+ *  @param pool - pool to alloc the result from
+ *  @param string - the string to escape
+ *  @param handle - the connection
+ *  @return the escaped, safe string
+ */
+APU_DECLARE(const char*) apr_dbd_escape(const apr_dbd_driver_t *driver,
+                                        apr_pool_t *pool, const char *string,
+                                        apr_dbd_t *handle);
+
+/** apr_dbd_prepare: prepare a statement
+ *
+ *  @param driver - the driver
+ *  @param pool - pool to alloc the result from
+ *  @param handle - the connection
+ *  @param query - the SQL query
+ *  @param label - A label for the prepared statement.
+ *                 use NULL for temporary prepared statements
+ *                 (eg within a Request in httpd)
+ *  @param statement - statement to prepare.  May point to null on entry.
+ *  @return 0 for success or error code
+ *  @remarks To specify parameters of the prepared query, use %s in place of
+ *  database specific parameter syntax (e.g. for PostgreSQL, this would be $1,
+ *  $2, for SQLite3 this would be ? etc.). For instance: "SELECT name FROM
+ *  customers WHERE name=%s" would be a query that this function understands.
+ *  Some drivers may support different data types using printf-like format:
+ *  for example %d (e.g. PostgreSQL) or %f for numeric data.
+ */
+APU_DECLARE(int) apr_dbd_prepare(const apr_dbd_driver_t *driver, apr_pool_t *pool,
+                                 apr_dbd_t *handle, const char *query,
+                                 const char *label,
+                                 apr_dbd_prepared_t **statement);
+
+
+/** apr_dbd_pquery: query using a prepared statement + args
+ *
+ *  @param driver - the driver
+ *  @param pool - working pool
+ *  @param handle - the connection
+ *  @param nrows - number of rows affected.
+ *  @param statement - the prepared statement to execute
+ *  @param nargs - number of args to prepared statement
+ *  @param args - args to prepared statement
+ *  @return 0 for success or error code
+ */
+APU_DECLARE(int) apr_dbd_pquery(const apr_dbd_driver_t *driver, apr_pool_t *pool,
+                                apr_dbd_t *handle, int *nrows,
+                                apr_dbd_prepared_t *statement, int nargs,
+                                const char **args);
+
+/** apr_dbd_pselect: select using a prepared statement + args
+ *
+ *  @param driver - the driver
+ *  @param pool - working pool
+ *  @param handle - the connection
+ *  @param res - pointer to query results.  May point to NULL on entry
+ *  @param statement - the prepared statement to execute
+ *  @param random - Whether to support random-access to results
+ *  @param nargs - number of args to prepared statement
+ *  @param args - args to prepared statement
+ *  @return 0 for success or error code
+ */
+APU_DECLARE(int) apr_dbd_pselect(const apr_dbd_driver_t *driver, apr_pool_t *pool,
+                                 apr_dbd_t *handle, apr_dbd_results_t **res,
+                                 apr_dbd_prepared_t *statement, int random,
+                                 int nargs, const char **args);
+
+/** apr_dbd_pvquery: query using a prepared statement + args
+ *
+ *  @param driver - the driver
+ *  @param pool - working pool
+ *  @param handle - the connection
+ *  @param nrows - number of rows affected.
+ *  @param statement - the prepared statement to execute
+ *  @param ... - varargs list
+ *  @return 0 for success or error code
+ */
+APU_DECLARE(int) apr_dbd_pvquery(const apr_dbd_driver_t *driver, apr_pool_t *pool,
+                                 apr_dbd_t *handle, int *nrows,
+                                 apr_dbd_prepared_t *statement, ...);
+
+/** apr_dbd_pvselect: select using a prepared statement + args
+ *
+ *  @param driver - the driver
+ *  @param pool - working pool
+ *  @param handle - the connection
+ *  @param res - pointer to query results.  May point to NULL on entry
+ *  @param statement - the prepared statement to execute
+ *  @param random - Whether to support random-access to results
+ *  @param ... - varargs list
+ *  @return 0 for success or error code
+ */
+APU_DECLARE(int) apr_dbd_pvselect(const apr_dbd_driver_t *driver, apr_pool_t *pool,
+                                  apr_dbd_t *handle, apr_dbd_results_t **res,
+                                  apr_dbd_prepared_t *statement, int random,
+                                  ...);
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/include/apr_dbm.h b/include/apr_dbm.h
new file mode 100644
index 0000000..9f6e8b4
--- /dev/null
+++ b/include/apr_dbm.h
@@ -0,0 +1,224 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef APR_DBM_H
+#define APR_DBM_H
+
+#include "apu.h"
+#include "apr.h"
+#include "apr_errno.h"
+#include "apr_pools.h"
+#include "apr_file_info.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @file apr_dbm.h
+ * @brief APR-UTIL DBM library
+ */
+/** 
+ * @defgroup APR_Util_DBM DBM routines
+ * @ingroup APR_Util
+ * @{
+ */
+/**
+ * Structure for referencing a dbm
+ */
+typedef struct apr_dbm_t apr_dbm_t;
+
+/**
+ * Structure for referencing the datum record within a dbm
+ */
+typedef struct
+{
+    /** pointer to the 'data' to retrieve/store in the DBM */
+    char *dptr;
+    /** size of the 'data' to retrieve/store in the DBM */
+    apr_size_t dsize;
+} apr_datum_t;
+
+/* modes to open the DB */
+#define APR_DBM_READONLY        1       /**< open for read-only access */
+#define APR_DBM_READWRITE       2       /**< open for read-write access */
+#define APR_DBM_RWCREATE        3       /**< open for r/w, create if needed */
+#define APR_DBM_RWTRUNC         4       /**< open for r/w, truncating an existing
+                                          DB if present */
+/**
+ * Open a dbm file by file name and type of DBM
+ * @param dbm The newly opened database
+ * @param type The type of the DBM (not all may be available at run time)
+ * <pre>
+ *  GDBM for GDBM files
+ *  SDBM for SDBM files
+ *  DB   for berkeley DB files
+ *  NDBM for NDBM files
+ *  default for the default DBM type
+ *  </pre>
+ * @param name The dbm file name to open
+ * @param mode The flag value
+ * <PRE>
+ *           APR_DBM_READONLY   open for read-only access
+ *           APR_DBM_READWRITE  open for read-write access
+ *           APR_DBM_RWCREATE   open for r/w, create if needed
+ *           APR_DBM_RWTRUNC    open for r/w, truncate if already there
+ * </PRE>
+ * @param perm Permissions to apply to if created
+ * @param cntxt The pool to use when creating the dbm
+ * @remark The dbm name may not be a true file name, as many dbm packages
+ * append suffixes for seperate data and index files.
+ */
+
+APU_DECLARE(apr_status_t) apr_dbm_open_ex(apr_dbm_t **dbm, const char* type, 
+                                       const char *name, 
+                                       apr_int32_t mode, apr_fileperms_t perm,
+                                       apr_pool_t *cntxt);
+
+
+/**
+ * Open a dbm file by file name
+ * @param dbm The newly opened database
+ * @param name The dbm file name to open
+ * @param mode The flag value
+ * <PRE>
+ *           APR_DBM_READONLY   open for read-only access
+ *           APR_DBM_READWRITE  open for read-write access
+ *           APR_DBM_RWCREATE   open for r/w, create if needed
+ *           APR_DBM_RWTRUNC    open for r/w, truncate if already there
+ * </PRE>
+ * @param perm Permissions to apply to if created
+ * @param cntxt The pool to use when creating the dbm
+ * @remark The dbm name may not be a true file name, as many dbm packages
+ * append suffixes for seperate data and index files.
+ */
+APU_DECLARE(apr_status_t) apr_dbm_open(apr_dbm_t **dbm, const char *name, 
+                                       apr_int32_t mode, apr_fileperms_t perm,
+                                       apr_pool_t *cntxt);
+
+/**
+ * Close a dbm file previously opened by apr_dbm_open
+ * @param dbm The database to close
+ */
+APU_DECLARE(void) apr_dbm_close(apr_dbm_t *dbm);
+
+/**
+ * Fetch a dbm record value by key
+ * @param dbm The database 
+ * @param key The key datum to find this record
+ * @param pvalue The value datum retrieved for this record
+ */
+APU_DECLARE(apr_status_t) apr_dbm_fetch(apr_dbm_t *dbm, apr_datum_t key,
+                                        apr_datum_t *pvalue);
+/**
+ * Store a dbm record value by key
+ * @param dbm The database 
+ * @param key The key datum to store this record by
+ * @param value The value datum to store in this record
+ */
+APU_DECLARE(apr_status_t) apr_dbm_store(apr_dbm_t *dbm, apr_datum_t key, 
+                                        apr_datum_t value);
+
+/**
+ * Delete a dbm record value by key
+ * @param dbm The database 
+ * @param key The key datum of the record to delete
+ * @remark It is not an error to delete a non-existent record.
+ */
+APU_DECLARE(apr_status_t) apr_dbm_delete(apr_dbm_t *dbm, apr_datum_t key);
+
+/**
+ * Search for a key within the dbm
+ * @param dbm The database 
+ * @param key The datum describing a key to test
+ */
+APU_DECLARE(int) apr_dbm_exists(apr_dbm_t *dbm, apr_datum_t key);
+
+/**
+ * Retrieve the first record key from a dbm
+ * @param dbm The database 
+ * @param pkey The key datum of the first record
+ */
+APU_DECLARE(apr_status_t) apr_dbm_firstkey(apr_dbm_t *dbm, apr_datum_t *pkey);
+
+/**
+ * Retrieve the next record key from a dbm
+ * @param dbm The database 
+ * @param pkey The key datum of the next record
+ */
+APU_DECLARE(apr_status_t) apr_dbm_nextkey(apr_dbm_t *dbm, apr_datum_t *pkey);
+
+/**
+ * Proactively toss any memory associated with the apr_datum_t.
+ * @param dbm The database 
+ * @param data The datum to free.
+ */
+APU_DECLARE(void) apr_dbm_freedatum(apr_dbm_t *dbm, apr_datum_t data);
+
+/**
+ * Report more information when an apr_dbm function fails.
+ * @param dbm The database
+ * @param errcode A DBM-specific value for the error (for logging). If this
+ *                isn't needed, it may be NULL.
+ * @param errbuf Location to store the error text
+ * @param errbufsize The size of the provided buffer
+ * @return The errbuf parameter, for convenience.
+ */
+APU_DECLARE(char *) apr_dbm_geterror(apr_dbm_t *dbm, int *errcode,
+                                     char *errbuf, apr_size_t errbufsize);
+/**
+ * If the specified file/path were passed to apr_dbm_open(), return the
+ * actual file/path names which would be (created and) used. At most, two
+ * files may be used; used2 may be NULL if only one file is used.
+ * @param pool The pool for allocating used1 and used2.
+ * @param type The type of DBM you require info on
+ * @param pathname The path name to generate used-names from.
+ * @param used1 The first pathname used by the apr_dbm implementation.
+ * @param used2 The second pathname used by apr_dbm. If only one file is
+ *              used by the specific implementation, this will be set to NULL.
+ * @return An error if the specified type is invalid.
+ * @remark The dbm file(s) don't need to exist. This function only manipulates
+ *      the pathnames.
+ */
+APU_DECLARE(apr_status_t) apr_dbm_get_usednames_ex(apr_pool_t *pool,
+                                                   const char *type,
+                                                   const char *pathname,
+                                                   const char **used1,
+                                                   const char **used2);
+
+/**
+ * If the specified file/path were passed to apr_dbm_open(), return the
+ * actual file/path names which would be (created and) used. At most, two
+ * files may be used; used2 may be NULL if only one file is used.
+ * @param pool The pool for allocating used1 and used2.
+ * @param pathname The path name to generate used-names from.
+ * @param used1 The first pathname used by the apr_dbm implementation.
+ * @param used2 The second pathname used by apr_dbm. If only one file is
+ *              used by the specific implementation, this will be set to NULL.
+ * @remark The dbm file(s) don't need to exist. This function only manipulates
+ *      the pathnames.
+ */
+APU_DECLARE(void) apr_dbm_get_usednames(apr_pool_t *pool,
+                                        const char *pathname,
+                                        const char **used1,
+                                        const char **used2);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* !APR_DBM_H */
diff --git a/include/apr_hooks.h b/include/apr_hooks.h
new file mode 100644
index 0000000..1a52833
--- /dev/null
+++ b/include/apr_hooks.h
@@ -0,0 +1,256 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef APR_HOOKS_H
+#define APR_HOOKS_H
+
+#include "apu.h"
+/* For apr_array_header_t */
+#include "apr_tables.h"
+
+/**
+ * @file apr_hooks.h
+ * @brief Apache hook functions
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/**
+ * @defgroup APR_Util_Hook Hook Functions
+ * @ingroup APR_Util
+ * @{
+ */
+/** macro to return the prototype of the hook function */    
+#define APR_IMPLEMENT_HOOK_GET_PROTO(ns,link,name) \
+link##_DECLARE(apr_array_header_t *) ns##_hook_get_##name(void)
+
+/** macro to declare the hook correctly */    
+#define APR_DECLARE_EXTERNAL_HOOK(ns,link,ret,name,args) \
+typedef ret ns##_HOOK_##name##_t args; \
+link##_DECLARE(void) ns##_hook_##name(ns##_HOOK_##name##_t *pf, \
+                                      const char * const *aszPre, \
+                                      const char * const *aszSucc, int nOrder); \
+link##_DECLARE(ret) ns##_run_##name args; \
+APR_IMPLEMENT_HOOK_GET_PROTO(ns,link,name); \
+typedef struct ns##_LINK_##name##_t \
+    { \
+    ns##_HOOK_##name##_t *pFunc; \
+    const char *szName; \
+    const char * const *aszPredecessors; \
+    const char * const *aszSuccessors; \
+    int nOrder; \
+    } ns##_LINK_##name##_t;
+
+/** macro to declare the hook structure */    
+#define APR_HOOK_STRUCT(members) \
+static struct { members } _hooks;
+
+/** macro to link the hook structure */
+#define APR_HOOK_LINK(name) \
+    apr_array_header_t *link_##name;
+
+/** macro to implement the hook */
+#define APR_IMPLEMENT_EXTERNAL_HOOK_BASE(ns,link,name) \
+link##_DECLARE(void) ns##_hook_##name(ns##_HOOK_##name##_t *pf,const char * const *aszPre, \
+                                      const char * const *aszSucc,int nOrder) \
+    { \
+    ns##_LINK_##name##_t *pHook; \
+    if(!_hooks.link_##name) \
+	{ \
+	_hooks.link_##name=apr_array_make(apr_hook_global_pool,1,sizeof(ns##_LINK_##name##_t)); \
+	apr_hook_sort_register(#name,&_hooks.link_##name); \
+	} \
+    pHook=apr_array_push(_hooks.link_##name); \
+    pHook->pFunc=pf; \
+    pHook->aszPredecessors=aszPre; \
+    pHook->aszSuccessors=aszSucc; \
+    pHook->nOrder=nOrder; \
+    pHook->szName=apr_hook_debug_current; \
+    if(apr_hook_debug_enabled) \
+	apr_hook_debug_show(#name,aszPre,aszSucc); \
+    } \
+    APR_IMPLEMENT_HOOK_GET_PROTO(ns,link,name) \
+    { \
+        return _hooks.link_##name; \
+    }
+
+/**
+ * Implement a hook that has no return code, and therefore runs all of the
+ * registered functions
+ * @param ns The namespace prefix of the hook functions
+ * @param link The linkage declaration prefix of the hook
+ * @param name The name of the hook
+ * @param args_decl The declaration of the arguments for the hook
+ * @param args_use The names for the arguments for the hook
+ * @note The link prefix FOO corresponds to FOO_DECLARE() macros, which
+ * provide export linkage from the module that IMPLEMENTs the hook, and
+ * import linkage from external modules that link to the hook's module.
+ */
+#define APR_IMPLEMENT_EXTERNAL_HOOK_VOID(ns,link,name,args_decl,args_use) \
+APR_IMPLEMENT_EXTERNAL_HOOK_BASE(ns,link,name) \
+link##_DECLARE(void) ns##_run_##name args_decl \
+    { \
+    ns##_LINK_##name##_t *pHook; \
+    int n; \
+\
+    if(!_hooks.link_##name) \
+	return; \
+\
+    pHook=(ns##_LINK_##name##_t *)_hooks.link_##name->elts; \
+    for(n=0 ; n < _hooks.link_##name->nelts ; ++n) \
+	pHook[n].pFunc args_use; \
+    }
+
+/* FIXME: note that this returns ok when nothing is run. I suspect it should
+   really return decline, but that breaks Apache currently - Ben
+*/
+/**
+ * Implement a hook that runs until one of the functions returns something
+ * other than OK or DECLINE
+ * @param ns The namespace prefix of the hook functions
+ * @param link The linkage declaration prefix of the hook
+ * @param ret Type to return
+ * @param name The name of the hook
+ * @param args_decl The declaration of the arguments for the hook
+ * @param args_use The names for the arguments for the hook
+ * @param ok Success value
+ * @param decline Decline value
+ * @note The link prefix FOO corresponds to FOO_DECLARE() macros, which
+ * provide export linkage from the module that IMPLEMENTs the hook, and
+ * import linkage from external modules that link to the hook's module.
+ */
+#define APR_IMPLEMENT_EXTERNAL_HOOK_RUN_ALL(ns,link,ret,name,args_decl,args_use,ok,decline) \
+APR_IMPLEMENT_EXTERNAL_HOOK_BASE(ns,link,name) \
+link##_DECLARE(ret) ns##_run_##name args_decl \
+    { \
+    ns##_LINK_##name##_t *pHook; \
+    int n; \
+    ret rv; \
+\
+    if(!_hooks.link_##name) \
+	return ok; \
+\
+    pHook=(ns##_LINK_##name##_t *)_hooks.link_##name->elts; \
+    for(n=0 ; n < _hooks.link_##name->nelts ; ++n) \
+	{ \
+	rv=pHook[n].pFunc args_use; \
+\
+	if(rv != ok && rv != decline) \
+	    return rv; \
+	} \
+    return ok; \
+    }
+
+
+/**
+ * Implement a hook that runs until the first function returns something
+ * other than the value of decline
+ * @param ns The namespace prefix of the hook functions
+ * @param link The linkage declaration prefix of the hook
+ * @param name The name of the hook
+ * @param ret Type to return
+ * @param args_decl The declaration of the arguments for the hook
+ * @param args_use The names for the arguments for the hook
+ * @param decline Decline value
+ * @note The link prefix FOO corresponds to FOO_DECLARE() macros, which
+ * provide export linkage from the module that IMPLEMENTs the hook, and
+ * import linkage from external modules that link to the hook's module.
+ */
+#define APR_IMPLEMENT_EXTERNAL_HOOK_RUN_FIRST(ns,link,ret,name,args_decl,args_use,decline) \
+APR_IMPLEMENT_EXTERNAL_HOOK_BASE(ns,link,name) \
+link##_DECLARE(ret) ns##_run_##name args_decl \
+    { \
+    ns##_LINK_##name##_t *pHook; \
+    int n; \
+    ret rv; \
+\
+    if(!_hooks.link_##name) \
+	return decline; \
+\
+    pHook=(ns##_LINK_##name##_t *)_hooks.link_##name->elts; \
+    for(n=0 ; n < _hooks.link_##name->nelts ; ++n) \
+	{ \
+	rv=pHook[n].pFunc args_use; \
+\
+	if(rv != decline) \
+	    return rv; \
+	} \
+    return decline; \
+    }
+
+    /* Hook orderings */
+/** run this hook first, before ANYTHING */
+#define APR_HOOK_REALLY_FIRST	(-10)
+/** run this hook first */
+#define APR_HOOK_FIRST		0
+/** run this hook somewhere */
+#define APR_HOOK_MIDDLE		10
+/** run this hook after every other hook which is defined*/
+#define APR_HOOK_LAST		20
+/** run this hook last, after EVERYTHING */
+#define APR_HOOK_REALLY_LAST	30
+
+/**
+ * The global pool used to allocate any memory needed by the hooks.
+ */ 
+APU_DECLARE_DATA extern apr_pool_t *apr_hook_global_pool;
+
+/**
+ * A global variable to determine if debugging information about the
+ * hooks functions should be printed
+ */ 
+APU_DECLARE_DATA extern int apr_hook_debug_enabled;
+
+/**
+ * The name of the module that is currently registering a function
+ */ 
+APU_DECLARE_DATA extern const char *apr_hook_debug_current;
+
+/**
+ * Register a hook function to be sorted
+ * @param szHookName The name of the Hook the function is registered for
+ * @param aHooks The array which stores all of the functions for this hook
+ */
+APU_DECLARE(void) apr_hook_sort_register(const char *szHookName, 
+                                        apr_array_header_t **aHooks);
+/**
+ * Sort all of the registerd functions for a given hook
+ */
+APU_DECLARE(void) apr_hook_sort_all(void);
+
+/**
+ * Print all of the information about the current hook.  This is used for
+ * debugging purposes.
+ * @param szName The name of the hook
+ * @param aszPre All of the functions in the predecessor array
+ * @param aszSucc All of the functions in the successor array
+ */
+APU_DECLARE(void) apr_hook_debug_show(const char *szName,
+                                      const char * const *aszPre,
+                                      const char * const *aszSucc);
+
+/**
+ * Remove all currently registered functions.
+ */
+APU_DECLARE(void) apr_hook_deregister_all(void);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* APR_HOOKS_H */
diff --git a/include/apr_ldap.h b/include/apr_ldap.h
new file mode 100644
index 0000000..4e396a9
--- /dev/null
+++ b/include/apr_ldap.h
@@ -0,0 +1,131 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * apr_ldap.h is generated from apr_ldap.h.in by configure -- do not edit apr_ldap.h
+ */
+/**
+ * @file apr_ldap.h
+ * @brief  APR-UTIL LDAP 
+ */
+#ifndef APU_LDAP_H
+#define APU_LDAP_H
+
+/**
+ * @defgroup APR_Util_LDAP LDAP
+ * @ingroup APR_Util
+ * @{
+ */
+
+/* this will be defined if LDAP support was compiled into apr-util */
+#define APR_HAS_LDAP		    0
+
+/* identify the LDAP toolkit used */
+#define APR_HAS_NETSCAPE_LDAPSDK    0
+#define APR_HAS_SOLARIS_LDAPSDK     0
+#define APR_HAS_NOVELL_LDAPSDK      0
+#define APR_HAS_MOZILLA_LDAPSDK     0
+#define APR_HAS_OPENLDAP_LDAPSDK    0
+#define APR_HAS_MICROSOFT_LDAPSDK   1
+#define APR_HAS_OTHER_LDAPSDK       0
+
+
+/*
+ * Handle the case when LDAP is enabled
+ */
+#if APR_HAS_LDAP
+
+/*
+ * The following #defines are DEPRECATED and should not be used for
+ * anything. They remain to maintain binary compatibility.
+ * The original code defined the OPENLDAP SDK as present regardless
+ * of what really was there, which was way bogus. In addition, the
+ * apr_ldap_url_parse*() functions have been rewritten specifically for
+ * APR, so the APR_HAS_LDAP_URL_PARSE macro is forced to zero.
+ */
+#define APR_HAS_LDAP_SSL 1
+#define APR_HAS_LDAP_URL_PARSE 0
+
+
+/*
+ * Include the standard LDAP header files.
+ */
+
+#include <winldap.h>
+
+
+/*
+ * Detected standard functions
+ */
+#define APR_HAS_LDAPSSL_CLIENT_INIT 0
+#define APR_HAS_LDAPSSL_CLIENT_DEINIT 0
+#define APR_HAS_LDAPSSL_ADD_TRUSTED_CERT 0
+#define APR_HAS_LDAP_START_TLS_S 0
+#define APR_HAS_LDAP_SSLINIT 1
+#define APR_HAS_LDAPSSL_INIT 0
+#define APR_HAS_LDAPSSL_INSTALL_ROUTINES 0
+
+
+/*
+ * Make sure the secure LDAP port is defined
+ */
+#ifndef LDAPS_PORT
+#define LDAPS_PORT 636  /* ldaps:/// default LDAP over TLS port */
+#endif
+
+
+/*
+ * For ldap function calls that input a size limit on the number of returned elements
+ * Some SDKs do not have the define for LDAP_DEFAULT_LIMIT (-1) or LDAP_NO_LIMIT (0)
+ */
+#define APR_LDAP_SIZELIMIT LDAP_NO_LIMIT
+
+
+/* Note: Macros defining const casting has been removed in APR v1.0,
+ * pending real support for LDAP v2.0 toolkits.
+ *
+ * In the mean time, please use an LDAP v3.0 toolkit.
+ */
+#if LDAP_VERSION_MAX <= 2
+#error Support for LDAP v2.0 toolkits has been removed from apr-util. Please use an LDAP v3.0 toolkit.
+#endif 
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/**
+ * This structure allows the C LDAP API error codes to be returned
+ * along with plain text error messages that explain to us mere mortals
+ * what really happened.
+ */
+typedef struct apr_ldap_err_t {
+    const char *reason;
+    const char *msg;
+    int rc;
+} apr_ldap_err_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#include "apr_ldap_url.h"
+#include "apr_ldap_init.h"
+#include "apr_ldap_option.h"
+
+/** @} */
+#endif /* APR_HAS_LDAP */
+#endif /* APU_LDAP_H */
diff --git a/include/apr_ldap.h.in b/include/apr_ldap.h.in
new file mode 100644
index 0000000..d66f1fd
--- /dev/null
+++ b/include/apr_ldap.h.in
@@ -0,0 +1,155 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * apr_ldap.h is generated from apr_ldap.h.in by configure -- do not edit apr_ldap.h
+ */
+/**
+ * @file apr_ldap.h
+ * @brief  APR-UTIL LDAP 
+ */
+#ifndef APU_LDAP_H
+#define APU_LDAP_H
+
+/**
+ * @defgroup APR_Util_LDAP LDAP
+ * @ingroup APR_Util
+ * @{
+ */
+
+/* this will be defined if LDAP support was compiled into apr-util */
+#define APR_HAS_LDAP		  @apu_has_ldap@
+
+/* identify the LDAP toolkit used */
+#define APR_HAS_NETSCAPE_LDAPSDK  @apu_has_ldap_netscape@
+#define APR_HAS_SOLARIS_LDAPSDK   @apu_has_ldap_solaris@
+#define APR_HAS_NOVELL_LDAPSDK    @apu_has_ldap_novell@
+#define APR_HAS_MOZILLA_LDAPSDK   @apu_has_ldap_mozilla@
+#define APR_HAS_OPENLDAP_LDAPSDK  @apu_has_ldap_openldap@
+#define APR_HAS_MICROSOFT_LDAPSDK @apu_has_ldap_microsoft@
+#define APR_HAS_ZOS_LDAPSDK       @apu_has_ldap_zos@
+#define APR_HAS_OTHER_LDAPSDK     @apu_has_ldap_other@
+
+
+/*
+ * Handle the case when LDAP is enabled
+ */
+#if APR_HAS_LDAP
+
+/*
+ * The following #defines are DEPRECATED and should not be used for
+ * anything. They remain to maintain binary compatibility.
+ * The original code defined the OPENLDAP SDK as present regardless
+ * of what really was there, which was way bogus. In addition, the
+ * apr_ldap_url_parse*() functions have been rewritten specifically for
+ * APR, so the APR_HAS_LDAP_URL_PARSE macro is forced to zero.
+ */
+#define APR_HAS_LDAP_SSL 1
+#define APR_HAS_LDAP_URL_PARSE      0
+
+#if APR_HAS_OPENLDAP_LDAPSDK && !defined(LDAP_DEPRECATED) 
+/* Ensure that the "deprecated" interfaces are still exposed
+ * with OpenLDAP >= 2.3; these were exposed by default in earlier
+ * releases. */
+#define LDAP_DEPRECATED 1
+#endif
+
+/*
+ * Include the standard LDAP header files.
+ */
+
+@lber_h@
+@ldap_h@
+@ldap_ssl_h@
+
+
+/*
+ * Detected standard functions
+ */
+#define APR_HAS_LDAPSSL_CLIENT_INIT @apu_has_ldapssl_client_init@
+#define APR_HAS_LDAPSSL_CLIENT_DEINIT @apu_has_ldapssl_client_deinit@
+#define APR_HAS_LDAPSSL_ADD_TRUSTED_CERT @apu_has_ldapssl_add_trusted_cert@
+#define APR_HAS_LDAP_START_TLS_S @apu_has_ldap_start_tls_s@
+#define APR_HAS_LDAP_SSLINIT @apu_has_ldap_sslinit@
+#define APR_HAS_LDAPSSL_INIT @apu_has_ldapssl_init@
+#define APR_HAS_LDAPSSL_INSTALL_ROUTINES @apu_has_ldapssl_install_routines@
+
+/*
+ * Make sure the secure LDAP port is defined
+ */
+#ifndef LDAPS_PORT
+#define LDAPS_PORT 636  /* ldaps:/// default LDAP over TLS port */
+#endif
+
+/*
+ * For ldap function calls that input a size limit on the number of returned elements
+ * Some SDKs do not have the define for LDAP_DEFAULT_LIMIT (-1) or LDAP_NO_LIMIT (0)
+ */
+#if APR_HAS_ZOS_LDAPSDK
+#define APR_LDAP_SIZELIMIT LDAP_NO_LIMIT
+#else
+#ifdef LDAP_DEFAULT_LIMIT
+#define APR_LDAP_SIZELIMIT LDAP_DEFAULT_LIMIT
+#else
+#define APR_LDAP_SIZELIMIT -1 /* equivalent to LDAP_DEFAULT_LIMIT */
+#endif
+#endif
+
+/*
+ * z/OS is missing some defines
+ */
+#ifndef LDAP_VERSION_MAX
+#define LDAP_VERSION_MAX  LDAP_VERSION
+#endif
+#if APR_HAS_ZOS_LDAPSDK
+#define LDAP_VENDOR_NAME "IBM z/OS"
+#endif
+
+/* Note: Macros defining const casting has been removed in APR v1.0,
+ * pending real support for LDAP v2.0 toolkits.
+ *
+ * In the mean time, please use an LDAP v3.0 toolkit.
+ */
+#if LDAP_VERSION_MAX <= 2
+#error Support for LDAP v2.0 toolkits has been removed from apr-util. Please use an LDAP v3.0 toolkit.
+#endif 
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/**
+ * This structure allows the C LDAP API error codes to be returned
+ * along with plain text error messages that explain to us mere mortals
+ * what really happened.
+ */
+typedef struct apr_ldap_err_t {
+    const char *reason;
+    const char *msg;
+    int rc;
+} apr_ldap_err_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#include "apr_ldap_url.h"
+#include "apr_ldap_init.h"
+#include "apr_ldap_option.h"
+
+/** @} */
+#endif /* APR_HAS_LDAP */
+#endif /* APU_LDAP_H */
diff --git a/include/apr_ldap.hnw b/include/apr_ldap.hnw
new file mode 100644
index 0000000..105dfff
--- /dev/null
+++ b/include/apr_ldap.hnw
@@ -0,0 +1,133 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * apr_ldap.h is generated from apr_ldap.h.in by configure -- do not edit apr_ldap.h
+ */
+/**
+ * @file apr_ldap.h
+ * @brief  APR-UTIL LDAP 
+ */
+#ifndef APU_LDAP_H
+#define APU_LDAP_H
+
+/**
+ * @defgroup APR_Util_LDAP LDAP
+ * @ingroup APR_Util
+ * @{
+ */
+
+/* this will be defined if LDAP support was compiled into apr-util */
+#define APR_HAS_LDAP                1 
+
+/* identify the LDAP toolkit used */
+#define APR_HAS_NETSCAPE_LDAPSDK    0
+#define APR_HAS_SOLARIS_LDAPSDK     0
+#define APR_HAS_NOVELL_LDAPSDK      1
+#define APR_HAS_MOZILLA_LDAPSDK     0
+#define APR_HAS_OPENLDAP_LDAPSDK    0
+#define APR_HAS_MICROSOFT_LDAPSDK   0
+#define APR_HAS_OTHER_LDAPSDK       0
+
+
+/*
+ * Handle the case when LDAP is enabled
+ */
+#if APR_HAS_LDAP
+
+/*
+ * The following #defines are DEPRECATED and should not be used for
+ * anything. They remain to maintain binary compatibility.
+ * The original code defined the OPENLDAP SDK as present regardless
+ * of what really was there, which was way bogus. In addition, the
+ * apr_ldap_url_parse*() functions have been rewritten specifically for
+ * APR, so the APR_HAS_LDAP_URL_PARSE macro is forced to zero.
+ */
+#define APR_HAS_LDAP_SSL            1
+#define APR_HAS_LDAP_URL_PARSE      0
+
+
+/*
+ * Include the standard LDAP header files.
+ */
+
+#ifdef GENEXPORTS
+#define LDAP_VERSION_MAX 3
+#else
+#include <lber.h>
+#include <ldap.h>
+#if APR_HAS_LDAP_SSL 
+#include <ldap_ssl.h>
+#endif
+#endif
+
+
+/*
+ * Detected standard functions
+ */
+#define APR_HAS_LDAPSSL_CLIENT_INIT 1
+#define APR_HAS_LDAPSSL_CLIENT_DEINIT 1
+#define APR_HAS_LDAPSSL_ADD_TRUSTED_CERT 1
+#define APR_HAS_LDAP_START_TLS_S 0
+#define APR_HAS_LDAP_SSLINIT 0
+#define APR_HAS_LDAPSSL_INIT 1
+#define APR_HAS_LDAPSSL_INSTALL_ROUTINES 0
+
+
+/*
+ * Make sure the secure LDAP port is defined
+ */
+#ifndef LDAPS_PORT
+#define LDAPS_PORT 636  /* ldaps:/// default LDAP over TLS port */
+#endif
+
+
+/* Note: Macros defining const casting has been removed in APR v1.0,
+ * pending real support for LDAP v2.0 toolkits.
+ *
+ * In the mean time, please use an LDAP v3.0 toolkit.
+ */
+#if LDAP_VERSION_MAX <= 2
+#error Support for LDAP v2.0 toolkits has been removed from apr-util. Please use an LDAP v3.0 toolkit.
+#endif 
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/**
+ * This structure allows the C LDAP API error codes to be returned
+ * along with plain text error messages that explain to us mere mortals
+ * what really happened.
+ */
+typedef struct apr_ldap_err_t {
+    const char *reason;
+    const char *msg;
+    int rc;
+} apr_ldap_err_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#include "apr_ldap_url.h"
+#include "apr_ldap_init.h"
+#include "apr_ldap_option.h"
+
+/** @} */
+#endif /* APR_HAS_LDAP */
+#endif /* APU_LDAP_H */
+
diff --git a/include/apr_ldap.hw b/include/apr_ldap.hw
new file mode 100644
index 0000000..d5ae400
--- /dev/null
+++ b/include/apr_ldap.hw
@@ -0,0 +1,131 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more

+ * contributor license agreements.  See the NOTICE file distributed with

+ * this work for additional information regarding copyright ownership.

+ * The ASF licenses this file to You under the Apache License, Version 2.0

+ * (the "License"); you may not use this file except in compliance with

+ * the License.  You may obtain a copy of the License at

+ *

+ *     http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing, software

+ * distributed under the License is distributed on an "AS IS" BASIS,

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+ * See the License for the specific language governing permissions and

+ * limitations under the License.

+ */

+

+/*

+ * apr_ldap.h is generated from apr_ldap.h.in by configure -- do not edit apr_ldap.h

+ */

+/**

+ * @file apr_ldap.h

+ * @brief  APR-UTIL LDAP 

+ */

+#ifndef APU_LDAP_H

+#define APU_LDAP_H

+

+/**

+ * @defgroup APR_Util_LDAP LDAP

+ * @ingroup APR_Util

+ * @{

+ */

+

+/* this will be defined if LDAP support was compiled into apr-util */

+#define APR_HAS_LDAP		    0

+

+/* identify the LDAP toolkit used */

+#define APR_HAS_NETSCAPE_LDAPSDK    0

+#define APR_HAS_SOLARIS_LDAPSDK     0

+#define APR_HAS_NOVELL_LDAPSDK      0

+#define APR_HAS_MOZILLA_LDAPSDK     0

+#define APR_HAS_OPENLDAP_LDAPSDK    0

+#define APR_HAS_MICROSOFT_LDAPSDK   1

+#define APR_HAS_OTHER_LDAPSDK       0

+

+

+/*

+ * Handle the case when LDAP is enabled

+ */

+#if APR_HAS_LDAP

+

+/*

+ * The following #defines are DEPRECATED and should not be used for

+ * anything. They remain to maintain binary compatibility.

+ * The original code defined the OPENLDAP SDK as present regardless

+ * of what really was there, which was way bogus. In addition, the

+ * apr_ldap_url_parse*() functions have been rewritten specifically for

+ * APR, so the APR_HAS_LDAP_URL_PARSE macro is forced to zero.

+ */

+#define APR_HAS_LDAP_SSL 1

+#define APR_HAS_LDAP_URL_PARSE 0

+

+

+/*

+ * Include the standard LDAP header files.

+ */

+

+#include <winldap.h>

+

+

+/*

+ * Detected standard functions

+ */

+#define APR_HAS_LDAPSSL_CLIENT_INIT 0

+#define APR_HAS_LDAPSSL_CLIENT_DEINIT 0

+#define APR_HAS_LDAPSSL_ADD_TRUSTED_CERT 0

+#define APR_HAS_LDAP_START_TLS_S 0

+#define APR_HAS_LDAP_SSLINIT 1

+#define APR_HAS_LDAPSSL_INIT 0

+#define APR_HAS_LDAPSSL_INSTALL_ROUTINES 0

+

+

+/*

+ * Make sure the secure LDAP port is defined

+ */

+#ifndef LDAPS_PORT

+#define LDAPS_PORT 636  /* ldaps:/// default LDAP over TLS port */

+#endif

+

+

+/*

+ * For ldap function calls that input a size limit on the number of returned elements

+ * Some SDKs do not have the define for LDAP_DEFAULT_LIMIT (-1) or LDAP_NO_LIMIT (0)

+ */

+#define APR_LDAP_SIZELIMIT LDAP_NO_LIMIT

+

+

+/* Note: Macros defining const casting has been removed in APR v1.0,

+ * pending real support for LDAP v2.0 toolkits.

+ *

+ * In the mean time, please use an LDAP v3.0 toolkit.

+ */

+#if LDAP_VERSION_MAX <= 2

+#error Support for LDAP v2.0 toolkits has been removed from apr-util. Please use an LDAP v3.0 toolkit.

+#endif 

+

+#ifdef __cplusplus

+extern "C" {

+#endif /* __cplusplus */

+

+/**

+ * This structure allows the C LDAP API error codes to be returned

+ * along with plain text error messages that explain to us mere mortals

+ * what really happened.

+ */

+typedef struct apr_ldap_err_t {

+    const char *reason;

+    const char *msg;

+    int rc;

+} apr_ldap_err_t;

+

+#ifdef __cplusplus

+}

+#endif

+

+#include "apr_ldap_url.h"

+#include "apr_ldap_init.h"

+#include "apr_ldap_option.h"

+

+/** @} */

+#endif /* APR_HAS_LDAP */

+#endif /* APU_LDAP_H */

diff --git a/include/apr_ldap_init.h b/include/apr_ldap_init.h
new file mode 100644
index 0000000..2120262
--- /dev/null
+++ b/include/apr_ldap_init.h
@@ -0,0 +1,137 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @file apr_ldap_init.h
+ * @brief  APR-UTIL LDAP ldap_init() functions
+ */
+#ifndef APR_LDAP_INIT_H
+#define APR_LDAP_INIT_H
+
+/**
+ * @defgroup APR_Util_LDAP LDAP
+ * @ingroup APR_Util
+ * @{
+ */
+
+#include "apr_ldap.h"
+
+#if APR_HAS_LDAP
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/**
+ * APR LDAP SSL Initialise function
+ *
+ * This function initialises SSL on the underlying LDAP toolkit
+ * if this is necessary.
+ *
+ * If a CA certificate is provided, this is set, however the setting
+ * of certificates via this method has been deprecated and will be removed in
+ * APR v2.0.
+ *
+ * The apr_ldap_set_option() function with the APR_LDAP_OPT_TLS_CERT option
+ * should be used instead to set certificates.
+ *
+ * If SSL support is not available on this platform, or a problem
+ * was encountered while trying to set the certificate, the function
+ * will return APR_EGENERAL. Further LDAP specific error information
+ * can be found in result_err.
+ * @param pool The pool to use
+ * @param cert_auth_file The name of the certificate to use, can be NULL
+ * @param cert_file_type The type of certificate specified. See the
+ * apr_ldap_set_option() APR_LDAP_OPT_TLS_CERT option for details.
+ * @param result_err The returned result
+ */
+APU_DECLARE(int) apr_ldap_ssl_init(apr_pool_t *pool,
+                                   const char *cert_auth_file,
+                                   int cert_file_type,
+                                   apr_ldap_err_t **result_err);
+
+/**
+ * APR LDAP SSL De-Initialise function
+ *
+ * This function tears down any SSL certificate setup previously
+ * set using apr_ldap_ssl_init(). It should be called to clean
+ * up if a graceful restart of a service is attempted.
+ * @todo currently we do not check whether apr_ldap_ssl_init()
+ * has been called first - we probably should.
+ */
+APU_DECLARE(int) apr_ldap_ssl_deinit(void);
+
+/**
+ * APR LDAP initialise function
+ *
+ * This function is responsible for initialising an LDAP
+ * connection in a toolkit independant way. It does the
+ * job of ldap_init() from the C api.
+ *
+ * It handles both the SSL and non-SSL case, and attempts
+ * to hide the complexity setup from the user. This function
+ * assumes that any certificate setup necessary has already
+ * been done.
+ *
+ * If SSL or STARTTLS needs to be enabled, and the underlying
+ * toolkit supports it, the following values are accepted for
+ * secure:
+ *
+ * APR_LDAP_NONE: No encryption
+ * APR_LDAP_SSL: SSL encryption (ldaps://)
+ * APR_LDAP_STARTTLS: Force STARTTLS on ldap://
+ * @remark The Novell toolkit is only able to set the SSL mode via this
+ * function. To work around this limitation, set the SSL mode here if no
+ * per connection client certificates are present, otherwise set secure
+ * APR_LDAP_NONE here, then set the per connection client certificates,
+ * followed by setting the SSL mode via apr_ldap_set_option(). As Novell
+ * does not support per connection client certificates, this problem is
+ * worked around while still being compatible with other LDAP toolkits.
+ * @param pool The pool to use
+ * @param ldap The LDAP handle
+ * @param hostname The name of the host to connect to. This can be either a
+ * DNS name, or an IP address.
+ * @param portno The port to connect to
+ * @param secure The security mode to set
+ * @param result_err The returned result
+ */
+APU_DECLARE(int) apr_ldap_init(apr_pool_t *pool,
+                               LDAP **ldap,
+                               const char *hostname,
+                               int portno,
+                               int secure,
+                               apr_ldap_err_t **result_err);
+
+/**
+ * APR LDAP info function
+ *
+ * This function returns a string describing the LDAP toolkit
+ * currently in use. The string is placed inside result_err->reason.
+ * @param pool The pool to use
+ * @param result_err The returned result
+ */
+APU_DECLARE(int) apr_ldap_info(apr_pool_t *pool,
+                               apr_ldap_err_t **result_err);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* APR_HAS_LDAP */
+
+/** @} */
+
+#endif /* APR_LDAP_URL_H */
diff --git a/include/apr_ldap_mac.h b/include/apr_ldap_mac.h
new file mode 100644
index 0000000..ce4497c
--- /dev/null
+++ b/include/apr_ldap_mac.h
@@ -0,0 +1,155 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * apr_ldap.h is generated from apr_ldap.h.in by configure -- do not edit apr_ldap.h
+ */
+/**
+ * @file apr_ldap.h
+ * @brief  APR-UTIL LDAP 
+ */
+#ifndef APU_LDAP_H
+#define APU_LDAP_H
+
+/**
+ * @defgroup APR_Util_LDAP LDAP
+ * @ingroup APR_Util
+ * @{
+ */
+
+/* this will be defined if LDAP support was compiled into apr-util */
+#define APR_HAS_LDAP		  0
+
+/* identify the LDAP toolkit used */
+#define APR_HAS_NETSCAPE_LDAPSDK  0
+#define APR_HAS_SOLARIS_LDAPSDK   0
+#define APR_HAS_NOVELL_LDAPSDK    0
+#define APR_HAS_MOZILLA_LDAPSDK   0
+#define APR_HAS_OPENLDAP_LDAPSDK  0
+#define APR_HAS_MICROSOFT_LDAPSDK 0
+#define APR_HAS_ZOS_LDAPSDK       0
+#define APR_HAS_OTHER_LDAPSDK     0
+
+
+/*
+ * Handle the case when LDAP is enabled
+ */
+#if APR_HAS_LDAP
+
+/*
+ * The following #defines are DEPRECATED and should not be used for
+ * anything. They remain to maintain binary compatibility.
+ * The original code defined the OPENLDAP SDK as present regardless
+ * of what really was there, which was way bogus. In addition, the
+ * apr_ldap_url_parse*() functions have been rewritten specifically for
+ * APR, so the APR_HAS_LDAP_URL_PARSE macro is forced to zero.
+ */
+#define APR_HAS_LDAP_SSL 1
+#define APR_HAS_LDAP_URL_PARSE      0
+
+#if APR_HAS_OPENLDAP_LDAPSDK && !defined(LDAP_DEPRECATED) 
+/* Ensure that the "deprecated" interfaces are still exposed
+ * with OpenLDAP >= 2.3; these were exposed by default in earlier
+ * releases. */
+#define LDAP_DEPRECATED 1
+#endif
+
+/*
+ * Include the standard LDAP header files.
+ */
+
+
+
+
+
+
+/*
+ * Detected standard functions
+ */
+#define APR_HAS_LDAPSSL_CLIENT_INIT 0
+#define APR_HAS_LDAPSSL_CLIENT_DEINIT 0
+#define APR_HAS_LDAPSSL_ADD_TRUSTED_CERT 0
+#define APR_HAS_LDAP_START_TLS_S 0
+#define APR_HAS_LDAP_SSLINIT 0
+#define APR_HAS_LDAPSSL_INIT 0
+#define APR_HAS_LDAPSSL_INSTALL_ROUTINES 0
+
+/*
+ * Make sure the secure LDAP port is defined
+ */
+#ifndef LDAPS_PORT
+#define LDAPS_PORT 636  /* ldaps:/// default LDAP over TLS port */
+#endif
+
+/*
+ * For ldap function calls that input a size limit on the number of returned elements
+ * Some SDKs do not have the define for LDAP_DEFAULT_LIMIT (-1) or LDAP_NO_LIMIT (0)
+ */
+#if APR_HAS_ZOS_LDAPSDK
+#define APR_LDAP_SIZELIMIT LDAP_NO_LIMIT
+#else
+#ifdef LDAP_DEFAULT_LIMIT
+#define APR_LDAP_SIZELIMIT LDAP_DEFAULT_LIMIT
+#else
+#define APR_LDAP_SIZELIMIT -1 /* equivalent to LDAP_DEFAULT_LIMIT */
+#endif
+#endif
+
+/*
+ * z/OS is missing some defines
+ */
+#ifndef LDAP_VERSION_MAX
+#define LDAP_VERSION_MAX  LDAP_VERSION
+#endif
+#if APR_HAS_ZOS_LDAPSDK
+#define LDAP_VENDOR_NAME "IBM z/OS"
+#endif
+
+/* Note: Macros defining const casting has been removed in APR v1.0,
+ * pending real support for LDAP v2.0 toolkits.
+ *
+ * In the mean time, please use an LDAP v3.0 toolkit.
+ */
+#if LDAP_VERSION_MAX <= 2
+#error Support for LDAP v2.0 toolkits has been removed from apr-util. Please use an LDAP v3.0 toolkit.
+#endif 
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/**
+ * This structure allows the C LDAP API error codes to be returned
+ * along with plain text error messages that explain to us mere mortals
+ * what really happened.
+ */
+typedef struct apr_ldap_err_t {
+    const char *reason;
+    const char *msg;
+    int rc;
+} apr_ldap_err_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#include "apr_ldap_url.h"
+#include "apr_ldap_init.h"
+#include "apr_ldap_option.h"
+
+/** @} */
+#endif /* APR_HAS_LDAP */
+#endif /* APU_LDAP_H */
diff --git a/include/apr_ldap_option.h b/include/apr_ldap_option.h
new file mode 100644
index 0000000..3204132
--- /dev/null
+++ b/include/apr_ldap_option.h
@@ -0,0 +1,240 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @file apr_ldap_option.h
+ * @brief  APR-UTIL LDAP ldap_*_option() functions
+ */
+#ifndef APR_LDAP_OPTION_H
+#define APR_LDAP_OPTION_H
+
+/**
+ * @defgroup APR_Util_LDAP LDAP
+ * @ingroup APR_Util
+ * @{
+ */
+
+#include "apr_ldap.h"
+
+#if APR_HAS_LDAP
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/*
+ * The following defines handle the different TLS certificate
+ * options available. If these options are missing, APR will try and
+ * emulate support for this using the deprecated ldap_start_tls_s()
+ * function.
+ */
+/**
+ * Set SSL mode to one of APR_LDAP_NONE, APR_LDAP_SSL, APR_LDAP_STARTTLS
+ * or APR_LDAP_STOPTLS.
+ */
+#define APR_LDAP_OPT_TLS 0x6fff
+/**
+ * Set zero or more CA certificates, client certificates or private
+ * keys globally, or per connection (where supported).
+ */
+#define APR_LDAP_OPT_TLS_CERT 0x6ffe
+/**
+ * Set the LDAP library to no verify the server certificate.  This means
+ * all servers are considered trusted.
+ */
+#define APR_LDAP_OPT_VERIFY_CERT 0x6ffd
+
+/**
+ * Structures for the apr_set_option() cases
+ */
+
+/**
+ * APR_LDAP_OPT_TLS_CERT
+ *
+ * This structure includes possible options to set certificates on
+ * system initialisation. Different SDKs have different certificate
+ * requirements, and to achieve this multiple certificates must be
+ * specified at once passed as an (apr_array_header_t *).
+ *
+ * Netscape:
+ * Needs the CA cert database (cert7.db), the client cert database (key3.db)
+ * and the security module file (secmod.db) set at the system initialisation
+ * time. Three types are supported: APR_LDAP_CERT7_DB, APR_LDAP_KEY3_DB and
+ * APR_LDAP_SECMOD.
+ *
+ * To specify a client cert connection, a certificate nickname needs to be
+ * provided with a type of APR_LDAP_CERT.
+ * int ldapssl_enable_clientauth( LDAP *ld, char *keynickname,
+ * char *keypasswd, char *certnickname );
+ * keynickname is currently not used, and should be set to ""
+ *
+ * Novell:
+ * Needs CA certificates and client certificates set at system initialisation
+ * time. Three types are supported: APR_LDAP_CA*, APR_LDAP_CERT* and
+ * APR_LDAP_KEY*.
+ *
+ * Certificates cannot be specified per connection.
+ *
+ * The functions used are:
+ * ldapssl_add_trusted_cert(serverTrustedRoot, serverTrustedRootEncoding);
+ * Clients certs and keys are set at system initialisation time with
+ * int ldapssl_set_client_cert (
+ *  void   *cert,
+ *  int     type
+ *  void   *password); 
+ * type can be LDAPSSL_CERT_FILETYPE_B64 or LDAPSSL_CERT_FILETYPE_DER
+ *  ldapssl_set_client_private_key(clientPrivateKey,
+ *                                 clientPrivateKeyEncoding,
+ *                                 clientPrivateKeyPassword);
+ *
+ * OpenSSL:
+ * Needs one or more CA certificates to be set at system initialisation time
+ * with a type of APR_LDAP_CA*.
+ *
+ * May have one or more client certificates set per connection with a type of
+ * APR_LDAP_CERT*, and keys with APR_LDAP_KEY*.
+ */
+/** CA certificate type unknown */
+#define APR_LDAP_CA_TYPE_UNKNOWN    0
+/** binary DER encoded CA certificate */
+#define APR_LDAP_CA_TYPE_DER        1
+/** PEM encoded CA certificate */
+#define APR_LDAP_CA_TYPE_BASE64     2
+/** Netscape/Mozilla cert7.db CA certificate database */
+#define APR_LDAP_CA_TYPE_CERT7_DB   3
+/** Netscape/Mozilla secmod file */
+#define APR_LDAP_CA_TYPE_SECMOD     4
+/** Client certificate type unknown */
+#define APR_LDAP_CERT_TYPE_UNKNOWN  5
+/** binary DER encoded client certificate */
+#define APR_LDAP_CERT_TYPE_DER      6
+/** PEM encoded client certificate */
+#define APR_LDAP_CERT_TYPE_BASE64   7
+/** Netscape/Mozilla key3.db client certificate database */
+#define APR_LDAP_CERT_TYPE_KEY3_DB  8
+/** Netscape/Mozilla client certificate nickname */
+#define APR_LDAP_CERT_TYPE_NICKNAME 9
+/** Private key type unknown */
+#define APR_LDAP_KEY_TYPE_UNKNOWN   10
+/** binary DER encoded private key */
+#define APR_LDAP_KEY_TYPE_DER       11
+/** PEM encoded private key */
+#define APR_LDAP_KEY_TYPE_BASE64    12
+/** PKCS#12 encoded client certificate */
+#define APR_LDAP_CERT_TYPE_PFX      13
+/** PKCS#12 encoded private key */
+#define APR_LDAP_KEY_TYPE_PFX       14
+
+/**
+ * Certificate structure.
+ *
+ * This structure is used to store certificate details. An array of
+ * these structures is passed to apr_ldap_set_option() to set CA
+ * and client certificates.
+ * @param type Type of certificate APR_LDAP_*_TYPE_*
+ * @param path Path, file or nickname of the certificate
+ * @param password Optional password, can be NULL
+ */
+typedef struct apr_ldap_opt_tls_cert_t apr_ldap_opt_tls_cert_t;
+struct apr_ldap_opt_tls_cert_t {
+    int type;
+    const char *path;
+    const char *password;
+};
+
+/**
+ * APR_LDAP_OPT_TLS
+ *
+ * This sets the SSL level on the LDAP handle.
+ *
+ * Netscape/Mozilla:
+ * Supports SSL, but not STARTTLS
+ * SSL is enabled by calling ldapssl_install_routines().
+ *
+ * Novell:
+ * Supports SSL and STARTTLS.
+ * SSL is enabled by calling ldapssl_install_routines(). Note that calling
+ * other ldap functions before ldapssl_install_routines() may cause this
+ * function to fail.
+ * STARTTLS is enabled by calling ldapssl_start_tls_s() after calling
+ * ldapssl_install_routines() (check this).
+ *
+ * OpenLDAP:
+ * Supports SSL and supports STARTTLS, but none of this is documented:
+ * http://www.openldap.org/lists/openldap-software/200409/msg00618.html
+ * Documentation for both SSL support and STARTTLS has been deleted from
+ * the OpenLDAP documentation and website.
+ */
+
+/** No encryption */
+#define APR_LDAP_NONE 0
+/** SSL encryption (ldaps://) */
+#define APR_LDAP_SSL 1
+/** TLS encryption (STARTTLS) */
+#define APR_LDAP_STARTTLS 2
+/** end TLS encryption (STOPTLS) */
+#define APR_LDAP_STOPTLS 3
+
+/**
+ * APR LDAP get option function
+ *
+ * This function gets option values from a given LDAP session if
+ * one was specified. It maps to the native ldap_get_option() function.
+ * @param pool The pool to use
+ * @param ldap The LDAP handle
+ * @param option The LDAP_OPT_* option to return
+ * @param outvalue The value returned (if any)
+ * @param result_err The apr_ldap_err_t structure contained detailed results
+ *        of the operation.
+ */
+APU_DECLARE(int) apr_ldap_get_option(apr_pool_t *pool,
+                                     LDAP *ldap,
+                                     int option,
+                                     void *outvalue,
+                                     apr_ldap_err_t **result_err);
+
+/**
+ * APR LDAP set option function
+ * 
+ * This function sets option values to a given LDAP session if
+ * one was specified. It maps to the native ldap_set_option() function.
+ * 
+ * Where an option is not supported by an LDAP toolkit, this function
+ * will try and apply legacy functions to achieve the same effect,
+ * depending on the platform.
+ * @param pool The pool to use
+ * @param ldap The LDAP handle
+ * @param option The LDAP_OPT_* option to set
+ * @param invalue The value to set
+ * @param result_err The apr_ldap_err_t structure contained detailed results
+ *        of the operation.
+ */
+APU_DECLARE(int) apr_ldap_set_option(apr_pool_t *pool,
+                                     LDAP *ldap,
+                                     int option,
+                                     const void *invalue,
+                                     apr_ldap_err_t **result_err);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* APR_HAS_LDAP */
+
+/** @} */
+
+#endif /* APR_LDAP_OPTION_H */
+
diff --git a/include/apr_ldap_url.h b/include/apr_ldap_url.h
new file mode 100644
index 0000000..6ebda83
--- /dev/null
+++ b/include/apr_ldap_url.h
@@ -0,0 +1,117 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @file apr_ldap_url.h
+ * @brief  APR-UTIL LDAP ldap_init() functions
+ */
+#ifndef APR_LDAP_URL_H
+#define APR_LDAP_URL_H
+
+/**
+ * @defgroup APR_Util_LDAP LDAP
+ * @ingroup APR_Util
+ * @{
+ */
+
+#if APR_HAS_LDAP
+
+#include "apu.h"
+#include "apr_pools.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/** Structure to access an exploded LDAP URL */
+typedef struct apr_ldap_url_desc_t {
+    struct  apr_ldap_url_desc_t  *lud_next;
+    char    *lud_scheme;
+    char    *lud_host;
+    int     lud_port;
+    char    *lud_dn;
+    char    **lud_attrs;
+    int     lud_scope;
+    char    *lud_filter;
+    char    **lud_exts;
+    int     lud_crit_exts;
+} apr_ldap_url_desc_t;
+
+#ifndef APR_LDAP_URL_SUCCESS
+#define APR_LDAP_URL_SUCCESS          0x00    /* Success */
+#define APR_LDAP_URL_ERR_MEM          0x01    /* can't allocate memory space */
+#define APR_LDAP_URL_ERR_PARAM        0x02    /* parameter is bad */
+#define APR_LDAP_URL_ERR_BADSCHEME    0x03    /* URL doesn't begin with "ldap[si]://" */
+#define APR_LDAP_URL_ERR_BADENCLOSURE 0x04    /* URL is missing trailing ">" */
+#define APR_LDAP_URL_ERR_BADURL       0x05    /* URL is bad */
+#define APR_LDAP_URL_ERR_BADHOST      0x06    /* host port is bad */
+#define APR_LDAP_URL_ERR_BADATTRS     0x07    /* bad (or missing) attributes */
+#define APR_LDAP_URL_ERR_BADSCOPE     0x08    /* scope string is invalid (or missing) */
+#define APR_LDAP_URL_ERR_BADFILTER    0x09    /* bad or missing filter */
+#define APR_LDAP_URL_ERR_BADEXTS      0x0a    /* bad or missing extensions */
+#endif
+
+/**
+ * Is this URL an ldap url? ldap://
+ * @param url The url to test
+ */
+APU_DECLARE(int) apr_ldap_is_ldap_url(const char *url);
+
+/**
+ * Is this URL an SSL ldap url? ldaps://
+ * @param url The url to test
+ */
+APU_DECLARE(int) apr_ldap_is_ldaps_url(const char *url);
+
+/**
+ * Is this URL an ldap socket url? ldapi://
+ * @param url The url to test
+ */
+APU_DECLARE(int) apr_ldap_is_ldapi_url(const char *url);
+
+/**
+ * Parse an LDAP URL.
+ * @param pool The pool to use
+ * @param url_in The URL to parse
+ * @param ludpp The structure to return the exploded URL
+ * @param result_err The result structure of the operation
+ */
+APU_DECLARE(int) apr_ldap_url_parse_ext(apr_pool_t *pool,
+                                        const char *url_in,
+                                        apr_ldap_url_desc_t **ludpp,
+                                        apr_ldap_err_t **result_err);
+
+/**
+ * Parse an LDAP URL.
+ * @param pool The pool to use
+ * @param url_in The URL to parse
+ * @param ludpp The structure to return the exploded URL
+ * @param result_err The result structure of the operation
+ */
+APU_DECLARE(int) apr_ldap_url_parse(apr_pool_t *pool,
+                                    const char *url_in,
+                                    apr_ldap_url_desc_t **ludpp,
+                                    apr_ldap_err_t **result_err);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* APR_HAS_LDAP */
+
+/** @} */
+
+#endif /* APR_LDAP_URL_H */
diff --git a/include/apr_md4.h b/include/apr_md4.h
new file mode 100644
index 0000000..43fb33e
--- /dev/null
+++ b/include/apr_md4.h
@@ -0,0 +1,135 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/* This is derived from material copyright RSA Data Security, Inc.
+ * Their notice is reproduced below in its entirety.
+ *
+ * Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
+ * rights reserved.
+ *
+ * License to copy and use this software is granted provided that it
+ * is identified as the "RSA Data Security, Inc. MD4 Message-Digest
+ * Algorithm" in all material mentioning or referencing this software
+ * or this function.
+ *
+ * License is also granted to make and use derivative works provided
+ * that such works are identified as "derived from the RSA Data
+ * Security, Inc. MD4 Message-Digest Algorithm" in all material
+ * mentioning or referencing the derived work.
+ *
+ * RSA Data Security, Inc. makes no representations concerning either
+ * the merchantability of this software or the suitability of this
+ * software for any particular purpose. It is provided "as is"
+ * without express or implied warranty of any kind.
+ *
+ * These notices must be retained in any copies of any part of this
+ * documentation and/or software.
+ */
+
+#ifndef APR_MD4_H
+#define APR_MD4_H
+
+#include "apu.h"
+#include "apr_xlate.h"
+/**
+ * @file apr_md4.h
+ * @brief APR-UTIL MD4 Library
+ */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @defgroup APR_Util_MD4 MD4 Library
+ * @ingroup APR_Util
+ * @{
+ */
+
+/** The digestsize for MD4 */
+#define APR_MD4_DIGESTSIZE 16
+
+/** @see apr_md4_ctx_t */
+typedef struct apr_md4_ctx_t apr_md4_ctx_t;
+
+/** MD4 context. */
+struct apr_md4_ctx_t {
+    /** state (ABCD) */
+    apr_uint32_t state[4];
+    /** number of bits, modulo 2^64 (lsb first) */
+    apr_uint32_t count[2];
+    /** input buffer */
+    unsigned char buffer[64];
+#if APR_HAS_XLATE
+    /** translation handle */
+    apr_xlate_t *xlate;
+#endif
+};
+
+/**
+ * MD4 Initialize.  Begins an MD4 operation, writing a new context.
+ * @param context The MD4 context to initialize.
+ */
+APU_DECLARE(apr_status_t) apr_md4_init(apr_md4_ctx_t *context);
+
+#if APR_HAS_XLATE
+/**
+ * MDr4 translation setup.  Provides the APR translation handle to be used 
+ * for translating the content before calculating the digest.
+ * @param context The MD4 content to set the translation for.
+ * @param xlate The translation handle to use for this MD4 context 
+ */
+APU_DECLARE(apr_status_t) apr_md4_set_xlate(apr_md4_ctx_t *context,
+                                            apr_xlate_t *xlate);
+#else
+#define apr_md4_set_xlate(context, xlate) APR_ENOTIMPL
+#endif
+
+/**
+ * MD4 block update operation.  Continue an MD4 message-digest operation, 
+ * processing another message block, and updating the context.
+ * @param context The MD4 content to update.
+ * @param input next message block to update
+ * @param inputLen The length of the next message block
+ */
+APU_DECLARE(apr_status_t) apr_md4_update(apr_md4_ctx_t *context,
+                                         const unsigned char *input,
+                                         apr_size_t inputLen);
+
+/**
+ * MD4 finalization.  Ends an MD4 message-digest operation, writing the 
+ * message digest and zeroing the context
+ * @param digest The final MD4 digest
+ * @param context The MD4 content we are finalizing.
+ */
+APU_DECLARE(apr_status_t) apr_md4_final(
+                                    unsigned char digest[APR_MD4_DIGESTSIZE],
+                                    apr_md4_ctx_t *context);
+
+/**
+ * MD4 digest computation
+ * @param digest The MD4 digest
+ * @param input message block to use
+ * @param inputLen The length of the message block
+ */
+APU_DECLARE(apr_status_t) apr_md4(unsigned char digest[APR_MD4_DIGESTSIZE],
+                                  const unsigned char *input,
+                                  apr_size_t inputLen);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !APR_MD4_H */
diff --git a/include/apr_md5.h b/include/apr_md5.h
new file mode 100644
index 0000000..367324a
--- /dev/null
+++ b/include/apr_md5.h
@@ -0,0 +1,162 @@
+/*
+ * This is work is derived from material Copyright RSA Data Security, Inc.
+ *
+ * The RSA copyright statement and Licence for that original material is
+ * included below. This is followed by the Apache copyright statement and
+ * licence for the modifications made to that material.
+ */
+
+/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
+   rights reserved.
+
+   License to copy and use this software is granted provided that it
+   is identified as the "RSA Data Security, Inc. MD5 Message-Digest
+   Algorithm" in all material mentioning or referencing this software
+   or this function.
+
+   License is also granted to make and use derivative works provided
+   that such works are identified as "derived from the RSA Data
+   Security, Inc. MD5 Message-Digest Algorithm" in all material
+   mentioning or referencing the derived work.
+
+   RSA Data Security, Inc. makes no representations concerning either
+   the merchantability of this software or the suitability of this
+   software for any particular purpose. It is provided "as is"
+   without express or implied warranty of any kind.
+
+   These notices must be retained in any copies of any part of this
+   documentation and/or software.
+ */
+
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef APR_MD5_H
+#define APR_MD5_H
+
+#include "apu.h"
+#include "apr_xlate.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/**
+ * @file apr_md5.h
+ * @brief APR MD5 Routines
+ */
+
+/**
+ * @defgroup APR_MD5 MD5 Routines
+ * @ingroup APR
+ * @{
+ */
+
+/** The MD5 digest size */
+#define APR_MD5_DIGESTSIZE 16
+
+/** @see apr_md5_ctx_t */
+typedef struct apr_md5_ctx_t apr_md5_ctx_t;
+
+/** MD5 context. */
+struct apr_md5_ctx_t {
+    /** state (ABCD) */
+    apr_uint32_t state[4];
+    /** number of bits, modulo 2^64 (lsb first) */
+    apr_uint32_t count[2];
+    /** input buffer */
+    unsigned char buffer[64];
+    /** translation handle 
+     *  ignored if xlate is unsupported
+     */
+    apr_xlate_t *xlate;
+};
+
+/**
+ * MD5 Initialize.  Begins an MD5 operation, writing a new context.
+ * @param context The MD5 context to initialize.
+ */
+APU_DECLARE(apr_status_t) apr_md5_init(apr_md5_ctx_t *context);
+
+/**
+ * MD5 translation setup.  Provides the APR translation handle to be used 
+ * for translating the content before calculating the digest.
+ * @param context The MD5 content to set the translation for.
+ * @param xlate The translation handle to use for this MD5 context 
+ */
+APU_DECLARE(apr_status_t) apr_md5_set_xlate(apr_md5_ctx_t *context,
+                                            apr_xlate_t *xlate);
+
+/**
+ * MD5 block update operation.  Continue an MD5 message-digest operation, 
+ * processing another message block, and updating the context.
+ * @param context The MD5 content to update.
+ * @param input next message block to update
+ * @param inputLen The length of the next message block
+ */
+APU_DECLARE(apr_status_t) apr_md5_update(apr_md5_ctx_t *context,
+                                         const void *input,
+                                         apr_size_t inputLen);
+
+/**
+ * MD5 finalization.  Ends an MD5 message-digest operation, writing the 
+ * message digest and zeroing the context
+ * @param digest The final MD5 digest
+ * @param context The MD5 content we are finalizing.
+ */
+APU_DECLARE(apr_status_t) apr_md5_final(unsigned char digest[APR_MD5_DIGESTSIZE],
+                                        apr_md5_ctx_t *context);
+
+/**
+ * MD5 in one step
+ * @param digest The final MD5 digest
+ * @param input The message block to use
+ * @param inputLen The length of the message block
+ */
+APU_DECLARE(apr_status_t) apr_md5(unsigned char digest[APR_MD5_DIGESTSIZE],
+                                  const void *input,
+                                  apr_size_t inputLen);
+
+/**
+ * Encode a password using an MD5 algorithm
+ * @param password The password to encode
+ * @param salt The salt to use for the encoding
+ * @param result The string to store the encoded password in
+ * @param nbytes The size of the result buffer
+ */
+APU_DECLARE(apr_status_t) apr_md5_encode(const char *password, const char *salt,
+                                         char *result, apr_size_t nbytes);
+
+
+/**
+ * Validate hashes created by APR-supported algorithms: md5 and sha1.
+ * hashes created by crypt are supported only on platforms that provide
+ * crypt(3), so don't rely on that function unless you know that your
+ * application will be run only on platforms that support it.  On platforms
+ * that don't support crypt(3), this falls back to a clear text string
+ * comparison.
+ * @param passwd The password to validate
+ * @param hash The password to validate against
+ */
+APU_DECLARE(apr_status_t) apr_password_validate(const char *passwd, 
+                                                const char *hash);
+
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !APR_MD5_H */
diff --git a/include/apr_optional.h b/include/apr_optional.h
new file mode 100644
index 0000000..3301d66
--- /dev/null
+++ b/include/apr_optional.h
@@ -0,0 +1,92 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef APR_OPTIONAL_H
+#define APR_OPTIONAL_H
+
+#include "apu.h"
+/** 
+ * @file apr_optional.h
+ * @brief APR-UTIL registration of functions exported by modules
+ */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** 
+ * @defgroup APR_Util_Opt Optional Functions
+ * @ingroup APR_Util
+ *
+ * Typesafe registration and retrieval of functions that may not be present
+ * (i.e. functions exported by optional modules)
+ * @{
+ */
+
+/**
+ * The type of an optional function.
+ * @param name The name of the function
+ */
+#define APR_OPTIONAL_FN_TYPE(name) apr_OFN_##name##_t
+
+/**
+ * Declare an optional function.
+ * @param ret The return type of the function
+ * @param name The name of the function
+ * @param args The function arguments (including brackets)
+ */
+#define APR_DECLARE_OPTIONAL_FN(ret,name,args) \
+typedef ret (APR_OPTIONAL_FN_TYPE(name)) args
+
+/**
+ * XXX: This doesn't belong here, then!
+ * Private function! DO NOT USE! 
+ * @internal
+ */
+
+typedef void (apr_opt_fn_t)(void);
+/** @internal */
+APU_DECLARE_NONSTD(void) apr_dynamic_fn_register(const char *szName, 
+                                                  apr_opt_fn_t *pfn);
+
+/**
+ * Register an optional function. This can be later retrieved, type-safely, by
+ * name. Like all global functions, the name must be unique. Note that,
+ * confusingly but correctly, the function itself can be static!
+ * @param name The name of the function
+ */
+#define APR_REGISTER_OPTIONAL_FN(name) do { \
+  APR_OPTIONAL_FN_TYPE(name) *apu__opt = name; \
+  apr_dynamic_fn_register(#name,(apr_opt_fn_t *)apu__opt); \
+} while (0)
+
+/** @internal
+ * Private function! DO NOT USE! 
+ */
+APU_DECLARE(apr_opt_fn_t *) apr_dynamic_fn_retrieve(const char *szName);
+
+/**
+ * Retrieve an optional function. Returns NULL if the function is not present.
+ * @param name The name of the function
+ */
+#define APR_RETRIEVE_OPTIONAL_FN(name) \
+	(APR_OPTIONAL_FN_TYPE(name) *)apr_dynamic_fn_retrieve(#name)
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* APR_OPTIONAL_H */
diff --git a/include/apr_optional_hooks.h b/include/apr_optional_hooks.h
new file mode 100644
index 0000000..54bf65e
--- /dev/null
+++ b/include/apr_optional_hooks.h
@@ -0,0 +1,117 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * @file apr_optional_hooks.h
+ * @brief Apache optional hook functions
+ */
+
+
+#ifndef APR_OPTIONAL_HOOK_H
+#define APR_OPTIONAL_HOOK_H
+
+#include "apr_tables.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/** 
+ * @defgroup APR_Util_OPT_HOOK Optional Hook Functions
+ * @ingroup APR_Util_Hook
+ * @{
+ */
+/**
+ * Function to implemnt the APR_OPTIONAL_HOOK Macro
+ * @internal
+ * @see APR_OPTIONAL_HOOK
+ *
+ * @param name The name of the hook
+ * @param pfn A pointer to a function that will be called
+ * @param aszPre a NULL-terminated array of strings that name modules whose hooks should precede this one
+ * @param aszSucc a NULL-terminated array of strings that name modules whose hooks should succeed this one
+ * @param nOrder an integer determining order before honouring aszPre and aszSucc (for example HOOK_MIDDLE)
+ */
+
+
+APU_DECLARE(void) apr_optional_hook_add(const char *szName,void (*pfn)(void),
+					const char * const *aszPre,
+					const char * const *aszSucc,
+					int nOrder);
+
+/**
+ * Hook to an optional hook.
+ *
+ * @param ns The namespace prefix of the hook functions
+ * @param name The name of the hook
+ * @param pfn A pointer to a function that will be called
+ * @param aszPre a NULL-terminated array of strings that name modules whose hooks should precede this one
+ * @param aszSucc a NULL-terminated array of strings that name modules whose hooks should succeed this one
+ * @param nOrder an integer determining order before honouring aszPre and aszSucc (for example HOOK_MIDDLE)
+ */
+
+#define APR_OPTIONAL_HOOK(ns,name,pfn,aszPre,aszSucc,nOrder) do { \
+  ns##_HOOK_##name##_t *apu__hook = pfn; \
+  apr_optional_hook_add(#name,(void (*)(void))apu__hook,aszPre, aszSucc, nOrder); \
+} while (0)
+
+/**
+ * @internal
+ * @param szName - the name of the function
+ * @return the hook structure for a given hook
+ */
+APU_DECLARE(apr_array_header_t *) apr_optional_hook_get(const char *szName);
+
+/**
+ * Implement an optional hook that runs until one of the functions
+ * returns something other than OK or DECLINE.
+ *
+ * @param ns The namespace prefix of the hook functions
+ * @param link The linkage declaration prefix of the hook
+ * @param ret The type of the return value of the hook
+ * @param ret The type of the return value of the hook
+ * @param name The name of the hook
+ * @param args_decl The declaration of the arguments for the hook
+ * @param args_use The names for the arguments for the hook
+ * @param ok Success value
+ * @param decline Decline value
+ */
+#define APR_IMPLEMENT_OPTIONAL_HOOK_RUN_ALL(ns,link,ret,name,args_decl,args_use,ok,decline) \
+link##_DECLARE(ret) ns##_run_##name args_decl \
+    { \
+    ns##_LINK_##name##_t *pHook; \
+    int n; \
+    ret rv; \
+    apr_array_header_t *pHookArray=apr_optional_hook_get(#name); \
+\
+    if(!pHookArray) \
+	return ok; \
+\
+    pHook=(ns##_LINK_##name##_t *)pHookArray->elts; \
+    for(n=0 ; n < pHookArray->nelts ; ++n) \
+	{ \
+	rv=(pHook[n].pFunc)args_use; \
+\
+	if(rv != ok && rv != decline) \
+	    return rv; \
+	} \
+    return ok; \
+    }
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* APR_OPTIONAL_HOOK_H */
diff --git a/include/apr_queue.h b/include/apr_queue.h
new file mode 100644
index 0000000..5d24c67
--- /dev/null
+++ b/include/apr_queue.h
@@ -0,0 +1,138 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef APR_QUEUE_H
+#define APR_QUEUE_H
+
+/**
+ * @file apr_queue.h
+ * @brief Thread Safe FIFO bounded queue
+ * @note Since most implementations of the queue are backed by a condition
+ * variable implementation, it isn't available on systems without threads.
+ * Although condition variables are some times available without threads.
+ */
+
+#include "apu.h"
+#include "apr_errno.h"
+#include "apr_pools.h"
+
+#if APR_HAS_THREADS
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/**
+ * @defgroup APR_Util_FIFO Thread Safe FIFO bounded queue
+ * @ingroup APR_Util
+ * @{
+ */
+
+/**
+ * opaque structure
+ */
+typedef struct apr_queue_t apr_queue_t;
+
+/** 
+ * create a FIFO queue
+ * @param queue The new queue
+ * @param queue_capacity maximum size of the queue
+ * @param a pool to allocate queue from
+ */
+APU_DECLARE(apr_status_t) apr_queue_create(apr_queue_t **queue, 
+                                           unsigned int queue_capacity, 
+                                           apr_pool_t *a);
+
+/**
+ * push/add a object to the queue, blocking if the queue is already full
+ *
+ * @param queue the queue
+ * @param data the data
+ * @returns APR_EINTR the blocking was interrupted (try again)
+ * @returns APR_EOF the queue has been terminated
+ * @returns APR_SUCCESS on a successfull push
+ */
+APU_DECLARE(apr_status_t) apr_queue_push(apr_queue_t *queue, void *data);
+
+/**
+ * pop/get an object from the queue, blocking if the queue is already empty
+ *
+ * @param queue the queue
+ * @param data the data
+ * @returns APR_EINTR the blocking was interrupted (try again)
+ * @returns APR_EOF if the queue has been terminated
+ * @returns APR_SUCCESS on a successfull pop
+ */
+APU_DECLARE(apr_status_t) apr_queue_pop(apr_queue_t *queue, void **data);
+
+/**
+ * push/add a object to the queue, returning immediatly if the queue is full
+ *
+ * @param queue the queue
+ * @param data the data
+ * @returns APR_EINTR the blocking operation was interrupted (try again)
+ * @returns APR_EAGAIN the queue is full
+ * @returns APR_EOF the queue has been terminated
+ * @returns APR_SUCCESS on a successfull push
+ */
+APU_DECLARE(apr_status_t) apr_queue_trypush(apr_queue_t *queue, void *data);
+
+/**
+ * pop/get an object to the queue, returning immediatly if the queue is empty
+ *
+ * @param queue the queue
+ * @param data the data
+ * @returns APR_EINTR the blocking operation was interrupted (try again)
+ * @returns APR_EAGAIN the queue is empty
+ * @returns APR_EOF the queue has been terminated
+ * @returns APR_SUCCESS on a successfull push
+ */
+APU_DECLARE(apr_status_t) apr_queue_trypop(apr_queue_t *queue, void **data);
+
+/**
+ * returns the size of the queue.
+ *
+ * @warning this is not threadsafe, and is intended for reporting/monitoring
+ * of the queue.
+ * @param queue the queue
+ * @returns the size of the queue
+ */
+APU_DECLARE(unsigned int) apr_queue_size(apr_queue_t *queue);
+
+/**
+ * interrupt all the threads blocking on this queue.
+ *
+ * @param queue the queue
+ */
+APU_DECLARE(apr_status_t) apr_queue_interrupt_all(apr_queue_t *queue);
+
+/**
+ * terminate all queue, sendinging a interupt to all the
+ * blocking threads
+ *
+ * @param queue the queue
+ */
+APU_DECLARE(apr_status_t) apr_queue_term(apr_queue_t *queue);
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif /* APR_HAS_THREADS */
+
+#endif /* APRQUEUE_H */
diff --git a/include/apr_reslist.h b/include/apr_reslist.h
new file mode 100644
index 0000000..e702593
--- /dev/null
+++ b/include/apr_reslist.h
@@ -0,0 +1,144 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef APR_RESLIST_H
+#define APR_RESLIST_H
+
+/** 
+ * @file apr_reslist.h
+ * @brief APR-UTIL Resource List Routines
+ */
+
+#include "apr.h"
+#include "apu.h"
+#include "apr_pools.h"
+#include "apr_errno.h"
+#include "apr_time.h"
+
+#if APR_HAS_THREADS
+
+/**
+ * @defgroup APR_Util_RL Resource List Routines
+ * @ingroup APR_Util
+ * @{
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/** Opaque resource list object */
+typedef struct apr_reslist_t apr_reslist_t;
+
+/* Generic constructor called by resource list when it needs to create a
+ * resource.
+ * @param resource opaque resource
+ * @param param flags
+ * @param pool  Pool
+ */
+typedef apr_status_t (*apr_reslist_constructor)(void **resource, void *params,
+                                                apr_pool_t *pool);
+
+/* Generic destructor called by resource list when it needs to destroy a
+ * resource.
+ * @param resource opaque resource
+ * @param param flags
+ * @param pool  Pool
+ */
+typedef apr_status_t (*apr_reslist_destructor)(void *resource, void *params,
+                                               apr_pool_t *pool);
+
+/**
+ * Create a new resource list with the following parameters:
+ * @param reslist An address where the pointer to the new resource
+ *                list will be stored.
+ * @param pool The pool to use for local storage and management
+ * @param min Allowed minimum number of available resources. Zero
+ *            creates new resources only when needed.
+ * @param smax Resources will be destroyed to meet this maximum
+ *             restriction as they expire.
+ * @param hmax Absolute maximum limit on the number of total resources.
+ * @param ttl If non-zero, sets the maximum amount of time a resource
+ *               may be available while exceeding the soft limit.
+ * @param con Constructor routine that is called to create a new resource.
+ * @param de Destructor routine that is called to destroy an expired resource.
+ * @param params Passed to constructor and deconstructor
+ * @param pool The pool from which to create this resoure list. Also the
+ *             same pool that is passed to the constructor and destructor
+ *             routines.
+ */
+APU_DECLARE(apr_status_t) apr_reslist_create(apr_reslist_t **reslist,
+                                             int min, int smax, int hmax,
+                                             apr_interval_time_t ttl,
+                                             apr_reslist_constructor con,
+                                             apr_reslist_destructor de,
+                                             void *params,
+                                             apr_pool_t *pool);
+
+/**
+ * Destroy the given resource list and all resources controlled by
+ * this list.
+ * FIXME: Should this block until all resources become available,
+ *        or maybe just destroy all the free ones, or maybe destroy
+ *        them even though they might be in use by something else?
+ *        Currently it will abort if there are resources that haven't
+ *        been released, so there is an assumption that all resources
+ *        have been released to the list before calling this function.
+ * @param reslist The reslist to destroy
+ */
+APU_DECLARE(apr_status_t) apr_reslist_destroy(apr_reslist_t *reslist);
+
+/**
+ * Retrieve a resource from the list, creating a new one if necessary.
+ * If we have met our maximum number of resources, we will block
+ * until one becomes available.
+ */
+APU_DECLARE(apr_status_t) apr_reslist_acquire(apr_reslist_t *reslist,
+                                              void **resource);
+
+/**
+ * Return a resource back to the list of available resources.
+ */
+APU_DECLARE(apr_status_t) apr_reslist_release(apr_reslist_t *reslist,
+                                              void *resource);
+
+/**
+ * Set the timeout the acquire will wait for a free resource
+ * when the maximum number of resources is exceeded.
+ * @param reslist The resource list.
+ * @param timeout Timeout to wait. The zero waits forewer.
+ */
+APU_DECLARE(void) apr_reslist_timeout_set(apr_reslist_t *reslist,
+                                          apr_interval_time_t timeout);
+
+/**
+ * Invalidate a resource in the pool - e.g. a database connection
+ * that returns a "lost connection" error and can't be restored.
+ * Use this instead of apr_reslist_release if the resource is bad.
+ */
+APU_DECLARE(apr_status_t) apr_reslist_invalidate(apr_reslist_t *reslist,
+                                                 void *resource);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
+
+#endif  /* APR_HAS_THREADS */
+
+#endif  /* ! APR_RESLIST_H */
diff --git a/include/apr_rmm.h b/include/apr_rmm.h
new file mode 100644
index 0000000..976fe9c
--- /dev/null
+++ b/include/apr_rmm.h
@@ -0,0 +1,137 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef APR_RMM_H
+#define APR_RMM_H
+/** 
+ * @file apr_rmm.h
+ * @brief APR-UTIL Relocatable Memory Management Routines
+ */
+/**
+ * @defgroup APR_Util_RMM Relocatable Memory Management Routines
+ * @ingroup APR_Util
+ * @{
+ */
+
+#include "apr.h"
+#include "apr_pools.h"
+#include "apr_errno.h"
+#include "apu.h"
+#include "apr_anylock.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/** Structure to access Relocatable, Managed Memory */
+typedef struct apr_rmm_t apr_rmm_t;
+
+/** Fundamental allocation unit, within a specific apr_rmm_t */
+typedef apr_size_t   apr_rmm_off_t;
+
+/**
+ * Initialize a relocatable memory block to be managed by the apr_rmm API.
+ * @param rmm The relocatable memory block
+ * @param lock An apr_anylock_t of the appropriate type of lock, or NULL
+ *             if no locking is required.
+ * @param membuf The block of relocatable memory to be managed
+ * @param memsize The size of relocatable memory block to be managed
+ * @param cont The pool to use for local storage and management
+ * @remark Both @param membuf and @param memsize must be aligned
+ * (for instance using APR_ALIGN_DEFAULT).
+ */
+APU_DECLARE(apr_status_t) apr_rmm_init(apr_rmm_t **rmm, apr_anylock_t *lock,
+                                       void *membuf, apr_size_t memsize, 
+                                       apr_pool_t *cont);
+
+/**
+ * Destroy a managed memory block.
+ * @param rmm The relocatable memory block to destroy
+ */
+APU_DECLARE(apr_status_t) apr_rmm_destroy(apr_rmm_t *rmm);
+
+/**
+ * Attach to a relocatable memory block already managed by the apr_rmm API.
+ * @param rmm The relocatable memory block
+ * @param lock An apr_anylock_t of the appropriate type of lock
+ * @param membuf The block of relocatable memory already under management
+ * @param cont The pool to use for local storage and management
+ */
+APU_DECLARE(apr_status_t) apr_rmm_attach(apr_rmm_t **rmm, apr_anylock_t *lock,
+                                         void *membuf, apr_pool_t *cont);
+
+/**
+ * Detach from the managed block of memory.
+ * @param rmm The relocatable memory block to detach from
+ */
+APU_DECLARE(apr_status_t) apr_rmm_detach(apr_rmm_t *rmm);
+
+/**
+ * Allocate memory from the block of relocatable memory.
+ * @param rmm The relocatable memory block
+ * @param reqsize How much memory to allocate
+ */
+APU_DECLARE(apr_rmm_off_t) apr_rmm_malloc(apr_rmm_t *rmm, apr_size_t reqsize);
+
+/**
+ * Realloc memory from the block of relocatable memory.
+ * @param rmm The relocatable memory block
+ * @param entity The memory allocation to realloc
+ * @param reqsize The new size
+ */
+APU_DECLARE(apr_rmm_off_t) apr_rmm_realloc(apr_rmm_t *rmm, void *entity, apr_size_t reqsize);
+
+/**
+ * Allocate memory from the block of relocatable memory and initialize it to zero.
+ * @param rmm The relocatable memory block
+ * @param reqsize How much memory to allocate
+ */
+APU_DECLARE(apr_rmm_off_t) apr_rmm_calloc(apr_rmm_t *rmm, apr_size_t reqsize);
+
+/**
+ * Free allocation returned by apr_rmm_malloc or apr_rmm_calloc.
+ * @param rmm The relocatable memory block
+ * @param entity The memory allocation to free
+ */
+APU_DECLARE(apr_status_t) apr_rmm_free(apr_rmm_t *rmm, apr_rmm_off_t entity);
+
+/**
+ * Retrieve the physical address of a relocatable allocation of memory
+ * @param rmm The relocatable memory block
+ * @param entity The memory allocation to free
+ * @return address The address, aligned with APR_ALIGN_DEFAULT.
+ */
+APU_DECLARE(void *) apr_rmm_addr_get(apr_rmm_t *rmm, apr_rmm_off_t entity);
+
+/**
+ * Compute the offset of a relocatable allocation of memory
+ * @param rmm The relocatable memory block
+ * @param entity The physical address to convert to an offset
+ */
+APU_DECLARE(apr_rmm_off_t) apr_rmm_offset_get(apr_rmm_t *rmm, void *entity);
+
+/**
+ * Compute the required overallocation of memory needed to fit n allocs
+ * @param n The number of alloc/calloc regions desired
+ */
+APU_DECLARE(apr_size_t) apr_rmm_overhead_get(int n);
+
+#ifdef __cplusplus
+}
+#endif
+/** @} */
+#endif  /* ! APR_RMM_H */
+
diff --git a/include/apr_sdbm.h b/include/apr_sdbm.h
new file mode 100644
index 0000000..d5a5cbf
--- /dev/null
+++ b/include/apr_sdbm.h
@@ -0,0 +1,175 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * sdbm - ndbm work-alike hashed database library
+ * based on Per-Ake Larson's Dynamic Hashing algorithms. BIT 18 (1978).
+ * author: oz@nexus.yorku.ca
+ * status: ex-public domain
+ */
+
+#ifndef APR_SDBM_H
+#define APR_SDBM_H
+
+#include "apu.h"
+#include "apr_errno.h"
+#include "apr_file_io.h"   /* for apr_fileperms_t */
+
+/** 
+ * @file apr_sdbm.h
+ * @brief apr-util SDBM library
+ */
+/**
+ * @defgroup APR_Util_DBM_SDBM SDBM library
+ * @ingroup APR_Util_DBM
+ * @{
+ */
+
+/**
+ * Structure for referencing an sdbm
+ */
+typedef struct apr_sdbm_t apr_sdbm_t;
+
+/**
+ * Structure for referencing the datum record within an sdbm
+ */
+typedef struct {
+    /** pointer to the data stored/retrieved */
+    char *dptr;
+    /** size of data */
+    int dsize;
+} apr_sdbm_datum_t;
+
+/* The extensions used for the database files */
+/** SDBM Directory file extension */
+#define APR_SDBM_DIRFEXT	".dir"
+/** SDBM page file extension */
+#define APR_SDBM_PAGFEXT	".pag"
+
+/* flags to sdbm_store */
+#define APR_SDBM_INSERT     0   /**< Insert */
+#define APR_SDBM_REPLACE    1   /**< Replace */
+#define APR_SDBM_INSERTDUP  2   /**< Insert with duplicates */
+
+/**
+ * Open an sdbm database by file name
+ * @param db The newly opened database
+ * @param name The sdbm file to open
+ * @param mode The flag values (APR_READ and APR_BINARY flags are implicit)
+ * <PRE>
+ *           APR_WRITE          open for read-write access
+ *           APR_CREATE         create the sdbm if it does not exist
+ *           APR_TRUNCATE       empty the contents of the sdbm
+ *           APR_EXCL           fail for APR_CREATE if the file exists
+ *           APR_DELONCLOSE     delete the sdbm when closed
+ *           APR_SHARELOCK      support locking across process/machines
+ * </PRE>
+ * @param perms Permissions to apply to if created
+ * @param p The pool to use when creating the sdbm
+ * @remark The sdbm name is not a true file name, as sdbm appends suffixes 
+ * for seperate data and index files.
+ */
+APU_DECLARE(apr_status_t) apr_sdbm_open(apr_sdbm_t **db, const char *name, 
+                                        apr_int32_t mode, 
+                                        apr_fileperms_t perms, apr_pool_t *p);
+
+/**
+ * Close an sdbm file previously opened by apr_sdbm_open
+ * @param db The database to close
+ */
+APU_DECLARE(apr_status_t) apr_sdbm_close(apr_sdbm_t *db);
+
+/**
+ * Lock an sdbm database for concurency of multiple operations
+ * @param db The database to lock
+ * @param type The lock type
+ * <PRE>
+ *           APR_FLOCK_SHARED
+ *           APR_FLOCK_EXCLUSIVE
+ * </PRE>
+ * @remark Calls to apr_sdbm_lock may be nested.  All apr_sdbm functions
+ * perform implicit locking.  Since an APR_FLOCK_SHARED lock cannot be 
+ * portably promoted to an APR_FLOCK_EXCLUSIVE lock, apr_sdbm_store and 
+ * apr_sdbm_delete calls will fail if an APR_FLOCK_SHARED lock is held.
+ * The apr_sdbm_lock call requires the database to be opened with the
+ * APR_SHARELOCK mode value.
+ */
+APU_DECLARE(apr_status_t) apr_sdbm_lock(apr_sdbm_t *db, int type);
+
+/**
+ * Release an sdbm lock previously aquired by apr_sdbm_lock
+ * @param db The database to unlock
+ */
+APU_DECLARE(apr_status_t) apr_sdbm_unlock(apr_sdbm_t *db);
+
+/**
+ * Fetch an sdbm record value by key
+ * @param db The database 
+ * @param value The value datum retrieved for this record
+ * @param key The key datum to find this record
+ */
+APU_DECLARE(apr_status_t) apr_sdbm_fetch(apr_sdbm_t *db, 
+                                         apr_sdbm_datum_t *value, 
+                                         apr_sdbm_datum_t key);
+
+/**
+ * Store an sdbm record value by key
+ * @param db The database 
+ * @param key The key datum to store this record by
+ * @param value The value datum to store in this record
+ * @param opt The method used to store the record
+ * <PRE>
+ *           APR_SDBM_INSERT     return an error if the record exists
+ *           APR_SDBM_REPLACE    overwrite any existing record for key
+ * </PRE>
+ */
+APU_DECLARE(apr_status_t) apr_sdbm_store(apr_sdbm_t *db, apr_sdbm_datum_t key,
+                                         apr_sdbm_datum_t value, int opt);
+
+/**
+ * Delete an sdbm record value by key
+ * @param db The database 
+ * @param key The key datum of the record to delete
+ * @remark It is not an error to delete a non-existent record.
+ */
+APU_DECLARE(apr_status_t) apr_sdbm_delete(apr_sdbm_t *db, 
+                                          const apr_sdbm_datum_t key);
+
+/**
+ * Retrieve the first record key from a dbm
+ * @param db The database 
+ * @param key The key datum of the first record
+ * @remark The keys returned are not ordered.  To traverse the list of keys
+ * for an sdbm opened with APR_SHARELOCK, the caller must use apr_sdbm_lock
+ * prior to retrieving the first record, and hold the lock until after the
+ * last call to apr_sdbm_nextkey.
+ */
+APU_DECLARE(apr_status_t) apr_sdbm_firstkey(apr_sdbm_t *db, apr_sdbm_datum_t *key);
+
+/**
+ * Retrieve the next record key from an sdbm
+ * @param db The database 
+ * @param key The key datum of the next record
+ */
+APU_DECLARE(apr_status_t) apr_sdbm_nextkey(apr_sdbm_t *db, apr_sdbm_datum_t *key);
+
+/**
+ * Returns true if the sdbm database opened for read-only access
+ * @param db The database to test
+ */
+APU_DECLARE(int) apr_sdbm_rdonly(apr_sdbm_t *db);
+/** @} */
+#endif /* APR_SDBM_H */
diff --git a/include/apr_sha1.h b/include/apr_sha1.h
new file mode 100644
index 0000000..2a4edf3
--- /dev/null
+++ b/include/apr_sha1.h
@@ -0,0 +1,121 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/* NIST Secure Hash Algorithm
+ * 	heavily modified by Uwe Hollerbach uh@alumni.caltech edu
+ * 	from Peter C. Gutmann's implementation as found in
+ * 	Applied Cryptography by Bruce Schneier
+ * 	This code is hereby placed in the public domain
+ */
+
+#ifndef APR_SHA1_H
+#define APR_SHA1_H
+
+#include "apu.h"
+#include "apr_general.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @file apr_sha1.h
+ * @brief APR-UTIL SHA1 library
+ */
+
+/** size of the SHA1 DIGEST */
+#define APR_SHA1_DIGESTSIZE 20
+
+/**
+ * Define the Magic String prefix that identifies a password as being
+ * hashed using our algorithm.
+ */
+#define APR_SHA1PW_ID "{SHA}"
+
+/** length of the SHA Password */
+#define APR_SHA1PW_IDLEN 5
+
+/** @see apr_sha1_ctx_t */
+typedef struct apr_sha1_ctx_t apr_sha1_ctx_t;
+
+/** 
+ * SHA1 context structure
+ */
+struct apr_sha1_ctx_t {
+    /** message digest */
+    apr_uint32_t digest[5];
+    /** 64-bit bit counts */
+    apr_uint32_t count_lo, count_hi;
+    /** SHA data buffer */
+    apr_uint32_t data[16];
+    /** unprocessed amount in data */
+    int local;
+};
+
+/**
+ * Provide a means to SHA1 crypt/encode a plaintext password in a way which
+ * makes password file compatible with those commonly use in netscape web
+ * and ldap installations.
+ * @param clear The plaintext password
+ * @param len The length of the plaintext password
+ * @param out The encrypted/encoded password
+ * @note SHA1 support is useful for migration purposes, but is less
+ *     secure than Apache's password format, since Apache's (MD5)
+ *     password format uses a random eight character salt to generate
+ *     one of many possible hashes for the same password.  Netscape
+ *     uses plain SHA1 without a salt, so the same password
+ *     will always generate the same hash, making it easier
+ *     to break since the search space is smaller.
+ */
+APU_DECLARE(void) apr_sha1_base64(const char *clear, int len, char *out);
+
+/**
+ * Initialize the SHA digest
+ * @param context The SHA context to initialize
+ */
+APU_DECLARE(void) apr_sha1_init(apr_sha1_ctx_t *context);
+
+/**
+ * Update the SHA digest
+ * @param context The SHA1 context to update
+ * @param input The buffer to add to the SHA digest
+ * @param inputLen The length of the input buffer
+ */
+APU_DECLARE(void) apr_sha1_update(apr_sha1_ctx_t *context, const char *input,
+                                unsigned int inputLen);
+
+/**
+ * Update the SHA digest with binary data
+ * @param context The SHA1 context to update
+ * @param input The buffer to add to the SHA digest
+ * @param inputLen The length of the input buffer
+ */
+APU_DECLARE(void) apr_sha1_update_binary(apr_sha1_ctx_t *context,
+                                       const unsigned char *input,
+                                       unsigned int inputLen);
+
+/**
+ * Finish computing the SHA digest
+ * @param digest the output buffer in which to store the digest
+ * @param context The context to finalize
+ */
+APU_DECLARE(void) apr_sha1_final(unsigned char digest[APR_SHA1_DIGESTSIZE],
+                               apr_sha1_ctx_t *context);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* APR_SHA1_H */
diff --git a/include/apr_strmatch.h b/include/apr_strmatch.h
new file mode 100644
index 0000000..53fadad
--- /dev/null
+++ b/include/apr_strmatch.h
@@ -0,0 +1,81 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef APR_STRMATCH_H
+#define APR_STRMATCH_H
+/**
+ * @file apr_strmatch.h
+ * @brief APR-UTIL string matching routines
+ */
+
+#include "apu.h"
+#include "apr_pools.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @defgroup APR_Util_StrMatch String matching routines
+ * @ingroup APR_Util
+ * @{
+ */
+
+/** @see apr_strmatch_pattern */
+typedef struct apr_strmatch_pattern apr_strmatch_pattern;
+
+/**
+ * Precompiled search pattern
+ */
+struct apr_strmatch_pattern {
+    /** Function called to compare */
+    const char *(*compare)(const apr_strmatch_pattern *this_pattern,
+                           const char *s, apr_size_t slen);
+    const char *pattern;    /**< Current pattern */
+    apr_size_t length;      /**< Current length */
+    void *context;          /**< hook to add precomputed metadata */
+};
+
+#if defined(DOXYGEN)
+/**
+ * Search for a precompiled pattern within a string
+ * @param pattern The pattern
+ * @param s The string in which to search for the pattern
+ * @param slen The length of s (excluding null terminator)
+ * @return A pointer to the first instance of the pattern in s, or
+ *         NULL if not found
+ */
+APU_DECLARE(const char *) apr_strmatch(const apr_strmatch_pattern *pattern,
+                                       const char *s, apr_size_t slen);
+#else
+#define apr_strmatch(pattern, s, slen) (*((pattern)->compare))((pattern), (s), (slen))
+#endif
+
+/**
+ * Precompile a pattern for matching using the Boyer-Moore-Horspool algorithm
+ * @param p The pool from which to allocate the pattern
+ * @param s The pattern string
+ * @param case_sensitive Whether the matching should be case-sensitive
+ * @return a pointer to the compiled pattern, or NULL if compilation fails
+ */
+APU_DECLARE(const apr_strmatch_pattern *) apr_strmatch_precompile(apr_pool_t *p, const char *s, int case_sensitive);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* !APR_STRMATCH_H */
diff --git a/include/apr_uri.h b/include/apr_uri.h
new file mode 100644
index 0000000..99db4d9
--- /dev/null
+++ b/include/apr_uri.h
@@ -0,0 +1,178 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * apr_uri.h: External Interface of apr_uri.c
+ */
+
+/**
+ * @file apr_uri.h
+ * @brief APR-UTIL URI Routines
+ */
+
+#ifndef APR_URI_H
+#define APR_URI_H
+
+#include "apu.h"
+
+#include "apr_network_io.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @defgroup APR_Util_URI URI
+ * @ingroup APR_Util
+ * @{
+ */
+
+#define APR_URI_FTP_DEFAULT_PORT         21 /**< default FTP port */
+#define APR_URI_SSH_DEFAULT_PORT         22 /**< default SSH port */
+#define APR_URI_TELNET_DEFAULT_PORT      23 /**< default telnet port */
+#define APR_URI_GOPHER_DEFAULT_PORT      70 /**< default Gopher port */
+#define APR_URI_HTTP_DEFAULT_PORT        80 /**< default HTTP port */
+#define APR_URI_POP_DEFAULT_PORT        110 /**< default POP port */
+#define APR_URI_NNTP_DEFAULT_PORT       119 /**< default NNTP port */
+#define APR_URI_IMAP_DEFAULT_PORT       143 /**< default IMAP port */
+#define APR_URI_PROSPERO_DEFAULT_PORT   191 /**< default Prospero port */
+#define APR_URI_WAIS_DEFAULT_PORT       210 /**< default WAIS port */
+#define APR_URI_LDAP_DEFAULT_PORT       389 /**< default LDAP port */
+#define APR_URI_HTTPS_DEFAULT_PORT      443 /**< default HTTPS port */
+#define APR_URI_RTSP_DEFAULT_PORT       554 /**< default RTSP port */
+#define APR_URI_SNEWS_DEFAULT_PORT      563 /**< default SNEWS port */
+#define APR_URI_ACAP_DEFAULT_PORT       674 /**< default ACAP port */
+#define APR_URI_NFS_DEFAULT_PORT       2049 /**< default NFS port */
+#define APR_URI_TIP_DEFAULT_PORT       3372 /**< default TIP port */
+#define APR_URI_SIP_DEFAULT_PORT       5060 /**< default SIP port */
+
+/** Flags passed to unparse_uri_components(): */
+/** suppress "scheme://user\@site:port" */
+#define APR_URI_UNP_OMITSITEPART    (1U<<0)
+/** Just omit user */
+#define APR_URI_UNP_OMITUSER        (1U<<1)
+/** Just omit password */
+#define APR_URI_UNP_OMITPASSWORD    (1U<<2)
+/** omit "user:password\@" part */
+#define APR_URI_UNP_OMITUSERINFO    (APR_URI_UNP_OMITUSER | \
+                                     APR_URI_UNP_OMITPASSWORD)
+/** Show plain text password (default: show XXXXXXXX) */
+#define APR_URI_UNP_REVEALPASSWORD  (1U<<3)
+/** Show "scheme://user\@site:port" only */
+#define APR_URI_UNP_OMITPATHINFO    (1U<<4)
+/** Omit the "?queryarg" from the path */
+#define APR_URI_UNP_OMITQUERY       (1U<<5)
+
+/** @see apr_uri_t */
+typedef struct apr_uri_t apr_uri_t;
+
+/**
+ * A structure to encompass all of the fields in a uri
+ */
+struct apr_uri_t {
+    /** scheme ("http"/"ftp"/...) */
+    char *scheme;
+    /** combined [user[:password]\@]host[:port] */
+    char *hostinfo;
+    /** user name, as in http://user:passwd\@host:port/ */
+    char *user;
+    /** password, as in http://user:passwd\@host:port/ */
+    char *password;
+    /** hostname from URI (or from Host: header) */
+    char *hostname;
+    /** port string (integer representation is in "port") */
+    char *port_str;
+    /** the request path (or "/" if only scheme://host was given) */
+    char *path;
+    /** Everything after a '?' in the path, if present */
+    char *query;
+    /** Trailing "#fragment" string, if present */
+    char *fragment;
+
+    /** structure returned from gethostbyname() */
+    struct hostent *hostent;
+
+    /** The port number, numeric, valid only if port_str != NULL */
+    apr_port_t port;
+    
+    /** has the structure been initialized */
+    unsigned is_initialized:1;
+
+    /** has the DNS been looked up yet */
+    unsigned dns_looked_up:1;
+    /** has the dns been resolved yet */
+    unsigned dns_resolved:1;
+};
+
+/* apr_uri.c */
+/**
+ * Return the default port for a given scheme.  The schemes recognized are
+ * http, ftp, https, gopher, wais, nntp, snews, and prospero
+ * @param scheme_str The string that contains the current scheme
+ * @return The default port for this scheme
+ */ 
+APU_DECLARE(apr_port_t) apr_uri_port_of_scheme(const char *scheme_str);
+
+/**
+ * Unparse a apr_uri_t structure to an URI string.  Optionally 
+ * suppress the password for security reasons.
+ * @param p The pool to allocate out of
+ * @param uptr All of the parts of the uri
+ * @param flags How to unparse the uri.  One of:
+ * <PRE>
+ *    APR_URI_UNP_OMITSITEPART        Suppress "scheme://user\@site:port" 
+ *    APR_URI_UNP_OMITUSER            Just omit user 
+ *    APR_URI_UNP_OMITPASSWORD        Just omit password 
+ *    APR_URI_UNP_OMITUSERINFO        Omit "user:password\@" part
+ *    APR_URI_UNP_REVEALPASSWORD      Show plain text password (default: show XXXXXXXX)
+ *    APR_URI_UNP_OMITPATHINFO        Show "scheme://user\@site:port" only 
+ *    APR_URI_UNP_OMITQUERY           Omit "?queryarg" or "#fragment" 
+ * </PRE>
+ * @return The uri as a string
+ */
+APU_DECLARE(char *) apr_uri_unparse(apr_pool_t *p, 
+                                    const apr_uri_t *uptr,
+                                    unsigned flags);
+
+/**
+ * Parse a given URI, fill in all supplied fields of a apr_uri_t
+ * structure. This eliminates the necessity of extracting host, port,
+ * path, query info repeatedly in the modules.
+ * @param p The pool to allocate out of
+ * @param uri The uri to parse
+ * @param uptr The apr_uri_t to fill out
+ * @return APR_SUCCESS for success or error code
+ */
+APU_DECLARE(apr_status_t) apr_uri_parse(apr_pool_t *p, const char *uri, 
+                                        apr_uri_t *uptr);
+
+/**
+ * Special case for CONNECT parsing: it comes with the hostinfo part only
+ * @param p The pool to allocate out of
+ * @param hostinfo The hostinfo string to parse
+ * @param uptr The apr_uri_t to fill out
+ * @return APR_SUCCESS for success or error code
+ */
+APU_DECLARE(apr_status_t) apr_uri_parse_hostinfo(apr_pool_t *p, 
+                                                 const char *hostinfo, 
+                                                 apr_uri_t *uptr);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* APR_URI_H */
diff --git a/include/apr_uuid.h b/include/apr_uuid.h
new file mode 100644
index 0000000..5312a9f
--- /dev/null
+++ b/include/apr_uuid.h
@@ -0,0 +1,76 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @file apr_uuid.h
+ * @brief APR UUID library
+ */
+#ifndef APR_UUID_H
+#define APR_UUID_H
+
+#include "apu.h"
+#include "apr_errno.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/**
+ * @defgroup APR_UUID UUID Handling
+ * @ingroup APR
+ * @{
+ */
+
+/**
+ * we represent a UUID as a block of 16 bytes.
+ */
+
+typedef struct {
+    unsigned char data[16]; /**< the actual UUID */
+} apr_uuid_t;
+
+/** UUIDs are formatted as: 00112233-4455-6677-8899-AABBCCDDEEFF */
+#define APR_UUID_FORMATTED_LENGTH 36
+
+
+/**
+ * Generate and return a (new) UUID
+ * @param uuid The resulting UUID
+ */ 
+APU_DECLARE(void) apr_uuid_get(apr_uuid_t *uuid);
+
+/**
+ * Format a UUID into a string, following the standard format
+ * @param buffer The buffer to place the formatted UUID string into. It must
+ *               be at least APR_UUID_FORMATTED_LENGTH + 1 bytes long to hold
+ *               the formatted UUID and a null terminator
+ * @param uuid The UUID to format
+ */ 
+APU_DECLARE(void) apr_uuid_format(char *buffer, const apr_uuid_t *uuid);
+
+/**
+ * Parse a standard-format string into a UUID
+ * @param uuid The resulting UUID
+ * @param uuid_str The formatted UUID
+ */ 
+APU_DECLARE(apr_status_t) apr_uuid_parse(apr_uuid_t *uuid, const char *uuid_str);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* APR_UUID_H */
diff --git a/include/apr_xlate.h b/include/apr_xlate.h
new file mode 100644
index 0000000..3263668
--- /dev/null
+++ b/include/apr_xlate.h
@@ -0,0 +1,163 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef APR_XLATE_H
+#define APR_XLATE_H
+
+#include "apu.h"
+#include "apr_pools.h"
+#include "apr_errno.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/**
+ * @file apr_xlate.h
+ * @brief APR I18N translation library
+ */
+
+/**
+ * @defgroup APR_XLATE I18N translation library
+ * @ingroup APR
+ * @{
+ */
+/** Opaque translation buffer */
+typedef struct apr_xlate_t            apr_xlate_t;
+
+/**
+ * Set up for converting text from one charset to another.
+ * @param convset The handle to be filled in by this function
+ * @param topage The name of the target charset
+ * @param frompage The name of the source charset
+ * @param pool The pool to use
+ * @remark
+ *  Specify APR_DEFAULT_CHARSET for one of the charset
+ *  names to indicate the charset of the source code at
+ *  compile time.  This is useful if there are literal
+ *  strings in the source code which must be translated
+ *  according to the charset of the source code.
+ *  APR_DEFAULT_CHARSET is not useful if the source code
+ *  of the caller was not encoded in the same charset as
+ *  APR at compile time.
+ *
+ * @remark
+ *  Specify APR_LOCALE_CHARSET for one of the charset
+ *  names to indicate the charset of the current locale.
+ *
+ * @remark
+ *  Return APR_EINVAL if unable to procure a convset, or APR_ENOTIMPL
+ *  if charset transcoding is not available in this instance of
+ *  apr-util at all (i.e., APR_HAS_XLATE is undefined).
+ */
+APU_DECLARE(apr_status_t) apr_xlate_open(apr_xlate_t **convset, 
+                                         const char *topage, 
+                                         const char *frompage, 
+                                         apr_pool_t *pool);
+
+/** 
+ * This is to indicate the charset of the sourcecode at compile time
+ * names to indicate the charset of the source code at
+ * compile time.  This is useful if there are literal
+ * strings in the source code which must be translated
+ * according to the charset of the source code.
+ */
+#define APR_DEFAULT_CHARSET (const char *)0
+/**
+ * To indicate charset names of the current locale 
+ */
+#define APR_LOCALE_CHARSET (const char *)1
+
+/**
+ * Find out whether or not the specified conversion is single-byte-only.
+ * @param convset The handle allocated by apr_xlate_open, specifying the 
+ *                parameters of conversion
+ * @param onoff Output: whether or not the conversion is single-byte-only
+ * @remark
+ *  Return APR_ENOTIMPL if charset transcoding is not available
+ *  in this instance of apr-util (i.e., APR_HAS_XLATE is undefined).
+ */
+APU_DECLARE(apr_status_t) apr_xlate_sb_get(apr_xlate_t *convset, int *onoff);
+
+/**
+ * Convert a buffer of text from one codepage to another.
+ * @param convset The handle allocated by apr_xlate_open, specifying 
+ *                the parameters of conversion
+ * @param inbuf The address of the source buffer
+ * @param inbytes_left Input: the amount of input data to be translated
+ *                     Output: the amount of input data not yet translated    
+ * @param outbuf The address of the destination buffer
+ * @param outbytes_left Input: the size of the output buffer
+ *                      Output: the amount of the output buffer not yet used
+ * @remark
+ * Returns APR_ENOTIMPL if charset transcoding is not available
+ * in this instance of apr-util (i.e., APR_HAS_XLATE is undefined).
+ * Returns APR_INCOMPLETE if the input buffer ends in an incomplete
+ * multi-byte character.
+ *
+ * To correctly terminate the output buffer for some multi-byte
+ * character set encodings, a final call must be made to this function
+ * after the complete input string has been converted, passing
+ * the inbuf and inbytes_left parameters as NULL.  (Note that this
+ * mode only works from version 1.1.0 onwards)
+ */
+APU_DECLARE(apr_status_t) apr_xlate_conv_buffer(apr_xlate_t *convset, 
+                                                const char *inbuf, 
+                                                apr_size_t *inbytes_left, 
+                                                char *outbuf,
+                                                apr_size_t *outbytes_left);
+
+/* @see apr_file_io.h the comment in apr_file_io.h about this hack */
+#ifdef APR_NOT_DONE_YET
+/**
+ * The purpose of apr_xlate_conv_char is to translate one character
+ * at a time.  This needs to be written carefully so that it works
+ * with double-byte character sets. 
+ * @param convset The handle allocated by apr_xlate_open, specifying the
+ *                parameters of conversion
+ * @param inchar The character to convert
+ * @param outchar The converted character
+ */
+APU_DECLARE(apr_status_t) apr_xlate_conv_char(apr_xlate_t *convset, 
+                                              char inchar, char outchar);
+#endif
+
+/**
+ * Convert a single-byte character from one charset to another.
+ * @param convset The handle allocated by apr_xlate_open, specifying the 
+ *                parameters of conversion
+ * @param inchar The single-byte character to convert.
+ * @warning This only works when converting between single-byte character sets.
+ *          -1 will be returned if the conversion can't be performed.
+ */
+APU_DECLARE(apr_int32_t) apr_xlate_conv_byte(apr_xlate_t *convset, 
+                                             unsigned char inchar);
+
+/**
+ * Close a codepage translation handle.
+ * @param convset The codepage translation handle to close
+ * @remark
+ *  Return APR_ENOTIMPL if charset transcoding is not available
+ *  in this instance of apr-util (i.e., APR_HAS_XLATE is undefined).
+ */
+APU_DECLARE(apr_status_t) apr_xlate_close(apr_xlate_t *convset);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif  /* ! APR_XLATE_H */
diff --git a/include/apr_xml.h b/include/apr_xml.h
new file mode 100644
index 0000000..2a43b28
--- /dev/null
+++ b/include/apr_xml.h
@@ -0,0 +1,356 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * @file apr_xml.h
+ * @brief APR-UTIL XML Library
+ */
+#ifndef APR_XML_H
+#define APR_XML_H
+
+/**
+ * @defgroup APR_Util_XML XML 
+ * @ingroup APR_Util
+ * @{
+ */
+#include "apr_pools.h"
+#include "apr_tables.h"
+#include "apr_file_io.h"
+
+#include "apu.h"
+#if APR_CHARSET_EBCDIC
+#include "apr_xlate.h"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @package Apache XML library
+ */
+
+/* -------------------------------------------------------------------- */
+
+/* ### these will need to move at some point to a more logical spot */
+
+/** @see apr_text */
+typedef struct apr_text apr_text;
+
+/** Structure to keep a linked list of pieces of text */
+struct apr_text {
+    /** The current piece of text */
+    const char *text;
+    /** a pointer to the next piece of text */
+    struct apr_text *next;
+};
+
+/** @see apr_text_header */
+typedef struct apr_text_header apr_text_header;
+
+/** A list of pieces of text */
+struct apr_text_header {
+    /** The first piece of text in the list */
+    apr_text *first;
+    /** The last piece of text in the list */
+    apr_text *last;
+};
+
+/**
+ * Append a piece of text to the end of a list
+ * @param p The pool to allocate out of
+ * @param hdr The text header to append to
+ * @param text The new text to append
+ */
+APU_DECLARE(void) apr_text_append(apr_pool_t *p, apr_text_header *hdr,
+                                  const char *text);
+
+
+/* --------------------------------------------------------------------
+**
+** XML PARSING
+*/
+
+/*
+** Qualified namespace values
+**
+** APR_XML_NS_DAV_ID
+**    We always insert the "DAV:" namespace URI at the head of the
+**    namespace array. This means that it will always be at ID==0,
+**    making it much easier to test for.
+**
+** APR_XML_NS_NONE
+**    This special ID is used for two situations:
+**
+**    1) The namespace prefix begins with "xml" (and we do not know
+**       what it means). Namespace prefixes with "xml" (any case) as
+**       their first three characters are reserved by the XML Namespaces
+**       specification for future use. mod_dav will pass these through
+**       unchanged. When this identifier is used, the prefix is LEFT in
+**       the element/attribute name. Downstream processing should not
+**       prepend another prefix.
+**
+**    2) The element/attribute does not have a namespace.
+**
+**       a) No prefix was used, and a default namespace has not been
+**          defined.
+**       b) No prefix was used, and the default namespace was specified
+**          to mean "no namespace". This is done with a namespace
+**          declaration of:  xmlns=""
+**          (this declaration is typically used to override a previous
+**          specification for the default namespace)
+**
+**       In these cases, we need to record that the elem/attr has no
+**       namespace so that we will not attempt to prepend a prefix.
+**       All namespaces that are used will have a prefix assigned to
+**       them -- mod_dav will never set or use the default namespace
+**       when generating XML. This means that "no prefix" will always
+**       mean "no namespace".
+**
+**    In both cases, the XML generation will avoid prepending a prefix.
+**    For the first case, this means the original prefix/name will be
+**    inserted into the output stream. For the latter case, it means
+**    the name will have no prefix, and since we never define a default
+**    namespace, this means it will have no namespace.
+**
+** Note: currently, mod_dav understands the "xmlns" prefix and the
+**     "xml:lang" attribute. These are handled specially (they aren't
+**     left within the XML tree), so the APR_XML_NS_NONE value won't ever
+**     really apply to these values.
+*/
+#define APR_XML_NS_DAV_ID	0	/**< namespace ID for "DAV:" */
+#define APR_XML_NS_NONE		-10	/**< no namespace for this elem/attr */
+
+#define APR_XML_NS_ERROR_BASE	-100	/**< used only during processing */
+/** Is this namespace an error? */
+#define APR_XML_NS_IS_ERROR(e)	((e) <= APR_XML_NS_ERROR_BASE)
+
+/** @see apr_xml_attr */
+typedef struct apr_xml_attr apr_xml_attr;
+/** @see apr_xml_elem */
+typedef struct apr_xml_elem apr_xml_elem;
+/** @see apr_xml_doc */
+typedef struct apr_xml_doc apr_xml_doc;
+
+/** apr_xml_attr: holds a parsed XML attribute */
+struct apr_xml_attr {
+    /** attribute name */
+    const char *name;
+    /** index into namespace array */
+    int ns;
+
+    /** attribute value */
+    const char *value;
+
+    /** next attribute */
+    struct apr_xml_attr *next;
+};
+
+/** apr_xml_elem: holds a parsed XML element */
+struct apr_xml_elem {
+    /** element name */
+    const char *name;
+    /** index into namespace array */
+    int ns;
+    /** xml:lang for attrs/contents */
+    const char *lang;
+
+    /** cdata right after start tag */
+    apr_text_header first_cdata;
+    /** cdata after MY end tag */
+    apr_text_header following_cdata;
+
+    /** parent element */
+    struct apr_xml_elem *parent;	
+    /** next (sibling) element */
+    struct apr_xml_elem *next;	
+    /** first child element */
+    struct apr_xml_elem *first_child;
+    /** first attribute */
+    struct apr_xml_attr *attr;		
+
+    /* used only during parsing */
+    /** last child element */
+    struct apr_xml_elem *last_child;
+    /** namespaces scoped by this elem */
+    struct apr_xml_ns_scope *ns_scope;
+
+    /* used by modules during request processing */
+    /** Place for modules to store private data */
+    void *priv;
+};
+
+/** Is this XML element empty? */
+#define APR_XML_ELEM_IS_EMPTY(e) ((e)->first_child == NULL && \
+                                  (e)->first_cdata.first == NULL)
+
+/** apr_xml_doc: holds a parsed XML document */
+struct apr_xml_doc {
+    /** root element */
+    apr_xml_elem *root;	
+    /** array of namespaces used */
+    apr_array_header_t *namespaces;
+};
+
+/** Opaque XML parser structure */
+typedef struct apr_xml_parser apr_xml_parser;
+
+/**
+ * Create an XML parser
+ * @param pool The pool for allocating the parser and the parse results.
+ * @return The new parser.
+ */
+APU_DECLARE(apr_xml_parser *) apr_xml_parser_create(apr_pool_t *pool);
+
+/**
+ * Parse a File, producing a xml_doc
+ * @param p      The pool for allocating the parse results.
+ * @param parser A pointer to *parser (needed so calling function can get
+ *               errors), will be set to NULL on successfull completion.
+ * @param ppdoc  A pointer to *apr_xml_doc (which has the parsed results in it)
+ * @param xmlfd  A file to read from.
+ * @param buffer_length Buffer length which would be suitable 
+ * @return Any errors found during parsing.
+ */
+APU_DECLARE(apr_status_t) apr_xml_parse_file(apr_pool_t *p,
+                                             apr_xml_parser **parser,
+                                             apr_xml_doc **ppdoc,
+                                             apr_file_t *xmlfd,
+                                             apr_size_t buffer_length);
+
+
+/**
+ * Feed input into the parser
+ * @param parser The XML parser for parsing this data.
+ * @param data The data to parse.
+ * @param len The length of the data.
+ * @return Any errors found during parsing.
+ * @remark Use apr_xml_parser_geterror() to get more error information.
+ */
+APU_DECLARE(apr_status_t) apr_xml_parser_feed(apr_xml_parser *parser,
+                                              const char *data,
+                                              apr_size_t len);
+
+/**
+ * Terminate the parsing and return the result
+ * @param parser The XML parser for parsing this data.
+ * @param pdoc The resulting parse information. May be NULL to simply
+ *             terminate the parsing without fetching the info.
+ * @return Any errors found during the final stage of parsing.
+ * @remark Use apr_xml_parser_geterror() to get more error information.
+ */
+APU_DECLARE(apr_status_t) apr_xml_parser_done(apr_xml_parser *parser,
+                                              apr_xml_doc **pdoc);
+
+/**
+ * Fetch additional error information from the parser.
+ * @param parser The XML parser to query for errors.
+ * @param errbuf A buffer for storing error text.
+ * @param errbufsize The length of the error text buffer.
+ * @return The error buffer
+ */
+APU_DECLARE(char *) apr_xml_parser_geterror(apr_xml_parser *parser,
+                                            char *errbuf,
+                                            apr_size_t errbufsize);
+
+
+/**
+ * Converts an XML element tree to flat text 
+ * @param p The pool to allocate out of
+ * @param elem The XML element to convert
+ * @param style How to covert the XML.  One of:
+ * <PRE>
+ *     APR_XML_X2T_FULL                start tag, contents, end tag 
+ *     APR_XML_X2T_INNER               contents only 
+ *     APR_XML_X2T_LANG_INNER          xml:lang + inner contents 
+ *     APR_XML_X2T_FULL_NS_LANG        FULL + ns defns + xml:lang 
+ * </PRE>
+ * @param namespaces The namespace of the current XML element
+ * @param ns_map Namespace mapping
+ * @param pbuf Buffer to put the converted text into
+ * @param psize Size of the converted text
+ */
+APU_DECLARE(void) apr_xml_to_text(apr_pool_t *p, const apr_xml_elem *elem,
+                                  int style, apr_array_header_t *namespaces,
+                                  int *ns_map, const char **pbuf,
+                                  apr_size_t *psize);
+
+/* style argument values: */
+#define APR_XML_X2T_FULL         0	/**< start tag, contents, end tag */
+#define APR_XML_X2T_INNER        1	/**< contents only */
+#define APR_XML_X2T_LANG_INNER   2	/**< xml:lang + inner contents */
+#define APR_XML_X2T_FULL_NS_LANG 3	/**< FULL + ns defns + xml:lang */
+
+/**
+ * empty XML element
+ * @param p The pool to allocate out of
+ * @param elem The XML element to empty
+ * @return the string that was stored in the XML element
+ */
+APU_DECLARE(const char *) apr_xml_empty_elem(apr_pool_t *p,
+                                             const apr_xml_elem *elem);
+
+/**
+ * quote an XML string
+ * Replace '<', '>', and '&' with '&lt;', '&gt;', and '&amp;'.
+ * @param p The pool to allocate out of
+ * @param s The string to quote
+ * @param quotes If quotes is true, then replace '"' with '&quot;'.
+ * @return The quoted string
+ * @note If the string does not contain special characters, it is not
+ * duplicated into the pool and the original string is returned.
+ */
+APU_DECLARE(const char *) apr_xml_quote_string(apr_pool_t *p, const char *s,
+                                               int quotes);
+
+/**
+ * Quote an XML element
+ * @param p The pool to allocate out of
+ * @param elem The element to quote
+ */
+APU_DECLARE(void) apr_xml_quote_elem(apr_pool_t *p, apr_xml_elem *elem);
+
+/* manage an array of unique URIs: apr_xml_insert_uri() and APR_XML_URI_ITEM() */
+
+/**
+ * return the URI's (existing) index, or insert it and return a new index 
+ * @param uri_array array to insert into
+ * @param uri The uri to insert
+ * @return int The uri's index
+ */
+APU_DECLARE(int) apr_xml_insert_uri(apr_array_header_t *uri_array,
+                                    const char *uri);
+
+/** Get the URI item for this XML element */
+#define APR_XML_GET_URI_ITEM(ary, i) (((const char * const *)(ary)->elts)[i])
+
+#if APR_CHARSET_EBCDIC
+/**
+ * Convert parsed tree in EBCDIC 
+ * @param p The pool to allocate out of
+ * @param pdoc The apr_xml_doc to convert.
+ * @param xlate The translation handle to use.
+ * @return Any errors found during conversion.
+ */
+APU_DECLARE(apr_status_t) apr_xml_parser_convert_doc(apr_pool_t *p,
+                                                     apr_xml_doc *pdoc,
+                                                     apr_xlate_t *convset);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+/** @} */
+#endif /* APR_XML_H */
diff --git a/include/apu.h b/include/apu.h
new file mode 100644
index 0000000..29a7543
--- /dev/null
+++ b/include/apu.h
@@ -0,0 +1,9 @@
+// Added to make the code easier to compile on multiple platforms
+
+#ifdef __APPLE__
+#include "apu_mac.h"
+#elif defined(WIN32) || defined(_WIN32)
+#include "apu.hw"
+#else
+ERROR !!! UNSUPPORTED PLATFORM
+#endif
diff --git a/include/apu.h.in b/include/apu.h.in
new file mode 100644
index 0000000..13e6a6d
--- /dev/null
+++ b/include/apu.h.in
@@ -0,0 +1,91 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * apu.h is generated from apu.h.in by configure -- do not edit apu.h
+ */
+/* @file apu.h
+ * @brief APR-Utility main file
+ */
+/**
+ * @defgroup APR_Util APR Utility Functions
+ * @{
+ */
+
+
+#ifndef APU_H
+#define APU_H
+
+/**
+ * APU_DECLARE_EXPORT is defined when building the APR-UTIL dynamic library,
+ * so that all public symbols are exported.
+ *
+ * APU_DECLARE_STATIC is defined when including the APR-UTIL public headers,
+ * to provide static linkage when the dynamic library may be unavailable.
+ *
+ * APU_DECLARE_STATIC and APU_DECLARE_EXPORT are left undefined when
+ * including the APR-UTIL public headers, to import and link the symbols from 
+ * the dynamic APR-UTIL library and assure appropriate indirection and calling
+ * conventions at compile time.
+ */
+
+/**
+ * The public APR-UTIL functions are declared with APU_DECLARE(), so they may
+ * use the most appropriate calling convention.  Public APR functions with 
+ * variable arguments must use APU_DECLARE_NONSTD().
+ *
+ * @deffunc APU_DECLARE(rettype) apr_func(args);
+ */
+#define APU_DECLARE(type)            type
+/**
+ * The public APR-UTIL functions using variable arguments are declared with 
+ * APU_DECLARE_NONSTD(), as they must use the C language calling convention.
+ *
+ * @deffunc APU_DECLARE_NONSTD(rettype) apr_func(args, ...);
+ */
+#define APU_DECLARE_NONSTD(type)     type
+/**
+ * The public APR-UTIL variables are declared with APU_DECLARE_DATA.
+ * This assures the appropriate indirection is invoked at compile time.
+ *
+ * @deffunc APU_DECLARE_DATA type apr_variable;
+ * @tip APU_DECLARE_DATA extern type apr_variable; syntax is required for
+ * declarations within headers to properly import the variable.
+ */
+#define APU_DECLARE_DATA
+/*
+ * we always have SDBM (it's in our codebase)
+ */
+#define APU_HAVE_SDBM   @apu_have_sdbm@
+#define APU_HAVE_GDBM   @apu_have_gdbm@
+#define APU_HAVE_NDBM   @apu_have_ndbm@
+#define APU_HAVE_DB     @apu_have_db@
+
+#if APU_HAVE_DB
+#define APU_HAVE_DB_VERSION    @apu_db_version@
+#endif /* APU_HAVE_DB */
+
+#define APU_HAVE_PGSQL         @apu_have_pgsql@
+#define APU_HAVE_MYSQL         @apu_have_mysql@
+#define APU_HAVE_SQLITE3       @apu_have_sqlite3@
+#define APU_HAVE_SQLITE2       @apu_have_sqlite2@
+
+#define APU_HAVE_APR_ICONV     @have_apr_iconv@
+#define APU_HAVE_ICONV         @have_iconv@
+#define APR_HAS_XLATE          (APU_HAVE_APR_ICONV || APU_HAVE_ICONV)
+
+#endif /* APU_H */
+/** @} */
diff --git a/include/apu.hnw b/include/apu.hnw
new file mode 100644
index 0000000..ced27a4
--- /dev/null
+++ b/include/apu.hnw
@@ -0,0 +1,90 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* 
+ * Note: This is a NetWare specific version of apu.h. It is renamed to
+ * apu.h at the start of a NetWare build.
+ */
+/* @file apu.h
+ * @brief APR-Utility main file
+ */
+
+#ifdef NETWARE
+#ifndef APU_H
+#define APU_H
+/**
+ * @defgroup APR_Util APR Utility Functions
+ * @{
+ */
+
+
+/**
+ * APU_DECLARE_EXPORT is defined when building the APR-UTIL dynamic library,
+ * so that all public symbols are exported.
+ *
+ * APU_DECLARE_STATIC is defined when including the APR-UTIL public headers,
+ * to provide static linkage when the dynamic library may be unavailable.
+ *
+ * APU_DECLARE_STATIC and APU_DECLARE_EXPORT are left undefined when
+ * including the APR-UTIL public headers, to import and link the symbols from 
+ * the dynamic APR-UTIL library and assure appropriate indirection and calling
+ * conventions at compile time.
+ */
+
+/**
+ * The public APR-UTIL functions are declared with APU_DECLARE(), so they may
+ * use the most appropriate calling convention.  Public APR functions with 
+ * variable arguments must use APU_DECLARE_NONSTD().
+ *
+ * @deffunc APU_DECLARE(rettype) apr_func(args);
+ */
+#define APU_DECLARE(type)            type
+/**
+ * The public APR-UTIL functions using variable arguments are declared with 
+ * APU_DECLARE_NONSTD(), as they must use the C language calling convention.
+ *
+ * @deffunc APU_DECLARE_NONSTD(rettype) apr_func(args, ...);
+ */
+#define APU_DECLARE_NONSTD(type)     type
+/**
+ * The public APR-UTIL variables are declared with APU_DECLARE_DATA.
+ * This assures the appropriate indirection is invoked at compile time.
+ *
+ * @deffunc APU_DECLARE_DATA type apr_variable;
+ * @tip APU_DECLARE_DATA extern type apr_variable; syntax is required for
+ * declarations within headers to properly import the variable.
+ */
+#define APU_DECLARE_DATA
+/*
+ * we always have SDBM (it's in our codebase)
+ */
+#define APU_HAVE_SDBM   1
+#define APU_HAVE_NDBM   0
+#define APU_HAVE_GDBM   0
+#define APU_HAVE_DB     0
+
+#define APU_HAVE_APR_ICONV     0
+#define APU_HAVE_ICONV         1
+#define APR_HAS_XLATE          (APU_HAVE_APR_ICONV || APU_HAVE_ICONV)
+
+/* 
+ * Hack to enable dynamic loads within apr_dbd
+ */
+#define APR_DSO_BUILD APR_HAS_DSO
+
+#endif /* APU_H */
+#endif /* NETWARE */
+
diff --git a/include/apu.hw b/include/apu.hw
new file mode 100644
index 0000000..0c61727
--- /dev/null
+++ b/include/apu.hw
@@ -0,0 +1,109 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more

+ * contributor license agreements.  See the NOTICE file distributed with

+ * this work for additional information regarding copyright ownership.

+ * The ASF licenses this file to You under the Apache License, Version 2.0

+ * (the "License"); you may not use this file except in compliance with

+ * the License.  You may obtain a copy of the License at

+ *

+ *     http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing, software

+ * distributed under the License is distributed on an "AS IS" BASIS,

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+ * See the License for the specific language governing permissions and

+ * limitations under the License.

+ */

+

+/* 

+ * Note: This is a Windows specific version of apu.h. It is renamed to

+ * apu.h at the start of a Windows build.

+ */

+/* @file apu.h

+ * @brief APR-Utility main file

+ */

+

+#ifdef WIN32

+#ifndef APU_H

+#define APU_H

+/**

+ * @defgroup APR_Util APR Utility Functions

+ * @{

+ */

+

+

+/**

+ * APU_DECLARE_EXPORT is defined when building the APR-UTIL dynamic library,

+ * so that all public symbols are exported.

+ *

+ * APU_DECLARE_STATIC is defined when including the APR-UTIL public headers,

+ * to provide static linkage when the dynamic library may be unavailable.

+ *

+ * APU_DECLARE_STATIC and APU_DECLARE_EXPORT are left undefined when

+ * including the APR-UTIL public headers, to import and link the symbols from 

+ * the dynamic APR-UTIL library and assure appropriate indirection and calling

+ * conventions at compile time.

+ */

+

+#if defined(DOXYGEN) || !defined(WIN32)

+/**

+ * The public APR-UTIL functions are declared with APU_DECLARE(), so they may

+ * use the most appropriate calling convention.  Public APR functions with 

+ * variable arguments must use APU_DECLARE_NONSTD().

+ *

+ * @deffunc APU_DECLARE(rettype) apr_func(args);

+ */

+#define APU_DECLARE(type)            type

+/**

+ * The public APR-UTIL functions using variable arguments are declared with 

+ * APU_DECLARE_NONSTD(), as they must use the C language calling convention.

+ *

+ * @deffunc APU_DECLARE_NONSTD(rettype) apr_func(args, ...);

+ */

+#define APU_DECLARE_NONSTD(type)     type

+/**

+ * The public APR-UTIL variables are declared with APU_DECLARE_DATA.

+ * This assures the appropriate indirection is invoked at compile time.

+ *

+ * @deffunc APU_DECLARE_DATA type apr_variable;

+ * @tip extern APU_DECLARE_DATA type apr_variable; syntax is required for

+ * declarations within headers to properly import the variable.

+ */

+#define APU_DECLARE_DATA

+#elif defined(APU_DECLARE_STATIC)

+#define APU_DECLARE(type)            type __stdcall

+#define APU_DECLARE_NONSTD(type)     type __cdecl

+#define APU_DECLARE_DATA

+#elif defined(APU_DECLARE_EXPORT)

+#define APU_DECLARE(type)            __declspec(dllexport) type __stdcall

+#define APU_DECLARE_NONSTD(type)     __declspec(dllexport) type __cdecl

+#define APU_DECLARE_DATA             __declspec(dllexport)

+#else

+#define APU_DECLARE(type)            __declspec(dllimport) type __stdcall

+#define APU_DECLARE_NONSTD(type)     __declspec(dllimport) type __cdecl

+#define APU_DECLARE_DATA             __declspec(dllimport)

+#endif

+/** @} */

+/*

+ * we always have SDBM (it's in our codebase)

+ */

+#define APU_HAVE_SDBM   1

+#define APU_HAVE_NDBM   0

+#define APU_HAVE_GDBM   0

+#define APU_HAVE_DB     0

+

+#if APU_HAVE_DB

+#define APU_HAVE_DB_VERSION    UNKNOWN

+#endif

+

+#define APU_HAVE_PGSQL         0

+#define APU_HAVE_MYSQL         0

+#define APU_HAVE_SQLITE2       0

+#define APU_HAVE_SQLITE3       0

+#define APU_HAVE_ORACLE        0

+

+#define APU_HAVE_APR_ICONV     0

+#define APU_HAVE_ICONV         0

+#define APR_HAS_XLATE          (APU_HAVE_APR_ICONV || APU_HAVE_ICONV)

+

+#endif /* APU_H */

+#endif /* WIN32 */

diff --git a/include/apu_mac.h b/include/apu_mac.h
new file mode 100644
index 0000000..adaaee7
--- /dev/null
+++ b/include/apu_mac.h
@@ -0,0 +1,91 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * apu.h is generated from apu.h.in by configure -- do not edit apu.h
+ */
+/* @file apu.h
+ * @brief APR-Utility main file
+ */
+/**
+ * @defgroup APR_Util APR Utility Functions
+ * @{
+ */
+
+
+#ifndef APU_H
+#define APU_H
+
+/**
+ * APU_DECLARE_EXPORT is defined when building the APR-UTIL dynamic library,
+ * so that all public symbols are exported.
+ *
+ * APU_DECLARE_STATIC is defined when including the APR-UTIL public headers,
+ * to provide static linkage when the dynamic library may be unavailable.
+ *
+ * APU_DECLARE_STATIC and APU_DECLARE_EXPORT are left undefined when
+ * including the APR-UTIL public headers, to import and link the symbols from 
+ * the dynamic APR-UTIL library and assure appropriate indirection and calling
+ * conventions at compile time.
+ */
+
+/**
+ * The public APR-UTIL functions are declared with APU_DECLARE(), so they may
+ * use the most appropriate calling convention.  Public APR functions with 
+ * variable arguments must use APU_DECLARE_NONSTD().
+ *
+ * @deffunc APU_DECLARE(rettype) apr_func(args);
+ */
+#define APU_DECLARE(type)            type
+/**
+ * The public APR-UTIL functions using variable arguments are declared with 
+ * APU_DECLARE_NONSTD(), as they must use the C language calling convention.
+ *
+ * @deffunc APU_DECLARE_NONSTD(rettype) apr_func(args, ...);
+ */
+#define APU_DECLARE_NONSTD(type)     type
+/**
+ * The public APR-UTIL variables are declared with APU_DECLARE_DATA.
+ * This assures the appropriate indirection is invoked at compile time.
+ *
+ * @deffunc APU_DECLARE_DATA type apr_variable;
+ * @tip APU_DECLARE_DATA extern type apr_variable; syntax is required for
+ * declarations within headers to properly import the variable.
+ */
+#define APU_DECLARE_DATA
+/*
+ * we always have SDBM (it's in our codebase)
+ */
+#define APU_HAVE_SDBM   1
+#define APU_HAVE_GDBM   0
+#define APU_HAVE_NDBM   0
+#define APU_HAVE_DB     0
+
+#if APU_HAVE_DB
+#define APU_HAVE_DB_VERSION    0
+#endif /* APU_HAVE_DB */
+
+#define APU_HAVE_PGSQL         0
+#define APU_HAVE_MYSQL         0
+#define APU_HAVE_SQLITE3       1
+#define APU_HAVE_SQLITE2       0
+
+#define APU_HAVE_APR_ICONV     0
+#define APU_HAVE_ICONV         0 // Changed by ESL to suppres translation and linking to libiconv which is a problem for 10.4/10.5
+#define APR_HAS_XLATE          (APU_HAVE_APR_ICONV || APU_HAVE_ICONV)
+
+#endif /* APU_H */
+/** @} */
diff --git a/include/apu_version.h b/include/apu_version.h
new file mode 100644
index 0000000..f39d3b4
--- /dev/null
+++ b/include/apu_version.h
@@ -0,0 +1,134 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef APU_VERSION_H
+#define APU_VERSION_H
+
+/**
+ * @file apu_version.h
+ * @brief APR-util Versioning Interface
+ * 
+ * APR-util's Version
+ *
+ * There are several different mechanisms for accessing the version. There
+ * is a string form, and a set of numbers; in addition, there are constants
+ * which can be compiled into your application, and you can query the library
+ * being used for its actual version.
+ *
+ * Note that it is possible for an application to detect that it has been
+ * compiled against a different version of APU by use of the compile-time
+ * constants and the use of the run-time query function.
+ *
+ * APU version numbering follows the guidelines specified in:
+ *
+ *     http://apr.apache.org/versioning.html
+ */
+
+
+/* The numeric compile-time version constants. These constants are the
+ * authoritative version numbers for APU. 
+ */
+
+/** major version 
+ * Major API changes that could cause compatibility problems for older
+ * programs such as structure size changes.  No binary compatibility is
+ * possible across a change in the major version.
+ */
+#define APU_MAJOR_VERSION       1
+
+/** minor version
+ * Minor API changes that do not cause binary compatibility problems.
+ * Reset to 0 when upgrading APU_MAJOR_VERSION
+ */
+#define APU_MINOR_VERSION       2
+
+/** patch level 
+ * The Patch Level never includes API changes, simply bug fixes.
+ * Reset to 0 when upgrading APR_MINOR_VERSION
+ */
+#define APU_PATCH_VERSION      12
+
+/** 
+ * The symbol APU_IS_DEV_VERSION is only defined for internal,
+ * "development" copies of APU.  It is undefined for released versions
+ * of APU.
+ */
+/* #undef APU_IS_DEV_VERSION */
+
+
+#if defined(APU_IS_DEV_VERSION) || defined(DOXYGEN)
+/** Internal: string form of the "is dev" flag */
+#define APU_IS_DEV_STRING "-dev"
+#else
+#define APU_IS_DEV_STRING ""
+#endif
+
+
+#ifndef APU_STRINGIFY
+/** Properly quote a value as a string in the C preprocessor */
+#define APU_STRINGIFY(n) APU_STRINGIFY_HELPER(n)
+/** Helper macro for APU_STRINGIFY */
+#define APU_STRINGIFY_HELPER(n) #n
+#endif
+
+/** The formatted string of APU's version */
+#define APU_VERSION_STRING \
+     APU_STRINGIFY(APU_MAJOR_VERSION) "." \
+     APU_STRINGIFY(APU_MINOR_VERSION) "." \
+     APU_STRINGIFY(APU_PATCH_VERSION) \
+     APU_IS_DEV_STRING
+
+/** An alternative formatted string of APR's version */
+/* macro for Win32 .rc files using numeric csv representation */
+#define APU_VERSION_STRING_CSV APU_MAJOR_VERSION ##, \
+                             ##APU_MINOR_VERSION ##, \
+                             ##APU_PATCH_VERSION
+
+
+#ifndef APU_VERSION_ONLY
+
+/* The C language API to access the version at run time, 
+ * as opposed to compile time.  APU_VERSION_ONLY may be defined 
+ * externally when preprocessing apr_version.h to obtain strictly 
+ * the C Preprocessor macro declarations.
+ */
+
+#include "apr_version.h"
+
+#include "apu.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Return APR-util's version information information in a numeric form.
+ *
+ *  @param pvsn Pointer to a version structure for returning the version
+ *              information.
+ */
+APU_DECLARE(void) apu_version(apr_version_t *pvsn);
+
+/** Return APU's version information as a string. */
+APU_DECLARE(const char *) apu_version_string(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ndef APU_VERSION_ONLY */
+
+#endif /* ndef APU_VERSION_H */
diff --git a/include/apu_want.h b/include/apu_want.h
new file mode 100644
index 0000000..8bb56ce
--- /dev/null
+++ b/include/apu_want.h
@@ -0,0 +1,52 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apu.h"        /* configuration data */
+
+/**
+ * @file apu_want.h
+ * @brief APR Standard Headers Support
+ *
+ * <PRE>
+ * Features:
+ *
+ *   APU_WANT_DB:       <db.h>
+ *
+ * Typical usage:
+ *
+ *   #define APU_WANT_DB
+ *   #include "apu_want.h"
+ *
+ * The appropriate headers will be included.
+ *
+ * Note: it is safe to use this in a header (it won't interfere with other
+ *       headers' or source files' use of apu_want.h)
+ * </PRE>
+ */
+
+/* --------------------------------------------------------------------- */
+
+#ifdef APU_WANT_DB
+
+#if APU_HAVE_DB
+/* win32 note.. you will need to change this for db1 */
+#include <db.h>
+#endif
+
+#undef APU_WANT_DB
+#endif
+
+/* --------------------------------------------------------------------- */
diff --git a/include/apu_want.h.in b/include/apu_want.h.in
new file mode 100644
index 0000000..a296e5c
--- /dev/null
+++ b/include/apu_want.h.in
@@ -0,0 +1,51 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apu.h"        /* configuration data */
+
+/**
+ * @file apu_want.h
+ * @brief APR Standard Headers Support
+ *
+ * <PRE>
+ * Features:
+ *
+ *   APU_WANT_DB:       <@apu_db_header@>
+ *
+ * Typical usage:
+ *
+ *   #define APU_WANT_DB
+ *   #include "apu_want.h"
+ *
+ * The appropriate headers will be included.
+ *
+ * Note: it is safe to use this in a header (it won't interfere with other
+ *       headers' or source files' use of apu_want.h)
+ * </PRE>
+ */
+
+/* --------------------------------------------------------------------- */
+
+#ifdef APU_WANT_DB
+
+#if APU_HAVE_DB
+#include <@apu_db_header@>
+#endif
+
+#undef APU_WANT_DB
+#endif
+
+/* --------------------------------------------------------------------- */
diff --git a/include/apu_want.hnw b/include/apu_want.hnw
new file mode 100644
index 0000000..afdc9f7
--- /dev/null
+++ b/include/apu_want.hnw
@@ -0,0 +1,52 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apu.h"        /* configuration data */
+
+/**
+ * @file apu_want.h
+ * @brief APR Standard Headers Support
+ *
+ * <PRE>
+ * Features:
+ *
+ *   APU_WANT_DB:       <@apu_db_header>
+ *
+ * Typical usage:
+ *
+ *   #define APU_WANT_DB
+ *   #include "apu_want.h"
+ *
+ * The appropriate headers will be included.
+ *
+ * Note: it is safe to use this in a header (it won't interfere with other
+ *       headers' or source files' use of apu_want.h)
+ * </PRE>
+ */
+
+/* --------------------------------------------------------------------- */
+
+#ifdef APU_WANT_DB
+
+#if APU_HAVE_DB
+/* win32 note.. you will need to change this for db1 */
+#include <db.h>
+#endif
+
+#undef APU_WANT_DB
+#endif
+
+/* --------------------------------------------------------------------- */
diff --git a/include/apu_want.hw b/include/apu_want.hw
new file mode 100644
index 0000000..8bb56ce
--- /dev/null
+++ b/include/apu_want.hw
@@ -0,0 +1,52 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apu.h"        /* configuration data */
+
+/**
+ * @file apu_want.h
+ * @brief APR Standard Headers Support
+ *
+ * <PRE>
+ * Features:
+ *
+ *   APU_WANT_DB:       <db.h>
+ *
+ * Typical usage:
+ *
+ *   #define APU_WANT_DB
+ *   #include "apu_want.h"
+ *
+ * The appropriate headers will be included.
+ *
+ * Note: it is safe to use this in a header (it won't interfere with other
+ *       headers' or source files' use of apu_want.h)
+ * </PRE>
+ */
+
+/* --------------------------------------------------------------------- */
+
+#ifdef APU_WANT_DB
+
+#if APU_HAVE_DB
+/* win32 note.. you will need to change this for db1 */
+#include <db.h>
+#endif
+
+#undef APU_WANT_DB
+#endif
+
+/* --------------------------------------------------------------------- */
diff --git a/include/apu_want_mac.h b/include/apu_want_mac.h
new file mode 100644
index 0000000..25f1100
--- /dev/null
+++ b/include/apu_want_mac.h
@@ -0,0 +1,51 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apu.h"        /* configuration data */
+
+/**
+ * @file apu_want.h
+ * @brief APR Standard Headers Support
+ *
+ * <PRE>
+ * Features:
+ *
+ *   APU_WANT_DB:       <db.h>
+ *
+ * Typical usage:
+ *
+ *   #define APU_WANT_DB
+ *   #include "apu_want.h"
+ *
+ * The appropriate headers will be included.
+ *
+ * Note: it is safe to use this in a header (it won't interfere with other
+ *       headers' or source files' use of apu_want.h)
+ * </PRE>
+ */
+
+/* --------------------------------------------------------------------- */
+
+#ifdef APU_WANT_DB
+
+#if APU_HAVE_DB
+#include <db.h>
+#endif
+
+#undef APU_WANT_DB
+#endif
+
+/* --------------------------------------------------------------------- */
diff --git a/include/private/apr_dbd_internal.h b/include/private/apr_dbd_internal.h
new file mode 100644
index 0000000..1769d46
--- /dev/null
+++ b/include/private/apr_dbd_internal.h
@@ -0,0 +1,257 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* Overview of what this is and does:
+ * http://www.apache.org/~niq/dbd.html
+ */
+
+#ifndef APR_DBD_INTERNAL_H
+#define APR_DBD_INTERNAL_H
+
+#include <stdarg.h>
+
+#include "apr_dbd.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct apr_dbd_driver_t {
+    /** name */
+    const char *name;
+
+    /** init: allow driver to perform once-only initialisation.
+     *  Called once only.  May be NULL
+     */
+    void (*init)(apr_pool_t *pool);
+
+    /** native_handle: return the native database handle of the underlying db
+     *
+     * @param handle - apr_dbd handle
+     * @return - native handle
+     */
+    void *(*native_handle)(apr_dbd_t *handle);
+
+    /** open: obtain a database connection from the server rec.
+     *  Must be explicitly closed when you're finished with it.
+     *  WARNING: only use this when you need a connection with
+     *  a lifetime other than a request
+     *
+     *  @param pool - a pool to use for error messages (if any).
+     *  @param s - server rec managing the underlying connection/pool.
+     *  @return database handle, or NULL on error.
+     */
+    apr_dbd_t *(*open)(apr_pool_t *pool, const char *params);
+
+    /** check_conn: check status of a database connection
+     *
+     *  @param pool - a pool to use for error messages (if any).
+     *  @param handle - the connection to check
+     *  @return APR_SUCCESS or error
+     */
+    apr_status_t (*check_conn)(apr_pool_t *pool, apr_dbd_t *handle);
+
+    /** close: close/release a connection obtained from open()
+     *
+     *  @param handle - the connection to release
+     *  @return APR_SUCCESS or error
+     */
+    apr_status_t (*close)(apr_dbd_t *handle);
+
+    /** set_dbname: select database name.  May be a no-op if not supported.
+     *
+     *  @param pool - working pool
+     *  @param handle - the connection
+     *  @param name - the database to select
+     *  @return 0 for success or error code
+     */
+    int (*set_dbname)(apr_pool_t* pool, apr_dbd_t *handle, const char *name);
+
+    /** transaction: start a transaction.  May be a no-op.
+     *
+     *  @param pool - a pool to use for error messages (if any).
+     *  @param handle - the connection
+     *  @param transaction - ptr to a transaction.  May be null on entry
+     *  @return 0 for success or error code
+     */
+    int (*start_transaction)(apr_pool_t *pool, apr_dbd_t *handle,
+                             apr_dbd_transaction_t **trans);
+
+    /** end_transaction: end a transaction
+     *  (commit on success, rollback on error).
+     *  May be a no-op.
+     *
+     *  @param transaction - the transaction.
+     *  @return 0 for success or error code
+     */
+    int (*end_transaction)(apr_dbd_transaction_t *trans);
+
+    /** query: execute an SQL query that doesn't return a result set
+     *
+     *  @param handle - the connection
+     *  @param nrows - number of rows affected.
+     *  @param statement - the SQL statement to execute
+     *  @return 0 for success or error code
+     */
+    int (*query)(apr_dbd_t *handle, int *nrows, const char *statement);
+
+    /** select: execute an SQL query that returns a result set
+     *
+     *  @param pool - pool to allocate the result set
+     *  @param handle - the connection
+     *  @param res - pointer to result set pointer.  May point to NULL on entry
+     *  @param statement - the SQL statement to execute
+     *  @param random - 1 to support random access to results (seek any row);
+     *                  0 to support only looping through results in order
+     *                    (async access - faster)
+     *  @return 0 for success or error code
+     */
+    int (*select)(apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_results_t **res,
+                  const char *statement, int random);
+
+    /** num_cols: get the number of columns in a results set
+     *
+     *  @param res - result set.
+     *  @return number of columns
+     */
+    int (*num_cols)(apr_dbd_results_t *res);
+
+    /** num_tuples: get the number of rows in a results set
+     *  of a synchronous select
+     *
+     *  @param res - result set.
+     *  @return number of rows, or -1 if the results are asynchronous
+     */
+    int (*num_tuples)(apr_dbd_results_t *res);
+
+    /** get_row: get a row from a result set
+     *
+     *  @param pool - pool to allocate the row
+     *  @param res - result set pointer
+     *  @param row - pointer to row pointer.  May point to NULL on entry
+     *  @param rownum - row number, or -1 for "next row".  Ignored if random
+     *                  access is not supported.
+     *  @return 0 for success, -1 for rownum out of range or data finished
+     */
+    int (*get_row)(apr_pool_t *pool, apr_dbd_results_t *res,
+                   apr_dbd_row_t **row, int rownum);
+  
+    /** get_entry: get an entry from a row
+     *
+     *  @param row - row pointer
+     *  @param col - entry number
+     *  @param val - entry to fill
+     *  @return 0 for success, -1 for no data, +1 for general error
+     */
+    const char* (*get_entry)(const apr_dbd_row_t *row, int col);
+  
+    /** error: get current error message (if any)
+     *
+     *  @param handle - the connection
+     *  @param errnum - error code from operation that returned an error
+     *  @return the database current error message, or message for errnum
+     *          (implementation-dependent whether errnum is ignored)
+     */
+    const char *(*error)(apr_dbd_t *handle, int errnum);
+  
+    /** escape: escape a string so it is safe for use in query/select
+     *
+     *  @param pool - pool to alloc the result from
+     *  @param string - the string to escape
+     *  @param handle - the connection
+     *  @return the escaped, safe string
+     */
+    const char *(*escape)(apr_pool_t *pool, const char *string,
+                          apr_dbd_t *handle);
+  
+    /** prepare: prepare a statement
+     *
+     *  @param pool - pool to alloc the result from
+     *  @param handle - the connection
+     *  @param query - the SQL query
+     *  @param label - A label for the prepared statement.
+     *                 use NULL for temporary prepared statements
+     *                 (eg within a Request in httpd)
+     *  @param statement - statement to prepare.  May point to null on entry.
+     *  @return 0 for success or error code
+     */
+    int (*prepare)(apr_pool_t *pool, apr_dbd_t *handle, const char *query,
+                   const char *label, apr_dbd_prepared_t **statement);
+
+    /** pvquery: query using a prepared statement + args
+     *
+     *  @param pool - working pool
+     *  @param handle - the connection
+     *  @param nrows - number of rows affected.
+     *  @param statement - the prepared statement to execute
+     *  @param args - args to prepared statement
+     *  @return 0 for success or error code
+     */
+    int (*pvquery)(apr_pool_t *pool, apr_dbd_t *handle, int *nrows,
+                   apr_dbd_prepared_t *statement, va_list args);
+
+    /** pvselect: select using a prepared statement + args
+     *
+     *  @param pool - working pool
+     *  @param handle - the connection
+     *  @param res - pointer to query results.  May point to NULL on entry
+     *  @param statement - the prepared statement to execute
+     *  @param random - Whether to support random-access to results
+     *  @param args - args to prepared statement
+     *  @return 0 for success or error code
+     */
+    int (*pvselect)(apr_pool_t *pool, apr_dbd_t *handle,
+                    apr_dbd_results_t **res,
+                    apr_dbd_prepared_t *statement, int random, va_list args);
+
+    /** pquery: query using a prepared statement + args
+     *
+     *  @param pool - working pool
+     *  @param handle - the connection
+     *  @param nrows - number of rows affected.
+     *  @param statement - the prepared statement to execute
+     *  @param nargs - number of args to prepared statement
+     *  @param args - args to prepared statement
+     *  @return 0 for success or error code
+     */
+    int (*pquery)(apr_pool_t *pool, apr_dbd_t *handle, int *nrows,
+                  apr_dbd_prepared_t *statement, int nargs,
+                  const char **args);
+
+    /** pselect: select using a prepared statement + args
+     *
+     *  @param pool - working pool
+     *  @param handle - the connection
+     *  @param res - pointer to query results.  May point to NULL on entry
+     *  @param statement - the prepared statement to execute
+     *  @param random - Whether to support random-access to results
+     *  @param nargs - number of args to prepared statement
+     *  @param args - args to prepared statement
+     *  @return 0 for success or error code
+     */
+    int (*pselect)(apr_pool_t *pool, apr_dbd_t *handle,
+                   apr_dbd_results_t **res, apr_dbd_prepared_t *statement,
+                   int random, int nargs, const char **args);
+
+
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/include/private/apr_dbm_private.h b/include/private/apr_dbm_private.h
new file mode 100644
index 0000000..c598752
--- /dev/null
+++ b/include/private/apr_dbm_private.h
@@ -0,0 +1,125 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef APR_DBM_PRIVATE_H
+#define APR_DBM_PRIVATE_H
+
+#include "apr.h"
+#include "apr_errno.h"
+#include "apr_pools.h"
+#include "apr_dbm.h"
+#include "apr_file_io.h"
+
+#include "apu.h"
+
+/* ### for now, include the DBM selection; this will go away once we start
+   ### building and linking all of the DBMs at once. */
+#include "apu_select_dbm.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @internal */
+
+/**
+ * Most DBM libraries take a POSIX mode for creating files.  Don't trust
+ * the mode_t type, some platforms may not support it, int is safe.
+ */
+APU_DECLARE(int) apr_posix_perms2mode(apr_fileperms_t perm);
+
+/**
+ * Structure to describe the operations of the DBM
+ */
+typedef struct {
+    /** The name of the DBM Type */
+    const char *name;
+
+    /** Open the DBM */
+    apr_status_t (*open)(apr_dbm_t **pdb, const char *pathname,
+                         apr_int32_t mode, apr_fileperms_t perm,
+                         apr_pool_t *pool);
+
+    /** Close the DBM */
+    void (*close)(apr_dbm_t *dbm);
+
+    /** Fetch a dbm record value by key */
+    apr_status_t (*fetch)(apr_dbm_t *dbm, apr_datum_t key,
+                                   apr_datum_t * pvalue);
+
+    /** Store a dbm record value by key */
+    apr_status_t (*store)(apr_dbm_t *dbm, apr_datum_t key, apr_datum_t value);
+
+    /** Delete a dbm record value by key */
+    apr_status_t (*del)(apr_dbm_t *dbm, apr_datum_t key);
+
+    /** Search for a key within the dbm */
+    int (*exists)(apr_dbm_t *dbm, apr_datum_t key);
+
+    /** Retrieve the first record key from a dbm */
+    apr_status_t (*firstkey)(apr_dbm_t *dbm, apr_datum_t * pkey);
+
+    /** Retrieve the next record key from a dbm */
+    apr_status_t (*nextkey)(apr_dbm_t *dbm, apr_datum_t * pkey);
+
+    /** Proactively toss any memory associated with the apr_datum_t. */
+    void (*freedatum)(apr_dbm_t *dbm, apr_datum_t data);
+
+    /** Get the names that the DBM will use for a given pathname. */
+    void (*getusednames)(apr_pool_t *pool,
+                         const char *pathname,
+                         const char **used1,
+                         const char **used2);
+
+} apr_dbm_type_t;
+
+
+/**
+ * The actual DBM
+ */
+struct apr_dbm_t
+{ 
+    /** Associated pool */
+    apr_pool_t *pool;
+
+    /** pointer to DB Implementation Specific data */
+    void *file;
+
+    /** Current integer error code */
+    int errcode;
+    /** Current string error code */
+    const char *errmsg;
+
+    /** the type of DBM */
+    const apr_dbm_type_t *type;
+};
+
+
+/* Declare all of the builtin DBM providers */
+APU_DECLARE_DATA extern const apr_dbm_type_t apr_dbm_type_sdbm;
+APU_DECLARE_DATA extern const apr_dbm_type_t apr_dbm_type_gdbm;
+APU_DECLARE_DATA extern const apr_dbm_type_t apr_dbm_type_ndbm;
+APU_DECLARE_DATA extern const apr_dbm_type_t apr_dbm_type_db1;
+APU_DECLARE_DATA extern const apr_dbm_type_t apr_dbm_type_db2;
+APU_DECLARE_DATA extern const apr_dbm_type_t apr_dbm_type_db3;
+APU_DECLARE_DATA extern const apr_dbm_type_t apr_dbm_type_db4;
+APU_DECLARE_DATA extern const apr_dbm_type_t apr_dbm_type_db;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* APR_DBM_PRIVATE_H */
diff --git a/include/private/apu_config.h b/include/private/apu_config.h
new file mode 100644
index 0000000..72cea51
--- /dev/null
+++ b/include/private/apu_config.h
@@ -0,0 +1,39 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* 
+ * Note: This is a Windows specific version of apu_config.hw. It is copied
+ * as apu_config.h at the start of a Windows build.
+ */
+
+#ifdef WIN32
+
+#ifndef APU_CONFIG_H
+#define APU_CONFIG_H
+
+/*
+ * Windows does not have GDBM, and we always use the bundled (new) Expat
+ */
+
+/* Define if you have the gdbm library (-lgdbm).  */
+/* #undef HAVE_LIBGDBM */
+
+/* define if Expat 1.0 or 1.1 was found */
+/* #undef APR_HAVE_OLD_EXPAT */
+
+
+#endif /* APU_CONFIG_H */
+#endif /* WIN32 */
diff --git a/include/private/apu_config.h.in b/include/private/apu_config.h.in
new file mode 100644
index 0000000..1c65b91
--- /dev/null
+++ b/include/private/apu_config.h.in
@@ -0,0 +1,115 @@
+/* include/private/apu_config.h.in.  Generated from configure.in by autoheader.  */
+
+/* Define if the system crypt() function is threadsafe */
+#undef APU_CRYPT_THREADSAFE
+
+/* Define if the inbuf parm to iconv() is const char ** */
+#undef APU_ICONV_INBUF_CONST
+
+/* Define if crypt_r has uses CRYPTD */
+#undef CRYPT_R_CRYPTD
+
+/* Define if crypt_r uses struct crypt_data */
+#undef CRYPT_R_STRUCT_CRYPT_DATA
+
+/* Define if CODESET is defined in langinfo.h */
+#undef HAVE_CODESET
+
+/* Define to 1 if you have the `crypt_r' function. */
+#undef HAVE_CRYPT_R
+
+/* Define if expat.h is available */
+#undef HAVE_EXPAT_H
+
+/* Define to 1 if you have the <iconv.h> header file. */
+#undef HAVE_ICONV_H
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <langinfo.h> header file. */
+#undef HAVE_LANGINFO_H
+
+/* Define to 1 if you have the <lber.h> header file. */
+#undef HAVE_LBER_H
+
+/* Defined if ldap.h is present */
+#undef HAVE_LDAP_H
+
+/* Define to 1 if you have the <ldap_ssl.h> header file. */
+#undef HAVE_LDAP_SSL_H
+
+/* Define to 1 if you have the `lber' library (-llber). */
+#undef HAVE_LIBLBER
+
+/* Define to 1 if you have the <libpq-fe.h> header file. */
+#undef HAVE_LIBPQ_FE_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the <mysql.h> header file. */
+#undef HAVE_MYSQL_H
+
+/* Define to 1 if you have the <mysql/mysql.h> header file. */
+#undef HAVE_MYSQL_MYSQL_H
+
+/* Define to 1 if you have the `nl_langinfo' function. */
+#undef HAVE_NL_LANGINFO
+
+/* Define to 1 if you have the <postgresql/libpq-fe.h> header file. */
+#undef HAVE_POSTGRESQL_LIBPQ_FE_H
+
+/* Define to 1 if you have the <sqlite3.h> header file. */
+#undef HAVE_SQLITE3_H
+
+/* Define to 1 if you have the <sqlite.h> header file. */
+#undef HAVE_SQLITE_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define if xmlparse/xmlparse.h is available */
+#undef HAVE_XMLPARSE_XMLPARSE_H
+
+/* Define if xmltok/xmlparse.h is available */
+#undef HAVE_XMLTOK_XMLPARSE_H
+
+/* Define if xml/xmlparse.h is available */
+#undef HAVE_XML_XMLPARSE_H
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
diff --git a/include/private/apu_config.hnw b/include/private/apu_config.hnw
new file mode 100644
index 0000000..a92da1b
--- /dev/null
+++ b/include/private/apu_config.hnw
@@ -0,0 +1,50 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more

+ * contributor license agreements.  See the NOTICE file distributed with

+ * this work for additional information regarding copyright ownership.

+ * The ASF licenses this file to You under the Apache License, Version 2.0

+ * (the "License"); you may not use this file except in compliance with

+ * the License.  You may obtain a copy of the License at

+ *

+ *     http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing, software

+ * distributed under the License is distributed on an "AS IS" BASIS,

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+ * See the License for the specific language governing permissions and

+ * limitations under the License.

+ */

+

+/* 

+ * Note: This is a NetWare specific version of apu_config.hnw. It is copied

+ * as apu_config.h at the start of a NetWare build.

+ */

+

+#ifdef NETWARE

+

+#ifndef APU_CONFIG_H

+#define APU_CONFIG_H

+

+/*

+ * NetWare does not have GDBM, and we always use the bundled (new) Expat

+ */

+

+/* Define if you have the gdbm library (-lgdbm). */

+/* #undef HAVE_LIBGDBM */

+

+/* define if Expat 1.0 or 1.1 was found */

+/* #undef APR_HAVE_OLD_EXPAT */

+

+/* NetWare uses its own ICONV implementation. */

+#define HAVE_ICONV_H 1

+

+/*

+ * check for newer NDKs which use now correctly 'const char*' with iconv.

+ */

+#include <ndkvers.h>

+#if (CURRENT_NDK_THRESHOLD >= 705110000)

+#define APU_ICONV_INBUF_CONST

+#endif

+

+#endif /* APU_CONFIG_H */

+#endif /* NETWARE */

+

diff --git a/include/private/apu_config.hw b/include/private/apu_config.hw
new file mode 100644
index 0000000..72cea51
--- /dev/null
+++ b/include/private/apu_config.hw
@@ -0,0 +1,39 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* 
+ * Note: This is a Windows specific version of apu_config.hw. It is copied
+ * as apu_config.h at the start of a Windows build.
+ */
+
+#ifdef WIN32
+
+#ifndef APU_CONFIG_H
+#define APU_CONFIG_H
+
+/*
+ * Windows does not have GDBM, and we always use the bundled (new) Expat
+ */
+
+/* Define if you have the gdbm library (-lgdbm).  */
+/* #undef HAVE_LIBGDBM */
+
+/* define if Expat 1.0 or 1.1 was found */
+/* #undef APR_HAVE_OLD_EXPAT */
+
+
+#endif /* APU_CONFIG_H */
+#endif /* WIN32 */
diff --git a/include/private/apu_config_mac.h b/include/private/apu_config_mac.h
new file mode 100644
index 0000000..fd854cd
--- /dev/null
+++ b/include/private/apu_config_mac.h
@@ -0,0 +1,116 @@
+/* include/private/apu_config.h.  Generated from apu_config.h.in by configure.  */
+/* include/private/apu_config.h.in.  Generated from configure.in by autoheader.  */
+
+/* Define if the system crypt() function is threadsafe */
+/* #undef APU_CRYPT_THREADSAFE */
+
+/* Define if the inbuf parm to iconv() is const char ** */
+/* #undef APU_ICONV_INBUF_CONST */
+
+/* Define if crypt_r has uses CRYPTD */
+/* #undef CRYPT_R_CRYPTD */
+
+/* Define if crypt_r uses struct crypt_data */
+/* #undef CRYPT_R_STRUCT_CRYPT_DATA */
+
+/* Define if CODESET is defined in langinfo.h */
+#define HAVE_CODESET 1
+
+/* Define to 1 if you have the `crypt_r' function. */
+/* #undef HAVE_CRYPT_R */
+
+/* Define if expat.h is available */
+#define HAVE_EXPAT_H 1
+
+/* Define to 1 if you have the <iconv.h> header file. */
+#define HAVE_ICONV_H 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the <langinfo.h> header file. */
+#define HAVE_LANGINFO_H 1
+
+/* Define to 1 if you have the <lber.h> header file. */
+/* #undef HAVE_LBER_H */
+
+/* Defined if ldap.h is present */
+/* #undef HAVE_LDAP_H */
+
+/* Define to 1 if you have the <ldap_ssl.h> header file. */
+/* #undef HAVE_LDAP_SSL_H */
+
+/* Define to 1 if you have the `lber' library (-llber). */
+/* #undef HAVE_LIBLBER */
+
+/* Define to 1 if you have the <libpq-fe.h> header file. */
+/* #undef HAVE_LIBPQ_FE_H */
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the <mysql.h> header file. */
+/* #undef HAVE_MYSQL_H */
+
+/* Define to 1 if you have the <mysql/mysql.h> header file. */
+/* #undef HAVE_MYSQL_MYSQL_H */
+
+/* Define to 1 if you have the `nl_langinfo' function. */
+#define HAVE_NL_LANGINFO 1
+
+/* Define to 1 if you have the <postgresql/libpq-fe.h> header file. */
+/* #undef HAVE_POSTGRESQL_LIBPQ_FE_H */
+
+/* Define to 1 if you have the <sqlite3.h> header file. */
+#define HAVE_SQLITE3_H 1
+
+/* Define to 1 if you have the <sqlite.h> header file. */
+/* #undef HAVE_SQLITE_H */
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define if xmlparse/xmlparse.h is available */
+/* #undef HAVE_XMLPARSE_XMLPARSE_H */
+
+/* Define if xmltok/xmlparse.h is available */
+/* #undef HAVE_XMLTOK_XMLPARSE_H */
+
+/* Define if xml/xmlparse.h is available */
+/* #undef HAVE_XML_XMLPARSE_H */
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT ""
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME ""
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING ""
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION ""
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
diff --git a/include/private/apu_select_dbm.h b/include/private/apu_select_dbm.h
new file mode 100644
index 0000000..97c7b6c
--- /dev/null
+++ b/include/private/apu_select_dbm.h
@@ -0,0 +1,28 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef APU_SELECT_DBM_H
+#define APU_SELECT_DBM_H
+
+/*
+** The following macros control what features APRUTIL will use
+*/
+#define APU_USE_SDBM    1
+#define APU_USE_GDBM    0
+#define APU_USE_NDBM    0
+#define APU_USE_DB      0
+
+#endif	/* !APU_SELECT_DBM_H */
diff --git a/include/private/apu_select_dbm.h.in b/include/private/apu_select_dbm.h.in
new file mode 100644
index 0000000..b69aec0
--- /dev/null
+++ b/include/private/apu_select_dbm.h.in
@@ -0,0 +1,28 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef APU_SELECT_DBM_H
+#define APU_SELECT_DBM_H
+
+/*
+** The following macros control what features APRUTIL will use
+*/
+#define APU_USE_SDBM    @apu_use_sdbm@
+#define APU_USE_NDBM    @apu_use_ndbm@
+#define APU_USE_GDBM    @apu_use_gdbm@
+#define APU_USE_DB      @apu_use_db@
+
+#endif	/* !APU_SELECT_DBM_H */
diff --git a/include/private/apu_select_dbm.hnw b/include/private/apu_select_dbm.hnw
new file mode 100644
index 0000000..baa6c14
--- /dev/null
+++ b/include/private/apu_select_dbm.hnw
@@ -0,0 +1,28 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more

+ * contributor license agreements.  See the NOTICE file distributed with

+ * this work for additional information regarding copyright ownership.

+ * The ASF licenses this file to You under the Apache License, Version 2.0

+ * (the "License"); you may not use this file except in compliance with

+ * the License.  You may obtain a copy of the License at

+ *

+ *     http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing, software

+ * distributed under the License is distributed on an "AS IS" BASIS,

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+ * See the License for the specific language governing permissions and

+ * limitations under the License.

+ */

+

+#ifndef APU_SELECT_DBM_H

+#define APU_SELECT_DBM_H

+

+/*

+** The following macros control what features APRUTIL will use

+*/

+#define APU_USE_SDBM    1

+#define APU_USE_GDBM    0

+#define APU_USE_NDBM    0

+#define APU_USE_DB      0

+

+#endif	/* !APU_SELECT_DBM_H */

diff --git a/include/private/apu_select_dbm.hw b/include/private/apu_select_dbm.hw
new file mode 100644
index 0000000..97c7b6c
--- /dev/null
+++ b/include/private/apu_select_dbm.hw
@@ -0,0 +1,28 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef APU_SELECT_DBM_H
+#define APU_SELECT_DBM_H
+
+/*
+** The following macros control what features APRUTIL will use
+*/
+#define APU_USE_SDBM    1
+#define APU_USE_GDBM    0
+#define APU_USE_NDBM    0
+#define APU_USE_DB      0
+
+#endif	/* !APU_SELECT_DBM_H */
diff --git a/include/private/apu_select_dbm_mac.h b/include/private/apu_select_dbm_mac.h
new file mode 100644
index 0000000..1ac89d5
--- /dev/null
+++ b/include/private/apu_select_dbm_mac.h
@@ -0,0 +1,28 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef APU_SELECT_DBM_H
+#define APU_SELECT_DBM_H
+
+/*
+** The following macros control what features APRUTIL will use
+*/
+#define APU_USE_SDBM    1
+#define APU_USE_NDBM    0
+#define APU_USE_GDBM    0
+#define APU_USE_DB      0
+
+#endif	/* !APU_SELECT_DBM_H */
diff --git a/ldap/NWGNUmakefile b/ldap/NWGNUmakefile
new file mode 100644
index 0000000..a0ecc3b
--- /dev/null
+++ b/ldap/NWGNUmakefile
@@ -0,0 +1,260 @@
+#
+# Declare the sub-directories to be built here
+#
+
+SUBDIRS = \
+	$(EOLIST) 
+
+#
+# Get the 'head' of the build environment.  This includes default targets and
+# paths to tools
+#
+
+include $(APR_WORK)\build\NWGNUhead.inc
+
+#
+# build this level's files
+
+#
+# Make sure all needed macro's are defined
+#
+
+#
+# These directories will be at the beginning of the include list, followed by
+# INCDIRS
+#
+XINCDIRS	+= \
+			$(APR)/include \
+			$(APR)/include/arch/NetWare \
+			$(APRUTIL)/include \
+			$(LDAPSDK)/inc \
+			$(EOLIST)
+
+#
+# These flags will come after CFLAGS
+#
+XCFLAGS		+= \
+			$(EOLIST)
+
+#
+# These defines will come after DEFINES
+#
+XDEFINES	+= \
+			$(EOLIST)
+
+#
+#LDAP client requires the use of Winsock
+#
+ifdef USE_STDSOCKETS
+XDEFINES += -DUSE_WINSOCK \
+			$(EOLIST)
+endif
+
+#
+# These flags will be added to the link.opt file
+#
+XLFLAGS		+= \
+			$(EOLIST)
+
+#
+# These values will be appended to the correct variables based on the value of
+# RELEASE
+#
+ifeq "$(RELEASE)" "debug"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+ifeq "$(RELEASE)" "noopt"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+ifeq "$(RELEASE)" "release"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+#
+# These are used by the link target if an NLM is being generated
+# This is used by the link 'name' directive to name the nlm.  If left blank
+# TARGET_nlm (see below) will be used.
+#
+NLM_NAME		= 
+
+#
+# This is used by the link '-desc ' directive. 
+# If left blank, NLM_NAME will be used.
+#
+NLM_DESCRIPTION	= 
+
+#
+# This is used by the '-threadname' directive.  If left blank,
+# NLM_NAME Thread will be used.
+#
+NLM_THREAD_NAME	= 
+#
+# If this is specified, it will override VERSION value in 
+# $(APR_WORK)\build\NWGNUenvironment.inc
+#
+NLM_VERSION		=
+
+#
+# If this is specified, it will override the default of 64K
+#
+NLM_STACK_SIZE	= 
+
+#
+# If this is specified it will be used by the link '-entry' directive
+#
+NLM_ENTRY_SYM	= 
+
+#
+# If this is specified it will be used by the link '-exit' directive
+#
+NLM_EXIT_SYM	= 
+
+#
+# If this is specified it will be used by the link '-check' directive
+#
+NLM_CHECK_SYM	=
+
+#
+# If this is specified it will be used by the link '-flags' directive
+#
+NLM_FLAGS		=
+ 
+#
+# If this is specified it will be linked in with the XDCData option in the def 
+# file instead of the default of $(APR)/misc/netware/apache.xdc.  XDCData can 
+# be disabled by setting APACHE_UNIPROC in the environment
+#
+XDCDATA         = 
+
+#
+# Declare all target files (you must add your files here)
+#
+
+#
+# If there is an NLM target, put it here
+#
+TARGET_nlm = \
+	$(EOLIST)
+
+#
+# If there is an LIB target, put it here
+#
+TARGET_lib = \
+	$(OBJDIR)/apuldap.lib \
+	$(EOLIST)
+
+#
+# These are the OBJ files needed to create the NLM target above.
+# Paths must all use the '/' character
+#
+FILES_nlm_objs = \
+	$(EOLIST)
+
+#
+# These are the LIB files needed to create the NLM target above.
+# These will be added as a library command in the link.opt file.
+#
+FILES_nlm_libs = \
+	$(EOLIST)
+
+#
+# These are the modules that the above NLM target depends on to load.
+# These will be added as a module command in the link.opt file.
+#
+FILES_nlm_modules = \
+	$(EOLIST)
+
+#
+# If the nlm has a msg file, put it's path here
+#
+FILE_nlm_msg =
+ 
+#
+# If the nlm has a hlp file put it's path here
+#
+FILE_nlm_hlp =
+
+#
+# If this is specified, it will override the default copyright.
+#
+FILE_nlm_copyright =
+
+#
+# Any additional imports go here
+#
+FILES_nlm_Ximports = \
+	$(EOLIST)
+ 
+#   
+# Any symbols exported to here
+#
+FILES_nlm_exports = \
+	$(EOLIST)
+	
+#   
+# These are the OBJ files needed to create the LIB target above.
+# Paths must all use the '/' character
+#
+FILES_lib_objs = \
+	$(OBJDIR)/apr_ldap_init.o \
+	$(OBJDIR)/apr_ldap_option.o \
+	$(OBJDIR)/apr_ldap_url.o \
+	$(EOLIST)
+
+#
+# implement targets and dependancies (leave this section alone)
+#
+
+libs :: $(OBJDIR) $(TARGET_lib)
+
+nlms :: libs $(TARGET_nlm)
+
+#
+# Updated this target to create necessary directories and copy files to the 
+# correct place.  (See $(APR_WORK)\build\NWGNUhead.inc for examples)
+#
+install :: nlms FORCE
+
+#
+# Any specialized rules here
+#
+
+#
+# Include the 'tail' makefile that has targets that depend on variables defined
+# in this makefile
+#
+
+include $(APR_WORK)\build\NWGNUtail.inc
+
diff --git a/ldap/apr_ldap_init.c b/ldap/apr_ldap_init.c
new file mode 100644
index 0000000..767faad
--- /dev/null
+++ b/ldap/apr_ldap_init.c
@@ -0,0 +1,189 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * apr_ldap_init.c: LDAP v2/v3 common initialise
+ * 
+ * Original code from auth_ldap module for Apache v1.3:
+ * Copyright 1998, 1999 Enbridge Pipelines Inc. 
+ * Copyright 1999-2001 Dave Carrigan
+ */
+
+#include "apr.h"
+#include "apu.h"
+#include "apr_ldap.h"
+#include "apr_errno.h"
+#include "apr_pools.h"
+#include "apr_strings.h"
+
+#if APR_HAS_LDAP
+
+/**
+ * APR LDAP SSL Initialise function
+ *
+ * This function initialises SSL on the underlying LDAP toolkit
+ * if this is necessary.
+ *
+ * If a CA certificate is provided, this is set, however the setting
+ * of certificates via this method has been deprecated and will be removed in
+ * APR v2.0.
+ *
+ * The apr_ldap_set_option() function with the APR_LDAP_OPT_TLS_CERT option
+ * should be used instead to set certificates.
+ *
+ * If SSL support is not available on this platform, or a problem
+ * was encountered while trying to set the certificate, the function
+ * will return APR_EGENERAL. Further LDAP specific error information
+ * can be found in result_err.
+ */
+APU_DECLARE(int) apr_ldap_ssl_init(apr_pool_t *pool,
+                                   const char *cert_auth_file,
+                                   int cert_file_type,
+                                   apr_ldap_err_t **result_err) {
+
+    apr_ldap_err_t *result = (apr_ldap_err_t *)apr_pcalloc(pool, sizeof(apr_ldap_err_t));
+    *result_err = result;
+
+#if APR_HAS_LDAP_SSL /* compiled with ssl support */
+
+    /* Novell */
+#if APR_HAS_NOVELL_LDAPSDK
+    ldapssl_client_init(NULL, NULL);
+#endif
+
+    /* if a certificate was specified, set it */
+    if (cert_auth_file) {
+        apr_ldap_opt_tls_cert_t *cert = (apr_ldap_opt_tls_cert_t *)apr_pcalloc(pool, sizeof(apr_ldap_opt_tls_cert_t));
+        cert->type = cert_file_type;
+        cert->path = cert_auth_file;
+        return apr_ldap_set_option(pool, NULL, APR_LDAP_OPT_TLS_CERT, (void *)cert, result_err);
+    }
+
+#else  /* not compiled with SSL Support */
+    if (cert_auth_file) {
+        result->reason = "LDAP: Attempt to set certificate store failed. "
+                         "Not built with SSL support";
+        result->rc = -1;
+    }
+#endif /* APR_HAS_LDAP_SSL */
+
+    if (result->rc != -1) {
+        result->msg = ldap_err2string(result->rc);
+    }
+
+    if (LDAP_SUCCESS != result->rc) {
+        return APR_EGENERAL;
+    }
+
+    return APR_SUCCESS;
+
+} 
+
+
+/**
+ * APR LDAP SSL De-Initialise function
+ *
+ * This function tears down any SSL certificate setup previously
+ * set using apr_ldap_ssl_init(). It should be called to clean
+ * up if a graceful restart of a service is attempted.
+ *
+ * This function only does anything on Netware.
+ *
+ * @todo currently we do not check whether apr_ldap_ssl_init()
+ * has been called first - should we?
+ */
+APU_DECLARE(int) apr_ldap_ssl_deinit(void) {
+
+#if APR_HAS_LDAP_SSL && APR_HAS_LDAPSSL_CLIENT_DEINIT
+    ldapssl_client_deinit();
+#endif
+    return APR_SUCCESS;
+
+}
+
+
+/**
+ * APR LDAP initialise function
+ *
+ * This function is responsible for initialising an LDAP
+ * connection in a toolkit independant way. It does the
+ * job of ldap_init() from the C api.
+ *
+ * It handles both the SSL and non-SSL case, and attempts
+ * to hide the complexity setup from the user. This function
+ * assumes that any certificate setup necessary has already
+ * been done.
+ *
+ * If SSL or STARTTLS needs to be enabled, and the underlying
+ * toolkit supports it, the following values are accepted for
+ * secure:
+ *
+ * APR_LDAP_NONE: No encryption
+ * APR_LDAP_SSL: SSL encryption (ldaps://)
+ * APR_LDAP_STARTTLS: Force STARTTLS on ldap://
+ */
+APU_DECLARE(int) apr_ldap_init(apr_pool_t *pool,
+                               LDAP **ldap,
+                               const char *hostname,
+                               int portno,
+                               int secure,
+                               apr_ldap_err_t **result_err) {
+
+    apr_ldap_err_t *result = (apr_ldap_err_t *)apr_pcalloc(pool, sizeof(apr_ldap_err_t));
+    *result_err = result;
+
+#if APR_HAS_LDAPSSL_INIT
+    *ldap = ldapssl_init(hostname, portno, 0);
+#elif APR_HAS_LDAP_SSLINIT
+    *ldap = ldap_sslinit((char *)hostname, portno, 0);
+#else
+    *ldap = ldap_init((char *)hostname, portno);
+#endif
+    if (*ldap != NULL) {
+        return apr_ldap_set_option(pool, *ldap, APR_LDAP_OPT_TLS, &secure, result_err);
+    }
+    else {
+        /* handle the error case */
+        apr_ldap_err_t *result = (apr_ldap_err_t *)apr_pcalloc(pool, sizeof(apr_ldap_err_t));
+        *result_err = result;
+
+        result->reason = "APR LDAP: Unable to initialize the LDAP connection";
+        result->rc = -1;
+        return APR_EGENERAL;
+    }
+
+}
+
+
+/**
+ * APR LDAP info function
+ *
+ * This function returns a string describing the LDAP toolkit
+ * currently in use. The string is placed inside result_err->reason.
+ */
+APU_DECLARE(int) apr_ldap_info(apr_pool_t *pool, apr_ldap_err_t **result_err)
+{
+    apr_ldap_err_t *result = (apr_ldap_err_t *)apr_pcalloc(pool, sizeof(apr_ldap_err_t));
+    *result_err = result;
+
+    result->reason = "APR LDAP: Built with "
+                     LDAP_VENDOR_NAME
+                     " LDAP SDK";
+    return APR_SUCCESS;
+    
+}
+
+#endif /* APR_HAS_LDAP */
diff --git a/ldap/apr_ldap_option.c b/ldap/apr_ldap_option.c
new file mode 100644
index 0000000..15d216a
--- /dev/null
+++ b/ldap/apr_ldap_option.c
@@ -0,0 +1,598 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*  apr_ldap_option.c -- LDAP options
+ *
+ *  The LDAP SDK allows the getting and setting of options on an LDAP
+ *  connection.
+ *
+ */
+
+#include "apr.h"
+#include "apu.h"
+#include "apr_ldap.h"
+#include "apr_errno.h"
+#include "apr_pools.h"
+#include "apr_strings.h"
+#include "apr_tables.h"
+
+#if APR_HAS_LDAP
+
+static void option_set_cert(apr_pool_t *pool, LDAP *ldap, const void *invalue,
+                           apr_ldap_err_t *result);
+static void option_set_tls(apr_pool_t *pool, LDAP *ldap, const void *invalue,
+                          apr_ldap_err_t *result);
+
+/**
+ * APR LDAP get option function
+ *
+ * This function gets option values from a given LDAP session if
+ * one was specified.
+ */
+APU_DECLARE(int) apr_ldap_get_option(apr_pool_t *pool,
+                                     LDAP *ldap,
+                                     int option,
+                                     void *outvalue,
+                                     apr_ldap_err_t **result_err)
+{
+    apr_ldap_err_t *result;
+
+    result = apr_pcalloc(pool, sizeof(apr_ldap_err_t));
+    *result_err = result;
+    if (!result) {
+        return APR_ENOMEM;
+    }
+
+    /* get the option specified using the native LDAP function */
+    result->rc = ldap_get_option(ldap, option, outvalue);
+
+    /* handle the error case */
+    if (result->rc != LDAP_SUCCESS) {
+        result->msg = ldap_err2string(result-> rc);
+        result->reason = apr_pstrdup(pool, "LDAP: Could not get an option");
+        return APR_EGENERAL;
+    }
+
+    return APR_SUCCESS;
+
+} 
+
+/**
+ * APR LDAP set option function
+ *
+ * This function sets option values to a given LDAP session if
+ * one was specified.
+ *
+ * Where an option is not supported by an LDAP toolkit, this function
+ * will try and apply legacy functions to achieve the same effect,
+ * depending on the platform.
+ */
+APU_DECLARE(int) apr_ldap_set_option(apr_pool_t *pool,
+                                     LDAP *ldap,
+                                     int option,
+                                     const void *invalue,
+                                     apr_ldap_err_t **result_err)
+{
+    apr_ldap_err_t *result;
+
+    result = apr_pcalloc(pool, sizeof(apr_ldap_err_t));
+    *result_err = result;
+    if (!result) {
+        return APR_ENOMEM;
+    }
+
+    switch (option) {
+    case APR_LDAP_OPT_TLS_CERT:
+        option_set_cert(pool, ldap, invalue, result);
+        break;
+
+    case APR_LDAP_OPT_TLS:
+        option_set_tls(pool, ldap, invalue, result);
+        break;
+        
+    case APR_LDAP_OPT_VERIFY_CERT:
+#if APR_HAS_NETSCAPE_LDAPSDK || APR_HAS_SOLARIS_LDAPSDK || APR_HAS_MOZILLA_LDAPSK
+        result->reason = "LDAP: Verify certificate not yet supported by APR on the "
+                         "Netscape, Solaris or Mozilla LDAP SDKs";
+        result->rc = -1;
+        return APR_EGENERAL;
+#endif
+#if APR_HAS_NOVELL_LDAPSDK
+        if (*((int*)invalue)) {
+            result->rc = ldapssl_set_verify_mode(LDAPSSL_VERIFY_SERVER);
+        }
+        else {
+            result->rc = ldapssl_set_verify_mode(LDAPSSL_VERIFY_NONE);
+        }
+#endif
+#if APR_HAS_OPENLDAP_LDAPSDK
+#ifdef LDAP_OPT_X_TLS
+		/* This is not a per-connection setting so just pass NULL for the
+		   Ldap connection handle */
+        if (*((int*)invalue)) {
+			int i = LDAP_OPT_X_TLS_DEMAND;
+			result->rc = ldap_set_option(NULL, LDAP_OPT_X_TLS_REQUIRE_CERT, &i);
+        }
+        else {
+			int i = LDAP_OPT_X_TLS_NEVER;
+			result->rc = ldap_set_option(NULL, LDAP_OPT_X_TLS_REQUIRE_CERT, &i);
+        }
+#else
+        result->reason = "LDAP: SSL/TLS not yet supported by APR on this "
+                         "version of the OpenLDAP toolkit";
+        result->rc = -1;
+        return APR_EGENERAL;
+#endif
+#endif
+
+        /* handle the error case */
+        if (result->rc != LDAP_SUCCESS) {
+            result->msg = ldap_err2string(result->rc);
+            result->reason = "LDAP: Could not set verify mode";
+        }
+        break;
+        
+    default:
+        /* set the option specified using the native LDAP function */
+        result->rc = ldap_set_option(ldap, option, (void *)invalue);
+        
+        /* handle the error case */
+        if (result->rc != LDAP_SUCCESS) {
+            result->msg = ldap_err2string(result->rc);
+            result->reason = "LDAP: Could not set an option";
+        }
+        break;
+    }
+
+    /* handle the error case */
+    if (result->rc != LDAP_SUCCESS) {
+        return APR_EGENERAL;
+    }
+
+    return APR_SUCCESS;
+
+}
+
+/**
+ * Handle APR_LDAP_OPT_TLS
+ *
+ * This function sets the type of TLS to be applied to this connection.
+ * The options are:
+ * APR_LDAP_NONE: no encryption
+ * APR_LDAP_SSL: SSL encryption (ldaps://)
+ * APR_LDAP_STARTTLS: STARTTLS encryption
+ * APR_LDAP_STOPTLS: Stop existing TLS connecttion
+ */
+static void option_set_tls(apr_pool_t *pool, LDAP *ldap, const void *invalue,
+                          apr_ldap_err_t *result)
+{
+    int tls = * (const int *)invalue;
+
+#if APR_HAS_LDAP_SSL /* compiled with ssl support */
+
+    /* Netscape/Mozilla/Solaris SDK */
+#if APR_HAS_NETSCAPE_LDAPSDK || APR_HAS_SOLARIS_LDAPSDK || APR_HAS_MOZILLA_LDAPSK
+#if APR_HAS_LDAPSSL_INSTALL_ROUTINES
+    if (tls == APR_LDAP_SSL) {
+        result->rc = ldapssl_install_routines(ldap);
+#ifdef LDAP_OPT_SSL
+        /* apparently Netscape and Mozilla need this too, Solaris doesn't */
+        if (result->rc == LDAP_SUCCESS) {
+            result->rc = ldap_set_option(ldap, LDAP_OPT_SSL, LDAP_OPT_ON);
+        }
+#endif
+        if (result->rc != LDAP_SUCCESS) {
+            result->msg = ldap_err2string(result->rc);
+            result->reason = "LDAP: Could not switch SSL on for this "
+                             "connection.";
+        }
+    }
+    else if (tls == APR_LDAP_STARTTLS) {
+        result->reason = "LDAP: STARTTLS is not supported by the "
+                         "Netscape/Mozilla/Solaris SDK";
+        result->rc = -1;
+    }
+    else if (tls == APR_LDAP_STOPTLS) {
+        result->reason = "LDAP: STOPTLS is not supported by the "
+                         "Netscape/Mozilla/Solaris SDK";
+        result->rc = -1;
+    }
+#else
+    if (tls != APR_LDAP_NONE) {
+        result->reason = "LDAP: SSL/TLS is not supported by this version "
+                         "of the Netscape/Mozilla/Solaris SDK";
+        result->rc = -1;
+    }
+#endif
+#endif
+
+    /* Novell SDK */
+#if APR_HAS_NOVELL_LDAPSDK
+    /* ldapssl_install_routines(ldap)
+     * Behavior is unpredictable when other LDAP functions are called
+     * between the ldap_init function and the ldapssl_install_routines
+     * function.
+     * 
+     * STARTTLS is supported by the ldap_start_tls_s() method
+     */
+    if (tls == APR_LDAP_SSL) {
+        result->rc = ldapssl_install_routines(ldap);
+        if (result->rc != LDAP_SUCCESS) {
+            result->msg = ldap_err2string(result->rc);
+            result->reason = "LDAP: Could not switch SSL on for this "
+                             "connection.";
+        }
+    }
+    if (tls == APR_LDAP_STARTTLS) {
+        result->rc = ldapssl_start_tls(ldap);
+        if (result->rc != LDAP_SUCCESS) {
+            result->msg = ldap_err2string(result->rc);
+            result->reason = "LDAP: Could not start TLS on this connection";
+        }
+    }
+    else if (tls == APR_LDAP_STOPTLS) {
+        result->rc = ldapssl_stop_tls(ldap);
+        if (result->rc != LDAP_SUCCESS) {
+            result->msg = ldap_err2string(result->rc);
+            result->reason = "LDAP: Could not stop TLS on this connection";
+        }
+    }
+#endif
+
+    /* OpenLDAP SDK */
+#if APR_HAS_OPENLDAP_LDAPSDK
+#ifdef LDAP_OPT_X_TLS
+    if (tls == APR_LDAP_SSL) {
+        int SSLmode = LDAP_OPT_X_TLS_HARD;
+        result->rc = ldap_set_option(ldap, LDAP_OPT_X_TLS, &SSLmode);
+        if (result->rc != LDAP_SUCCESS) {
+            result->reason = "LDAP: ldap_set_option failed. "
+                             "Could not set LDAP_OPT_X_TLS to "
+                             "LDAP_OPT_X_TLS_HARD";
+            result->msg = ldap_err2string(result->rc);
+        }   
+    }
+    else if (tls == APR_LDAP_STARTTLS) {
+        result->rc = ldap_start_tls_s(ldap, NULL, NULL);
+        if (result->rc != LDAP_SUCCESS) {
+            result->reason = "LDAP: ldap_start_tls_s() failed";
+            result->msg = ldap_err2string(result->rc);
+        }
+    }
+    else if (tls == APR_LDAP_STOPTLS) {
+        result->reason = "LDAP: STOPTLS is not supported by the "
+                         "OpenLDAP SDK";
+        result->rc = -1;
+    }
+#else
+    if (tls != APR_LDAP_NONE) {
+        result->reason = "LDAP: SSL/TLS not yet supported by APR on this "
+                         "version of the OpenLDAP toolkit";
+        result->rc = -1;
+    }
+#endif
+#endif
+
+    /* Microsoft SDK */
+#if APR_HAS_MICROSOFT_LDAPSDK
+    if (tls == APR_LDAP_NONE) {
+        result->rc = ldap_set_option(ldap, LDAP_OPT_SSL, LDAP_OPT_OFF);
+        if (result->rc != LDAP_SUCCESS) {
+            result->reason = "LDAP: an attempt to set LDAP_OPT_SSL off "
+                             "failed.";
+            result->msg = ldap_err2string(result->rc);
+        }
+    }
+    else if (tls == APR_LDAP_SSL) {
+        result->rc = ldap_set_option(ldap, LDAP_OPT_SSL, LDAP_OPT_ON);
+        if (result->rc != LDAP_SUCCESS) {
+            result->reason = "LDAP: an attempt to set LDAP_OPT_SSL on "
+                             "failed.";
+            result->msg = ldap_err2string(result->rc);
+        }
+    }
+#if APR_HAS_LDAP_START_TLS_S
+    else if (tls == APR_LDAP_STARTTLS) {
+        result->rc = ldap_start_tls_s(ldap, NULL, NULL, NULL, NULL);
+        if (result->rc != LDAP_SUCCESS) {
+            result->reason = "LDAP: ldap_start_tls_s() failed";
+            result->msg = ldap_err2string(result->rc);
+        }
+    }
+    else if (tls == APR_LDAP_STOPTLS) {
+        result->rc = ldap_stop_tls_s(ldap);
+        if (result->rc != LDAP_SUCCESS) {
+            result->reason = "LDAP: ldap_stop_tls_s() failed";
+            result->msg = ldap_err2string(result->rc);
+        }
+    }
+#endif
+#endif
+
+#if APR_HAS_OTHER_LDAPSDK
+    if (tls != APR_LDAP_NONE) {
+        result->reason = "LDAP: SSL/TLS is currently not supported by "
+                         "APR on this LDAP SDK";
+        result->rc = -1;
+    }
+#endif
+
+#endif /* APR_HAS_LDAP_SSL */
+
+}
+
+/**
+ * Handle APR_LDAP_OPT_TLS_CACERTFILE
+ *
+ * This function sets the CA certificate for further SSL/TLS connections.
+ *
+ * The file provided are in different formats depending on the toolkit used:
+ *
+ * Netscape: cert7.db file
+ * Novell: PEM or DER
+ * OpenLDAP: PEM (others supported?)
+ * Microsoft: unknown
+ * Solaris: unknown
+ */
+static void option_set_cert(apr_pool_t *pool, LDAP *ldap,
+                           const void *invalue, apr_ldap_err_t *result)
+{
+    apr_array_header_t *certs = (apr_array_header_t *)invalue;
+    struct apr_ldap_opt_tls_cert_t *ents = (struct apr_ldap_opt_tls_cert_t *)certs->elts;
+    int i = 0;
+
+#if APR_HAS_LDAP_SSL
+
+    /* Netscape/Mozilla/Solaris SDK */
+#if APR_HAS_NETSCAPE_LDAPSDK || APR_HAS_SOLARIS_LDAPSDK || APR_HAS_MOZILLA_LDAPSDK
+#if APR_HAS_LDAPSSL_CLIENT_INIT
+    const char *nickname = NULL;
+    const char *secmod = NULL;
+    const char *key3db = NULL;
+    const char *cert7db = NULL;
+    const char *password = NULL;
+
+    /* set up cert7.db, key3.db and secmod parameters */
+    for (i = 0; i < certs->nelts; i++) {
+        switch (ents[i].type) {
+        case APR_LDAP_CA_TYPE_CERT7_DB:
+            cert7db = ents[i].path;
+            break;
+        case APR_LDAP_CA_TYPE_SECMOD:
+            secmod = ents[i].path;
+            break;
+        case APR_LDAP_CERT_TYPE_KEY3_DB:
+            key3db = ents[i].path;
+            break;
+        case APR_LDAP_CERT_TYPE_NICKNAME:
+            nickname = ents[i].path;
+            password = ents[i].password;
+            break;
+        default:
+            result->rc = -1;
+            result->reason = "LDAP: The Netscape/Mozilla LDAP SDK only "
+                "understands the CERT7, KEY3 and SECMOD "
+                "file types.";
+            break;
+        }
+        if (result->rc != LDAP_SUCCESS) {
+            break;
+        }
+    }
+
+    /* actually set the certificate parameters */
+    if (result->rc == LDAP_SUCCESS) {
+        if (nickname) {
+            result->rc = ldapssl_enable_clientauth(ldap, "",
+                                                   (char *)password,
+                                                   (char *)nickname);
+            if (result->rc != LDAP_SUCCESS) {
+                result->reason = "LDAP: could not set client certificate: "
+                                 "ldapssl_enable_clientauth() failed.";
+                result->msg = ldap_err2string(result->rc);
+            }
+        }
+        else if (secmod) {
+            result->rc = ldapssl_advclientauth_init(cert7db, NULL,
+                                                    key3db ? 1 : 0, key3db, NULL,
+                                                    1, secmod, LDAPSSL_AUTH_CNCHECK);
+            if (result->rc != LDAP_SUCCESS) {
+                result->reason = "LDAP: ldapssl_advclientauth_init() failed.";
+                result->msg = ldap_err2string(result->rc);
+            }
+        }
+        else if (key3db) {
+            result->rc = ldapssl_clientauth_init(cert7db, NULL,
+                                                    1, key3db, NULL);
+            if (result->rc != LDAP_SUCCESS) {
+                result->reason = "LDAP: ldapssl_clientauth_init() failed.";
+                result->msg = ldap_err2string(result->rc);
+            }
+        }
+        else {
+            result->rc = ldapssl_client_init(cert7db, NULL);
+            if (result->rc != LDAP_SUCCESS) {
+                result->reason = "LDAP: ldapssl_client_init() failed.";
+                result->msg = ldap_err2string(result->rc);
+            }
+        }
+    }
+#else
+    result->reason = "LDAP: SSL/TLS ldapssl_client_init() function not "
+                     "supported by this Netscape/Mozilla/Solaris SDK. "
+                     "Certificate authority file not set";
+    result->rc = -1;
+#endif
+#endif
+
+    /* Novell SDK */
+#if APR_HAS_NOVELL_LDAPSDK
+#if APR_HAS_LDAPSSL_CLIENT_INIT && APR_HAS_LDAPSSL_ADD_TRUSTED_CERT && APR_HAS_LDAPSSL_CLIENT_DEINIT
+    /* The Novell library cannot support per connection certificates. Error
+     * out if the ldap handle is provided.
+     */
+    if (ldap) {
+        result->rc = -1;
+        result->reason = "LDAP: The Novell LDAP SDK cannot support the setting "
+                         "of certificates or keys on a per connection basis.";
+    }
+    /* Novell's library needs to be initialised first */
+    else {
+        result->rc = ldapssl_client_init(NULL, NULL);
+        if (result->rc != LDAP_SUCCESS) {
+            result->msg = ldap_err2string(result-> rc);
+            result->reason = apr_pstrdup(pool, "LDAP: Could not "
+                                         "initialize SSL");
+        }
+    }
+    /* set one or more certificates */
+    for (i = 0; LDAP_SUCCESS == result->rc && i < certs->nelts; i++) {
+        /* Novell SDK supports DER or BASE64 files. */
+        switch (ents[i].type) {
+        case APR_LDAP_CA_TYPE_DER:
+            result->rc = ldapssl_add_trusted_cert((void *)ents[i].path,
+                                                  LDAPSSL_CERT_FILETYPE_DER);
+            result->msg = ldap_err2string(result->rc);
+            break;
+        case APR_LDAP_CA_TYPE_BASE64:
+            result->rc = ldapssl_add_trusted_cert((void *)ents[i].path,
+                                                  LDAPSSL_CERT_FILETYPE_B64);
+            result->msg = ldap_err2string(result->rc);
+            break;
+        case APR_LDAP_CERT_TYPE_DER:
+            result->rc = ldapssl_set_client_cert((void *)ents[i].path,
+                                                 LDAPSSL_CERT_FILETYPE_DER,
+                                                 (void*)ents[i].password);
+            result->msg = ldap_err2string(result->rc);
+            break;
+        case APR_LDAP_CERT_TYPE_BASE64: 
+            result->rc = ldapssl_set_client_cert((void *)ents[i].path,
+                                                 LDAPSSL_CERT_FILETYPE_B64,
+                                                 (void*)ents[i].password);
+            result->msg = ldap_err2string(result->rc);
+            break;
+        case APR_LDAP_CERT_TYPE_PFX: 
+            result->rc = ldapssl_set_client_cert((void *)ents[i].path,
+                                                 LDAPSSL_FILETYPE_P12,
+                                                 (void*)ents[i].password);
+            result->msg = ldap_err2string(result->rc);
+            break;
+        case APR_LDAP_KEY_TYPE_DER:
+            result->rc = ldapssl_set_client_private_key((void *)ents[i].path,
+                                                        LDAPSSL_CERT_FILETYPE_DER,
+                                                        (void*)ents[i].password);
+            result->msg = ldap_err2string(result->rc);
+            break;
+        case APR_LDAP_KEY_TYPE_BASE64:
+            result->rc = ldapssl_set_client_private_key((void *)ents[i].path,
+                                                        LDAPSSL_CERT_FILETYPE_B64,
+                                                        (void*)ents[i].password);
+            result->msg = ldap_err2string(result->rc);
+            break;
+        case APR_LDAP_KEY_TYPE_PFX:
+            result->rc = ldapssl_set_client_private_key((void *)ents[i].path,
+                                                        LDAPSSL_FILETYPE_P12,
+                                                        (void*)ents[i].password);
+            result->msg = ldap_err2string(result->rc);
+            break;
+        default:
+            result->rc = -1;
+            result->reason = "LDAP: The Novell LDAP SDK only understands the "
+                "DER and PEM (BASE64) file types.";
+            break;
+        }
+        if (result->rc != LDAP_SUCCESS) {
+            break;
+        }
+    }
+#else
+    result->reason = "LDAP: ldapssl_client_init(), "
+                     "ldapssl_add_trusted_cert() or "
+                     "ldapssl_client_deinit() functions not supported "
+                     "by this Novell SDK. Certificate authority file "
+                     "not set";
+    result->rc = -1;
+#endif
+#endif
+
+    /* OpenLDAP SDK */
+#if APR_HAS_OPENLDAP_LDAPSDK
+#ifdef LDAP_OPT_X_TLS_CACERTFILE
+    /* set one or more certificates */
+    /* FIXME: make it support setting directories as well as files */
+    for (i = 0; i < certs->nelts; i++) {
+        /* OpenLDAP SDK supports BASE64 files. */
+        switch (ents[i].type) {
+        case APR_LDAP_CA_TYPE_BASE64:
+            result->rc = ldap_set_option(ldap, LDAP_OPT_X_TLS_CACERTFILE,
+                                         (void *)ents[i].path);
+            result->msg = ldap_err2string(result->rc);
+            break;
+        case APR_LDAP_CERT_TYPE_BASE64:
+            result->rc = ldap_set_option(ldap, LDAP_OPT_X_TLS_CERTFILE,
+                                         (void *)ents[i].path);
+            result->msg = ldap_err2string(result->rc);
+            break;
+        case APR_LDAP_KEY_TYPE_BASE64:
+            result->rc = ldap_set_option(ldap, LDAP_OPT_X_TLS_KEYFILE,
+                                         (void *)ents[i].path);
+            result->msg = ldap_err2string(result->rc);
+            break;
+        default:
+            result->rc = -1;
+            result->reason = "LDAP: The OpenLDAP SDK only understands the "
+                "PEM (BASE64) file type.";
+            break;
+        }
+        if (result->rc != LDAP_SUCCESS) {
+            break;
+        }
+    }
+#else
+    result->reason = "LDAP: LDAP_OPT_X_TLS_CACERTFILE not "
+                     "defined by this OpenLDAP SDK. Certificate "
+                     "authority file not set";
+    result->rc = -1;
+#endif
+#endif
+
+    /* Microsoft SDK */
+#if APR_HAS_MICROSOFT_LDAPSDK
+    /* Microsoft SDK use the registry certificate store - error out
+     * here with a message explaining this. */
+    result->reason = "LDAP: CA certificates cannot be set using this method, "
+                     "as they are stored in the registry instead.";
+    result->rc = -1;
+#endif
+
+    /* SDK not recognised */
+#if APR_HAS_OTHER_LDAPSDK
+    result->reason = "LDAP: LDAP_OPT_X_TLS_CACERTFILE not "
+                     "defined by this LDAP SDK. Certificate "
+                     "authority file not set";
+    result->rc = -1;
+#endif
+
+#else  /* not compiled with SSL Support */
+    result->reason = "LDAP: Attempt to set certificate(s) failed. "
+                     "Not built with SSL support";
+    result->rc = -1;
+#endif /* APR_HAS_LDAP_SSL */
+
+}
+
+#endif /* APR_HAS_LDAP */
+
diff --git a/ldap/apr_ldap_url.c b/ldap/apr_ldap_url.c
new file mode 100644
index 0000000..52e37b2
--- /dev/null
+++ b/ldap/apr_ldap_url.c
@@ -0,0 +1,694 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* Portions Copyright 1998-2002 The OpenLDAP Foundation
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.  A copy of this license is available at
+ * http://www.OpenLDAP.org/license.html or in file LICENSE in the
+ * top-level directory of the distribution.
+ * 
+ * OpenLDAP is a registered trademark of the OpenLDAP Foundation.
+ * 
+ * Individual files and/or contributed packages may be copyright by
+ * other parties and subject to additional restrictions.
+ * 
+ * This work is derived from the University of Michigan LDAP v3.3
+ * distribution.  Information concerning this software is available
+ * at: http://www.umich.edu/~dirsvcs/ldap/
+ * 
+ * This work also contains materials derived from public sources.
+ * 
+ * Additional information about OpenLDAP can be obtained at:
+ *     http://www.openldap.org/
+ */
+
+/* 
+ * Portions Copyright (c) 1992-1996 Regents of the University of Michigan.
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms are permitted
+ * provided that this notice is preserved and that due credit is given
+ * to the University of Michigan at Ann Arbor. The name of the University
+ * may not be used to endorse or promote products derived from this
+ * software without specific prior written permission. This software
+ * is provided ``as is'' without express or implied warranty.
+ */
+
+/*  apr_ldap_url.c -- LDAP URL (RFC 2255) related routines
+ *
+ *  Win32 and perhaps other non-OpenLDAP based ldap libraries may be
+ *  missing ldap_url_* APIs.  We focus here on the one significant
+ *  aspect, which is parsing.  We have [for the time being] omitted
+ *  the ldap_url_search APIs.
+ *
+ *  LDAP URLs look like this:
+ *    ldap[is]://host:port[/[dn[?[attributes][?[scope][?[filter][?exts]]]]]]
+ *
+ *  where:
+ *   attributes is a comma separated list
+ *   scope is one of these three strings:  base one sub (default=base)
+ *   filter is an string-represented filter as in RFC 2254
+ *
+ *  e.g.,  ldap://host:port/dc=com?o,cn?base?o=openldap?extension
+ *
+ *  Tolerates URLs that look like: <ldapurl> and <URL:ldapurl>
+ */
+
+#include "apu.h"
+#include "apr_pools.h"
+#include "apr_general.h"
+#include "apr_strings.h"
+#include "apr_ldap.h"
+
+#if APR_HAS_LDAP
+
+#if APR_HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifndef LDAPS_PORT
+#define LDAPS_PORT              636  /* ldaps:/// default LDAP over TLS port */
+#endif
+
+#define APR_LDAP_URL_PREFIX         "ldap://"
+#define APR_LDAP_URL_PREFIX_LEN     (sizeof(APR_LDAP_URL_PREFIX)-1)
+#define APR_LDAPS_URL_PREFIX        "ldaps://"
+#define APR_LDAPS_URL_PREFIX_LEN    (sizeof(APR_LDAPS_URL_PREFIX)-1)
+#define APR_LDAPI_URL_PREFIX        "ldapi://"
+#define APR_LDAPI_URL_PREFIX_LEN    (sizeof(APR_LDAPI_URL_PREFIX)-1)
+#define APR_LDAP_URL_URLCOLON       "URL:"
+#define APR_LDAP_URL_URLCOLON_LEN   (sizeof(APR_LDAP_URL_URLCOLON)-1)
+
+
+/* local functions */
+static const char* skip_url_prefix(const char *url,
+                                   int *enclosedp,
+                                   const char **scheme);
+
+static void apr_ldap_pvt_hex_unescape(char *s);
+
+static int apr_ldap_pvt_unhex(int c);
+
+static char **apr_ldap_str2charray(apr_pool_t *pool,
+                                   const char *str,
+                                   const char *brkstr);
+
+
+/**
+ * Is this URL an ldap url?
+ *
+ */
+APU_DECLARE(int) apr_ldap_is_ldap_url(const char *url)
+{
+    int enclosed;
+    const char * scheme;
+
+    if( url == NULL ) {
+        return 0;
+    }
+
+    if( skip_url_prefix( url, &enclosed, &scheme ) == NULL ) {
+        return 0;
+    }
+
+    return 1;
+}
+
+/**
+ * Is this URL a secure ldap url?
+ *
+ */
+APU_DECLARE(int) apr_ldap_is_ldaps_url(const char *url)
+{
+    int enclosed;
+    const char * scheme;
+
+    if( url == NULL ) {
+        return 0;
+    }
+
+    if( skip_url_prefix( url, &enclosed, &scheme ) == NULL ) {
+        return 0;
+    }
+
+    return strcmp(scheme, "ldaps") == 0;
+}
+
+/**
+ * Is this URL an ldap socket url?
+ *
+ */
+APU_DECLARE(int) apr_ldap_is_ldapi_url(const char *url)
+{
+    int enclosed;
+    const char * scheme;
+
+    if( url == NULL ) {
+        return 0;
+    }
+
+    if( skip_url_prefix( url, &enclosed, &scheme ) == NULL ) {
+        return 0;
+    }
+
+    return strcmp(scheme, "ldapi") == 0;
+}
+
+
+static const char *skip_url_prefix(const char *url, int *enclosedp,
+                                   const char **scheme)
+{
+    /*
+     * return non-zero if this looks like a LDAP URL; zero if not
+     * if non-zero returned, *urlp will be moved past "ldap://" part of URL
+     */
+    const char *p;
+
+    if ( url == NULL ) {
+        return( NULL );
+    }
+
+    p = url;
+
+    /* skip leading '<' (if any) */
+    if ( *p == '<' ) {
+        *enclosedp = 1;
+        ++p;
+    } else {
+        *enclosedp = 0;
+    }
+
+    /* skip leading "URL:" (if any) */
+    if ( strncasecmp( p, APR_LDAP_URL_URLCOLON, APR_LDAP_URL_URLCOLON_LEN ) == 0 ) {
+        p += APR_LDAP_URL_URLCOLON_LEN;
+    }
+
+    /* check for "ldap://" prefix */
+    if ( strncasecmp( p, APR_LDAP_URL_PREFIX, APR_LDAP_URL_PREFIX_LEN ) == 0 ) {
+        /* skip over "ldap://" prefix and return success */
+        p += APR_LDAP_URL_PREFIX_LEN;
+        *scheme = "ldap";
+        return( p );
+    }
+
+    /* check for "ldaps://" prefix */
+    if ( strncasecmp( p, APR_LDAPS_URL_PREFIX, APR_LDAPS_URL_PREFIX_LEN ) == 0 ) {
+        /* skip over "ldaps://" prefix and return success */
+        p += APR_LDAPS_URL_PREFIX_LEN;
+        *scheme = "ldaps";
+        return( p );
+    }
+
+    /* check for "ldapi://" prefix */
+    if ( strncasecmp( p, APR_LDAPI_URL_PREFIX, APR_LDAPI_URL_PREFIX_LEN ) == 0 ) {
+        /* skip over "ldapi://" prefix and return success */
+        p += APR_LDAPI_URL_PREFIX_LEN;
+        *scheme = "ldapi";
+        return( p );
+    }
+
+    return( NULL );
+}
+
+
+static int str2scope(const char *p)
+{
+    if ( strcasecmp( p, "one" ) == 0 ) {
+        return LDAP_SCOPE_ONELEVEL;
+
+    } else if ( strcasecmp( p, "onetree" ) == 0 ) {
+        return LDAP_SCOPE_ONELEVEL;
+
+    } else if ( strcasecmp( p, "base" ) == 0 ) {
+        return LDAP_SCOPE_BASE;
+
+    } else if ( strcasecmp( p, "sub" ) == 0 ) {
+        return LDAP_SCOPE_SUBTREE;
+
+    } else if ( strcasecmp( p, "subtree" ) == 0 ) {
+        return LDAP_SCOPE_SUBTREE;
+    }
+
+    return( -1 );
+}
+
+
+/**
+ * Parse the URL provided into an apr_ldap_url_desc_t object.
+ *
+ * APR_SUCCESS is returned on success, APR_EGENERAL on failure.
+ * The LDAP result code and reason string is returned in the
+ * apr_ldap_err_t structure.
+ */
+APU_DECLARE(int) apr_ldap_url_parse_ext(apr_pool_t *pool,
+                                        const char *url_in,
+                                        apr_ldap_url_desc_t **ludpp,
+                                        apr_ldap_err_t **result_err)
+{
+    apr_ldap_url_desc_t *ludp;
+    char        *p, *q, *r;
+    int         i, enclosed;
+    const char  *scheme = NULL;
+    const char  *url_tmp;
+    char        *url;
+
+    apr_ldap_err_t *result = (apr_ldap_err_t *)apr_pcalloc(pool, sizeof(apr_ldap_err_t));
+    *result_err = result;
+
+    /* sanity check our parameters */
+    if( url_in == NULL || ludpp == NULL ) {
+        result->reason = "Either the LDAP URL, or the URL structure was NULL. Oops.";
+        result->rc = APR_LDAP_URL_ERR_PARAM;
+        return APR_EGENERAL;
+    }
+
+    *ludpp = NULL;  /* pessimistic */
+
+    url_tmp = skip_url_prefix( url_in, &enclosed, &scheme );
+    if ( url_tmp == NULL ) {
+        result->reason = "The scheme was not recognised as a valid LDAP URL scheme.";
+        result->rc = APR_LDAP_URL_ERR_BADSCHEME;
+        return APR_EGENERAL;
+    }
+
+    /* make working copy of the remainder of the URL */
+    url = (char *)apr_pstrdup(pool, url_tmp);
+    if ( url == NULL ) {
+        result->reason = "Out of memory parsing LDAP URL.";
+        result->rc = APR_LDAP_URL_ERR_MEM;
+        return APR_EGENERAL;
+    }
+
+    if ( enclosed ) {
+        p = &url[strlen(url)-1];
+
+        if( *p != '>' ) {
+            result->reason = "Bad enclosure error while parsing LDAP URL.";
+            result->rc = APR_LDAP_URL_ERR_BADENCLOSURE;
+            return APR_EGENERAL;
+        }
+
+        *p = '\0';
+    }
+
+    /* allocate return struct */
+    ludp = (apr_ldap_url_desc_t *)apr_pcalloc(pool, sizeof(apr_ldap_url_desc_t));
+    if ( ludp == NULL ) {
+        result->reason = "Out of memory parsing LDAP URL.";
+        result->rc = APR_LDAP_URL_ERR_MEM;
+        return APR_EGENERAL;
+    }
+
+    ludp->lud_next = NULL;
+    ludp->lud_host = NULL;
+    ludp->lud_port = LDAP_PORT;
+    ludp->lud_dn = NULL;
+    ludp->lud_attrs = NULL;
+    ludp->lud_filter = NULL;
+    ludp->lud_scope = -1;
+    ludp->lud_filter = NULL;
+    ludp->lud_exts = NULL;
+
+    ludp->lud_scheme = (char *)apr_pstrdup(pool, scheme);
+    if ( ludp->lud_scheme == NULL ) {
+        result->reason = "Out of memory parsing LDAP URL.";
+        result->rc = APR_LDAP_URL_ERR_MEM;
+        return APR_EGENERAL;
+    }
+
+    if( strcasecmp( ludp->lud_scheme, "ldaps" ) == 0 ) {
+        ludp->lud_port = LDAPS_PORT;
+    }
+
+    /* scan forward for '/' that marks end of hostport and begin. of dn */
+    p = strchr( url, '/' );
+
+    if( p != NULL ) {
+        /* terminate hostport; point to start of dn */
+        *p++ = '\0';
+    }
+
+    /* IPv6 syntax with [ip address]:port */
+    if ( *url == '[' ) {
+        r = strchr( url, ']' );
+        if ( r == NULL ) {
+            result->reason = "Bad LDAP URL while parsing IPV6 syntax.";
+            result->rc = APR_LDAP_URL_ERR_BADURL;
+            return APR_EGENERAL;
+        }
+        *r++ = '\0';
+        q = strrchr( r, ':' );
+    } else {
+        q = strrchr( url, ':' );
+    }
+
+    if ( q != NULL ) {
+        apr_ldap_pvt_hex_unescape( ++q );
+
+        if( *q == '\0' ) {
+            result->reason = "Bad LDAP URL while parsing.";
+            result->rc = APR_LDAP_URL_ERR_BADURL;
+            return APR_EGENERAL;
+        }
+
+        ludp->lud_port = atoi( q );
+    }
+
+    apr_ldap_pvt_hex_unescape( url );
+
+    /* If [ip address]:port syntax, url is [ip and we skip the [ */
+    ludp->lud_host = (char *)apr_pstrdup(pool, url + ( *url == '[' ));
+    if( ludp->lud_host == NULL ) {
+        result->reason = "Out of memory parsing LDAP URL.";
+        result->rc = APR_LDAP_URL_ERR_MEM;
+        return APR_EGENERAL;
+    }
+
+    /*
+     * Kludge.  ldap://111.222.333.444:389??cn=abc,o=company
+     *
+     * On early Novell releases, search references/referrals were returned
+     * in this format, i.e., the dn was kind of in the scope position,
+     * but the required slash is missing. The whole thing is illegal syntax,
+     * but we need to account for it. Fortunately it can't be confused with
+     * anything real.
+     */
+    if( (p == NULL) && (q != NULL) && ((q = strchr( q, '?')) != NULL)) {
+        q++;
+        /* ? immediately followed by question */
+        if( *q == '?') {
+            q++;
+            if( *q != '\0' ) {
+                /* parse dn part */
+                apr_ldap_pvt_hex_unescape( q );
+                ludp->lud_dn = (char *)apr_pstrdup(pool, q);
+            } else {
+                ludp->lud_dn = (char *)apr_pstrdup(pool, "");
+            }
+
+            if( ludp->lud_dn == NULL ) {
+                result->reason = "Out of memory parsing LDAP URL.";
+                result->rc = APR_LDAP_URL_ERR_MEM;
+                return APR_EGENERAL;
+            }
+        }
+    }
+
+    if( p == NULL ) {
+        *ludpp = ludp;
+        return APR_SUCCESS;
+    }
+
+    /* scan forward for '?' that may marks end of dn */
+    q = strchr( p, '?' );
+
+    if( q != NULL ) {
+        /* terminate dn part */
+        *q++ = '\0';
+    }
+
+    if( *p != '\0' ) {
+        /* parse dn part */
+        apr_ldap_pvt_hex_unescape( p );
+        ludp->lud_dn = (char *)apr_pstrdup(pool, p);
+    } else {
+        ludp->lud_dn = (char *)apr_pstrdup(pool, "");
+    }
+
+    if( ludp->lud_dn == NULL ) {
+        result->reason = "Out of memory parsing LDAP URL.";
+        result->rc = APR_LDAP_URL_ERR_MEM;
+        return APR_EGENERAL;
+    }
+
+    if( q == NULL ) {
+        /* no more */
+        *ludpp = ludp;
+        return APR_SUCCESS;
+    }
+
+    /* scan forward for '?' that may marks end of attributes */
+    p = q;
+    q = strchr( p, '?' );
+
+    if( q != NULL ) {
+        /* terminate attributes part */
+        *q++ = '\0';
+    }
+
+    if( *p != '\0' ) {
+        /* parse attributes */
+        apr_ldap_pvt_hex_unescape( p );
+        ludp->lud_attrs = apr_ldap_str2charray(pool, p, ",");
+
+        if( ludp->lud_attrs == NULL ) {
+            result->reason = "Bad attributes encountered while parsing LDAP URL.";
+            result->rc = APR_LDAP_URL_ERR_BADATTRS;
+            return APR_EGENERAL;
+        }
+    }
+
+    if ( q == NULL ) {
+        /* no more */
+        *ludpp = ludp;
+        return APR_SUCCESS;
+    }
+
+    /* scan forward for '?' that may marks end of scope */
+    p = q;
+    q = strchr( p, '?' );
+
+    if( q != NULL ) {
+        /* terminate the scope part */
+        *q++ = '\0';
+    }
+
+    if( *p != '\0' ) {
+        /* parse the scope */
+        apr_ldap_pvt_hex_unescape( p );
+        ludp->lud_scope = str2scope( p );
+
+        if( ludp->lud_scope == -1 ) {
+            result->reason = "Bad scope encountered while parsing LDAP URL.";
+            result->rc = APR_LDAP_URL_ERR_BADSCOPE;
+            return APR_EGENERAL;
+        }
+    }
+
+    if ( q == NULL ) {
+        /* no more */
+        *ludpp = ludp;
+        return APR_SUCCESS;
+    }
+
+    /* scan forward for '?' that may marks end of filter */
+    p = q;
+    q = strchr( p, '?' );
+
+    if( q != NULL ) {
+        /* terminate the filter part */
+        *q++ = '\0';
+    }
+
+    if( *p != '\0' ) {
+        /* parse the filter */
+        apr_ldap_pvt_hex_unescape( p );
+
+        if( ! *p ) {
+            /* missing filter */
+            result->reason = "Bad filter encountered while parsing LDAP URL.";
+            result->rc = APR_LDAP_URL_ERR_BADFILTER;
+            return APR_EGENERAL;
+        }
+
+        ludp->lud_filter = (char *)apr_pstrdup(pool, p);
+        if( ludp->lud_filter == NULL ) {
+            result->reason = "Out of memory parsing LDAP URL.";
+            result->rc = APR_LDAP_URL_ERR_MEM;
+            return APR_EGENERAL;
+        }
+    }
+
+    if ( q == NULL ) {
+        /* no more */
+        *ludpp = ludp;
+        return APR_SUCCESS;
+    }
+
+    /* scan forward for '?' that may marks end of extensions */
+    p = q;
+    q = strchr( p, '?' );
+
+    if( q != NULL ) {
+        /* extra '?' */
+        result->reason = "Bad URL encountered while parsing LDAP URL.";
+        result->rc = APR_LDAP_URL_ERR_BADURL;
+        return APR_EGENERAL;
+    }
+
+    /* parse the extensions */
+    ludp->lud_exts = apr_ldap_str2charray(pool, p, ",");
+    if( ludp->lud_exts == NULL ) {
+        result->reason = "Bad extensions encountered while parsing LDAP URL.";
+        result->rc = APR_LDAP_URL_ERR_BADEXTS;
+        return APR_EGENERAL;
+    }
+
+    for( i=0; ludp->lud_exts[i] != NULL; i++ ) {
+        apr_ldap_pvt_hex_unescape( ludp->lud_exts[i] );
+
+        if( *ludp->lud_exts[i] == '!' ) {
+            /* count the number of critical extensions */
+            ludp->lud_crit_exts++;
+        }
+    }
+
+    if( i == 0 ) {
+        /* must have 1 or more */
+        result->reason = "Bad extensions encountered while parsing LDAP URL.";
+        result->rc = APR_LDAP_URL_ERR_BADEXTS;
+        return APR_EGENERAL;
+    }
+
+    /* no more */
+    *ludpp = ludp;
+    return APR_SUCCESS;
+}
+
+
+/**
+ * Parse the URL provided into an apr_ldap_url_desc_t object.
+ *
+ * APR_SUCCESS is returned on success, APR_EGENERAL on failure.
+ * The LDAP result code and reason string is returned in the
+ * apr_ldap_err_t structure.
+ */
+APU_DECLARE(int) apr_ldap_url_parse(apr_pool_t *pool,
+                                    const char *url_in,
+                                    apr_ldap_url_desc_t **ludpp,
+                                    apr_ldap_err_t **result_err)
+{
+
+    int rc = apr_ldap_url_parse_ext(pool, url_in, ludpp, result_err);
+    if( rc != APR_SUCCESS ) {
+        return rc;
+    }
+
+    if ((*ludpp)->lud_scope == -1) {
+        (*ludpp)->lud_scope = LDAP_SCOPE_BASE;
+    }
+
+    if ((*ludpp)->lud_host != NULL && *(*ludpp)->lud_host == '\0') {
+        (*ludpp)->lud_host = NULL;
+    }
+
+    return rc;
+
+}
+
+
+static void apr_ldap_pvt_hex_unescape(char *s)
+{
+    /*
+     * Remove URL hex escapes from s... done in place.  The basic concept for
+     * this routine is borrowed from the WWW library HTUnEscape() routine.
+     */
+    char    *p;
+
+    for ( p = s; *s != '\0'; ++s ) {
+        if ( *s == '%' ) {
+            if ( *++s == '\0' ) {
+                break;
+            }
+            *p = apr_ldap_pvt_unhex( *s ) << 4;
+            if ( *++s == '\0' ) {
+                break;
+            }
+            *p++ += apr_ldap_pvt_unhex( *s );
+        } else {
+            *p++ = *s;
+        }
+    }
+
+    *p = '\0';
+}
+
+
+static int apr_ldap_pvt_unhex(int c)
+{
+    return( c >= '0' && c <= '9' ? c - '0'
+        : c >= 'A' && c <= 'F' ? c - 'A' + 10
+        : c - 'a' + 10 );
+}
+
+
+/**
+ * Convert a string to a character array
+ */
+static char **apr_ldap_str2charray(apr_pool_t *pool,
+                                   const char *str_in,
+                                   const char *brkstr)
+{
+    char    **res;
+    char    *str, *s;
+    char    *lasts;
+    int i;
+
+    /* protect the input string from strtok */
+    str = (char *)apr_pstrdup(pool, str_in);
+    if( str == NULL ) {
+        return NULL;
+    }
+
+    i = 1;
+    for ( s = str; *s; s++ ) {
+        /* Warning: this strchr was previously ldap_utf8_strchr(), check
+         * whether this particular code has any charset issues.
+         */
+        if ( strchr( brkstr, *s ) != NULL ) {
+            i++;
+        }
+    }
+
+    res = (char **) apr_pcalloc(pool, (i + 1) * sizeof(char *));
+    if( res == NULL ) {
+        return NULL;
+    }
+
+    i = 0;
+
+    for ( s = (char *)apr_strtok( str, brkstr, &lasts );
+          s != NULL;
+          s = (char *)apr_strtok( NULL, brkstr, &lasts ) ) {
+
+        res[i] = (char *)apr_pstrdup(pool, s);
+        if(res[i] == NULL) {
+            return NULL;
+        }
+
+        i++;
+    }
+
+    res[i] = NULL;
+
+    return( res );
+
+}
+
+#endif /* APR_HAS_LDAP */
diff --git a/libaprutil.dep b/libaprutil.dep
new file mode 100644
index 0000000..4903224
--- /dev/null
+++ b/libaprutil.dep
@@ -0,0 +1,921 @@
+# Microsoft Developer Studio Generated Dependency File, included by libaprutil.mak

+

+.\buckets\apr_brigade.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_lib.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_alloc.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_eos.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_file.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_flush.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_heap.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_mmap.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_pipe.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_pool.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_refcount.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_simple.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\buckets\apr_buckets_socket.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apu.h"\

+	

+

+.\crypto\apr_md4.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_lib.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_md4.h"\

+	".\include\apr_xlate.h"\

+	".\include\apu.h"\

+	

+

+.\crypto\apr_md5.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_lib.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_md5.h"\

+	".\include\apr_sha1.h"\

+	".\include\apr_xlate.h"\

+	".\include\apu.h"\

+	".\include\private\apu_config.h"\

+	

+

+.\crypto\apr_sha1.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_lib.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_base64.h"\

+	".\include\apr_sha1.h"\

+	".\include\apr_xlate.h"\

+	".\include\apu.h"\

+	

+

+.\crypto\getuuid.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_dso.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_global_mutex.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_portable.h"\

+	"..\apr\include\apr_proc_mutex.h"\

+	"..\apr\include\apr_shm.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_thread_proc.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_md5.h"\

+	".\include\apr_uuid.h"\

+	".\include\apr_xlate.h"\

+	".\include\apu.h"\

+	

+

+.\crypto\uuid.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_lib.h"\

+	".\include\apr_uuid.h"\

+	".\include\apu.h"\

+	

+

+.\dbd\apr_dbd.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_dso.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_hash.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_dbd.h"\

+	".\include\apu.h"\

+	".\include\private\apr_dbd_internal.h"\

+	

+

+.\dbd\apr_dbd_mysql.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_mmap.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_version.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_buckets.h"\

+	".\include\apr_dbd.h"\

+	".\include\apu.h"\

+	".\include\apu_version.h"\

+	".\include\private\apr_dbd_internal.h"\

+	".\include\private\apu_config.h"\

+	

+

+.\dbd\apr_dbd_pgsql.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_dbd.h"\

+	".\include\apu.h"\

+	".\include\private\apr_dbd_internal.h"\

+	".\include\private\apu_config.h"\

+	

+

+.\dbd\apr_dbd_sqlite2.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_dbd.h"\

+	".\include\apu.h"\

+	".\include\private\apr_dbd_internal.h"\

+	

+

+.\dbd\apr_dbd_sqlite3.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_dbd.h"\

+	".\include\apu.h"\

+	".\include\private\apr_dbd_internal.h"\

+	

+

+.\dbm\apr_dbm.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_dbm.h"\

+	".\include\apu.h"\

+	".\include\private\apr_dbm_private.h"\

+	".\include\private\apu_select_dbm.h"\

+	

+

+.\dbm\apr_dbm_berkeleydb.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_dbm.h"\

+	".\include\apu.h"\

+	".\include\apu_want.h"\

+	".\include\private\apr_dbm_private.h"\

+	".\include\private\apu_select_dbm.h"\

+	

+

+.\dbm\apr_dbm_gdbm.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_dbm.h"\

+	".\include\apu.h"\

+	".\include\private\apr_dbm_private.h"\

+	".\include\private\apu_select_dbm.h"\

+	

+

+.\dbm\apr_dbm_sdbm.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_dbm.h"\

+	".\include\apr_sdbm.h"\

+	".\include\apu.h"\

+	".\include\private\apr_dbm_private.h"\

+	".\include\private\apu_select_dbm.h"\

+	

+

+.\encoding\apr_base64.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_base64.h"\

+	".\include\apr_xlate.h"\

+	".\include\apu.h"\

+	

+

+.\hooks\apr_hooks.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_hash.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_hooks.h"\

+	".\include\apr_optional.h"\

+	".\include\apr_optional_hooks.h"\

+	".\include\apu.h"\

+	

+

+.\ldap\apr_ldap_init.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_ldap.h"\

+	".\include\apr_ldap_init.h"\

+	".\include\apr_ldap_option.h"\

+	".\include\apr_ldap_url.h"\

+	".\include\apu.h"\

+	

+

+.\ldap\apr_ldap_option.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_ldap.h"\

+	".\include\apr_ldap_init.h"\

+	".\include\apr_ldap_option.h"\

+	".\include\apr_ldap_url.h"\

+	".\include\apu.h"\

+	

+

+.\ldap\apr_ldap_url.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_ldap.h"\

+	".\include\apr_ldap_init.h"\

+	".\include\apr_ldap_option.h"\

+	".\include\apr_ldap_url.h"\

+	".\include\apu.h"\

+	

+

+.\misc\apr_date.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_lib.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_date.h"\

+	".\include\apu.h"\

+	

+

+.\misc\apr_queue.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_dso.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_global_mutex.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_portable.h"\

+	"..\apr\include\apr_proc_mutex.h"\

+	"..\apr\include\apr_shm.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_cond.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_thread_proc.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_queue.h"\

+	".\include\apu.h"\

+	

+

+.\misc\apr_reslist.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_ring.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_cond.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_reslist.h"\

+	".\include\apu.h"\

+	

+

+.\misc\apr_rmm.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_lib.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_proc_mutex.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_thread_rwlock.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_anylock.h"\

+	".\include\apr_rmm.h"\

+	".\include\apu.h"\

+	

+

+.\misc\apu_version.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_version.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apu.h"\

+	".\include\apu_version.h"\

+	

+

+.\dbm\sdbm\sdbm.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\dbm\sdbm\sdbm_pair.h"\

+	".\dbm\sdbm\sdbm_private.h"\

+	".\dbm\sdbm\sdbm_tune.h"\

+	".\include\apr_sdbm.h"\

+	".\include\apu.h"\

+	

+

+.\dbm\sdbm\sdbm_hash.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\dbm\sdbm\sdbm_private.h"\

+	".\include\apr_sdbm.h"\

+	".\include\apu.h"\

+	

+

+.\dbm\sdbm\sdbm_lock.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\dbm\sdbm\sdbm_private.h"\

+	".\dbm\sdbm\sdbm_tune.h"\

+	".\include\apr_sdbm.h"\

+	".\include\apu.h"\

+	

+

+.\dbm\sdbm\sdbm_pair.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\dbm\sdbm\sdbm_pair.h"\

+	".\dbm\sdbm\sdbm_private.h"\

+	".\dbm\sdbm\sdbm_tune.h"\

+	".\include\apr_sdbm.h"\

+	".\include\apu.h"\

+	

+

+.\strmatch\apr_strmatch.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_lib.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_strmatch.h"\

+	".\include\apu.h"\

+	

+

+.\uri\apr_uri.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_uri.h"\

+	".\include\apu.h"\

+	

+

+.\xlate\xlate.c : \

+	"..\apr-iconv\include\apr_iconv.h"\

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_dso.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_global_mutex.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_lib.h"\

+	"..\apr\include\apr_network_io.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_portable.h"\

+	"..\apr\include\apr_proc_mutex.h"\

+	"..\apr\include\apr_shm.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_thread_proc.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_xlate.h"\

+	".\include\apu.h"\

+	".\include\private\apu_config.h"\

+	

+

+.\xml\apr_xml.c : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_allocator.h"\

+	"..\apr\include\apr_errno.h"\

+	"..\apr\include\apr_file_info.h"\

+	"..\apr\include\apr_file_io.h"\

+	"..\apr\include\apr_general.h"\

+	"..\apr\include\apr_inherit.h"\

+	"..\apr\include\apr_pools.h"\

+	"..\apr\include\apr_strings.h"\

+	"..\apr\include\apr_tables.h"\

+	"..\apr\include\apr_thread_mutex.h"\

+	"..\apr\include\apr_time.h"\

+	"..\apr\include\apr_user.h"\

+	"..\apr\include\apr_want.h"\

+	".\include\apr_xlate.h"\

+	".\include\apr_xml.h"\

+	".\include\apu.h"\

+	".\include\private\apu_config.h"\

+	".\xml\expat\lib\expat.h"\

+	

+

+!IF  "$(CFG)" == "libaprutil - Win32 Release"

+

+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"

+

+!ENDIF 

+

+!IF  "$(CFG)" == "libaprutil - Win32 Release"

+

+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"

+

+!ENDIF 

+

+!IF  "$(CFG)" == "libaprutil - Win32 Release"

+

+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"

+

+!ENDIF 

+

+!IF  "$(CFG)" == "libaprutil - Win32 Release"

+

+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"

+

+!ENDIF 

+

+!IF  "$(CFG)" == "libaprutil - Win32 Release"

+

+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"

+

+!ENDIF 

+

+.\libaprutil.rc : \

+	"..\apr\include\apr.h"\

+	"..\apr\include\apr_version.h"\

+	".\include\apu.h"\

+	".\include\apu_version.h"\

+	

diff --git a/libaprutil.dsp b/libaprutil.dsp
new file mode 100644
index 0000000..e4e566d
--- /dev/null
+++ b/libaprutil.dsp
@@ -0,0 +1,785 @@
+# Microsoft Developer Studio Project File - Name="libaprutil" - Package Owner=<4>

+# Microsoft Developer Studio Generated Build File, Format Version 6.00

+# ** DO NOT EDIT **

+

+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

+

+CFG=libaprutil - Win32 Release

+!MESSAGE This is not a valid makefile. To build this project using NMAKE,

+!MESSAGE use the Export Makefile command and run

+!MESSAGE 

+!MESSAGE NMAKE /f "libaprutil.mak".

+!MESSAGE 

+!MESSAGE You can specify a configuration when running NMAKE

+!MESSAGE by defining the macro CFG on the command line. For example:

+!MESSAGE 

+!MESSAGE NMAKE /f "libaprutil.mak" CFG="libaprutil - Win32 Release"

+!MESSAGE 

+!MESSAGE Possible choices for configuration are:

+!MESSAGE 

+!MESSAGE "libaprutil - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")

+!MESSAGE "libaprutil - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")

+!MESSAGE "libaprutil - x64 Release" (based on "Win32 (x86) Dynamic-Link Library")

+!MESSAGE "libaprutil - x64 Debug" (based on "Win32 (x86) Dynamic-Link Library")

+!MESSAGE 

+

+# Begin Project

+# PROP AllowPerConfigDependencies 0

+# PROP Scc_ProjName ""

+# PROP Scc_LocalPath ""

+CPP=cl.exe

+MTL=midl.exe

+RSC=rc.exe

+

+!IF  "$(CFG)" == "libaprutil - Win32 Release"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 0

+# PROP BASE Output_Dir "Release"

+# PROP BASE Intermediate_Dir "Release"

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 0

+# PROP Output_Dir "Release"

+# PROP Intermediate_Dir "Release"

+# PROP Ignore_Export_Lib 0

+# PROP Target_Dir ""

+# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c

+# ADD CPP /nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "NDEBUG" /D "APU_DECLARE_EXPORT" /D "APU_USE_SDBM" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\" /Fd"$(INTDIR)\libaprutil_src" /FD /c

+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"

+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"

+# ADD BASE RSC /l 0x409 /d "NDEBUG"

+# ADD RSC /l 0x409 /d "NDEBUG" /d "APU_VERSION_ONLY" /I "./include" /I "../apr/include"

+BSC32=bscmake.exe

+# ADD BASE BSC32 /nologo

+# ADD BSC32 /nologo

+LINK32=link.exe

+# ADD BASE LINK32 kernel32.lib advapi32.lib ws2_32.lib mswsock.lib wldap32.lib ole32.lib /nologo /base:"0x6EE60000" /subsystem:windows /dll /incremental:no /debug /opt:ref

+# ADD LINK32 kernel32.lib advapi32.lib ws2_32.lib mswsock.lib wldap32.lib ole32.lib /nologo /base:"0x6EE60000" /subsystem:windows /dll /incremental:no /debug /out:"Release\libaprutil-1.dll" /pdb:"Release\libaprutil-1.pdb" /implib:"Release\libaprutil-1.lib" /MACHINE:X86 /opt:ref

+# Begin Special Build Tool

+TargetPath=Release\libaprutil-1.dll

+SOURCE="$(InputPath)"

+PostBuild_Desc=Embed .manifest

+PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2

+# End Special Build Tool

+

+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 1

+# PROP BASE Output_Dir "Debug"

+# PROP BASE Intermediate_Dir "Debug"

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 1

+# PROP Output_Dir "Debug"

+# PROP Intermediate_Dir "Debug"

+# PROP Ignore_Export_Lib 0

+# PROP Target_Dir ""

+# ADD BASE CPP /nologo /MDd /W3 /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /EHsc /c

+# ADD CPP /nologo /MDd /W3 /Zi /Od /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "_DEBUG" /D "APU_DECLARE_EXPORT" /D "APU_USE_SDBM" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\" /Fd"$(INTDIR)\libaprutil_src" /FD /EHsc /c

+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"

+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"

+# ADD BASE RSC /l 0x409 /d "_DEBUG"

+# ADD RSC /l 0x409 /d "_DEBUG" /d "APU_VERSION_ONLY" /I "./include" /I "../apr/include"

+BSC32=bscmake.exe

+# ADD BASE BSC32 /nologo

+# ADD BSC32 /nologo

+LINK32=link.exe

+# ADD BASE LINK32 kernel32.lib advapi32.lib ws2_32.lib mswsock.lib wldap32.lib ole32.lib /nologo /base:"0x6EE60000" /subsystem:windows /dll /incremental:no /debug

+# ADD LINK32 kernel32.lib advapi32.lib ws2_32.lib mswsock.lib wldap32.lib ole32.lib /nologo /base:"0x6EE60000" /subsystem:windows /dll /incremental:no /debug /out:"Debug\libaprutil-1.dll" /pdb:"Debug\libaprutil-1.pdb" /implib:"Debug\libaprutil-1.lib" /MACHINE:X86

+# Begin Special Build Tool

+TargetPath=Debug\libaprutil-1.dll

+SOURCE="$(InputPath)"

+PostBuild_Desc=Embed .manifest

+PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2

+# End Special Build Tool

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 0

+# PROP BASE Output_Dir "x64\Release"

+# PROP BASE Intermediate_Dir "x64\Release"

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 0

+# PROP Output_Dir "x64\Release"

+# PROP Intermediate_Dir "x64\Release"

+# PROP Ignore_Export_Lib 0

+# PROP Target_Dir ""

+# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c

+# ADD CPP /nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "NDEBUG" /D "APU_DECLARE_EXPORT" /D "APU_USE_SDBM" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\" /Fd"$(INTDIR)\libaprutil_src" /FD /c

+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"

+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"

+# ADD BASE RSC /l 0x409 /d "NDEBUG"

+# ADD RSC /l 0x409 /d "NDEBUG" /d "APU_VERSION_ONLY" /I "./include" /I "../apr/include"

+BSC32=bscmake.exe

+# ADD BASE BSC32 /nologo

+# ADD BSC32 /nologo

+LINK32=link.exe

+# ADD BASE LINK32 kernel32.lib advapi32.lib ws2_32.lib mswsock.lib wldap32.lib ole32.lib /nologo /base:"0x6EE60000" /subsystem:windows /dll /incremental:no /debug /opt:ref

+# ADD LINK32 kernel32.lib advapi32.lib ws2_32.lib mswsock.lib wldap32.lib ole32.lib /nologo /base:"0x6EE60000" /subsystem:windows /dll /incremental:no /debug /out:"x64\Release\libaprutil-1.dll" /pdb:"x64\Release\libaprutil-1.pdb" /implib:"x64\Release\libaprutil-1.lib" /MACHINE:X64 /opt:ref

+# Begin Special Build Tool

+TargetPath=x64\Release\libaprutil-1.dll

+SOURCE="$(InputPath)"

+PostBuild_Desc=Embed .manifest

+PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2

+# End Special Build Tool

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 1

+# PROP BASE Output_Dir "x64\Debug"

+# PROP BASE Intermediate_Dir "x64\Debug"

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 1

+# PROP Output_Dir "x64\Debug"

+# PROP Intermediate_Dir "x64\Debug"

+# PROP Ignore_Export_Lib 0

+# PROP Target_Dir ""

+# ADD BASE CPP /nologo /MDd /W3 /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /EHsc /c

+# ADD CPP /nologo /MDd /W3 /Zi /Od /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "_DEBUG" /D "APU_DECLARE_EXPORT" /D "APU_USE_SDBM" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\" /Fd"$(INTDIR)\libaprutil_src" /FD /EHsc /c

+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"

+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"

+# ADD BASE RSC /l 0x409 /d "_DEBUG"

+# ADD RSC /l 0x409 /d "_DEBUG" /d "APU_VERSION_ONLY" /I "./include" /I "../apr/include"

+BSC32=bscmake.exe

+# ADD BASE BSC32 /nologo

+# ADD BSC32 /nologo

+LINK32=link.exe

+# ADD BASE LINK32 kernel32.lib advapi32.lib ws2_32.lib mswsock.lib wldap32.lib ole32.lib /nologo /base:"0x6EE60000" /subsystem:windows /dll /incremental:no /debug

+# ADD LINK32 kernel32.lib advapi32.lib ws2_32.lib mswsock.lib wldap32.lib ole32.lib /nologo /base:"0x6EE60000" /subsystem:windows /dll /incremental:no /debug /out:"x64\Debug\libaprutil-1.dll" /pdb:"x64\Debug\libaprutil-1.pdb" /implib:"x64\Debug\libaprutil-1.lib" /MACHINE:X64

+# Begin Special Build Tool

+TargetPath=x64\Debug\libaprutil-1.dll

+SOURCE="$(InputPath)"

+PostBuild_Desc=Embed .manifest

+PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2

+# End Special Build Tool

+

+!ENDIF 

+

+# Begin Target

+

+# Name "libaprutil - Win32 Release"

+# Name "libaprutil - Win32 Debug"

+# Name "libaprutil - x64 Release"

+# Name "libaprutil - x64 Debug"

+# Begin Group "Source Files"

+

+# PROP Default_Filter ""

+# Begin Group "buckets"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\buckets\apr_brigade.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_alloc.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_eos.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_file.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_flush.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_heap.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_mmap.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_pipe.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_pool.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_refcount.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_simple.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\buckets\apr_buckets_socket.c

+# End Source File

+# End Group

+# Begin Group "crypto"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\crypto\apr_md4.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\crypto\apr_md5.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\crypto\apr_sha1.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\crypto\getuuid.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\crypto\uuid.c

+# End Source File

+# End Group

+# Begin Group "dbd"

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\dbd\apr_dbd.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbd\apr_dbd_mysql.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbd\apr_dbd_pgsql.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbd\apr_dbd_sqlite2.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbd\apr_dbd_sqlite3.c

+# End Source File

+# End Group

+# Begin Group "dbm"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\dbm\apr_dbm.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbm\apr_dbm_berkeleydb.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbm\apr_dbm_gdbm.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbm\apr_dbm_sdbm.c

+# End Source File

+# End Group

+# Begin Group "encoding"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\encoding\apr_base64.c

+# End Source File

+# End Group

+# Begin Group "hooks"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\hooks\apr_hooks.c

+# End Source File

+# End Group

+# Begin Group "ldap"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\ldap\apr_ldap_init.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\ldap\apr_ldap_url.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\ldap\apr_ldap_option.c

+# End Source File 

+# End Group

+# Begin Group "misc"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\misc\apr_date.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\misc\apr_queue.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\misc\apr_reslist.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\misc\apr_rmm.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\misc\apu_version.c

+# End Source File

+# End Group

+# Begin Group "sdbm"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\dbm\sdbm\sdbm.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbm\sdbm\sdbm_hash.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbm\sdbm\sdbm_lock.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbm\sdbm\sdbm_pair.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbm\sdbm\sdbm_pair.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbm\sdbm\sdbm_private.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\dbm\sdbm\sdbm_tune.h

+# End Source File

+# End Group

+# Begin Group "strmatch"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\strmatch\apr_strmatch.c

+# End Source File

+# End Group

+# Begin Group "uri"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\uri\apr_uri.c

+# End Source File

+# End Group

+# Begin Group "xlate"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\xlate\xlate.c

+# End Source File

+# End Group

+# Begin Group "xml"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\xml\apr_xml.c

+# End Source File

+# End Group

+# End Group

+# Begin Group "Generated Files"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\include\apr_ldap.h.in

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_ldap.hnw

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_ldap.hw

+

+!IF  "$(CFG)" == "libaprutil - Win32 Release"

+

+# Begin Custom Build - Creating apr_ldap.h from apr_ldap.hw

+InputPath=.\include\apr_ldap.hw

+

+".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apr_ldap.hw > .\include\apr_ldap.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"

+

+# Begin Custom Build - Creating apr_ldap.h from apr_ldap.hw

+InputPath=.\include\apr_ldap.hw

+

+".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apr_ldap.hw > .\include\apr_ldap.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"

+

+# Begin Custom Build - Creating apr_ldap.h from apr_ldap.hw

+InputPath=.\include\apr_ldap.hw

+

+".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apr_ldap.hw > .\include\apr_ldap.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"

+

+# Begin Custom Build - Creating apr_ldap.h from apr_ldap.hw

+InputPath=.\include\apr_ldap.hw

+

+".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apr_ldap.hw > .\include\apr_ldap.h

+

+# End Custom Build

+

+!ENDIF 

+

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apu.h.in

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apu.hnw

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apu.hw

+

+!IF  "$(CFG)" == "libaprutil - Win32 Release"

+

+# Begin Custom Build - Creating apu.h from apu.hw

+InputPath=.\include\apu.hw

+

+".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apu.hw > .\include\apu.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"

+

+# Begin Custom Build - Creating apu.h from apu.hw

+InputPath=.\include\apu.hw

+

+".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apu.hw > .\include\apu.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"

+

+# Begin Custom Build - Creating apu.h from apu.hw

+InputPath=.\include\apu.hw

+

+".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apu.hw > .\include\apu.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"

+

+# Begin Custom Build - Creating apu.h from apu.hw

+InputPath=.\include\apu.hw

+

+".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apu.hw > .\include\apu.h

+

+# End Custom Build

+

+!ENDIF 

+

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\private\apu_config.h.in

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\private\apu_config.hw

+

+!IF  "$(CFG)" == "libaprutil - Win32 Release"

+

+# Begin Custom Build - Creating apu_config.h from apu_config.hw

+InputPath=.\include\private\apu_config.hw

+

+".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\private\apu_config.hw > .\include\private\apu_config.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"

+

+# Begin Custom Build - Creating apu_config.h from apu_config.hw

+InputPath=.\include\private\apu_config.hw

+

+".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\private\apu_config.hw > .\include\private\apu_config.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"

+

+# Begin Custom Build - Creating apu_config.h from apu_config.hw

+InputPath=.\include\private\apu_config.hw

+

+".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\private\apu_config.hw > .\include\private\apu_config.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"

+

+# Begin Custom Build - Creating apu_config.h from apu_config.hw

+InputPath=.\include\private\apu_config.hw

+

+".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\private\apu_config.hw > .\include\private\apu_config.h

+

+# End Custom Build

+

+!ENDIF 

+

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\private\apu_select_dbm.h.in

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\private\apu_select_dbm.hw

+

+!IF  "$(CFG)" == "libaprutil - Win32 Release"

+

+# Begin Custom Build - Creating apu_select_dbm.h from apu_select_dbm.hw

+InputPath=.\include\private\apu_select_dbm.hw

+

+".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\private\apu_select_dbm.hw > .\include\private\apu_select_dbm.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"

+

+# Begin Custom Build - Creating apu_select_dbm.h from apu_select_dbm.hw

+InputPath=.\include\private\apu_select_dbm.hw

+

+".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\private\apu_select_dbm.hw > .\include\private\apu_select_dbm.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"

+

+# Begin Custom Build - Creating apu_select_dbm.h from apu_select_dbm.hw

+InputPath=.\include\private\apu_select_dbm.hw

+

+".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\private\apu_select_dbm.hw > .\include\private\apu_select_dbm.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"

+

+# Begin Custom Build - Creating apu_select_dbm.h from apu_select_dbm.hw

+InputPath=.\include\private\apu_select_dbm.hw

+

+".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\private\apu_select_dbm.hw > .\include\private\apu_select_dbm.h

+

+# End Custom Build

+

+!ENDIF 

+

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apu_want.h.in

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apu_want.hnw

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apu_want.hw

+

+!IF  "$(CFG)" == "libaprutil - Win32 Release"

+

+# Begin Custom Build - Creating apu_want.h from apu_want.hw

+InputPath=.\include\apu_want.hw

+

+".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apu_want.hw > .\include\apu_want.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"

+

+# Begin Custom Build - Creating apu_want.h from apu_want.hw

+InputPath=.\include\apu_want.hw

+

+".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apu_want.hw > .\include\apu_want.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"

+

+# Begin Custom Build - Creating apu_want.h from apu_want.hw

+InputPath=.\include\apu_want.hw

+

+".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apu_want.hw > .\include\apu_want.h

+

+# End Custom Build

+

+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"

+

+# Begin Custom Build - Creating apu_want.h from apu_want.hw

+InputPath=.\include\apu_want.hw

+

+".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"

+	type .\include\apu_want.hw > .\include\apu_want.h

+

+# End Custom Build

+

+!ENDIF 

+

+# End Source File

+# End Group

+# Begin Group "Public Header Files"

+

+# PROP Default_Filter ""

+# Begin Source File

+

+SOURCE=.\include\apr_anylock.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_base64.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_buckets.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_date.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_dbm.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_hooks.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_ldap_url.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_md4.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_md5.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_optional.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_optional_hooks.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_queue.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_reslist.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_rmm.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_sdbm.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_sha1.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_strmatch.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_uri.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_uuid.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_xlate.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apr_xml.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\include\apu_version.h

+# End Source File

+# End Group

+# Begin Source File

+

+SOURCE=.\libaprutil.rc

+# End Source File

+# End Target

+# End Project

diff --git a/libaprutil.mak b/libaprutil.mak
new file mode 100644
index 0000000..d6b19ab
--- /dev/null
+++ b/libaprutil.mak
@@ -0,0 +1,1586 @@
+# Microsoft Developer Studio Generated NMAKE File, Based on libaprutil.dsp
+!IF "$(CFG)" == ""
+CFG=libaprutil - Win32 Release
+!MESSAGE No configuration specified. Defaulting to libaprutil - Win32 Release.
+!ENDIF 
+
+!IF "$(CFG)" != "libaprutil - Win32 Release" && "$(CFG)" != "libaprutil - Win32 Debug" && "$(CFG)" != "libaprutil - x64 Release" && "$(CFG)" != "libaprutil - x64 Debug"
+!MESSAGE Invalid configuration "$(CFG)" specified.
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "libaprutil.mak" CFG="libaprutil - Win32 Release"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "libaprutil - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "libaprutil - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "libaprutil - x64 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "libaprutil - x64 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE 
+!ERROR An invalid configuration is specified.
+!ENDIF 
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE 
+NULL=nul
+!ENDIF 
+
+!IF  "$(CFG)" == "libaprutil - Win32 Release"
+
+OUTDIR=.\Release
+INTDIR=.\Release
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+# Begin Custom Macros
+OutDir=.\Release
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0" 
+
+ALL : "$(OUTDIR)\libaprutil-1.dll" "$(DS_POSTBUILD_DEP)"
+
+!ELSE 
+
+ALL : "xml - Win32 Release" "libapriconv_ces_modules - Win32 Release" "libapriconv_ccs_modules - Win32 Release" "libapriconv - Win32 Release" "libapr - Win32 Release" "$(OUTDIR)\libaprutil-1.dll" "$(DS_POSTBUILD_DEP)"
+
+!ENDIF 
+
+!IF "$(RECURSE)" == "1" 
+CLEAN :"libapr - Win32 ReleaseCLEAN" "libapriconv - Win32 ReleaseCLEAN" "libapriconv_ccs_modules - Win32 ReleaseCLEAN" "libapriconv_ces_modules - Win32 ReleaseCLEAN" "xml - Win32 ReleaseCLEAN" 
+!ELSE 
+CLEAN :
+!ENDIF 
+	-@erase "$(INTDIR)\apr_base64.obj"
+	-@erase "$(INTDIR)\apr_brigade.obj"
+	-@erase "$(INTDIR)\apr_buckets.obj"
+	-@erase "$(INTDIR)\apr_buckets_alloc.obj"
+	-@erase "$(INTDIR)\apr_buckets_eos.obj"
+	-@erase "$(INTDIR)\apr_buckets_file.obj"
+	-@erase "$(INTDIR)\apr_buckets_flush.obj"
+	-@erase "$(INTDIR)\apr_buckets_heap.obj"
+	-@erase "$(INTDIR)\apr_buckets_mmap.obj"
+	-@erase "$(INTDIR)\apr_buckets_pipe.obj"
+	-@erase "$(INTDIR)\apr_buckets_pool.obj"
+	-@erase "$(INTDIR)\apr_buckets_refcount.obj"
+	-@erase "$(INTDIR)\apr_buckets_simple.obj"
+	-@erase "$(INTDIR)\apr_buckets_socket.obj"
+	-@erase "$(INTDIR)\apr_date.obj"
+	-@erase "$(INTDIR)\apr_dbd.obj"
+	-@erase "$(INTDIR)\apr_dbd_mysql.obj"
+	-@erase "$(INTDIR)\apr_dbd_pgsql.obj"
+	-@erase "$(INTDIR)\apr_dbd_sqlite2.obj"
+	-@erase "$(INTDIR)\apr_dbd_sqlite3.obj"
+	-@erase "$(INTDIR)\apr_dbm.obj"
+	-@erase "$(INTDIR)\apr_dbm_berkeleydb.obj"
+	-@erase "$(INTDIR)\apr_dbm_gdbm.obj"
+	-@erase "$(INTDIR)\apr_dbm_sdbm.obj"
+	-@erase "$(INTDIR)\apr_hooks.obj"
+	-@erase "$(INTDIR)\apr_ldap_init.obj"
+	-@erase "$(INTDIR)\apr_ldap_option.obj"
+	-@erase "$(INTDIR)\apr_ldap_url.obj"
+	-@erase "$(INTDIR)\apr_md4.obj"
+	-@erase "$(INTDIR)\apr_md5.obj"
+	-@erase "$(INTDIR)\apr_queue.obj"
+	-@erase "$(INTDIR)\apr_reslist.obj"
+	-@erase "$(INTDIR)\apr_rmm.obj"
+	-@erase "$(INTDIR)\apr_sha1.obj"
+	-@erase "$(INTDIR)\apr_strmatch.obj"
+	-@erase "$(INTDIR)\apr_uri.obj"
+	-@erase "$(INTDIR)\apr_xml.obj"
+	-@erase "$(INTDIR)\apu_version.obj"
+	-@erase "$(INTDIR)\getuuid.obj"
+	-@erase "$(INTDIR)\libaprutil.res"
+	-@erase "$(INTDIR)\libaprutil_src.idb"
+	-@erase "$(INTDIR)\libaprutil_src.pdb"
+	-@erase "$(INTDIR)\sdbm.obj"
+	-@erase "$(INTDIR)\sdbm_hash.obj"
+	-@erase "$(INTDIR)\sdbm_lock.obj"
+	-@erase "$(INTDIR)\sdbm_pair.obj"
+	-@erase "$(INTDIR)\uuid.obj"
+	-@erase "$(INTDIR)\xlate.obj"
+	-@erase "$(OUTDIR)\libaprutil-1.dll"
+	-@erase "$(OUTDIR)\libaprutil-1.exp"
+	-@erase "$(OUTDIR)\libaprutil-1.lib"
+	-@erase "$(OUTDIR)\libaprutil-1.pdb"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "NDEBUG" /D "APU_DECLARE_EXPORT" /D "APU_USE_SDBM" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libaprutil_src" /FD /c 
+
+.c{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.c{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+MTL=midl.exe
+MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" 
+RSC=rc.exe
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libaprutil.res" /i "./include" /i "../apr/include" /d "NDEBUG" /d "APU_VERSION_ONLY" 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\libaprutil.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib wldap32.lib ole32.lib /nologo /base:"0x6EE60000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libaprutil-1.pdb" /debug /machine:IX86 /out:"$(OUTDIR)\libaprutil-1.dll" /implib:"$(OUTDIR)\libaprutil-1.lib" /MACHINE:X86 /opt:ref 
+LINK32_OBJS= \
+	"$(INTDIR)\apr_brigade.obj" \
+	"$(INTDIR)\apr_buckets.obj" \
+	"$(INTDIR)\apr_buckets_alloc.obj" \
+	"$(INTDIR)\apr_buckets_eos.obj" \
+	"$(INTDIR)\apr_buckets_file.obj" \
+	"$(INTDIR)\apr_buckets_flush.obj" \
+	"$(INTDIR)\apr_buckets_heap.obj" \
+	"$(INTDIR)\apr_buckets_mmap.obj" \
+	"$(INTDIR)\apr_buckets_pipe.obj" \
+	"$(INTDIR)\apr_buckets_pool.obj" \
+	"$(INTDIR)\apr_buckets_refcount.obj" \
+	"$(INTDIR)\apr_buckets_simple.obj" \
+	"$(INTDIR)\apr_buckets_socket.obj" \
+	"$(INTDIR)\apr_md4.obj" \
+	"$(INTDIR)\apr_md5.obj" \
+	"$(INTDIR)\apr_sha1.obj" \
+	"$(INTDIR)\getuuid.obj" \
+	"$(INTDIR)\uuid.obj" \
+	"$(INTDIR)\apr_dbd.obj" \
+	"$(INTDIR)\apr_dbd_mysql.obj" \
+	"$(INTDIR)\apr_dbd_pgsql.obj" \
+	"$(INTDIR)\apr_dbd_sqlite2.obj" \
+	"$(INTDIR)\apr_dbd_sqlite3.obj" \
+	"$(INTDIR)\apr_dbm.obj" \
+	"$(INTDIR)\apr_dbm_berkeleydb.obj" \
+	"$(INTDIR)\apr_dbm_gdbm.obj" \
+	"$(INTDIR)\apr_dbm_sdbm.obj" \
+	"$(INTDIR)\apr_base64.obj" \
+	"$(INTDIR)\apr_hooks.obj" \
+	"$(INTDIR)\apr_ldap_init.obj" \
+	"$(INTDIR)\apr_ldap_url.obj" \
+	"$(INTDIR)\apr_ldap_option.obj" \
+	"$(INTDIR)\apr_date.obj" \
+	"$(INTDIR)\apr_queue.obj" \
+	"$(INTDIR)\apr_reslist.obj" \
+	"$(INTDIR)\apr_rmm.obj" \
+	"$(INTDIR)\apu_version.obj" \
+	"$(INTDIR)\sdbm.obj" \
+	"$(INTDIR)\sdbm_hash.obj" \
+	"$(INTDIR)\sdbm_lock.obj" \
+	"$(INTDIR)\sdbm_pair.obj" \
+	"$(INTDIR)\apr_strmatch.obj" \
+	"$(INTDIR)\apr_uri.obj" \
+	"$(INTDIR)\xlate.obj" \
+	"$(INTDIR)\apr_xml.obj" \
+	"$(INTDIR)\libaprutil.res" \
+	"..\apr\Release\libapr-1.lib" \
+	"..\apr-iconv\Release\libapriconv-1.lib" \
+	".\xml\expat\lib\LibR\xml.lib"
+
+"$(OUTDIR)\libaprutil-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+TargetPath=.\Release\libaprutil-1.dll
+SOURCE="$(InputPath)"
+PostBuild_Desc=Embed .manifest
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+
+# Begin Custom Macros
+OutDir=.\Release
+# End Custom Macros
+
+"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libaprutil-1.dll"
+   if exist .\Release\libaprutil-1.dll.manifest mt.exe -manifest .\Release\libaprutil-1.dll.manifest -outputresource:.\Release\libaprutil-1.dll;2
+	echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
+
+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"
+
+OUTDIR=.\Debug
+INTDIR=.\Debug
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+# Begin Custom Macros
+OutDir=.\Debug
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0" 
+
+ALL : ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\libaprutil-1.dll" "$(DS_POSTBUILD_DEP)"
+
+!ELSE 
+
+ALL : "xml - Win32 Debug" "libapriconv_ces_modules - Win32 Debug" "libapriconv_ccs_modules - Win32 Debug" "libapriconv - Win32 Debug" "libapr - Win32 Debug" ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\libaprutil-1.dll" "$(DS_POSTBUILD_DEP)"
+
+!ENDIF 
+
+!IF "$(RECURSE)" == "1" 
+CLEAN :"libapr - Win32 DebugCLEAN" "libapriconv - Win32 DebugCLEAN" "libapriconv_ccs_modules - Win32 DebugCLEAN" "libapriconv_ces_modules - Win32 DebugCLEAN" "xml - Win32 DebugCLEAN" 
+!ELSE 
+CLEAN :
+!ENDIF 
+	-@erase "$(INTDIR)\apr_base64.obj"
+	-@erase "$(INTDIR)\apr_brigade.obj"
+	-@erase "$(INTDIR)\apr_buckets.obj"
+	-@erase "$(INTDIR)\apr_buckets_alloc.obj"
+	-@erase "$(INTDIR)\apr_buckets_eos.obj"
+	-@erase "$(INTDIR)\apr_buckets_file.obj"
+	-@erase "$(INTDIR)\apr_buckets_flush.obj"
+	-@erase "$(INTDIR)\apr_buckets_heap.obj"
+	-@erase "$(INTDIR)\apr_buckets_mmap.obj"
+	-@erase "$(INTDIR)\apr_buckets_pipe.obj"
+	-@erase "$(INTDIR)\apr_buckets_pool.obj"
+	-@erase "$(INTDIR)\apr_buckets_refcount.obj"
+	-@erase "$(INTDIR)\apr_buckets_simple.obj"
+	-@erase "$(INTDIR)\apr_buckets_socket.obj"
+	-@erase "$(INTDIR)\apr_date.obj"
+	-@erase "$(INTDIR)\apr_dbd.obj"
+	-@erase "$(INTDIR)\apr_dbd_mysql.obj"
+	-@erase "$(INTDIR)\apr_dbd_pgsql.obj"
+	-@erase "$(INTDIR)\apr_dbd_sqlite2.obj"
+	-@erase "$(INTDIR)\apr_dbd_sqlite3.obj"
+	-@erase "$(INTDIR)\apr_dbm.obj"
+	-@erase "$(INTDIR)\apr_dbm_berkeleydb.obj"
+	-@erase "$(INTDIR)\apr_dbm_gdbm.obj"
+	-@erase "$(INTDIR)\apr_dbm_sdbm.obj"
+	-@erase "$(INTDIR)\apr_hooks.obj"
+	-@erase "$(INTDIR)\apr_ldap_init.obj"
+	-@erase "$(INTDIR)\apr_ldap_option.obj"
+	-@erase "$(INTDIR)\apr_ldap_url.obj"
+	-@erase "$(INTDIR)\apr_md4.obj"
+	-@erase "$(INTDIR)\apr_md5.obj"
+	-@erase "$(INTDIR)\apr_queue.obj"
+	-@erase "$(INTDIR)\apr_reslist.obj"
+	-@erase "$(INTDIR)\apr_rmm.obj"
+	-@erase "$(INTDIR)\apr_sha1.obj"
+	-@erase "$(INTDIR)\apr_strmatch.obj"
+	-@erase "$(INTDIR)\apr_uri.obj"
+	-@erase "$(INTDIR)\apr_xml.obj"
+	-@erase "$(INTDIR)\apu_version.obj"
+	-@erase "$(INTDIR)\getuuid.obj"
+	-@erase "$(INTDIR)\libaprutil.res"
+	-@erase "$(INTDIR)\libaprutil_src.idb"
+	-@erase "$(INTDIR)\libaprutil_src.pdb"
+	-@erase "$(INTDIR)\sdbm.obj"
+	-@erase "$(INTDIR)\sdbm_hash.obj"
+	-@erase "$(INTDIR)\sdbm_lock.obj"
+	-@erase "$(INTDIR)\sdbm_pair.obj"
+	-@erase "$(INTDIR)\uuid.obj"
+	-@erase "$(INTDIR)\xlate.obj"
+	-@erase "$(OUTDIR)\libaprutil-1.dll"
+	-@erase "$(OUTDIR)\libaprutil-1.exp"
+	-@erase "$(OUTDIR)\libaprutil-1.lib"
+	-@erase "$(OUTDIR)\libaprutil-1.pdb"
+	-@erase ".\include\apr_ldap.h"
+	-@erase ".\include\apu.h"
+	-@erase ".\include\apu_want.h"
+	-@erase ".\include\private\apu_config.h"
+	-@erase ".\include\private\apu_select_dbm.h"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "_DEBUG" /D "APU_DECLARE_EXPORT" /D "APU_USE_SDBM" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libaprutil_src" /FD /EHsc /c 
+
+.c{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.c{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+MTL=midl.exe
+MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" 
+RSC=rc.exe
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libaprutil.res" /i "./include" /i "../apr/include" /d "_DEBUG" /d "APU_VERSION_ONLY" 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\libaprutil.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib wldap32.lib ole32.lib /nologo /base:"0x6EE60000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libaprutil-1.pdb" /debug /machine:IX86 /out:"$(OUTDIR)\libaprutil-1.dll" /implib:"$(OUTDIR)\libaprutil-1.lib" /MACHINE:X86 
+LINK32_OBJS= \
+	"$(INTDIR)\apr_brigade.obj" \
+	"$(INTDIR)\apr_buckets.obj" \
+	"$(INTDIR)\apr_buckets_alloc.obj" \
+	"$(INTDIR)\apr_buckets_eos.obj" \
+	"$(INTDIR)\apr_buckets_file.obj" \
+	"$(INTDIR)\apr_buckets_flush.obj" \
+	"$(INTDIR)\apr_buckets_heap.obj" \
+	"$(INTDIR)\apr_buckets_mmap.obj" \
+	"$(INTDIR)\apr_buckets_pipe.obj" \
+	"$(INTDIR)\apr_buckets_pool.obj" \
+	"$(INTDIR)\apr_buckets_refcount.obj" \
+	"$(INTDIR)\apr_buckets_simple.obj" \
+	"$(INTDIR)\apr_buckets_socket.obj" \
+	"$(INTDIR)\apr_md4.obj" \
+	"$(INTDIR)\apr_md5.obj" \
+	"$(INTDIR)\apr_sha1.obj" \
+	"$(INTDIR)\getuuid.obj" \
+	"$(INTDIR)\uuid.obj" \
+	"$(INTDIR)\apr_dbd.obj" \
+	"$(INTDIR)\apr_dbd_mysql.obj" \
+	"$(INTDIR)\apr_dbd_pgsql.obj" \
+	"$(INTDIR)\apr_dbd_sqlite2.obj" \
+	"$(INTDIR)\apr_dbd_sqlite3.obj" \
+	"$(INTDIR)\apr_dbm.obj" \
+	"$(INTDIR)\apr_dbm_berkeleydb.obj" \
+	"$(INTDIR)\apr_dbm_gdbm.obj" \
+	"$(INTDIR)\apr_dbm_sdbm.obj" \
+	"$(INTDIR)\apr_base64.obj" \
+	"$(INTDIR)\apr_hooks.obj" \
+	"$(INTDIR)\apr_ldap_init.obj" \
+	"$(INTDIR)\apr_ldap_url.obj" \
+	"$(INTDIR)\apr_ldap_option.obj" \
+	"$(INTDIR)\apr_date.obj" \
+	"$(INTDIR)\apr_queue.obj" \
+	"$(INTDIR)\apr_reslist.obj" \
+	"$(INTDIR)\apr_rmm.obj" \
+	"$(INTDIR)\apu_version.obj" \
+	"$(INTDIR)\sdbm.obj" \
+	"$(INTDIR)\sdbm_hash.obj" \
+	"$(INTDIR)\sdbm_lock.obj" \
+	"$(INTDIR)\sdbm_pair.obj" \
+	"$(INTDIR)\apr_strmatch.obj" \
+	"$(INTDIR)\apr_uri.obj" \
+	"$(INTDIR)\xlate.obj" \
+	"$(INTDIR)\apr_xml.obj" \
+	"$(INTDIR)\libaprutil.res" \
+	"..\apr\Debug\libapr-1.lib" \
+	"..\apr-iconv\Debug\libapriconv-1.lib" \
+	".\xml\expat\lib\LibD\xml.lib"
+
+"$(OUTDIR)\libaprutil-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+TargetPath=.\Debug\libaprutil-1.dll
+SOURCE="$(InputPath)"
+PostBuild_Desc=Embed .manifest
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+
+# Begin Custom Macros
+OutDir=.\Debug
+# End Custom Macros
+
+"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libaprutil-1.dll"
+   if exist .\Debug\libaprutil-1.dll.manifest mt.exe -manifest .\Debug\libaprutil-1.dll.manifest -outputresource:.\Debug\libaprutil-1.dll;2
+	echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"
+
+OUTDIR=.\x64\Release
+INTDIR=.\x64\Release
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+# Begin Custom Macros
+OutDir=.\x64\Release
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0" 
+
+ALL : ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\libaprutil-1.dll" "$(DS_POSTBUILD_DEP)"
+
+!ELSE 
+
+ALL : "xml - x64 Release" "libapriconv_ces_modules - x64 Release" "libapriconv_ccs_modules - x64 Release" "libapriconv - x64 Release" "libapr - x64 Release" ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\libaprutil-1.dll" "$(DS_POSTBUILD_DEP)"
+
+!ENDIF 
+
+!IF "$(RECURSE)" == "1" 
+CLEAN :"libapr - x64 ReleaseCLEAN" "libapriconv - x64 ReleaseCLEAN" "libapriconv_ccs_modules - x64 ReleaseCLEAN" "libapriconv_ces_modules - x64 ReleaseCLEAN" "xml - x64 ReleaseCLEAN" 
+!ELSE 
+CLEAN :
+!ENDIF 
+	-@erase "$(INTDIR)\apr_base64.obj"
+	-@erase "$(INTDIR)\apr_brigade.obj"
+	-@erase "$(INTDIR)\apr_buckets.obj"
+	-@erase "$(INTDIR)\apr_buckets_alloc.obj"
+	-@erase "$(INTDIR)\apr_buckets_eos.obj"
+	-@erase "$(INTDIR)\apr_buckets_file.obj"
+	-@erase "$(INTDIR)\apr_buckets_flush.obj"
+	-@erase "$(INTDIR)\apr_buckets_heap.obj"
+	-@erase "$(INTDIR)\apr_buckets_mmap.obj"
+	-@erase "$(INTDIR)\apr_buckets_pipe.obj"
+	-@erase "$(INTDIR)\apr_buckets_pool.obj"
+	-@erase "$(INTDIR)\apr_buckets_refcount.obj"
+	-@erase "$(INTDIR)\apr_buckets_simple.obj"
+	-@erase "$(INTDIR)\apr_buckets_socket.obj"
+	-@erase "$(INTDIR)\apr_date.obj"
+	-@erase "$(INTDIR)\apr_dbd.obj"
+	-@erase "$(INTDIR)\apr_dbd_mysql.obj"
+	-@erase "$(INTDIR)\apr_dbd_pgsql.obj"
+	-@erase "$(INTDIR)\apr_dbd_sqlite2.obj"
+	-@erase "$(INTDIR)\apr_dbd_sqlite3.obj"
+	-@erase "$(INTDIR)\apr_dbm.obj"
+	-@erase "$(INTDIR)\apr_dbm_berkeleydb.obj"
+	-@erase "$(INTDIR)\apr_dbm_gdbm.obj"
+	-@erase "$(INTDIR)\apr_dbm_sdbm.obj"
+	-@erase "$(INTDIR)\apr_hooks.obj"
+	-@erase "$(INTDIR)\apr_ldap_init.obj"
+	-@erase "$(INTDIR)\apr_ldap_option.obj"
+	-@erase "$(INTDIR)\apr_ldap_url.obj"
+	-@erase "$(INTDIR)\apr_md4.obj"
+	-@erase "$(INTDIR)\apr_md5.obj"
+	-@erase "$(INTDIR)\apr_queue.obj"
+	-@erase "$(INTDIR)\apr_reslist.obj"
+	-@erase "$(INTDIR)\apr_rmm.obj"
+	-@erase "$(INTDIR)\apr_sha1.obj"
+	-@erase "$(INTDIR)\apr_strmatch.obj"
+	-@erase "$(INTDIR)\apr_uri.obj"
+	-@erase "$(INTDIR)\apr_xml.obj"
+	-@erase "$(INTDIR)\apu_version.obj"
+	-@erase "$(INTDIR)\getuuid.obj"
+	-@erase "$(INTDIR)\libaprutil.res"
+	-@erase "$(INTDIR)\libaprutil_src.idb"
+	-@erase "$(INTDIR)\libaprutil_src.pdb"
+	-@erase "$(INTDIR)\sdbm.obj"
+	-@erase "$(INTDIR)\sdbm_hash.obj"
+	-@erase "$(INTDIR)\sdbm_lock.obj"
+	-@erase "$(INTDIR)\sdbm_pair.obj"
+	-@erase "$(INTDIR)\uuid.obj"
+	-@erase "$(INTDIR)\xlate.obj"
+	-@erase "$(OUTDIR)\libaprutil-1.dll"
+	-@erase "$(OUTDIR)\libaprutil-1.exp"
+	-@erase "$(OUTDIR)\libaprutil-1.lib"
+	-@erase "$(OUTDIR)\libaprutil-1.pdb"
+	-@erase ".\include\apr_ldap.h"
+	-@erase ".\include\apu.h"
+	-@erase ".\include\apu_want.h"
+	-@erase ".\include\private\apu_config.h"
+	-@erase ".\include\private\apu_select_dbm.h"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "NDEBUG" /D "APU_DECLARE_EXPORT" /D "APU_USE_SDBM" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libaprutil_src" /FD /c 
+
+.c{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.c{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+MTL=midl.exe
+MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL" 
+RSC=rc.exe
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libaprutil.res" /i "./include" /i "../apr/include" /d "NDEBUG" /d "APU_VERSION_ONLY" 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\libaprutil.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib wldap32.lib ole32.lib /nologo /base:"0x6EE60000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libaprutil-1.pdb" /debug /machine:IX86 /out:"$(OUTDIR)\libaprutil-1.dll" /implib:"$(OUTDIR)\libaprutil-1.lib" /MACHINE:X64 /opt:ref 
+LINK32_OBJS= \
+	"$(INTDIR)\apr_brigade.obj" \
+	"$(INTDIR)\apr_buckets.obj" \
+	"$(INTDIR)\apr_buckets_alloc.obj" \
+	"$(INTDIR)\apr_buckets_eos.obj" \
+	"$(INTDIR)\apr_buckets_file.obj" \
+	"$(INTDIR)\apr_buckets_flush.obj" \
+	"$(INTDIR)\apr_buckets_heap.obj" \
+	"$(INTDIR)\apr_buckets_mmap.obj" \
+	"$(INTDIR)\apr_buckets_pipe.obj" \
+	"$(INTDIR)\apr_buckets_pool.obj" \
+	"$(INTDIR)\apr_buckets_refcount.obj" \
+	"$(INTDIR)\apr_buckets_simple.obj" \
+	"$(INTDIR)\apr_buckets_socket.obj" \
+	"$(INTDIR)\apr_md4.obj" \
+	"$(INTDIR)\apr_md5.obj" \
+	"$(INTDIR)\apr_sha1.obj" \
+	"$(INTDIR)\getuuid.obj" \
+	"$(INTDIR)\uuid.obj" \
+	"$(INTDIR)\apr_dbd.obj" \
+	"$(INTDIR)\apr_dbd_mysql.obj" \
+	"$(INTDIR)\apr_dbd_pgsql.obj" \
+	"$(INTDIR)\apr_dbd_sqlite2.obj" \
+	"$(INTDIR)\apr_dbd_sqlite3.obj" \
+	"$(INTDIR)\apr_dbm.obj" \
+	"$(INTDIR)\apr_dbm_berkeleydb.obj" \
+	"$(INTDIR)\apr_dbm_gdbm.obj" \
+	"$(INTDIR)\apr_dbm_sdbm.obj" \
+	"$(INTDIR)\apr_base64.obj" \
+	"$(INTDIR)\apr_hooks.obj" \
+	"$(INTDIR)\apr_ldap_init.obj" \
+	"$(INTDIR)\apr_ldap_url.obj" \
+	"$(INTDIR)\apr_ldap_option.obj" \
+	"$(INTDIR)\apr_date.obj" \
+	"$(INTDIR)\apr_queue.obj" \
+	"$(INTDIR)\apr_reslist.obj" \
+	"$(INTDIR)\apr_rmm.obj" \
+	"$(INTDIR)\apu_version.obj" \
+	"$(INTDIR)\sdbm.obj" \
+	"$(INTDIR)\sdbm_hash.obj" \
+	"$(INTDIR)\sdbm_lock.obj" \
+	"$(INTDIR)\sdbm_pair.obj" \
+	"$(INTDIR)\apr_strmatch.obj" \
+	"$(INTDIR)\apr_uri.obj" \
+	"$(INTDIR)\xlate.obj" \
+	"$(INTDIR)\apr_xml.obj" \
+	"$(INTDIR)\libaprutil.res" \
+	"..\apr\x64\Release\libapr-1.lib" \
+	"..\apr-iconv\x64\Release\libapriconv-1.lib" \
+	".\xml\expat\lib\x64\LibR\xml.lib"
+
+"$(OUTDIR)\libaprutil-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+TargetPath=.\x64\Release\libaprutil-1.dll
+SOURCE="$(InputPath)"
+PostBuild_Desc=Embed .manifest
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+
+# Begin Custom Macros
+OutDir=.\x64\Release
+# End Custom Macros
+
+"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libaprutil-1.dll"
+   if exist .\x64\Release\libaprutil-1.dll.manifest mt.exe -manifest .\x64\Release\libaprutil-1.dll.manifest -outputresource:.\x64\Release\libaprutil-1.dll;2
+	echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"
+
+OUTDIR=.\x64\Debug
+INTDIR=.\x64\Debug
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+# Begin Custom Macros
+OutDir=.\x64\Debug
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0" 
+
+ALL : ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\libaprutil-1.dll" "$(DS_POSTBUILD_DEP)"
+
+!ELSE 
+
+ALL : "xml - x64 Debug" "libapriconv_ces_modules - x64 Debug" "libapriconv_ccs_modules - x64 Debug" "libapriconv - x64 Debug" "libapr - x64 Debug" ".\include\private\apu_select_dbm.h" ".\include\private\apu_config.h" ".\include\apu_want.h" ".\include\apu.h" ".\include\apr_ldap.h" "$(OUTDIR)\libaprutil-1.dll" "$(DS_POSTBUILD_DEP)"
+
+!ENDIF 
+
+!IF "$(RECURSE)" == "1" 
+CLEAN :"libapr - x64 DebugCLEAN" "libapriconv - x64 DebugCLEAN" "libapriconv_ccs_modules - x64 DebugCLEAN" "libapriconv_ces_modules - x64 DebugCLEAN" "xml - x64 DebugCLEAN" 
+!ELSE 
+CLEAN :
+!ENDIF 
+	-@erase "$(INTDIR)\apr_base64.obj"
+	-@erase "$(INTDIR)\apr_brigade.obj"
+	-@erase "$(INTDIR)\apr_buckets.obj"
+	-@erase "$(INTDIR)\apr_buckets_alloc.obj"
+	-@erase "$(INTDIR)\apr_buckets_eos.obj"
+	-@erase "$(INTDIR)\apr_buckets_file.obj"
+	-@erase "$(INTDIR)\apr_buckets_flush.obj"
+	-@erase "$(INTDIR)\apr_buckets_heap.obj"
+	-@erase "$(INTDIR)\apr_buckets_mmap.obj"
+	-@erase "$(INTDIR)\apr_buckets_pipe.obj"
+	-@erase "$(INTDIR)\apr_buckets_pool.obj"
+	-@erase "$(INTDIR)\apr_buckets_refcount.obj"
+	-@erase "$(INTDIR)\apr_buckets_simple.obj"
+	-@erase "$(INTDIR)\apr_buckets_socket.obj"
+	-@erase "$(INTDIR)\apr_date.obj"
+	-@erase "$(INTDIR)\apr_dbd.obj"
+	-@erase "$(INTDIR)\apr_dbd_mysql.obj"
+	-@erase "$(INTDIR)\apr_dbd_pgsql.obj"
+	-@erase "$(INTDIR)\apr_dbd_sqlite2.obj"
+	-@erase "$(INTDIR)\apr_dbd_sqlite3.obj"
+	-@erase "$(INTDIR)\apr_dbm.obj"
+	-@erase "$(INTDIR)\apr_dbm_berkeleydb.obj"
+	-@erase "$(INTDIR)\apr_dbm_gdbm.obj"
+	-@erase "$(INTDIR)\apr_dbm_sdbm.obj"
+	-@erase "$(INTDIR)\apr_hooks.obj"
+	-@erase "$(INTDIR)\apr_ldap_init.obj"
+	-@erase "$(INTDIR)\apr_ldap_option.obj"
+	-@erase "$(INTDIR)\apr_ldap_url.obj"
+	-@erase "$(INTDIR)\apr_md4.obj"
+	-@erase "$(INTDIR)\apr_md5.obj"
+	-@erase "$(INTDIR)\apr_queue.obj"
+	-@erase "$(INTDIR)\apr_reslist.obj"
+	-@erase "$(INTDIR)\apr_rmm.obj"
+	-@erase "$(INTDIR)\apr_sha1.obj"
+	-@erase "$(INTDIR)\apr_strmatch.obj"
+	-@erase "$(INTDIR)\apr_uri.obj"
+	-@erase "$(INTDIR)\apr_xml.obj"
+	-@erase "$(INTDIR)\apu_version.obj"
+	-@erase "$(INTDIR)\getuuid.obj"
+	-@erase "$(INTDIR)\libaprutil.res"
+	-@erase "$(INTDIR)\libaprutil_src.idb"
+	-@erase "$(INTDIR)\libaprutil_src.pdb"
+	-@erase "$(INTDIR)\sdbm.obj"
+	-@erase "$(INTDIR)\sdbm_hash.obj"
+	-@erase "$(INTDIR)\sdbm_lock.obj"
+	-@erase "$(INTDIR)\sdbm_pair.obj"
+	-@erase "$(INTDIR)\uuid.obj"
+	-@erase "$(INTDIR)\xlate.obj"
+	-@erase "$(OUTDIR)\libaprutil-1.dll"
+	-@erase "$(OUTDIR)\libaprutil-1.exp"
+	-@erase "$(OUTDIR)\libaprutil-1.lib"
+	-@erase "$(OUTDIR)\libaprutil-1.pdb"
+	-@erase ".\include\apr_ldap.h"
+	-@erase ".\include\apu.h"
+	-@erase ".\include\apu_want.h"
+	-@erase ".\include\private\apu_config.h"
+	-@erase ".\include\private\apu_select_dbm.h"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "../apr/include" /I "./include/private" /I "../apr-iconv/include" /I "./dbm/sdbm" /I "./xml/expat/lib" /D "_DEBUG" /D "APU_DECLARE_EXPORT" /D "APU_USE_SDBM" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libaprutil_src" /FD /EHsc /c 
+
+.c{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.c{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+MTL=midl.exe
+MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL" 
+RSC=rc.exe
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libaprutil.res" /i "./include" /i "../apr/include" /d "_DEBUG" /d "APU_VERSION_ONLY" 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\libaprutil.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib wldap32.lib ole32.lib /nologo /base:"0x6EE60000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libaprutil-1.pdb" /debug /machine:IX86 /out:"$(OUTDIR)\libaprutil-1.dll" /implib:"$(OUTDIR)\libaprutil-1.lib" /MACHINE:X64 
+LINK32_OBJS= \
+	"$(INTDIR)\apr_brigade.obj" \
+	"$(INTDIR)\apr_buckets.obj" \
+	"$(INTDIR)\apr_buckets_alloc.obj" \
+	"$(INTDIR)\apr_buckets_eos.obj" \
+	"$(INTDIR)\apr_buckets_file.obj" \
+	"$(INTDIR)\apr_buckets_flush.obj" \
+	"$(INTDIR)\apr_buckets_heap.obj" \
+	"$(INTDIR)\apr_buckets_mmap.obj" \
+	"$(INTDIR)\apr_buckets_pipe.obj" \
+	"$(INTDIR)\apr_buckets_pool.obj" \
+	"$(INTDIR)\apr_buckets_refcount.obj" \
+	"$(INTDIR)\apr_buckets_simple.obj" \
+	"$(INTDIR)\apr_buckets_socket.obj" \
+	"$(INTDIR)\apr_md4.obj" \
+	"$(INTDIR)\apr_md5.obj" \
+	"$(INTDIR)\apr_sha1.obj" \
+	"$(INTDIR)\getuuid.obj" \
+	"$(INTDIR)\uuid.obj" \
+	"$(INTDIR)\apr_dbd.obj" \
+	"$(INTDIR)\apr_dbd_mysql.obj" \
+	"$(INTDIR)\apr_dbd_pgsql.obj" \
+	"$(INTDIR)\apr_dbd_sqlite2.obj" \
+	"$(INTDIR)\apr_dbd_sqlite3.obj" \
+	"$(INTDIR)\apr_dbm.obj" \
+	"$(INTDIR)\apr_dbm_berkeleydb.obj" \
+	"$(INTDIR)\apr_dbm_gdbm.obj" \
+	"$(INTDIR)\apr_dbm_sdbm.obj" \
+	"$(INTDIR)\apr_base64.obj" \
+	"$(INTDIR)\apr_hooks.obj" \
+	"$(INTDIR)\apr_ldap_init.obj" \
+	"$(INTDIR)\apr_ldap_url.obj" \
+	"$(INTDIR)\apr_ldap_option.obj" \
+	"$(INTDIR)\apr_date.obj" \
+	"$(INTDIR)\apr_queue.obj" \
+	"$(INTDIR)\apr_reslist.obj" \
+	"$(INTDIR)\apr_rmm.obj" \
+	"$(INTDIR)\apu_version.obj" \
+	"$(INTDIR)\sdbm.obj" \
+	"$(INTDIR)\sdbm_hash.obj" \
+	"$(INTDIR)\sdbm_lock.obj" \
+	"$(INTDIR)\sdbm_pair.obj" \
+	"$(INTDIR)\apr_strmatch.obj" \
+	"$(INTDIR)\apr_uri.obj" \
+	"$(INTDIR)\xlate.obj" \
+	"$(INTDIR)\apr_xml.obj" \
+	"$(INTDIR)\libaprutil.res" \
+	"..\apr\x64\Debug\libapr-1.lib" \
+	"..\apr-iconv\x64\Debug\libapriconv-1.lib" \
+	".\xml\expat\lib\x64\LibD\xml.lib"
+
+"$(OUTDIR)\libaprutil-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+TargetPath=.\x64\Debug\libaprutil-1.dll
+SOURCE="$(InputPath)"
+PostBuild_Desc=Embed .manifest
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+
+# Begin Custom Macros
+OutDir=.\x64\Debug
+# End Custom Macros
+
+"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libaprutil-1.dll"
+   if exist .\x64\Debug\libaprutil-1.dll.manifest mt.exe -manifest .\x64\Debug\libaprutil-1.dll.manifest -outputresource:.\x64\Debug\libaprutil-1.dll;2
+	echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
+
+!ENDIF 
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("libaprutil.dep")
+!INCLUDE "libaprutil.dep"
+!ELSE 
+!MESSAGE Warning: cannot find "libaprutil.dep"
+!ENDIF 
+!ENDIF 
+
+
+!IF "$(CFG)" == "libaprutil - Win32 Release" || "$(CFG)" == "libaprutil - Win32 Debug" || "$(CFG)" == "libaprutil - x64 Release" || "$(CFG)" == "libaprutil - x64 Debug"
+SOURCE=.\buckets\apr_brigade.c
+
+"$(INTDIR)\apr_brigade.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets.c
+
+"$(INTDIR)\apr_buckets.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_alloc.c
+
+"$(INTDIR)\apr_buckets_alloc.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_eos.c
+
+"$(INTDIR)\apr_buckets_eos.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_file.c
+
+"$(INTDIR)\apr_buckets_file.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_flush.c
+
+"$(INTDIR)\apr_buckets_flush.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_heap.c
+
+"$(INTDIR)\apr_buckets_heap.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_mmap.c
+
+"$(INTDIR)\apr_buckets_mmap.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_pipe.c
+
+"$(INTDIR)\apr_buckets_pipe.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_pool.c
+
+"$(INTDIR)\apr_buckets_pool.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_refcount.c
+
+"$(INTDIR)\apr_buckets_refcount.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_simple.c
+
+"$(INTDIR)\apr_buckets_simple.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\buckets\apr_buckets_socket.c
+
+"$(INTDIR)\apr_buckets_socket.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\crypto\apr_md4.c
+
+"$(INTDIR)\apr_md4.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\crypto\apr_md5.c
+
+"$(INTDIR)\apr_md5.obj" : $(SOURCE) "$(INTDIR)" ".\include\private\apu_config.h" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\crypto\apr_sha1.c
+
+"$(INTDIR)\apr_sha1.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\crypto\getuuid.c
+
+"$(INTDIR)\getuuid.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\crypto\uuid.c
+
+"$(INTDIR)\uuid.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbd\apr_dbd.c
+
+"$(INTDIR)\apr_dbd.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbd\apr_dbd_mysql.c
+
+"$(INTDIR)\apr_dbd_mysql.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_config.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbd\apr_dbd_pgsql.c
+
+"$(INTDIR)\apr_dbd_pgsql.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_config.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbd\apr_dbd_sqlite2.c
+
+"$(INTDIR)\apr_dbd_sqlite2.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbd\apr_dbd_sqlite3.c
+
+"$(INTDIR)\apr_dbd_sqlite3.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbm\apr_dbm.c
+
+"$(INTDIR)\apr_dbm.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_select_dbm.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbm\apr_dbm_berkeleydb.c
+
+"$(INTDIR)\apr_dbm_berkeleydb.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu_want.h" ".\include\apu.h" ".\include\private\apu_select_dbm.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbm\apr_dbm_gdbm.c
+
+"$(INTDIR)\apr_dbm_gdbm.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_select_dbm.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbm\apr_dbm_sdbm.c
+
+"$(INTDIR)\apr_dbm_sdbm.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_select_dbm.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\encoding\apr_base64.c
+
+"$(INTDIR)\apr_base64.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\hooks\apr_hooks.c
+
+"$(INTDIR)\apr_hooks.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\ldap\apr_ldap_init.c
+
+"$(INTDIR)\apr_ldap_init.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\apr_ldap.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\ldap\apr_ldap_option.c
+
+"$(INTDIR)\apr_ldap_option.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\apr_ldap.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\ldap\apr_ldap_url.c
+
+"$(INTDIR)\apr_ldap_url.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\apr_ldap.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\apr_date.c
+
+"$(INTDIR)\apr_date.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\apr_queue.c
+
+"$(INTDIR)\apr_queue.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\apr_reslist.c
+
+"$(INTDIR)\apr_reslist.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\apr_rmm.c
+
+"$(INTDIR)\apr_rmm.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\apu_version.c
+
+"$(INTDIR)\apu_version.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbm\sdbm\sdbm.c
+
+"$(INTDIR)\sdbm.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbm\sdbm\sdbm_hash.c
+
+"$(INTDIR)\sdbm_hash.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbm\sdbm\sdbm_lock.c
+
+"$(INTDIR)\sdbm_lock.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dbm\sdbm\sdbm_pair.c
+
+"$(INTDIR)\sdbm_pair.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\strmatch\apr_strmatch.c
+
+"$(INTDIR)\apr_strmatch.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\uri\apr_uri.c
+
+"$(INTDIR)\apr_uri.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\xlate\xlate.c
+
+"$(INTDIR)\xlate.obj" : $(SOURCE) "$(INTDIR)" ".\include\apu.h" ".\include\private\apu_config.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\xml\apr_xml.c
+
+"$(INTDIR)\apr_xml.obj" : $(SOURCE) "$(INTDIR)" ".\include\private\apu_config.h" ".\include\apu.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\include\apr_ldap.hw
+
+!IF  "$(CFG)" == "libaprutil - Win32 Release"
+
+InputPath=.\include\apr_ldap.hw
+
+".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apr_ldap.hw > .\include\apr_ldap.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"
+
+InputPath=.\include\apr_ldap.hw
+
+".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apr_ldap.hw > .\include\apr_ldap.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"
+
+InputPath=.\include\apr_ldap.hw
+
+".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apr_ldap.hw > .\include\apr_ldap.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"
+
+InputPath=.\include\apr_ldap.hw
+
+".\include\apr_ldap.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apr_ldap.hw > .\include\apr_ldap.h
+<< 
+	
+
+!ENDIF 
+
+SOURCE=.\include\apu.hw
+
+!IF  "$(CFG)" == "libaprutil - Win32 Release"
+
+InputPath=.\include\apu.hw
+
+".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apu.hw > .\include\apu.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"
+
+InputPath=.\include\apu.hw
+
+".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apu.hw > .\include\apu.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"
+
+InputPath=.\include\apu.hw
+
+".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apu.hw > .\include\apu.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"
+
+InputPath=.\include\apu.hw
+
+".\include\apu.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apu.hw > .\include\apu.h
+<< 
+	
+
+!ENDIF 
+
+SOURCE=.\include\private\apu_config.hw
+
+!IF  "$(CFG)" == "libaprutil - Win32 Release"
+
+InputPath=.\include\private\apu_config.hw
+
+".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\private\apu_config.hw > .\include\private\apu_config.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"
+
+InputPath=.\include\private\apu_config.hw
+
+".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\private\apu_config.hw > .\include\private\apu_config.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"
+
+InputPath=.\include\private\apu_config.hw
+
+".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\private\apu_config.hw > .\include\private\apu_config.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"
+
+InputPath=.\include\private\apu_config.hw
+
+".\include\private\apu_config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\private\apu_config.hw > .\include\private\apu_config.h
+<< 
+	
+
+!ENDIF 
+
+SOURCE=.\include\private\apu_select_dbm.hw
+
+!IF  "$(CFG)" == "libaprutil - Win32 Release"
+
+InputPath=.\include\private\apu_select_dbm.hw
+
+".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\private\apu_select_dbm.hw > .\include\private\apu_select_dbm.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"
+
+InputPath=.\include\private\apu_select_dbm.hw
+
+".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\private\apu_select_dbm.hw > .\include\private\apu_select_dbm.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"
+
+InputPath=.\include\private\apu_select_dbm.hw
+
+".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\private\apu_select_dbm.hw > .\include\private\apu_select_dbm.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"
+
+InputPath=.\include\private\apu_select_dbm.hw
+
+".\include\private\apu_select_dbm.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\private\apu_select_dbm.hw > .\include\private\apu_select_dbm.h
+<< 
+	
+
+!ENDIF 
+
+SOURCE=.\include\apu_want.hw
+
+!IF  "$(CFG)" == "libaprutil - Win32 Release"
+
+InputPath=.\include\apu_want.hw
+
+".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apu_want.hw > .\include\apu_want.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"
+
+InputPath=.\include\apu_want.hw
+
+".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apu_want.hw > .\include\apu_want.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"
+
+InputPath=.\include\apu_want.hw
+
+".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apu_want.hw > .\include\apu_want.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"
+
+InputPath=.\include\apu_want.hw
+
+".\include\apu_want.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\include\apu_want.hw > .\include\apu_want.h
+<< 
+	
+
+!ENDIF 
+
+!IF  "$(CFG)" == "libaprutil - Win32 Release"
+
+"libapr - Win32 Release" : 
+   cd ".\..\apr"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" 
+   cd "..\apr-util"
+
+"libapr - Win32 ReleaseCLEAN" : 
+   cd ".\..\apr"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Release" RECURSE=1 CLEAN 
+   cd "..\apr-util"
+
+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"
+
+"libapr - Win32 Debug" : 
+   cd ".\..\apr"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" 
+   cd "..\apr-util"
+
+"libapr - Win32 DebugCLEAN" : 
+   cd ".\..\apr"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - Win32 Debug" RECURSE=1 CLEAN 
+   cd "..\apr-util"
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"
+
+"libapr - x64 Release" : 
+   cd ".\..\apr"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - x64 Release" 
+   cd "..\apr-util"
+
+"libapr - x64 ReleaseCLEAN" : 
+   cd ".\..\apr"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - x64 Release" RECURSE=1 CLEAN 
+   cd "..\apr-util"
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"
+
+"libapr - x64 Debug" : 
+   cd ".\..\apr"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - x64 Debug" 
+   cd "..\apr-util"
+
+"libapr - x64 DebugCLEAN" : 
+   cd ".\..\apr"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libapr.mak" CFG="libapr - x64 Debug" RECURSE=1 CLEAN 
+   cd "..\apr-util"
+
+!ENDIF 
+
+!IF  "$(CFG)" == "libaprutil - Win32 Release"
+
+"libapriconv - Win32 Release" : 
+   cd ".\..\apr-iconv"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - Win32 Release" 
+   cd "..\apr-util"
+
+"libapriconv - Win32 ReleaseCLEAN" : 
+   cd ".\..\apr-iconv"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - Win32 Release" RECURSE=1 CLEAN 
+   cd "..\apr-util"
+
+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"
+
+"libapriconv - Win32 Debug" : 
+   cd ".\..\apr-iconv"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - Win32 Debug" 
+   cd "..\apr-util"
+
+"libapriconv - Win32 DebugCLEAN" : 
+   cd ".\..\apr-iconv"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - Win32 Debug" RECURSE=1 CLEAN 
+   cd "..\apr-util"
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"
+
+"libapriconv - x64 Release" : 
+   cd ".\..\apr-iconv"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - x64 Release" 
+   cd "..\apr-util"
+
+"libapriconv - x64 ReleaseCLEAN" : 
+   cd ".\..\apr-iconv"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - x64 Release" RECURSE=1 CLEAN 
+   cd "..\apr-util"
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"
+
+"libapriconv - x64 Debug" : 
+   cd ".\..\apr-iconv"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - x64 Debug" 
+   cd "..\apr-util"
+
+"libapriconv - x64 DebugCLEAN" : 
+   cd ".\..\apr-iconv"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libapriconv.mak" CFG="libapriconv - x64 Debug" RECURSE=1 CLEAN 
+   cd "..\apr-util"
+
+!ENDIF 
+
+!IF  "$(CFG)" == "libaprutil - Win32 Release"
+
+"libapriconv_ccs_modules - Win32 Release" : 
+   cd ".\..\apr-iconv\ccs"
+   NMAKE /nologo /f Makefile.win BUILD_MODE="Win32 Release" BIND_MODE=shared
+   cd "..\..\apr-util"
+
+"libapriconv_ccs_modules - Win32 ReleaseCLEAN" : 
+   cd ".\..\apr-iconv\ccs"
+   cd "..\..\apr-util"
+
+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"
+
+"libapriconv_ccs_modules - Win32 Debug" : 
+   cd ".\..\apr-iconv\ccs"
+   NMAKE /nologo /f Makefile.win BUILD_MODE="Win32 Debug" BIND_MODE=shared
+   cd "..\..\apr-util"
+
+"libapriconv_ccs_modules - Win32 DebugCLEAN" : 
+   cd ".\..\apr-iconv\ccs"
+   cd "..\..\apr-util"
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"
+
+"libapriconv_ccs_modules - x64 Release" : 
+   cd ".\..\apr-iconv\ccs"
+   NMAKE /nologo /f Makefile.win BUILD_MODE="x64 Release" BIND_MODE=shared
+   cd "..\..\apr-util"
+
+"libapriconv_ccs_modules - x64 ReleaseCLEAN" : 
+   cd ".\..\apr-iconv\ccs"
+   cd "..\..\apr-util"
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"
+
+"libapriconv_ccs_modules - x64 Debug" : 
+   cd ".\..\apr-iconv\ccs"
+   NMAKE /nologo /f Makefile.win BUILD_MODE="x64 Debug" BIND_MODE=shared
+   cd "..\..\apr-util"
+
+"libapriconv_ccs_modules - x64 DebugCLEAN" : 
+   cd ".\..\apr-iconv\ccs"
+   cd "..\..\apr-util"
+
+!ENDIF 
+
+!IF  "$(CFG)" == "libaprutil - Win32 Release"
+
+"libapriconv_ces_modules - Win32 Release" : 
+   cd ".\..\apr-iconv\ces"
+   NMAKE /nologo /f Makefile.win BUILD_MODE="Win32 Release" BIND_MODE=shared
+   cd "..\..\apr-util"
+
+"libapriconv_ces_modules - Win32 ReleaseCLEAN" : 
+   cd ".\..\apr-iconv\ces"
+   cd "..\..\apr-util"
+
+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"
+
+"libapriconv_ces_modules - Win32 Debug" : 
+   cd ".\..\apr-iconv\ces"
+   NMAKE /nologo /f Makefile.win BUILD_MODE="Win32 Debug" BIND_MODE=shared
+   cd "..\..\apr-util"
+
+"libapriconv_ces_modules - Win32 DebugCLEAN" : 
+   cd ".\..\apr-iconv\ces"
+   cd "..\..\apr-util"
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"
+
+"libapriconv_ces_modules - x64 Release" : 
+   cd ".\..\apr-iconv\ces"
+   NMAKE /nologo /f Makefile.win BUILD_MODE="x64 Release" BIND_MODE=shared
+   cd "..\..\apr-util"
+
+"libapriconv_ces_modules - x64 ReleaseCLEAN" : 
+   cd ".\..\apr-iconv\ces"
+   cd "..\..\apr-util"
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"
+
+"libapriconv_ces_modules - x64 Debug" : 
+   cd ".\..\apr-iconv\ces"
+   NMAKE /nologo /f Makefile.win BUILD_MODE="x64 Debug" BIND_MODE=shared
+   cd "..\..\apr-util"
+
+"libapriconv_ces_modules - x64 DebugCLEAN" : 
+   cd ".\..\apr-iconv\ces"
+   cd "..\..\apr-util"
+
+!ENDIF 
+
+!IF  "$(CFG)" == "libaprutil - Win32 Release"
+
+"xml - Win32 Release" : 
+   cd ".\xml\expat\lib"
+   $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - Win32 Release" 
+   cd "..\..\.."
+
+"xml - Win32 ReleaseCLEAN" : 
+   cd ".\xml\expat\lib"
+   $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - Win32 Release" RECURSE=1 CLEAN 
+   cd "..\..\.."
+
+!ELSEIF  "$(CFG)" == "libaprutil - Win32 Debug"
+
+"xml - Win32 Debug" : 
+   cd ".\xml\expat\lib"
+   $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - Win32 Debug" 
+   cd "..\..\.."
+
+"xml - Win32 DebugCLEAN" : 
+   cd ".\xml\expat\lib"
+   $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - Win32 Debug" RECURSE=1 CLEAN 
+   cd "..\..\.."
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Release"
+
+"xml - x64 Release" : 
+   cd ".\xml\expat\lib"
+   $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - x64 Release" 
+   cd "..\..\.."
+
+"xml - x64 ReleaseCLEAN" : 
+   cd ".\xml\expat\lib"
+   $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - x64 Release" RECURSE=1 CLEAN 
+   cd "..\..\.."
+
+!ELSEIF  "$(CFG)" == "libaprutil - x64 Debug"
+
+"xml - x64 Debug" : 
+   cd ".\xml\expat\lib"
+   $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - x64 Debug" 
+   cd "..\..\.."
+
+"xml - x64 DebugCLEAN" : 
+   cd ".\xml\expat\lib"
+   $(MAKE) /$(MAKEFLAGS) /F ".\xml.mak" CFG="xml - x64 Debug" RECURSE=1 CLEAN 
+   cd "..\..\.."
+
+!ENDIF 
+
+SOURCE=.\libaprutil.rc
+
+"$(INTDIR)\libaprutil.res" : $(SOURCE) "$(INTDIR)" ".\include\apu.h"
+	$(RSC) $(RSC_PROJ) $(SOURCE)
+
+
+
+!ENDIF 
+
diff --git a/libaprutil.rc b/libaprutil.rc
new file mode 100644
index 0000000..06a527f
--- /dev/null
+++ b/libaprutil.rc
@@ -0,0 +1,66 @@
+#include "apu_version.h"
+
+#define APU_COPYRIGHT "Copyright 2000-2005 The Apache Software " \
+                      "Foundation or its licensors, as applicable."
+
+#define APU_LICENSE "Licensed under the Apache License, Version 2.0 " \
+                    "(the ""License""); you may not use this file except " \
+                    "in compliance with the License.  You may obtain a " \
+                    "copy of the License at\r\n\r\n" \
+                    "http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n" \
+                    "Unless required by applicable law or agreed to in " \
+                    "writing, software distributed under the License is " \
+                    "distributed on an ""AS IS"" BASIS, WITHOUT " \
+                    "WARRANTIES OR CONDITIONS OF ANY KIND, either " \
+                    "express or implied.  See the License for the " \
+                    "specific language governing permissions and " \
+                    "limitations under the License."
+
+#define APU_DLL_BASENAME "libaprutil-" APU_STRINGIFY(APU_MAJOR_VERSION)
+
+
+1 VERSIONINFO
+ FILEVERSION APU_VERSION_STRING_CSV,0
+ PRODUCTVERSION APU_VERSION_STRING_CSV,0
+ FILEFLAGSMASK 0x3fL
+#if defined(APU_IS_DEV_VERSION)
+#if defined(_DEBUG)
+ FILEFLAGS 0x03L
+#else
+ FILEFLAGS 0x02L
+#endif
+#else
+#if defined(_DEBUG)
+ FILEFLAGS 0x01L
+#else
+ FILEFLAGS 0x00L
+#endif
+#endif
+#if defined(WINNT) || defined(WIN64)
+ FILEOS 0x40004L
+#else
+ FILEOS 0x4L
+#endif
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+  BLOCK "StringFileInfo"
+  BEGIN
+    BLOCK "040904b0"
+    BEGIN
+    VALUE "Comments", APU_LICENSE "\0"
+      VALUE "CompanyName", "Apache Software Foundation\0"
+      VALUE "FileDescription", "Apache Portable Runtime Library\0"
+      VALUE "FileVersion", APU_VERSION_STRING "\0"
+      VALUE "InternalName", APU_DLL_BASENAME "\0"
+      VALUE "LegalCopyright", APU_COPYRIGHT "\0"
+      VALUE "OriginalFilename", APU_DLL_BASENAME ".dll\0"
+      VALUE "ProductName", "Apache Portable Runtime Project\0"
+      VALUE "ProductVersion", APU_VERSION_STRING "\0"
+    END
+  END
+  BLOCK "VarFileInfo"
+  BEGIN
+    VALUE "Translation", 0x409, 1200
+  END
+END
diff --git a/misc/apr_date.c b/misc/apr_date.c
new file mode 100644
index 0000000..28086e3
--- /dev/null
+++ b/misc/apr_date.c
@@ -0,0 +1,637 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * apr_date.c: date parsing utility routines
+ *     These routines are (hopefully) platform independent.
+ * 
+ * 27 Oct 1996  Roy Fielding
+ *     Extracted (with many modifications) from mod_proxy.c and
+ *     tested with over 50,000 randomly chosen valid date strings
+ *     and several hundred variations of invalid date strings.
+ * 
+ */
+
+#include "apr.h"
+#include "apr_lib.h"
+
+#define APR_WANT_STRFUNC
+#include "apr_want.h"
+
+#if APR_HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#if APR_HAVE_CTYPE_H
+#include <ctype.h>
+#endif
+
+#include "apr_date.h"
+
+/*
+ * Compare a string to a mask
+ * Mask characters (arbitrary maximum is 256 characters, just in case):
+ *   @ - uppercase letter
+ *   $ - lowercase letter
+ *   & - hex digit
+ *   # - digit
+ *   ~ - digit or space
+ *   * - swallow remaining characters 
+ *  <x> - exact match for any other character
+ */
+APU_DECLARE(int) apr_date_checkmask(const char *data, const char *mask)
+{
+    int i;
+    char d;
+
+    for (i = 0; i < 256; i++) {
+        d = data[i];
+        switch (mask[i]) {
+        case '\0':
+            return (d == '\0');
+
+        case '*':
+            return 1;
+
+        case '@':
+            if (!apr_isupper(d))
+                return 0;
+            break;
+        case '$':
+            if (!apr_islower(d))
+                return 0;
+            break;
+        case '#':
+            if (!apr_isdigit(d))
+                return 0;
+            break;
+        case '&':
+            if (!apr_isxdigit(d))
+                return 0;
+            break;
+        case '~':
+            if ((d != ' ') && !apr_isdigit(d))
+                return 0;
+            break;
+        default:
+            if (mask[i] != d)
+                return 0;
+            break;
+        }
+    }
+    return 0;          /* We only get here if mask is corrupted (exceeds 256) */
+}
+
+/*
+ * Parses an HTTP date in one of three standard forms:
+ *
+ *     Sun, 06 Nov 1994 08:49:37 GMT  ; RFC 822, updated by RFC 1123
+ *     Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
+ *     Sun Nov  6 08:49:37 1994       ; ANSI C's asctime() format
+ *
+ * and returns the apr_time_t number of microseconds since 1 Jan 1970 GMT, 
+ * or APR_DATE_BAD if this would be out of range or if the date is invalid.
+ *
+ * The restricted HTTP syntax is
+ * 
+ *     HTTP-date    = rfc1123-date | rfc850-date | asctime-date
+ *
+ *     rfc1123-date = wkday "," SP date1 SP time SP "GMT"
+ *     rfc850-date  = weekday "," SP date2 SP time SP "GMT"
+ *     asctime-date = wkday SP date3 SP time SP 4DIGIT
+ *
+ *     date1        = 2DIGIT SP month SP 4DIGIT
+ *                    ; day month year (e.g., 02 Jun 1982)
+ *     date2        = 2DIGIT "-" month "-" 2DIGIT
+ *                    ; day-month-year (e.g., 02-Jun-82)
+ *     date3        = month SP ( 2DIGIT | ( SP 1DIGIT ))
+ *                    ; month day (e.g., Jun  2)
+ *
+ *     time         = 2DIGIT ":" 2DIGIT ":" 2DIGIT
+ *                    ; 00:00:00 - 23:59:59
+ *
+ *     wkday        = "Mon" | "Tue" | "Wed"
+ *                  | "Thu" | "Fri" | "Sat" | "Sun"
+ *
+ *     weekday      = "Monday" | "Tuesday" | "Wednesday"
+ *                  | "Thursday" | "Friday" | "Saturday" | "Sunday"
+ *
+ *     month        = "Jan" | "Feb" | "Mar" | "Apr"
+ *                  | "May" | "Jun" | "Jul" | "Aug"
+ *                  | "Sep" | "Oct" | "Nov" | "Dec"
+ *
+ * However, for the sake of robustness (and Netscapeness), we ignore the
+ * weekday and anything after the time field (including the timezone).
+ *
+ * This routine is intended to be very fast; 10x faster than using sscanf.
+ *
+ * Originally from Andrew Daviel <andrew@vancouver-webpages.com>, 29 Jul 96
+ * but many changes since then.
+ *
+ */
+APU_DECLARE(apr_time_t) apr_date_parse_http(const char *date)
+{
+    apr_time_exp_t ds;
+    apr_time_t result;
+    int mint, mon;
+    const char *monstr, *timstr;
+    static const int months[12] =
+    {
+    ('J' << 16) | ('a' << 8) | 'n', ('F' << 16) | ('e' << 8) | 'b',
+    ('M' << 16) | ('a' << 8) | 'r', ('A' << 16) | ('p' << 8) | 'r',
+    ('M' << 16) | ('a' << 8) | 'y', ('J' << 16) | ('u' << 8) | 'n',
+    ('J' << 16) | ('u' << 8) | 'l', ('A' << 16) | ('u' << 8) | 'g',
+    ('S' << 16) | ('e' << 8) | 'p', ('O' << 16) | ('c' << 8) | 't',
+    ('N' << 16) | ('o' << 8) | 'v', ('D' << 16) | ('e' << 8) | 'c'};
+
+    if (!date)
+        return APR_DATE_BAD;
+
+    while (*date && apr_isspace(*date))    /* Find first non-whitespace char */
+        ++date;
+
+    if (*date == '\0') 
+        return APR_DATE_BAD;
+
+    if ((date = strchr(date, ' ')) == NULL)       /* Find space after weekday */
+        return APR_DATE_BAD;
+
+    ++date;        /* Now pointing to first char after space, which should be */
+
+    /* start of the actual date information for all 4 formats. */
+
+    if (apr_date_checkmask(date, "## @$$ #### ##:##:## *")) {
+        /* RFC 1123 format with two days */
+        ds.tm_year = ((date[7] - '0') * 10 + (date[8] - '0') - 19) * 100;
+        if (ds.tm_year < 0)
+            return APR_DATE_BAD;
+
+        ds.tm_year += ((date[9] - '0') * 10) + (date[10] - '0');
+
+        ds.tm_mday = ((date[0] - '0') * 10) + (date[1] - '0');
+
+        monstr = date + 3;
+        timstr = date + 12;
+    }
+    else if (apr_date_checkmask(date, "##-@$$-## ##:##:## *")) { 
+        /* RFC 850 format */
+        ds.tm_year = ((date[7] - '0') * 10) + (date[8] - '0');
+        if (ds.tm_year < 70)
+            ds.tm_year += 100;
+
+        ds.tm_mday = ((date[0] - '0') * 10) + (date[1] - '0');
+
+        monstr = date + 3;
+        timstr = date + 10;
+    }
+    else if (apr_date_checkmask(date, "@$$ ~# ##:##:## ####*")) {
+        /* asctime format */
+        ds.tm_year = ((date[16] - '0') * 10 + (date[17] - '0') - 19) * 100;
+        if (ds.tm_year < 0) 
+            return APR_DATE_BAD;
+
+        ds.tm_year += ((date[18] - '0') * 10) + (date[19] - '0');
+
+        if (date[4] == ' ')
+            ds.tm_mday = 0;
+        else
+            ds.tm_mday = (date[4] - '0') * 10;
+
+        ds.tm_mday += (date[5] - '0');
+
+        monstr = date;
+        timstr = date + 7;
+    }
+    else if (apr_date_checkmask(date, "# @$$ #### ##:##:## *")) {
+        /* RFC 1123 format with one day */
+        ds.tm_year = ((date[6] - '0') * 10 + (date[7] - '0') - 19) * 100;
+        if (ds.tm_year < 0)
+            return APR_DATE_BAD;
+
+        ds.tm_year += ((date[8] - '0') * 10) + (date[9] - '0');
+
+        ds.tm_mday = (date[0] - '0');
+
+        monstr = date + 2;
+        timstr = date + 11;
+    }
+    else
+        return APR_DATE_BAD;
+
+    if (ds.tm_mday <= 0 || ds.tm_mday > 31)
+        return APR_DATE_BAD;
+
+    ds.tm_hour = ((timstr[0] - '0') * 10) + (timstr[1] - '0');
+    ds.tm_min = ((timstr[3] - '0') * 10) + (timstr[4] - '0');
+    ds.tm_sec = ((timstr[6] - '0') * 10) + (timstr[7] - '0');
+
+    if ((ds.tm_hour > 23) || (ds.tm_min > 59) || (ds.tm_sec > 61)) 
+        return APR_DATE_BAD;
+
+    mint = (monstr[0] << 16) | (monstr[1] << 8) | monstr[2];
+    for (mon = 0; mon < 12; mon++)
+        if (mint == months[mon])
+            break;
+
+    if (mon == 12)
+        return APR_DATE_BAD;
+
+    if ((ds.tm_mday == 31) && (mon == 3 || mon == 5 || mon == 8 || mon == 10))
+        return APR_DATE_BAD;
+
+    /* February gets special check for leapyear */
+    if ((mon == 1) &&
+        ((ds.tm_mday > 29) || 
+        ((ds.tm_mday == 29)
+        && ((ds.tm_year & 3)
+        || (((ds.tm_year % 100) == 0)
+        && (((ds.tm_year % 400) != 100)))))))
+        return APR_DATE_BAD;
+
+    ds.tm_mon = mon;
+
+    /* ap_mplode_time uses tm_usec and tm_gmtoff fields, but they haven't 
+     * been set yet. 
+     * It should be safe to just zero out these values.
+     * tm_usec is the number of microseconds into the second.  HTTP only
+     * cares about second granularity.
+     * tm_gmtoff is the number of seconds off of GMT the time is.  By
+     * definition all times going through this function are in GMT, so this
+     * is zero. 
+     */
+    ds.tm_usec = 0;
+    ds.tm_gmtoff = 0;
+    if (apr_time_exp_get(&result, &ds) != APR_SUCCESS) 
+        return APR_DATE_BAD;
+    
+    return result;
+}
+
+/*
+ * Parses a string resembling an RFC 822 date.  This is meant to be
+ * leinent in its parsing of dates.  Hence, this will parse a wider 
+ * range of dates than apr_date_parse_http.
+ *
+ * The prominent mailer (or poster, if mailer is unknown) that has
+ * been seen in the wild is included for the unknown formats.
+ *
+ *     Sun, 06 Nov 1994 08:49:37 GMT  ; RFC 822, updated by RFC 1123
+ *     Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
+ *     Sun Nov  6 08:49:37 1994       ; ANSI C's asctime() format
+ *     Sun, 6 Nov 1994 08:49:37 GMT   ; RFC 822, updated by RFC 1123
+ *     Sun, 06 Nov 94 08:49:37 GMT    ; RFC 822
+ *     Sun, 6 Nov 94 08:49:37 GMT     ; RFC 822
+ *     Sun, 06 Nov 94 08:49 GMT       ; Unknown [drtr@ast.cam.ac.uk] 
+ *     Sun, 6 Nov 94 08:49 GMT        ; Unknown [drtr@ast.cam.ac.uk]
+ *     Sun, 06 Nov 94 8:49:37 GMT     ; Unknown [Elm 70.85]
+ *     Sun, 6 Nov 94 8:49:37 GMT      ; Unknown [Elm 70.85] 
+ *     Mon,  7 Jan 2002 07:21:22 GMT  ; Unknown [Postfix]
+ *     Sun, 06-Nov-1994 08:49:37 GMT  ; RFC 850 with four digit years
+ *
+ */
+
+#define TIMEPARSE(ds,hr10,hr1,min10,min1,sec10,sec1)        \
+    {                                                       \
+        ds.tm_hour = ((hr10 - '0') * 10) + (hr1 - '0');     \
+        ds.tm_min = ((min10 - '0') * 10) + (min1 - '0');    \
+        ds.tm_sec = ((sec10 - '0') * 10) + (sec1 - '0');    \
+    }
+#define TIMEPARSE_STD(ds,timstr)                            \
+    {                                                       \
+        TIMEPARSE(ds, timstr[0],timstr[1],                  \
+                      timstr[3],timstr[4],                  \
+                      timstr[6],timstr[7]);                 \
+    }
+
+APU_DECLARE(apr_time_t) apr_date_parse_rfc(const char *date)
+{
+    apr_time_exp_t ds;
+    apr_time_t result;
+    int mint, mon;
+    const char *monstr, *timstr, *gmtstr;
+    static const int months[12] =
+    {
+    ('J' << 16) | ('a' << 8) | 'n', ('F' << 16) | ('e' << 8) | 'b',
+    ('M' << 16) | ('a' << 8) | 'r', ('A' << 16) | ('p' << 8) | 'r',
+    ('M' << 16) | ('a' << 8) | 'y', ('J' << 16) | ('u' << 8) | 'n',
+    ('J' << 16) | ('u' << 8) | 'l', ('A' << 16) | ('u' << 8) | 'g',
+    ('S' << 16) | ('e' << 8) | 'p', ('O' << 16) | ('c' << 8) | 't',
+    ('N' << 16) | ('o' << 8) | 'v', ('D' << 16) | ('e' << 8) | 'c' };
+
+    if (!date)
+        return APR_DATE_BAD;
+
+    /* Not all dates have text days at the beginning. */
+    if (!apr_isdigit(date[0]))
+    {
+        while (*date && apr_isspace(*date)) /* Find first non-whitespace char */
+            ++date;
+
+        if (*date == '\0') 
+            return APR_DATE_BAD;
+
+        if ((date = strchr(date, ' ')) == NULL)   /* Find space after weekday */
+            return APR_DATE_BAD;
+
+        ++date;    /* Now pointing to first char after space, which should be */    }
+
+    /* start of the actual date information for all 11 formats. */
+    if (apr_date_checkmask(date, "## @$$ #### ##:##:## *")) {   /* RFC 1123 format */
+        ds.tm_year = ((date[7] - '0') * 10 + (date[8] - '0') - 19) * 100;
+
+        if (ds.tm_year < 0)
+            return APR_DATE_BAD;
+
+        ds.tm_year += ((date[9] - '0') * 10) + (date[10] - '0');
+
+        ds.tm_mday = ((date[0] - '0') * 10) + (date[1] - '0');
+
+        monstr = date + 3;
+        timstr = date + 12;
+        gmtstr = date + 21;
+
+        TIMEPARSE_STD(ds, timstr);
+    }
+    else if (apr_date_checkmask(date, "##-@$$-## ##:##:## *")) {/* RFC 850 format  */
+        ds.tm_year = ((date[7] - '0') * 10) + (date[8] - '0');
+
+        if (ds.tm_year < 70)
+            ds.tm_year += 100;
+
+        ds.tm_mday = ((date[0] - '0') * 10) + (date[1] - '0');
+
+        monstr = date + 3;
+        timstr = date + 10;
+        gmtstr = date + 19;
+
+        TIMEPARSE_STD(ds, timstr);
+    }
+    else if (apr_date_checkmask(date, "@$$ ~# ##:##:## ####*")) {
+        /* asctime format */
+        ds.tm_year = ((date[16] - '0') * 10 + (date[17] - '0') - 19) * 100;
+        if (ds.tm_year < 0) 
+            return APR_DATE_BAD;
+
+        ds.tm_year += ((date[18] - '0') * 10) + (date[19] - '0');
+
+        if (date[4] == ' ')
+            ds.tm_mday = 0;
+        else
+            ds.tm_mday = (date[4] - '0') * 10;
+
+        ds.tm_mday += (date[5] - '0');
+
+        monstr = date;
+        timstr = date + 7;
+        gmtstr = NULL;
+
+        TIMEPARSE_STD(ds, timstr);
+    }
+    else if (apr_date_checkmask(date, "# @$$ #### ##:##:## *")) {
+        /* RFC 1123 format*/
+        ds.tm_year = ((date[6] - '0') * 10 + (date[7] - '0') - 19) * 100;
+
+        if (ds.tm_year < 0)
+            return APR_DATE_BAD;
+
+        ds.tm_year += ((date[8] - '0') * 10) + (date[9] - '0');
+        ds.tm_mday = (date[0] - '0');
+
+        monstr = date + 2;
+        timstr = date + 11;
+        gmtstr = date + 20;
+
+        TIMEPARSE_STD(ds, timstr);
+    }
+    else if (apr_date_checkmask(date, "## @$$ ## ##:##:## *")) {
+        /* This is the old RFC 1123 date format - many many years ago, people
+         * used two-digit years.  Oh, how foolish.
+         *
+         * Two-digit day, two-digit year version. */
+        ds.tm_year = ((date[7] - '0') * 10) + (date[8] - '0');
+
+        if (ds.tm_year < 70)
+            ds.tm_year += 100;
+
+        ds.tm_mday = ((date[0] - '0') * 10) + (date[1] - '0');
+
+        monstr = date + 3;
+        timstr = date + 10;
+        gmtstr = date + 19;
+
+        TIMEPARSE_STD(ds, timstr);
+    } 
+    else if (apr_date_checkmask(date, " # @$$ ## ##:##:## *")) {
+        /* This is the old RFC 1123 date format - many many years ago, people
+         * used two-digit years.  Oh, how foolish.
+         *
+         * Space + one-digit day, two-digit year version.*/
+        ds.tm_year = ((date[7] - '0') * 10) + (date[8] - '0');
+
+        if (ds.tm_year < 70)
+            ds.tm_year += 100;
+
+        ds.tm_mday = (date[1] - '0');
+
+        monstr = date + 3;
+        timstr = date + 10;
+        gmtstr = date + 19;
+
+        TIMEPARSE_STD(ds, timstr);
+    } 
+    else if (apr_date_checkmask(date, "# @$$ ## ##:##:## *")) {
+        /* This is the old RFC 1123 date format - many many years ago, people
+         * used two-digit years.  Oh, how foolish.
+         *
+         * One-digit day, two-digit year version. */
+        ds.tm_year = ((date[6] - '0') * 10) + (date[7] - '0');
+
+        if (ds.tm_year < 70)
+            ds.tm_year += 100;
+
+        ds.tm_mday = (date[0] - '0');
+
+        monstr = date + 2;
+        timstr = date + 9;
+        gmtstr = date + 18;
+
+        TIMEPARSE_STD(ds, timstr);
+    } 
+    else if (apr_date_checkmask(date, "## @$$ ## ##:## *")) {
+        /* Loser format.  This is quite bogus.  */
+        ds.tm_year = ((date[7] - '0') * 10) + (date[8] - '0');
+
+        if (ds.tm_year < 70)
+            ds.tm_year += 100;
+
+        ds.tm_mday = ((date[0] - '0') * 10) + (date[1] - '0');
+
+        monstr = date + 3;
+        timstr = date + 10;
+        gmtstr = NULL;
+
+        TIMEPARSE(ds, timstr[0],timstr[1], timstr[3],timstr[4], '0','0');
+    } 
+    else if (apr_date_checkmask(date, "# @$$ ## ##:## *")) {
+        /* Loser format.  This is quite bogus.  */
+        ds.tm_year = ((date[6] - '0') * 10) + (date[7] - '0');
+
+        if (ds.tm_year < 70)
+            ds.tm_year += 100;
+
+        ds.tm_mday = (date[0] - '0');
+
+        monstr = date + 2;
+        timstr = date + 9;
+        gmtstr = NULL;
+
+        TIMEPARSE(ds, timstr[0],timstr[1], timstr[3],timstr[4], '0','0');
+    }
+    else if (apr_date_checkmask(date, "## @$$ ## #:##:## *")) {
+        /* Loser format.  This is quite bogus.  */
+        ds.tm_year = ((date[7] - '0') * 10) + (date[8] - '0');
+
+        if (ds.tm_year < 70)
+            ds.tm_year += 100;
+
+        ds.tm_mday = ((date[0] - '0') * 10) + (date[1] - '0');
+
+        monstr = date + 3;
+        timstr = date + 9;
+        gmtstr = date + 18;
+
+        TIMEPARSE(ds, '0',timstr[1], timstr[3],timstr[4], timstr[6],timstr[7]);
+    }
+    else if (apr_date_checkmask(date, "# @$$ ## #:##:## *")) {
+         /* Loser format.  This is quite bogus.  */
+        ds.tm_year = ((date[6] - '0') * 10) + (date[7] - '0');
+
+        if (ds.tm_year < 70)
+            ds.tm_year += 100;
+
+        ds.tm_mday = (date[0] - '0');
+
+        monstr = date + 2;
+        timstr = date + 8;
+        gmtstr = date + 17;
+
+        TIMEPARSE(ds, '0',timstr[1], timstr[3],timstr[4], timstr[6],timstr[7]);
+    }
+    else if (apr_date_checkmask(date, " # @$$ #### ##:##:## *")) {   
+        /* RFC 1123 format with a space instead of a leading zero. */
+        ds.tm_year = ((date[7] - '0') * 10 + (date[8] - '0') - 19) * 100;
+
+        if (ds.tm_year < 0)
+            return APR_DATE_BAD;
+
+        ds.tm_year += ((date[9] - '0') * 10) + (date[10] - '0');
+
+        ds.tm_mday = (date[1] - '0');
+
+        monstr = date + 3;
+        timstr = date + 12;
+        gmtstr = date + 21;
+
+        TIMEPARSE_STD(ds, timstr);
+    }
+    else if (apr_date_checkmask(date, "##-@$$-#### ##:##:## *")) {
+       /* RFC 1123 with dashes instead of spaces between date/month/year
+        * This also looks like RFC 850 with four digit years.
+        */
+        ds.tm_year = ((date[7] - '0') * 10 + (date[8] - '0') - 19) * 100;
+        if (ds.tm_year < 0)
+            return APR_DATE_BAD;
+
+        ds.tm_year += ((date[9] - '0') * 10) + (date[10] - '0');
+
+        ds.tm_mday = ((date[0] - '0') * 10) + (date[1] - '0');
+
+        monstr = date + 3;
+        timstr = date + 12;
+        gmtstr = date + 21;
+
+        TIMEPARSE_STD(ds, timstr);
+    }
+    else
+        return APR_DATE_BAD;
+
+    if (ds.tm_mday <= 0 || ds.tm_mday > 31)
+        return APR_DATE_BAD;
+
+    if ((ds.tm_hour > 23) || (ds.tm_min > 59) || (ds.tm_sec > 61)) 
+        return APR_DATE_BAD;
+
+    mint = (monstr[0] << 16) | (monstr[1] << 8) | monstr[2];
+    for (mon = 0; mon < 12; mon++)
+        if (mint == months[mon])
+            break;
+
+    if (mon == 12)
+        return APR_DATE_BAD;
+
+    if ((ds.tm_mday == 31) && (mon == 3 || mon == 5 || mon == 8 || mon == 10))
+        return APR_DATE_BAD;
+
+    /* February gets special check for leapyear */
+
+    if ((mon == 1) &&
+        ((ds.tm_mday > 29)
+        || ((ds.tm_mday == 29)
+        && ((ds.tm_year & 3)
+        || (((ds.tm_year % 100) == 0)
+        && (((ds.tm_year % 400) != 100)))))))
+        return APR_DATE_BAD;
+
+    ds.tm_mon = mon;
+
+    /* tm_gmtoff is the number of seconds off of GMT the time is.
+     *
+     * We only currently support: [+-]ZZZZ where Z is the offset in
+     * hours from GMT.
+     *
+     * If there is any confusion, tm_gmtoff will remain 0.
+     */
+    ds.tm_gmtoff = 0;
+
+    /* Do we have a timezone ? */
+    if (gmtstr) {
+        int offset;
+        switch (*gmtstr) {
+        case '-':
+            offset = atoi(gmtstr+1);
+            ds.tm_gmtoff -= (offset / 100) * 60 * 60;
+            ds.tm_gmtoff -= (offset % 100) * 60;
+            break;
+        case '+':
+            offset = atoi(gmtstr+1);
+            ds.tm_gmtoff += (offset / 100) * 60 * 60;
+            ds.tm_gmtoff += (offset % 100) * 60;
+            break;
+        }
+    }
+
+    /* apr_time_exp_get uses tm_usec field, but it hasn't been set yet. 
+     * It should be safe to just zero out this value.
+     * tm_usec is the number of microseconds into the second.  HTTP only
+     * cares about second granularity.
+     */
+    ds.tm_usec = 0;
+
+    if (apr_time_exp_gmt_get(&result, &ds) != APR_SUCCESS) 
+        return APR_DATE_BAD;
+    
+    return result;
+}
diff --git a/misc/apr_queue.c b/misc/apr_queue.c
new file mode 100644
index 0000000..8636a82
--- /dev/null
+++ b/misc/apr_queue.c
@@ -0,0 +1,390 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr.h"
+
+#if APR_HAVE_STDIO_H
+#include <stdio.h>
+#endif
+#if APR_HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#if APR_HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#include "apu.h"
+#include "apr_portable.h"
+#include "apr_thread_mutex.h"
+#include "apr_thread_cond.h"
+#include "apr_errno.h"
+#include "apr_queue.h"
+
+#if APR_HAS_THREADS
+/* 
+ * define this to get debug messages
+ *
+#define QUEUE_DEBUG
+ */
+
+struct apr_queue_t {
+    void              **data;
+    unsigned int        nelts; /**< # elements */
+    unsigned int        in;    /**< next empty location */
+    unsigned int        out;   /**< next filled location */
+    unsigned int        bounds;/**< max size of queue */
+    unsigned int        full_waiters;
+    unsigned int        empty_waiters;
+    apr_thread_mutex_t *one_big_mutex;
+    apr_thread_cond_t  *not_empty;
+    apr_thread_cond_t  *not_full;
+    int                 terminated;
+};
+
+#ifdef QUEUE_DEBUG
+static void Q_DBG(char*msg, apr_queue_t *q) {
+    fprintf(stderr, "%ld\t#%d in %d out %d\t%s\n", 
+                    apr_os_thread_current(),
+                    q->nelts, q->in, q->out,
+                    msg
+                    );
+}
+#else
+#define Q_DBG(x,y) 
+#endif
+
+/**
+ * Detects when the apr_queue_t is full. This utility function is expected
+ * to be called from within critical sections, and is not threadsafe.
+ */
+#define apr_queue_full(queue) ((queue)->nelts == (queue)->bounds)
+
+/**
+ * Detects when the apr_queue_t is empty. This utility function is expected
+ * to be called from within critical sections, and is not threadsafe.
+ */
+#define apr_queue_empty(queue) ((queue)->nelts == 0)
+
+/**
+ * Callback routine that is called to destroy this
+ * apr_queue_t when its pool is destroyed.
+ */
+static apr_status_t queue_destroy(void *data) 
+{
+    apr_queue_t *queue = data;
+
+    /* Ignore errors here, we can't do anything about them anyway. */
+
+    apr_thread_cond_destroy(queue->not_empty);
+    apr_thread_cond_destroy(queue->not_full);
+    apr_thread_mutex_destroy(queue->one_big_mutex);
+
+    return APR_SUCCESS;
+}
+
+/**
+ * Initialize the apr_queue_t.
+ */
+APU_DECLARE(apr_status_t) apr_queue_create(apr_queue_t **q, 
+                                           unsigned int queue_capacity, 
+                                           apr_pool_t *a)
+{
+    apr_status_t rv;
+    apr_queue_t *queue;
+    queue = apr_palloc(a, sizeof(apr_queue_t));
+    *q = queue;
+
+    /* nested doesn't work ;( */
+    rv = apr_thread_mutex_create(&queue->one_big_mutex,
+                                 APR_THREAD_MUTEX_UNNESTED,
+                                 a);
+    if (rv != APR_SUCCESS) {
+        return rv;
+    }
+
+    rv = apr_thread_cond_create(&queue->not_empty, a);
+    if (rv != APR_SUCCESS) {
+        return rv;
+    }
+
+    rv = apr_thread_cond_create(&queue->not_full, a);
+    if (rv != APR_SUCCESS) {
+        return rv;
+    }
+
+    /* Set all the data in the queue to NULL */
+    queue->data = apr_pcalloc(a, queue_capacity * sizeof(void*));
+    queue->bounds = queue_capacity;
+    queue->nelts = 0;
+    queue->in = 0;
+    queue->out = 0;
+    queue->terminated = 0;
+    queue->full_waiters = 0;
+    queue->empty_waiters = 0;
+
+    apr_pool_cleanup_register(a, queue, queue_destroy, apr_pool_cleanup_null);
+
+    return APR_SUCCESS;
+}
+
+/**
+ * Push new data onto the queue. Blocks if the queue is full. Once
+ * the push operation has completed, it signals other threads waiting
+ * in apr_queue_pop() that they may continue consuming sockets.
+ */
+APU_DECLARE(apr_status_t) apr_queue_push(apr_queue_t *queue, void *data)
+{
+    apr_status_t rv;
+
+    if (queue->terminated) {
+        return APR_EOF; /* no more elements ever again */
+    }
+
+    rv = apr_thread_mutex_lock(queue->one_big_mutex);
+    if (rv != APR_SUCCESS) {
+        return rv;
+    }
+
+    if (apr_queue_full(queue)) {
+        if (!queue->terminated) {
+            queue->full_waiters++;
+            rv = apr_thread_cond_wait(queue->not_full, queue->one_big_mutex);
+            queue->full_waiters--;
+            if (rv != APR_SUCCESS) {
+                apr_thread_mutex_unlock(queue->one_big_mutex);
+                return rv;
+            }
+        }
+        /* If we wake up and it's still empty, then we were interrupted */
+        if (apr_queue_full(queue)) {
+            Q_DBG("queue full (intr)", queue);
+            rv = apr_thread_mutex_unlock(queue->one_big_mutex);
+            if (rv != APR_SUCCESS) {
+                return rv;
+            }
+            if (queue->terminated) {
+                return APR_EOF; /* no more elements ever again */
+            }
+            else {
+                return APR_EINTR;
+            }
+        }
+    }
+
+    queue->data[queue->in] = data;
+    queue->in = (queue->in + 1) % queue->bounds;
+    queue->nelts++;
+
+    if (queue->empty_waiters) {
+        Q_DBG("sig !empty", queue);
+        rv = apr_thread_cond_signal(queue->not_empty);
+        if (rv != APR_SUCCESS) {
+            apr_thread_mutex_unlock(queue->one_big_mutex);
+            return rv;
+        }
+    }
+
+    rv = apr_thread_mutex_unlock(queue->one_big_mutex);
+    return rv;
+}
+
+/**
+ * Push new data onto the queue. Blocks if the queue is full. Once
+ * the push operation has completed, it signals other threads waiting
+ * in apr_queue_pop() that they may continue consuming sockets.
+ */
+APU_DECLARE(apr_status_t) apr_queue_trypush(apr_queue_t *queue, void *data)
+{
+    apr_status_t rv;
+
+    if (queue->terminated) {
+        return APR_EOF; /* no more elements ever again */
+    }
+
+    rv = apr_thread_mutex_lock(queue->one_big_mutex);
+    if (rv != APR_SUCCESS) {
+        return rv;
+    }
+
+    if (apr_queue_full(queue)) {
+        rv = apr_thread_mutex_unlock(queue->one_big_mutex);
+        return APR_EAGAIN;
+    }
+    
+    queue->data[queue->in] = data;
+    queue->in = (queue->in + 1) % queue->bounds;
+    queue->nelts++;
+
+    if (queue->empty_waiters) {
+        Q_DBG("sig !empty", queue);
+        rv  = apr_thread_cond_signal(queue->not_empty);
+        if (rv != APR_SUCCESS) {
+            apr_thread_mutex_unlock(queue->one_big_mutex);
+            return rv;
+        }
+    }
+
+    rv = apr_thread_mutex_unlock(queue->one_big_mutex);
+    return rv;
+}
+
+/**
+ * not thread safe
+ */
+APU_DECLARE(unsigned int) apr_queue_size(apr_queue_t *queue) {
+    return queue->nelts;
+}
+
+/**
+ * Retrieves the next item from the queue. If there are no
+ * items available, it will block until one becomes available.
+ * Once retrieved, the item is placed into the address specified by
+ * 'data'.
+ */
+APU_DECLARE(apr_status_t) apr_queue_pop(apr_queue_t *queue, void **data)
+{
+    apr_status_t rv;
+
+    if (queue->terminated) {
+        return APR_EOF; /* no more elements ever again */
+    }
+
+    rv = apr_thread_mutex_lock(queue->one_big_mutex);
+    if (rv != APR_SUCCESS) {
+        return rv;
+    }
+
+    /* Keep waiting until we wake up and find that the queue is not empty. */
+    if (apr_queue_empty(queue)) {
+        if (!queue->terminated) {
+            queue->empty_waiters++;
+            rv = apr_thread_cond_wait(queue->not_empty, queue->one_big_mutex);
+            queue->empty_waiters--;
+            if (rv != APR_SUCCESS) {
+                apr_thread_mutex_unlock(queue->one_big_mutex);
+                return rv;
+            }
+        }
+        /* If we wake up and it's still empty, then we were interrupted */
+        if (apr_queue_empty(queue)) {
+            Q_DBG("queue empty (intr)", queue);
+            rv = apr_thread_mutex_unlock(queue->one_big_mutex);
+            if (rv != APR_SUCCESS) {
+                return rv;
+            }
+            if (queue->terminated) {
+                return APR_EOF; /* no more elements ever again */
+            }
+            else {
+                return APR_EINTR;
+            }
+        }
+    } 
+
+    *data = queue->data[queue->out];
+    queue->nelts--;
+
+    queue->out = (queue->out + 1) % queue->bounds;
+    if (queue->full_waiters) {
+        Q_DBG("signal !full", queue);
+        rv = apr_thread_cond_signal(queue->not_full);
+        if (rv != APR_SUCCESS) {
+            apr_thread_mutex_unlock(queue->one_big_mutex);
+            return rv;
+        }
+    }
+
+    rv = apr_thread_mutex_unlock(queue->one_big_mutex);
+    return rv;
+}
+
+/**
+ * Retrieves the next item from the queue. If there are no
+ * items available, return APR_EAGAIN.  Once retrieved,
+ * the item is placed into the address specified by 'data'.
+ */
+APU_DECLARE(apr_status_t) apr_queue_trypop(apr_queue_t *queue, void **data)
+{
+    apr_status_t rv;
+
+    if (queue->terminated) {
+        return APR_EOF; /* no more elements ever again */
+    }
+
+    rv = apr_thread_mutex_lock(queue->one_big_mutex);
+    if (rv != APR_SUCCESS) {
+        return rv;
+    }
+
+    if (apr_queue_empty(queue)) {
+        rv = apr_thread_mutex_unlock(queue->one_big_mutex);
+        return APR_EAGAIN;
+    } 
+
+    *data = queue->data[queue->out];
+    queue->nelts--;
+
+    queue->out = (queue->out + 1) % queue->bounds;
+    if (queue->full_waiters) {
+        Q_DBG("signal !full", queue);
+        rv = apr_thread_cond_signal(queue->not_full);
+        if (rv != APR_SUCCESS) {
+            apr_thread_mutex_unlock(queue->one_big_mutex);
+            return rv;
+        }
+    }
+
+    rv = apr_thread_mutex_unlock(queue->one_big_mutex);
+    return rv;
+}
+
+APU_DECLARE(apr_status_t) apr_queue_interrupt_all(apr_queue_t *queue)
+{
+    apr_status_t rv;
+    Q_DBG("intr all", queue);    
+    if ((rv = apr_thread_mutex_lock(queue->one_big_mutex)) != APR_SUCCESS) {
+        return rv;
+    }
+    apr_thread_cond_broadcast(queue->not_empty);
+    apr_thread_cond_broadcast(queue->not_full);
+
+    if ((rv = apr_thread_mutex_unlock(queue->one_big_mutex)) != APR_SUCCESS) {
+        return rv;
+    }
+
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_status_t) apr_queue_term(apr_queue_t *queue)
+{
+    apr_status_t rv;
+
+    if ((rv = apr_thread_mutex_lock(queue->one_big_mutex)) != APR_SUCCESS) {
+        return rv;
+    }
+
+    /* we must hold one_big_mutex when setting this... otherwise,
+     * we could end up setting it and waking everybody up just after a 
+     * would-be popper checks it but right before they block
+     */
+    queue->terminated = 1;
+    if ((rv = apr_thread_mutex_unlock(queue->one_big_mutex)) != APR_SUCCESS) {
+        return rv;
+    }
+    return apr_queue_interrupt_all(queue);
+}
+
+#endif /* APR_HAS_THREADS */
diff --git a/misc/apr_reslist.c b/misc/apr_reslist.c
new file mode 100644
index 0000000..058fc7d
--- /dev/null
+++ b/misc/apr_reslist.c
@@ -0,0 +1,378 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <assert.h>
+
+#include "apu.h"
+#include "apr_reslist.h"
+#include "apr_errno.h"
+#include "apr_strings.h"
+#include "apr_thread_mutex.h"
+#include "apr_thread_cond.h"
+#include "apr_ring.h"
+
+#if APR_HAS_THREADS
+
+/**
+ * A single resource element.
+ */
+struct apr_res_t {
+    apr_time_t freed;
+    void *opaque;
+    APR_RING_ENTRY(apr_res_t) link;
+};
+typedef struct apr_res_t apr_res_t;
+
+/**
+ * A ring of resources representing the list of available resources.
+ */
+APR_RING_HEAD(apr_resring_t, apr_res_t);
+typedef struct apr_resring_t apr_resring_t;
+
+struct apr_reslist_t {
+    apr_pool_t *pool; /* the pool used in constructor and destructor calls */
+    int ntotal;     /* total number of resources managed by this list */
+    int nidle;      /* number of available resources */
+    int min;  /* desired minimum number of available resources */
+    int smax; /* soft maximum on the total number of resources */
+    int hmax; /* hard maximum on the total number of resources */
+    apr_interval_time_t ttl; /* TTL when we have too many resources */
+    apr_interval_time_t timeout; /* Timeout for waiting on resource */
+    apr_reslist_constructor constructor;
+    apr_reslist_destructor destructor;
+    void *params; /* opaque data passed to constructor and destructor calls */
+    apr_resring_t avail_list;
+    apr_resring_t free_list;
+    apr_thread_mutex_t *listlock;
+    apr_thread_cond_t *avail;
+};
+
+/**
+ * Grab a resource from the front of the resource list.
+ * Assumes: that the reslist is locked.
+ */
+static apr_res_t *pop_resource(apr_reslist_t *reslist)
+{
+    apr_res_t *res;
+    res = APR_RING_FIRST(&reslist->avail_list);
+    APR_RING_REMOVE(res, link);
+    reslist->nidle--;
+    return res;
+}
+
+/**
+ * Add a resource to the beginning of the list, set the time at which
+ * it was added to the list.
+ * Assumes: that the reslist is locked.
+ */
+static void push_resource(apr_reslist_t *reslist, apr_res_t *resource)
+{
+    APR_RING_INSERT_HEAD(&reslist->avail_list, resource, apr_res_t, link);
+    resource->freed = apr_time_now();
+    reslist->nidle++;
+}
+
+/**
+ * Get an resource container from the free list or create a new one.
+ */
+static apr_res_t *get_container(apr_reslist_t *reslist)
+{
+    apr_res_t *res;
+
+    if (!APR_RING_EMPTY(&reslist->free_list, apr_res_t, link)) {
+        res = APR_RING_FIRST(&reslist->free_list);
+        APR_RING_REMOVE(res, link);
+    }
+    else
+        res = apr_pcalloc(reslist->pool, sizeof(*res));
+    return res;
+}
+
+/**
+ * Free up a resource container by placing it on the free list.
+ */
+static void free_container(apr_reslist_t *reslist, apr_res_t *container)
+{
+    APR_RING_INSERT_TAIL(&reslist->free_list, container, apr_res_t, link);
+}
+
+/**
+ * Create a new resource and return it.
+ * Assumes: that the reslist is locked.
+ */
+static apr_status_t create_resource(apr_reslist_t *reslist, apr_res_t **ret_res)
+{
+    apr_status_t rv;
+    apr_res_t *res;
+
+    res = get_container(reslist);
+
+    rv = reslist->constructor(&res->opaque, reslist->params, reslist->pool);
+
+    *ret_res = res;
+    return rv;
+}
+
+/**
+ * Destroy a single idle resource.
+ * Assumes: that the reslist is locked.
+ */
+static apr_status_t destroy_resource(apr_reslist_t *reslist, apr_res_t *res)
+{
+    return reslist->destructor(res->opaque, reslist->params, reslist->pool);
+}
+
+static apr_status_t reslist_cleanup(void *data_)
+{
+    apr_status_t rv;
+    apr_reslist_t *rl = data_;
+    apr_res_t *res;
+
+    apr_thread_mutex_lock(rl->listlock);
+
+    while (rl->nidle > 0) {
+        res = pop_resource(rl);
+        rl->ntotal--;
+        rv = destroy_resource(rl, res);
+        if (rv != APR_SUCCESS) {
+            return rv;
+        }
+        free_container(rl, res);
+    }
+
+    assert(rl->nidle == 0);
+    assert(rl->ntotal == 0);
+
+    apr_thread_mutex_destroy(rl->listlock);
+    apr_thread_cond_destroy(rl->avail);
+
+    return APR_SUCCESS;
+}
+
+/**
+ * Perform routine maintenance on the resource list. This call
+ * may instantiate new resources or expire old resources.
+ */
+static apr_status_t reslist_maint(apr_reslist_t *reslist)
+{
+    apr_time_t now;
+    apr_status_t rv;
+    apr_res_t *res;
+    int created_one = 0;
+
+    apr_thread_mutex_lock(reslist->listlock);
+
+    /* Check if we need to create more resources, and if we are allowed to. */
+    while (reslist->nidle < reslist->min && reslist->ntotal < reslist->hmax) {
+        /* Create the resource */
+        rv = create_resource(reslist, &res);
+        if (rv != APR_SUCCESS) {
+            free_container(reslist, res);
+            apr_thread_mutex_unlock(reslist->listlock);
+            return rv;
+        }
+        /* Add it to the list */
+        push_resource(reslist, res);
+        /* Update our counters */
+        reslist->ntotal++;
+        /* If someone is waiting on that guy, wake them up. */
+        rv = apr_thread_cond_signal(reslist->avail);
+        if (rv != APR_SUCCESS) {
+            apr_thread_mutex_unlock(reslist->listlock);
+            return rv;
+        }
+        created_one++;
+    }
+
+    /* We don't need to see if we're over the max if we were under it before */
+    if (created_one) {
+        apr_thread_mutex_unlock(reslist->listlock);
+        return APR_SUCCESS;
+    }
+
+    /* Check if we need to expire old resources */
+    now = apr_time_now();
+    while (reslist->nidle > reslist->smax && reslist->nidle > 0) {
+        /* Peak at the last resource in the list */
+        res = APR_RING_LAST(&reslist->avail_list);
+        /* See if the oldest entry should be expired */
+        if (now - res->freed < reslist->ttl) {
+            /* If this entry is too young, none of the others
+             * will be ready to be expired either, so we are done. */
+            break;
+        }
+        APR_RING_REMOVE(res, link);
+        reslist->nidle--;
+        reslist->ntotal--;
+        rv = destroy_resource(reslist, res);
+        free_container(reslist, res);
+        if (rv != APR_SUCCESS) {
+            apr_thread_mutex_unlock(reslist->listlock);
+            return rv;
+        }
+    }
+
+    apr_thread_mutex_unlock(reslist->listlock);
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_status_t) apr_reslist_create(apr_reslist_t **reslist,
+                                             int min, int smax, int hmax,
+                                             apr_interval_time_t ttl,
+                                             apr_reslist_constructor con,
+                                             apr_reslist_destructor de,
+                                             void *params,
+                                             apr_pool_t *pool)
+{
+    apr_status_t rv;
+    apr_reslist_t *rl;
+
+    /* Do some sanity checks so we don't thrash around in the
+     * maintenance routine later. */
+    if (min > smax || min > hmax || smax > hmax || ttl < 0) {
+        return APR_EINVAL;
+    }
+
+    rl = apr_pcalloc(pool, sizeof(*rl));
+    rl->pool = pool;
+    rl->min = min;
+    rl->smax = smax;
+    rl->hmax = hmax;
+    rl->ttl = ttl;
+    rl->constructor = con;
+    rl->destructor = de;
+    rl->params = params;
+
+    APR_RING_INIT(&rl->avail_list, apr_res_t, link);
+    APR_RING_INIT(&rl->free_list, apr_res_t, link);
+
+    rv = apr_thread_mutex_create(&rl->listlock, APR_THREAD_MUTEX_DEFAULT,
+                                 pool);
+    if (rv != APR_SUCCESS) {
+        return rv;
+    }
+    rv = apr_thread_cond_create(&rl->avail, pool);
+    if (rv != APR_SUCCESS) {
+        return rv;
+    }
+
+    rv = reslist_maint(rl);
+    if (rv != APR_SUCCESS) {
+        return rv;
+    }
+
+    apr_pool_cleanup_register(rl->pool, rl, reslist_cleanup,
+                              apr_pool_cleanup_null);
+
+    *reslist = rl;
+
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_status_t) apr_reslist_destroy(apr_reslist_t *reslist)
+{
+    return apr_pool_cleanup_run(reslist->pool, reslist, reslist_cleanup);
+}
+
+APU_DECLARE(apr_status_t) apr_reslist_acquire(apr_reslist_t *reslist,
+                                              void **resource)
+{
+    apr_status_t rv;
+    apr_res_t *res;
+
+    apr_thread_mutex_lock(reslist->listlock);
+    /* If there are idle resources on the available list, use
+     * them right away. */
+    if (reslist->nidle > 0) {
+        /* Pop off the first resource */
+        res = pop_resource(reslist);
+        *resource = res->opaque;
+        free_container(reslist, res);
+        apr_thread_mutex_unlock(reslist->listlock);
+        return APR_SUCCESS;
+    }
+    /* If we've hit our max, block until we're allowed to create
+     * a new one, or something becomes free. */
+    else while (reslist->ntotal >= reslist->hmax
+                && reslist->nidle <= 0) {
+        if (reslist->timeout) {
+            if ((rv = apr_thread_cond_timedwait(reslist->avail, 
+                reslist->listlock, reslist->timeout)) != APR_SUCCESS) {
+                apr_thread_mutex_unlock(reslist->listlock);
+                return rv;
+            }
+        }
+        else
+            apr_thread_cond_wait(reslist->avail, reslist->listlock);
+    }
+    /* If we popped out of the loop, first try to see if there
+     * are new resources available for immediate use. */
+    if (reslist->nidle > 0) {
+        res = pop_resource(reslist);
+        *resource = res->opaque;
+        free_container(reslist, res);
+        apr_thread_mutex_unlock(reslist->listlock);
+        return APR_SUCCESS;
+    }
+    /* Otherwise the reason we dropped out of the loop
+     * was because there is a new slot available, so create
+     * a resource to fill the slot and use it. */
+    else {
+        rv = create_resource(reslist, &res);
+        if (rv == APR_SUCCESS) {
+            reslist->ntotal++;
+            *resource = res->opaque;
+        }
+        free_container(reslist, res);
+        apr_thread_mutex_unlock(reslist->listlock);
+        return rv;
+    }
+}
+
+APU_DECLARE(apr_status_t) apr_reslist_release(apr_reslist_t *reslist,
+                                              void *resource)
+{
+    apr_res_t *res;
+
+    apr_thread_mutex_lock(reslist->listlock);
+    res = get_container(reslist);
+    res->opaque = resource;
+    push_resource(reslist, res);
+    apr_thread_cond_signal(reslist->avail);
+    apr_thread_mutex_unlock(reslist->listlock);
+
+    return reslist_maint(reslist);
+}
+
+APU_DECLARE(void) apr_reslist_timeout_set(apr_reslist_t *reslist,
+                                          apr_interval_time_t timeout)
+{
+    reslist->timeout = timeout;
+}
+
+APU_DECLARE(apr_status_t) apr_reslist_invalidate(apr_reslist_t *reslist,
+                                                 void *resource)
+{
+    apr_status_t ret;
+    apr_thread_mutex_lock(reslist->listlock);
+    ret = reslist->destructor(resource, reslist->params, reslist->pool);
+    reslist->ntotal--;
+    apr_thread_cond_signal(reslist->avail);
+    apr_thread_mutex_unlock(reslist->listlock);
+    return ret;
+}
+
+#endif  /* APR_HAS_THREADS */
diff --git a/misc/apr_rmm.c b/misc/apr_rmm.c
new file mode 100644
index 0000000..ed67dc2
--- /dev/null
+++ b/misc/apr_rmm.c
@@ -0,0 +1,446 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_general.h"
+#include "apr_rmm.h"
+#include "apr_errno.h"
+#include "apr_lib.h"
+#include "apr_strings.h"
+
+/* The RMM region is made up of two doubly-linked-list of blocks; the
+ * list of used blocks, and the list of free blocks (either list may
+ * be empty).  The base pointer, rmm->base, points at the beginning of
+ * the shmem region in use.  Each block is addressable by an
+ * apr_rmm_off_t value, which represents the offset from the base
+ * pointer.  The term "address" is used here to mean such a value; an
+ * "offset from rmm->base".
+ *
+ * The RMM region contains exactly one "rmm_hdr_block_t" structure,
+ * the "header block", which is always stored at the base pointer.
+ * The firstused field in this structure is the address of the first
+ * block in the "used blocks" list; the firstfree field is the address
+ * of the first block in the "free blocks" list.
+ *
+ * Each block is prefixed by an "rmm_block_t" structure, followed by
+ * the caller-usable region represented by the block.  The next and
+ * prev fields of the structure are zero if the block is at the end or
+ * beginning of the linked-list respectively, or otherwise hold the
+ * address of the next and previous blocks in the list.  ("address 0",
+ * i.e. rmm->base is *not* a valid address for a block, since the
+ * header block is always stored at that address).
+ *
+ * At creation, the RMM region is initialized to hold a single block
+ * on the free list representing the entire available shm segment
+ * (minus header block); subsequent allocation and deallocation of
+ * blocks involves splitting blocks and coalescing adjacent blocks,
+ * and switching them between the free and used lists as
+ * appropriate. */
+
+typedef struct rmm_block_t {
+    apr_size_t size;
+    apr_rmm_off_t prev;
+    apr_rmm_off_t next;
+} rmm_block_t;
+
+/* Always at our apr_rmm_off(0):
+ */
+typedef struct rmm_hdr_block_t {
+    apr_size_t abssize;
+    apr_rmm_off_t /* rmm_block_t */ firstused;
+    apr_rmm_off_t /* rmm_block_t */ firstfree;
+} rmm_hdr_block_t;
+
+#define RMM_HDR_BLOCK_SIZE (APR_ALIGN_DEFAULT(sizeof(rmm_hdr_block_t)))
+#define RMM_BLOCK_SIZE (APR_ALIGN_DEFAULT(sizeof(rmm_block_t)))
+
+struct apr_rmm_t {
+    apr_pool_t *p;
+    rmm_hdr_block_t *base;
+    apr_size_t size;
+    apr_anylock_t lock;
+};
+
+static apr_rmm_off_t find_block_by_offset(apr_rmm_t *rmm, apr_rmm_off_t next, 
+                                          apr_rmm_off_t find, int includes)
+{
+    apr_rmm_off_t prev = 0;
+
+    while (next) {
+        struct rmm_block_t *blk = (rmm_block_t*)((char*)rmm->base + next);
+
+        if (find == next)
+            return next;
+
+        /* Overshot? */
+        if (find < next)
+            return includes ? prev : 0;
+
+        prev = next;
+        next = blk->next;
+    }
+    return includes ? prev : 0;
+}
+
+static apr_rmm_off_t find_block_of_size(apr_rmm_t *rmm, apr_size_t size)
+{
+    apr_rmm_off_t next = rmm->base->firstfree;
+    apr_rmm_off_t best = 0;
+    apr_rmm_off_t bestsize = 0;
+
+    while (next) {
+        struct rmm_block_t *blk = (rmm_block_t*)((char*)rmm->base + next);
+
+        if (blk->size == size)
+            return next;
+
+        if (blk->size >= size) {
+            /* XXX: sub optimal algorithm 
+             * We need the most thorough best-fit logic, since we can
+             * never grow our rmm, we are SOL when we hit the wall.
+             */
+            if (!bestsize || (blk->size < bestsize)) {
+                bestsize = blk->size;
+                best = next;
+            }
+        }
+
+        next = blk->next;
+    }
+
+    if (bestsize > RMM_BLOCK_SIZE + size) {
+        struct rmm_block_t *blk = (rmm_block_t*)((char*)rmm->base + best);
+        struct rmm_block_t *new = (rmm_block_t*)((char*)rmm->base + best + size);
+
+        new->size = blk->size - size;
+        new->next = blk->next;
+        new->prev = best;
+
+        blk->size = size;
+        blk->next = best + size;
+
+        if (new->next) {
+            blk = (rmm_block_t*)((char*)rmm->base + new->next);
+            blk->prev = best + size;
+        }
+    }
+
+    return best;
+}
+
+static void move_block(apr_rmm_t *rmm, apr_rmm_off_t this, int free)
+{   
+    struct rmm_block_t *blk = (rmm_block_t*)((char*)rmm->base + this);
+
+    /* close the gap */
+    if (blk->prev) {
+        struct rmm_block_t *prev = (rmm_block_t*)((char*)rmm->base + blk->prev);
+        prev->next = blk->next;
+    }
+    else {
+        if (free) {
+            rmm->base->firstused = blk->next;
+        }
+        else {
+            rmm->base->firstfree = blk->next;
+        }
+    }
+    if (blk->next) {
+        struct rmm_block_t *next = (rmm_block_t*)((char*)rmm->base + blk->next);
+        next->prev = blk->prev;
+    }
+
+    /* now find it in the other list, pushing it to the head if required */
+    if (free) {
+        blk->prev = find_block_by_offset(rmm, rmm->base->firstfree, this, 1);
+        if (!blk->prev) {
+            blk->next = rmm->base->firstfree;
+            rmm->base->firstfree = this;
+        }
+    }
+    else {
+        blk->prev = find_block_by_offset(rmm, rmm->base->firstused, this, 1);
+        if (!blk->prev) {
+            blk->next = rmm->base->firstused;
+            rmm->base->firstused = this;
+        }
+    }
+
+    /* and open it up */
+    if (blk->prev) {
+        struct rmm_block_t *prev = (rmm_block_t*)((char*)rmm->base + blk->prev);
+        if (free && (blk->prev + prev->size == this)) {
+            /* Collapse us into our predecessor */
+            prev->size += blk->size;
+            this = blk->prev;
+            blk = prev;
+        }
+        else {
+            blk->next = prev->next;
+            prev->next = this;
+        }
+    }
+
+    if (blk->next) {
+        struct rmm_block_t *next = (rmm_block_t*)((char*)rmm->base + blk->next);
+        if (free && (this + blk->size == blk->next)) {
+            /* Collapse us into our successor */
+            blk->size += next->size;
+            blk->next = next->next;
+            if (blk->next) {
+                next = (rmm_block_t*)((char*)rmm->base + blk->next);
+                next->prev = this;
+            }
+        }
+        else {
+            next->prev = this;
+        }
+    }
+}
+
+APU_DECLARE(apr_status_t) apr_rmm_init(apr_rmm_t **rmm, apr_anylock_t *lock, 
+                                       void *base, apr_size_t size,
+                                       apr_pool_t *p)
+{
+    apr_status_t rv;
+    rmm_block_t *blk;
+    apr_anylock_t nulllock;
+    
+    if (!lock) {
+        nulllock.type = apr_anylock_none;
+        nulllock.lock.pm = NULL;
+        lock = &nulllock;
+    }
+    if ((rv = APR_ANYLOCK_LOCK(lock)) != APR_SUCCESS)
+        return rv;
+
+    (*rmm) = (apr_rmm_t *)apr_pcalloc(p, sizeof(apr_rmm_t));
+    (*rmm)->p = p;
+    (*rmm)->base = base;
+    (*rmm)->size = size;
+    (*rmm)->lock = *lock;
+
+    (*rmm)->base->abssize = size;
+    (*rmm)->base->firstused = 0;
+    (*rmm)->base->firstfree = RMM_HDR_BLOCK_SIZE;
+
+    blk = (rmm_block_t *)((char*)base + (*rmm)->base->firstfree);
+
+    blk->size = size - (*rmm)->base->firstfree;
+    blk->prev = 0;
+    blk->next = 0;
+
+    return APR_ANYLOCK_UNLOCK(lock);
+}
+
+APU_DECLARE(apr_status_t) apr_rmm_destroy(apr_rmm_t *rmm)
+{
+    apr_status_t rv;
+    rmm_block_t *blk;
+
+    if ((rv = APR_ANYLOCK_LOCK(&rmm->lock)) != APR_SUCCESS) {
+        return rv;
+    }
+    /* Blast it all --- no going back :) */
+    if (rmm->base->firstused) {
+        apr_rmm_off_t this = rmm->base->firstused;
+        do {
+            blk = (rmm_block_t *)((char*)rmm->base + this);
+            this = blk->next;
+            blk->next = blk->prev = 0;
+        } while (this);
+        rmm->base->firstused = 0;
+    }
+    if (rmm->base->firstfree) {
+        apr_rmm_off_t this = rmm->base->firstfree;
+        do {
+            blk = (rmm_block_t *)((char*)rmm->base + this);
+            this = blk->next;
+            blk->next = blk->prev = 0;
+        } while (this);
+        rmm->base->firstfree = 0;
+    }
+    rmm->base->abssize = 0;
+    rmm->size = 0;
+
+    return APR_ANYLOCK_UNLOCK(&rmm->lock);
+}
+
+APU_DECLARE(apr_status_t) apr_rmm_attach(apr_rmm_t **rmm, apr_anylock_t *lock,
+                                         void *base, apr_pool_t *p)
+{
+    apr_anylock_t nulllock;
+
+    if (!lock) {
+        nulllock.type = apr_anylock_none;
+        nulllock.lock.pm = NULL;
+        lock = &nulllock;
+    }
+
+    /* sanity would be good here */
+    (*rmm) = (apr_rmm_t *)apr_pcalloc(p, sizeof(apr_rmm_t));
+    (*rmm)->p = p;
+    (*rmm)->base = base;
+    (*rmm)->size = (*rmm)->base->abssize;
+    (*rmm)->lock = *lock;
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_status_t) apr_rmm_detach(apr_rmm_t *rmm) 
+{
+    /* A noop until we introduce locked/refcounts */
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_rmm_off_t) apr_rmm_malloc(apr_rmm_t *rmm, apr_size_t reqsize)
+{
+    apr_rmm_off_t this;
+    
+    reqsize = APR_ALIGN_DEFAULT(reqsize) + RMM_BLOCK_SIZE;
+
+    APR_ANYLOCK_LOCK(&rmm->lock);
+
+    this = find_block_of_size(rmm, reqsize);
+
+    if (this) {
+        move_block(rmm, this, 0);
+        this += RMM_BLOCK_SIZE;
+    }
+
+    APR_ANYLOCK_UNLOCK(&rmm->lock);
+    return this;
+}
+
+APU_DECLARE(apr_rmm_off_t) apr_rmm_calloc(apr_rmm_t *rmm, apr_size_t reqsize)
+{
+    apr_rmm_off_t this;
+        
+    reqsize = APR_ALIGN_DEFAULT(reqsize) + RMM_BLOCK_SIZE;
+
+    APR_ANYLOCK_LOCK(&rmm->lock);
+
+    this = find_block_of_size(rmm, reqsize);
+
+    if (this) {
+        move_block(rmm, this, 0);
+        this += RMM_BLOCK_SIZE;
+        memset((char*)rmm->base + this, 0, reqsize - RMM_BLOCK_SIZE);
+    }
+
+    APR_ANYLOCK_UNLOCK(&rmm->lock);
+    return this;
+}
+
+APU_DECLARE(apr_rmm_off_t) apr_rmm_realloc(apr_rmm_t *rmm, void *entity,
+                                           apr_size_t reqsize)
+{
+    apr_rmm_off_t this;
+    apr_rmm_off_t old;
+    struct rmm_block_t *blk;
+    apr_size_t oldsize;
+
+    if (!entity) {
+        return apr_rmm_malloc(rmm, reqsize);
+    }
+
+    reqsize = APR_ALIGN_DEFAULT(reqsize);
+    old = apr_rmm_offset_get(rmm, entity);
+
+    if ((this = apr_rmm_malloc(rmm, reqsize)) == 0) {
+        return 0;
+    }
+
+    blk = (rmm_block_t*)((char*)rmm->base + old - RMM_BLOCK_SIZE);
+    oldsize = blk->size;
+
+    memcpy(apr_rmm_addr_get(rmm, this),
+           apr_rmm_addr_get(rmm, old), oldsize < reqsize ? oldsize : reqsize);
+    apr_rmm_free(rmm, old);
+
+    return this;
+}
+
+APU_DECLARE(apr_status_t) apr_rmm_free(apr_rmm_t *rmm, apr_rmm_off_t this)
+{
+    apr_status_t rv;
+    struct rmm_block_t *blk;
+
+    /* A little sanity check is always healthy, especially here.
+     * If we really cared, we could make this compile-time
+     */
+    if (this < RMM_HDR_BLOCK_SIZE + RMM_BLOCK_SIZE) {
+        return APR_EINVAL;
+    }
+
+    this -= RMM_BLOCK_SIZE;
+
+    blk = (rmm_block_t*)((char*)rmm->base + this);
+
+    if ((rv = APR_ANYLOCK_LOCK(&rmm->lock)) != APR_SUCCESS) {
+        return rv;
+    }
+    if (blk->prev) {
+        struct rmm_block_t *prev = (rmm_block_t*)((char*)rmm->base + blk->prev);
+        if (prev->next != this) {
+            APR_ANYLOCK_UNLOCK(&rmm->lock);
+            return APR_EINVAL;
+        }
+    }
+    else {
+        if (rmm->base->firstused != this) {
+            APR_ANYLOCK_UNLOCK(&rmm->lock);
+            return APR_EINVAL;
+        }
+    }
+
+    if (blk->next) {
+        struct rmm_block_t *next = (rmm_block_t*)((char*)rmm->base + blk->next);
+        if (next->prev != this) {
+            APR_ANYLOCK_UNLOCK(&rmm->lock);
+            return APR_EINVAL;
+        }
+    }
+
+    /* Ok, it remained [apparently] sane, so unlink it
+     */
+    move_block(rmm, this, 1);
+    
+    return APR_ANYLOCK_UNLOCK(&rmm->lock);
+}
+
+APU_DECLARE(void *) apr_rmm_addr_get(apr_rmm_t *rmm, apr_rmm_off_t entity) 
+{
+    /* debug-sanity checking here would be good
+     */
+    return (void*)((char*)rmm->base + entity);
+}
+
+APU_DECLARE(apr_rmm_off_t) apr_rmm_offset_get(apr_rmm_t *rmm, void* entity)
+{
+    /* debug, or always, sanity checking here would be good
+     * since the primitive is apr_rmm_off_t, I don't mind penalizing
+     * inverse conversions for safety, unless someone can prove that
+     * there is no choice in some cases.
+     */
+    return ((char*)entity - (char*)rmm->base);
+}
+
+APU_DECLARE(apr_size_t) apr_rmm_overhead_get(int n) 
+{
+    /* overhead per block is at most APR_ALIGN_DEFAULT(1) wasted bytes
+     * for alignment overhead, plus the size of the rmm_block_t
+     * structure. */
+    return RMM_HDR_BLOCK_SIZE + n * (RMM_BLOCK_SIZE + APR_ALIGN_DEFAULT(1));
+}
diff --git a/misc/apu_version.c b/misc/apu_version.c
new file mode 100644
index 0000000..97e7309
--- /dev/null
+++ b/misc/apu_version.c
@@ -0,0 +1,37 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_general.h" /* for APR_STRINGIFY */
+
+#include "apu.h"
+#include "apu_version.h"
+
+APU_DECLARE(void) apu_version(apr_version_t *pvsn)
+{
+    pvsn->major = APU_MAJOR_VERSION;
+    pvsn->minor = APU_MINOR_VERSION;
+    pvsn->patch = APU_PATCH_VERSION;
+#ifdef APU_IS_DEV_VERSION
+    pvsn->is_dev = 1;
+#else
+    pvsn->is_dev = 0;
+#endif
+}
+
+APU_DECLARE(const char *) apu_version_string(void)
+{
+    return APU_VERSION_STRING;
+}
diff --git a/renames_pending b/renames_pending
new file mode 100644
index 0000000..0ebcfe2
--- /dev/null
+++ b/renames_pending
@@ -0,0 +1,2 @@
+Symbol renames pending for apr-util (keep ordered and complete, please!)
+
diff --git a/strmatch/apr_strmatch.c b/strmatch/apr_strmatch.c
new file mode 100644
index 0000000..7fec638
--- /dev/null
+++ b/strmatch/apr_strmatch.c
@@ -0,0 +1,118 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_strmatch.h"
+#include "apr_lib.h"
+#define APR_WANT_STRFUNC
+#include "apr_want.h"
+
+
+#define NUM_CHARS  256
+
+/*
+ * String searching functions
+ */
+static const char *match_no_op(const apr_strmatch_pattern *this_pattern,
+                               const char *s, apr_size_t slen)
+{
+    return s;
+}
+
+static const char *match_boyer_moore_horspool(
+                               const apr_strmatch_pattern *this_pattern,
+                               const char *s, apr_size_t slen)
+{
+    const char *s_end = s + slen;
+    apr_size_t *shift = (apr_size_t *)(this_pattern->context);
+    const char *s_next = s + this_pattern->length - 1;
+    const char *p_start = this_pattern->pattern;
+    const char *p_end = p_start + this_pattern->length - 1;
+    while (s_next < s_end) {
+        const char *s_tmp = s_next;
+        const char *p_tmp = p_end;
+        while (*s_tmp == *p_tmp) {
+            p_tmp--;
+            if (p_tmp < p_start) {
+                return s_tmp;
+            }
+            s_tmp--;
+        }
+        s_next += shift[(int)*((const unsigned char *)s_next)];
+    }
+    return NULL;
+}
+
+static const char *match_boyer_moore_horspool_nocase(
+                               const apr_strmatch_pattern *this_pattern,
+                               const char *s, apr_size_t slen)
+{
+    const char *s_end = s + slen;
+    apr_size_t *shift = (apr_size_t *)(this_pattern->context);
+    const char *s_next = s + this_pattern->length - 1;
+    const char *p_start = this_pattern->pattern;
+    const char *p_end = p_start + this_pattern->length - 1;
+    while (s_next < s_end) {
+        const char *s_tmp = s_next;
+        const char *p_tmp = p_end;
+        while (apr_tolower(*s_tmp) == apr_tolower(*p_tmp)) {
+            p_tmp--;
+            if (p_tmp < p_start) {
+                return s_tmp;
+            }
+            s_tmp--;
+        }
+        s_next += shift[apr_tolower(*s_next)];
+    }
+    return NULL;
+}
+
+APU_DECLARE(const apr_strmatch_pattern *) apr_strmatch_precompile(
+                                              apr_pool_t *p, const char *s,
+                                              int case_sensitive)
+{
+    apr_strmatch_pattern *pattern;
+    apr_size_t i;
+    apr_size_t *shift;
+
+    pattern = apr_palloc(p, sizeof(*pattern));
+    pattern->pattern = s;
+    pattern->length = strlen(s);
+    if (pattern->length == 0) {
+        pattern->compare = match_no_op;
+        pattern->context = NULL;
+        return pattern;
+    }
+
+    shift = (apr_size_t *)apr_palloc(p, sizeof(apr_size_t) * NUM_CHARS);
+    for (i = 0; i < NUM_CHARS; i++) {
+        shift[i] = pattern->length;
+    }
+    if (case_sensitive) {
+        pattern->compare = match_boyer_moore_horspool;
+        for (i = 0; i < pattern->length - 1; i++) {
+            shift[(int)s[i]] = pattern->length - i - 1;
+        }
+    }
+    else {
+        pattern->compare = match_boyer_moore_horspool_nocase;
+        for (i = 0; i < pattern->length - 1; i++) {
+            shift[apr_tolower(s[i])] = pattern->length - i - 1;
+        }
+    }
+    pattern->context = shift;
+
+    return pattern;
+}
diff --git a/test/Makefile.in b/test/Makefile.in
new file mode 100644
index 0000000..97a9763
--- /dev/null
+++ b/test/Makefile.in
@@ -0,0 +1,79 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+# PROGRAMS includes all test programs built on this platform.
+# STDTEST_PORTABLE
+#   test programs invoked via standard user interface, run on all platforms
+# ALL_TESTS
+#   test modules invoked through the abts suite (./testall)
+# OTHER_PROGRAMS
+#   programs such as sockperf, that have to be invoked in a special sequence
+#   or with special parameters
+
+INCLUDES = @APRUTIL_PRIV_INCLUDES@ @APR_INCLUDES@ @APRUTIL_INCLUDES@
+
+STDTEST_PORTABLE = testall dbd
+
+TESTS = teststrmatch.lo testuri.lo testuuid.lo testbuckets.lo testpass.lo \
+	testmd4.lo testmd5.lo testldap.lo testdate.lo testdbm.lo testdbd.lo \
+	testxml.lo testrmm.lo testreslist.lo testqueue.lo testxlate.lo
+
+OTHER_PROGRAMS = 
+
+PROGRAMS = $(STDTEST_PORTABLE) $(OTHER_PROGRAMS)
+
+TARGETS = $(PROGRAMS)
+
+LOCAL_LIBS = ../lib@APRUTIL_LIBNAME@@APRUTIL_MAJOR_VERSION@.la
+
+CLEAN_TARGETS = manyfile.bin testfile.txt data/sqlite*.db
+
+# bring in rules.mk for standard functionality
+@INCLUDE_RULES@
+APRUTIL_LIBS = @APRUTIL_LIBS@
+APRUTIL_LDFLAGS = $(ALL_LDFLAGS) @LT_NO_INSTALL@ @APRUTIL_LDFLAGS@
+
+# link programs using -no-install to get real executables not
+# libtool wrapper scripts which link an executable when first run.
+LINK_PROG = $(LIBTOOL) $(LTFLAGS) --mode=link $(LT_LDFLAGS) $(COMPILE) \
+	    $(APRUTIL_LDFLAGS) -o $@
+
+# STDTEST_PORTABLE;
+
+abts.lo: $(srcdir)/abts.c $(srcdir)/abts.h $(srcdir)/abts_tests.h \
+	 $(srcdir)/testutil.h
+
+testutil.lo: $(srcdir)/abts.c $(srcdir)/abts.h $(srcdir)/abts_tests.h \
+	     $(srcdir)/testutil.h
+
+OBJECTS_testall = abts.lo testutil.lo $(TESTS) $(LOCAL_LIBS)
+testall: $(OBJECTS_testall)
+	$(LINK_PROG) $(OBJECTS_testall) $(APRUTIL_LIBS)
+# For VPATH builds; where we have no ./data, copy us some data
+# if we wait until 'make check', then 'make; ./testall' fails;
+	if test ! -d "./data"; then cp -r $(srcdir)/data data; fi
+
+OBJECTS_dbd = dbd.lo $(LOCAL_LIBS)
+dbd: $(OBJECTS_dbd)
+	$(LINK_PROG) $(OBJECTS_dbd) $(APRUTIL_LIBS)
+
+check: $(TESTALL_COMPONENTS) $(STDTEST_PORTABLE) $(STDTEST_NONPORTABLE)
+	for prog in $(STDTEST_PORTABLE) $(STDTEST_NONPORTABLE); do \
+	        if test "$$prog" = 'dbd'; then \
+			for driver in sqlite2 sqlite3; do \
+				./$$prog $$driver; \
+				if test $$? = 255; then \
+					echo "$$prog $$driver failed"; \
+					break; \
+				fi; \
+			done; \
+	        else \
+			./$$prog; \
+			if test $$? = 255; then \
+				echo "$$prog failed"; \
+				break; \
+			fi; \
+		fi; \
+	done
+
+# DO NOT REMOVE
diff --git a/test/Makefile.win b/test/Makefile.win
new file mode 100644
index 0000000..e9b44b3
--- /dev/null
+++ b/test/Makefile.win
@@ -0,0 +1,162 @@
+# PROGRAMS
+#   test programs invoked via standard user interface, run on all platforms
+# ALL_TESTS
+#   test modules invoked through the abts suite (./testall)
+# OTHER_PROGRAMS
+#   programs such as sendfile, that have to be invoked in a special sequence
+#   or with special parameters
+
+# Windows Specific;
+# MODEL
+#   dynamic or static - refers to which set of bindings are desired
+#   and controls which libraries (apr-1 or libapr-1) will be linked.
+# OUTDIR
+#   the library path of the libraries, and also the path within test/
+#   where all of the tests for that library will be built
+# APR_PATH
+#   relative or absolute path to locate apr libs and includes
+# API_PATH
+#   relative or absolute path to locate apr-iconv libs and includes
+
+!IFNDEF MODEL
+MODEL=dynamic
+!ENDIF
+
+APROUTDIR=OUTDIR
+
+!IFNDEF OUTDIR
+!IF "$(MODEL)" == "static"
+OUTDIR=LibR
+!ELSE
+OUTDIR=Release
+!ENDIF
+
+!IF [$(COMSPEC) /c cl /nologo /? | find "x64" >NUL ] == 0
+OUTDIR=x64\$(OUTDIR)
+!ENDIF
+!ENDIF
+
+!IF !EXIST("$(OUTDIR)\.")
+!IF ([$(COMSPEC) /C mkdir $(OUTDIR)] == 0)
+!ENDIF
+!ENDIF
+
+!IFNDEF INTDIR
+INTDIR=$(OUTDIR)
+!ELSE
+!IF !EXIST("$(INTDIR)\.")
+!IF ([$(COMSPEC) /C mkdir $(INTDIR)] == 0)
+!ENDIF
+!ENDIF
+!ENDIF
+
+!MESSAGE Building tests into $(OUTDIR) for $(MODEL)
+
+ALL_TESTS = $(INTDIR)\teststrmatch.obj $(INTDIR)\testuri.obj \
+	$(INTDIR)\testuuid.obj $(INTDIR)\testutil.obj \
+	$(INTDIR)\testbuckets.obj $(INTDIR)\testpass.obj \
+	$(INTDIR)\testmd4.obj $(INTDIR)\testmd5.obj \
+	$(INTDIR)\testldap.obj $(INTDIR)\testdbd.obj \
+	$(OUTDIR)\testdbm.obj $(OUTDIR)\testreslist.obj \
+	$(OUTDIR)\testxml.obj $(OUTDIR)\testqueue.obj \
+	$(OUTDIR)\testrmm.obj $(OUTDIR)\testxlate.obj \
+	$(OUTDIR)\testdate.obj
+
+CLEAN_DATA = manyfile.bin testfile.txt data\sqlite*.db
+
+CLEAN_BUILDDIRS = Debug Release LibD LibR 9x x64
+
+PROGRAMS = $(OUTDIR)\testall.exe
+
+OTHER_PROGRAMS = $(OUTDIR)\dbd.exe
+
+# bring in rules.mk for standard functionality
+ALL: $(PROGRAMS) $(OTHER_PROGRAMS)
+
+CL = cl.exe
+LD = link.exe 
+
+APR_PATH = ..\..\apr
+API_PATH = ..\..\apr-iconv
+
+APROUTDIR=$(OUTDIR)
+
+!IF "$(MODEL)" == "static"
+PROGRAM_DEPENDENCIES = \
+	$(APR_PATH)\$(APROUTDIR)\apr-1.lib \
+	$(API_PATH)\$(OUTDIR)\apriconv-1.lib \
+	..\$(OUTDIR)\aprutil-1.lib 
+STATIC_CFLAGS = /D APR_DECLARE_STATIC /D APU_DECLARE_STATIC
+!ELSE
+PROGRAM_DEPENDENCIES = \
+	$(APR_PATH)\$(APROUTDIR)\libapr-1.lib \
+	$(API_PATH)\$(OUTDIR)\libapriconv-1.lib \
+	..\$(OUTDIR)\libaprutil-1.lib 
+STATIC_CFLAGS = 
+!ENDIF
+
+!IFDEF _DEBUG
+DEBUG_CFLAGS = /MDd
+!ELSE
+DEBUG_CFLAGS = /MD 
+!ENDIF
+
+INCLUDES=/I "../include" /I "$(API_PATH)/include" /I "$(APR_PATH)/include"
+
+CFLAGS = /nologo /c /W3 /Gm /EHsc /Zi /Od $(INCLUDES) \
+	 $(STATIC_CFLAGS) $(DEBUG_CFLAGS) /D "BINPATH=$(OUTDIR:\=/)" \
+	 /D _DEBUG /D WIN32 /Fo"$(INTDIR)/" /FD
+
+LD_LIBS = kernel32.lib advapi32.lib ws2_32.lib wsock32.lib \
+	  ole32.lib shell32.lib rpcrt4.lib wldap32.lib
+
+LDFLAGS = /nologo /debug /subsystem:console /incremental:no 
+SHLDFLAGS = /nologo /dll /debug /subsystem:windows /incremental:no
+
+.c{$(INTDIR)}.obj::
+	$(CL) $(CFLAGS) -c $< -Fd$(INTDIR)\ $(INCLUDES)
+
+# PROGRAMS;
+
+abts.c: abts.h abts_tests.h testutil.h
+
+testutil.c: abts.h abts_tests.h testutil.h
+
+$(OUTDIR)\testall.exe: $(ALL_TESTS) $(INTDIR)\abts.obj $(PROGRAM_DEPENDENCIES)
+	$(LD) $(LDFLAGS) /out:"$@" $** $(LD_LIBS)
+	@if exist "$@.manifest" \
+	    mt.exe -manifest "$@.manifest" -outputresource:$@;1
+
+# OTHER_PROGRAMS;
+
+$(OUTDIR)\dbd.exe: $(INTDIR)\dbd.obj $(PROGRAM_DEPENDENCIES)
+	$(LD) $(LDFLAGS) /out:"$@" $** $(LD_LIBS)
+	@if exist "$@.manifest" \
+	    mt.exe -manifest "$@.manifest" -outputresource:$@;1
+
+
+cleandata:
+	@for %f in ($(CLEAN_DATA)) do @if EXIST %f del /f %f
+
+clean: cleandata
+	@if EXIST $(INTDIR)\. rmdir /s /q $(INTDIR)
+	@if EXIST $(OUTDIR)\. rmdir /s /q $(OUTDIR)
+
+cleanall: 
+	@for %d in ($(CLEAN_BUILDDIRS) $(INTDIR) $(OUTDIR)) do \
+	    @if EXIST %d\. rmdir /s /q %d
+
+
+PATH=$(OUTDIR);..\$(OUTDIR);$(API_PATH)\$(OUTDIR);$(APR_PATH)\$(APROUTDIR);$(PATH)
+APR_ICONV1_PATH=$(API_PATH)\$(OUTDIR)\iconv
+
+check: $(PROGRAMS) $(OTHER_PROGRAMS)
+	@for %p in ($(PROGRAMS)) do @( \
+	    echo Testing %p && %p -v || echo %p failed \
+	)
+	echo Testing dbd sqlite2 && $(OUTDIR)\dbd.exe sqlite2 || echo Failed
+	echo Testing dbd sqlite3 && $(OUTDIR)\dbd.exe sqlite3 || echo Failed
+	
+checkall: check
+
+# DO NOT REMOVE
diff --git a/test/NWGNUmakefile b/test/NWGNUmakefile
new file mode 100644
index 0000000..c4fa07a
--- /dev/null
+++ b/test/NWGNUmakefile
@@ -0,0 +1,258 @@
+#
+# Declare the sub-directories to be built here
+#
+
+SUBDIRS = \
+	$(EOLIST) 
+
+#
+# Get the 'head' of the build environment.  This includes default targets and
+# paths to tools
+#
+
+include $(APR_WORK)\build\NWGNUhead.inc
+
+#
+# build this level's files
+
+#
+# Make sure all needed macro's are defined
+#
+
+
+#
+# These directories will be at the beginning of the include list, followed by
+# INCDIRS
+#
+XINCDIRS	+= \
+			$(APR)/include \
+			$(APR)/include/arch/NetWare \
+			$(EOLIST)
+
+#
+# These flags will come after CFLAGS
+#
+XCFLAGS		+= \
+			$(EOLIST)
+
+#
+# These defines will come after DEFINES
+#
+XDEFINES	+= \
+			$(EOLIST)
+
+#
+# These flags will be added to the link.opt file
+#
+XLFLAGS		+= \
+			$(EOLIST)
+
+#
+# These values will be appended to the correct variables based on the value of
+# RELEASE
+#
+ifeq "$(RELEASE)" "debug"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+						
+endif
+
+ifeq "$(RELEASE)" "noopt"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+ifeq "$(RELEASE)" "release"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+#
+# These are used by the link target if an NLM is being generated
+# This is used by the link 'name' directive to name the nlm.  If left blank
+# TARGET_nlm (see below) will be used.
+#
+NLM_NAME		=	
+
+#
+# This is used by the link '-desc ' directive. 
+# If left blank, NLM_NAME will be used.
+#
+NLM_DESCRIPTION	=  NLM is to test the apu layer
+
+#
+# This is used by the '-threadname' directive.  If left blank,
+# NLM_NAME Thread will be used.
+#
+NLM_THREAD_NAME	= 
+
+#
+# This is used by the '-screenname' directive.  If left blank,
+# 'Apache for NetWare' Thread will be used.
+#
+NLM_SCREEN_NAME =
+
+#
+# If this is specified, it will override VERSION value in 
+# $(APR_WORK)\build\NWGNUenvironment.inc
+#
+NLM_VERSION		= 
+
+#
+# If this is specified, it will override the default of 64K
+#
+NLM_STACK_SIZE	= 
+
+#
+# If this is specified it will be used by the link '-entry' directive
+#
+NLM_ENTRY_SYM	= 
+
+#
+# If this is specified it will be used by the link '-exit' directive
+#
+NLM_EXIT_SYM	= 
+
+#
+# If this is specified it will be used by the link '-check' directive
+#
+NLM_CHECK_SYM	=
+
+#
+# If this is specified it will be used by the link '-flags' directive
+#
+NLM_FLAGS		=
+ 
+#
+# If this is specified it will be linked in with the XDCData option in the def 
+# file instead of the default of $(APR)/misc/netware/apache.xdc.  XDCData can 
+# be disabled by setting APACHE_UNIPROC in the environment
+#
+XDCDATA         = 
+
+#
+# Declare all target files (you must add your files here)
+#
+
+#
+# If there is an NLM target, put it here
+#
+TARGET_nlm = \
+	$(OBJDIR)/aputest.nlm \
+	$(OBJDIR)/testdate.nlm \
+	$(EOLIST)
+#
+# If there is an LIB target, put it here
+#
+TARGET_lib = \
+	$(EOLIST)
+
+#
+# These are the OBJ files needed to create the NLM target above.
+# Paths must all use the '/' character
+#
+FILES_nlm_objs = \
+		$(EOLIST)
+
+#
+# These are the LIB files needed to create the NLM target above.
+# These will be added as a library command in the link.opt file.
+#
+FILES_nlm_libs = \
+   	$(EOLIST)
+
+#
+# These are the modules that the above NLM target depends on to load.
+# These will be added as a module command in the link.opt file.
+#
+FILES_nlm_modules = \
+	aprlib \
+  	$(EOLIST)
+
+#
+# If the nlm has a msg file, put it's path here
+#
+FILE_nlm_msg =
+ 
+#
+# If the nlm has a hlp file put it's path here
+#
+FILE_nlm_hlp =
+
+#
+# If this is specified, it will override the default copyright.
+#
+FILE_nlm_copyright =
+
+#
+# Any additional imports go here
+#
+FILES_nlm_Ximports = \
+   	$(EOLIST)
+ 
+#   
+# Any symbols exported to here
+#
+FILES_nlm_exports = \
+	$(EOLIST)
+	
+#   
+# These are the OBJ files needed to create the LIB target above.
+# Paths must all use the '/' character
+#
+FILES_lib_objs = \
+	$(EOLIST)
+
+#
+# implement targets and dependancies (leave this section alone)
+#
+
+libs :: $(OBJDIR) $(TARGET_lib)
+
+nlms :: libs $(TARGET_nlm)
+
+#
+# Updated this target to create necessary directories and copy files to the 
+# correct place.  (See $(APR_WORK)\build\NWGNUhead.inc for examples)
+#
+install :: nlms FORCE
+	copy $(OBJDIR)\*.nlm $(INSTALLBASE)
+
+#
+# Any specialized rules here
+#
+
+#
+# Include the 'tail' makefile that has targets that depend on variables defined
+# in this makefile
+#
+
+include $(APR_WORK)\build\NWGNUtail.inc
+
diff --git a/test/abts.c b/test/abts.c
new file mode 100644
index 0000000..596ad0a
--- /dev/null
+++ b/test/abts.c
@@ -0,0 +1,419 @@
+/* Copyright 2000-2004 Ryan Bloom
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Portions of this file were taken from testall.c in the APR test suite,
+ * written by members of the Apache Software Foundation.
+ */
+
+#include "abts.h"
+#include "abts_tests.h"
+#include "testutil.h"
+
+#define ABTS_STAT_SIZE 6
+static char status[ABTS_STAT_SIZE] = {'|', '/', '-', '|', '\\', '-'};
+static int curr_char;
+static int verbose = 0;
+static int exclude = 0;
+static int quiet = 0;
+static int list_tests = 0;
+
+const char **testlist = NULL;
+
+static int find_test_name(const char *testname) {
+    int i;
+    for (i = 0; testlist[i] != NULL; i++) {
+        if (!strcmp(testlist[i], testname)) {
+            return 1;
+        }
+    }
+    return 0;
+}
+
+/* Determine if the test should be run at all */
+static int should_test_run(const char *testname) {
+    int found = 0;
+    if (list_tests == 1) {
+        return 0;
+    }
+    if (testlist == NULL) {
+        return 1;
+    }
+    found = find_test_name(testname);
+    if ((found && !exclude) || (!found && exclude)) {
+        return 1;
+    }
+    return 0;
+}
+
+static void reset_status(void)
+{
+    curr_char = 0;
+}
+
+static void update_status(void)
+{
+    if (!quiet) {
+        curr_char = (curr_char + 1) % ABTS_STAT_SIZE;
+        fprintf(stdout, "\b%c", status[curr_char]);
+        fflush(stdout);
+    }
+}
+
+static void end_suite(abts_suite *suite)
+{
+    if (suite != NULL) {
+        sub_suite *last = suite->tail;
+        if (!quiet) {
+            fprintf(stdout, "\b");
+            fflush(stdout);
+        }
+        if (last->failed == 0) {
+            fprintf(stdout, "SUCCESS\n");
+            fflush(stdout);
+        }
+        else {
+            fprintf(stdout, "FAILED %d of %d\n", last->failed, last->num_test);
+            fflush(stdout);
+        }
+    }
+}
+
+abts_suite *abts_add_suite(abts_suite *suite, const char *suite_name_full)
+{
+    sub_suite *subsuite;
+    char *p;
+    const char *suite_name;
+    curr_char = 0;
+    
+    /* Only end the suite if we actually ran it */
+    if (suite && suite->tail &&!suite->tail->not_run) {
+        end_suite(suite);
+    }
+
+    subsuite = malloc(sizeof(*subsuite));
+    subsuite->num_test = 0;
+    subsuite->failed = 0;
+    subsuite->next = NULL;
+    /* suite_name_full may be an absolute path depending on __FILE__ 
+     * expansion */
+    suite_name = strrchr(suite_name_full, '/');
+    if (suite_name) {
+        suite_name++;
+    } else {
+        suite_name = suite_name_full;
+    }
+    p = strrchr(suite_name, '.');
+    if (p) {
+        subsuite->name = memcpy(calloc(p - suite_name + 1, 1),
+                                suite_name, p - suite_name);
+    }
+    else {
+        subsuite->name = suite_name;
+    }
+
+    if (list_tests) {
+        fprintf(stdout, "%s\n", subsuite->name);
+    }
+    
+    subsuite->not_run = 0;
+
+    if (suite == NULL) {
+        suite = malloc(sizeof(*suite));
+        suite->head = subsuite;
+        suite->tail = subsuite;
+    }
+    else {
+        suite->tail->next = subsuite;
+        suite->tail = subsuite;
+    }
+
+    if (!should_test_run(subsuite->name)) {
+        subsuite->not_run = 1;
+        return suite;
+    }
+
+    reset_status();
+    fprintf(stdout, "%-20s:  ", subsuite->name);
+    update_status();
+    fflush(stdout);
+
+    return suite;
+}
+
+void abts_run_test(abts_suite *ts, test_func f, void *value)
+{
+    abts_case *tc;
+    sub_suite *ss;
+
+    if (!should_test_run(ts->tail->name)) {
+        return;
+    }
+    ss = ts->tail;
+
+    tc = malloc(sizeof(*tc));
+    tc->failed = 0;
+    tc->suite = ss;
+    
+    ss->num_test++;
+    update_status();
+
+    f(tc, value);
+    
+    if (tc->failed) {
+        ss->failed++;
+    }
+    free(tc);
+}
+
+static int report(abts_suite *suite)
+{
+    int count = 0;
+    sub_suite *dptr;
+
+    if (suite && suite->tail &&!suite->tail->not_run) {
+        end_suite(suite);
+    }
+
+    for (dptr = suite->head; dptr; dptr = dptr->next) {
+        count += dptr->failed;
+    }
+
+    if (list_tests) {
+        return 0;
+    }
+
+    if (count == 0) {
+        printf("All tests passed.\n");
+        return 0;
+    }
+
+    dptr = suite->head;
+    fprintf(stdout, "%-15s\t\tTotal\tFail\tFailed %%\n", "Failed Tests");
+    fprintf(stdout, "===================================================\n");
+    while (dptr != NULL) {
+        if (dptr->failed != 0) {
+            float percent = ((float)dptr->failed / (float)dptr->num_test);
+            fprintf(stdout, "%-15s\t\t%5d\t%4d\t%6.2f%%\n", dptr->name, 
+                    dptr->num_test, dptr->failed, percent * 100);
+        }
+        dptr = dptr->next;
+    }
+    return 1;
+}
+
+void abts_log_message(const char *fmt, ...)
+{
+    va_list args;
+    update_status();
+
+    if (verbose) {
+        va_start(args, fmt);
+        vfprintf(stderr, fmt, args);
+        va_end(args);
+        fprintf(stderr, "\n");
+        fflush(stderr);
+    }
+}
+
+void abts_int_equal(abts_case *tc, const int expected, const int actual, int lineno)
+{
+    update_status();
+    if (tc->failed) return;
+
+    if (expected == actual) return;
+
+    tc->failed = TRUE;
+    if (verbose) {
+        fprintf(stderr, "Line %d: expected <%d>, but saw <%d>\n", lineno, expected, actual);
+        fflush(stderr);
+    }
+}
+
+void abts_int_nequal(abts_case *tc, const int expected, const int actual, int lineno)
+{
+    update_status();
+    if (tc->failed) return;
+
+    if (expected != actual) return;
+
+    tc->failed = TRUE;
+    if (verbose) {
+        fprintf(stderr, "Line %d: expected <%d>, but saw <%d>\n", lineno, expected, actual);
+        fflush(stderr);
+    }
+}
+
+void abts_str_equal(abts_case *tc, const char *expected, const char *actual, int lineno)
+{
+    update_status();
+    if (tc->failed) return;
+
+    /* If both are NULL, match is good */
+    if (!expected && !actual) return;
+    if (expected && actual)
+        if (!strcmp(expected, actual)) return;
+
+    tc->failed = TRUE;
+    if (verbose) {
+        fprintf(stderr, "Line %d: expected <%s>, but saw <%s>\n", lineno, expected, actual);
+        fflush(stderr);
+    }
+}
+
+void abts_str_nequal(abts_case *tc, const char *expected, const char *actual,
+                       size_t n, int lineno)
+{
+    update_status();
+    if (tc->failed) return;
+
+    if (!strncmp(expected, actual, n)) return;
+
+    tc->failed = TRUE;
+    if (verbose) {
+        fprintf(stderr, "Line %d: expected <%s>, but saw <%s>\n", lineno, expected, actual);
+        fflush(stderr);
+    }
+}
+
+void abts_ptr_notnull(abts_case *tc, const void *ptr, int lineno)
+{
+    update_status();
+    if (tc->failed) return;
+
+    if (ptr != NULL) return;
+
+    tc->failed = TRUE;
+    if (verbose) {
+        fprintf(stderr, "Line %d: Expected NULL, but saw <%p>\n", lineno, ptr);
+        fflush(stderr);
+    }
+}
+ 
+void abts_ptr_equal(abts_case *tc, const void *expected, const void *actual, int lineno)
+{
+    update_status();
+    if (tc->failed) return;
+
+    if (expected == actual) return;
+
+    tc->failed = TRUE;
+    if (verbose) {
+        fprintf(stderr, "Line %d: expected <%p>, but saw <%p>\n", lineno, expected, actual);
+        fflush(stderr);
+    }
+}
+
+void abts_fail(abts_case *tc, const char *message, int lineno)
+{
+    update_status();
+    if (tc->failed) return;
+
+    tc->failed = TRUE;
+    if (verbose) {
+        fprintf(stderr, "Line %d: %s\n", lineno, message);
+        fflush(stderr);
+    }
+}
+ 
+void abts_assert(abts_case *tc, const char *message, int condition, int lineno)
+{
+    update_status();
+    if (tc->failed) return;
+
+    if (condition) return;
+
+    tc->failed = TRUE;
+    if (verbose) {
+        fprintf(stderr, "Line %d: %s\n", lineno, message);
+        fflush(stderr);
+    }
+}
+
+void abts_true(abts_case *tc, int condition, int lineno)
+{
+    update_status();
+    if (tc->failed) return;
+
+    if (condition) return;
+
+    tc->failed = TRUE;
+    if (verbose) {
+        fprintf(stderr, "Line %d: Condition is false, but expected true\n", lineno);
+        fflush(stderr);
+    }
+}
+
+void abts_not_impl(abts_case *tc, const char *message, int lineno)
+{
+    update_status();
+
+    tc->suite->not_impl++;
+    if (verbose) {
+        fprintf(stderr, "Line %d: %s\n", lineno, message);
+        fflush(stderr);
+    }
+}
+
+int main(int argc, const char *const argv[]) {
+    int i;
+    int rv;
+    int list_provided = 0;
+    abts_suite *suite = NULL;
+   
+    initialize();
+
+    quiet = !isatty(STDOUT_FILENO);
+
+    for (i = 1; i < argc; i++) {
+        if (!strcmp(argv[i], "-v")) {
+            verbose = 1;
+            continue;
+        }
+        if (!strcmp(argv[i], "-x")) {
+            exclude = 1;
+            continue;
+        }
+        if (!strcmp(argv[i], "-l")) {
+            list_tests = 1;
+            continue;
+        }
+        if (!strcmp(argv[i], "-q")) {
+            quiet = 1;
+            continue;
+        }
+        if (argv[i][0] == '-') {
+            fprintf(stderr, "Invalid option: `%s'\n", argv[i]);
+            exit(1);
+        }
+        list_provided = 1;
+    }
+
+    if (list_provided) {
+        /* Waste a little space here, because it is easier than counting the
+         * number of tests listed.  Besides it is at most three char *.
+         */
+        testlist = calloc(argc + 1, sizeof(char *));
+        for (i = 1; i < argc; i++) {
+            testlist[i - 1] = argv[i];
+        }
+    }
+
+    for (i = 0; i < (sizeof(alltests) / sizeof(struct testlist *)); i++) {
+        suite = alltests[i].func(suite);
+    }
+
+    rv = report(suite);
+    return rv;
+}
+       
diff --git a/test/abts.h b/test/abts.h
new file mode 100644
index 0000000..3ae41d2
--- /dev/null
+++ b/test/abts.h
@@ -0,0 +1,104 @@
+/* Copyright 2000-2004 Ryan Bloom
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef WIN32
+#include <io.h>
+#else
+#include <unistd.h>
+#endif
+
+#ifndef ABTS_H
+#define ABTS_H
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+#ifndef TRUE
+#define TRUE  1
+#endif
+
+struct sub_suite {
+    const char *name;
+    int num_test;
+    int failed;
+    int not_run;
+    int not_impl;
+    struct sub_suite *next;
+};
+typedef struct sub_suite sub_suite;
+
+struct abts_suite {
+    sub_suite *head;
+    sub_suite *tail;
+};
+typedef struct abts_suite abts_suite;
+
+struct abts_case {
+    int failed;
+    sub_suite *suite;
+};
+typedef struct abts_case abts_case;
+
+typedef void (*test_func)(abts_case *tc, void *data);
+
+#define ADD_SUITE(suite) abts_add_suite(suite, __FILE__);
+
+abts_suite *abts_add_suite(abts_suite *suite, const char *suite_name);
+void abts_run_test(abts_suite *ts, test_func f, void *value);
+void abts_log_message(const char *fmt, ...);
+
+void abts_int_equal(abts_case *tc, const int expected, const int actual, int lineno);
+void abts_int_nequal(abts_case *tc, const int expected, const int actual, int lineno);
+void abts_str_equal(abts_case *tc, const char *expected, const char *actual, int lineno);
+void abts_str_nequal(abts_case *tc, const char *expected, const char *actual,
+                       size_t n, int lineno);
+void abts_ptr_notnull(abts_case *tc, const void *ptr, int lineno);
+void abts_ptr_equal(abts_case *tc, const void *expected, const void *actual, int lineno);
+void abts_true(abts_case *tc, int condition, int lineno);
+void abts_fail(abts_case *tc, const char *message, int lineno);
+void abts_not_impl(abts_case *tc, const char *message, int lineno);
+void abts_assert(abts_case *tc, const char *message, int condition, int lineno);
+
+/* Convenience macros. Ryan hates these! */
+#define ABTS_INT_EQUAL(a, b, c)     abts_int_equal(a, b, c, __LINE__)
+#define ABTS_INT_NEQUAL(a, b, c)    abts_int_nequal(a, b, c, __LINE__)
+#define ABTS_STR_EQUAL(a, b, c)     abts_str_equal(a, b, c, __LINE__)
+#define ABTS_STR_NEQUAL(a, b, c, d) abts_str_nequal(a, b, c, d, __LINE__)
+#define ABTS_PTR_NOTNULL(a, b)      abts_ptr_notnull(a, b, __LINE__)
+#define ABTS_PTR_EQUAL(a, b, c)     abts_ptr_equal(a, b, c, __LINE__)
+#define ABTS_TRUE(a, b)             abts_true(a, b, __LINE__);
+#define ABTS_FAIL(a, b)             abts_fail(a, b, __LINE__);
+#define ABTS_NOT_IMPL(a, b)         abts_not_impl(a, b, __LINE__);
+#define ABTS_ASSERT(a, b, c)        abts_assert(a, b, c, __LINE__);
+
+abts_suite *run_tests(abts_suite *suite);
+abts_suite *run_tests1(abts_suite *suite);
+
+
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/test/abts_tests.h b/test/abts_tests.h
new file mode 100644
index 0000000..ca157bb
--- /dev/null
+++ b/test/abts_tests.h
@@ -0,0 +1,44 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef APR_TEST_INCLUDES
+#define APR_TEST_INCLUDES
+
+#include "abts.h"
+#include "testutil.h"
+
+const struct testlist {
+    abts_suite *(*func)(abts_suite *suite);
+} alltests[] = {
+    {teststrmatch},
+    {testuri},
+    {testuuid},
+    {testbuckets},
+    {testpass},
+    {testmd4},
+    {testmd5},
+    {testldap},
+    {testdbd},
+    {testdate},
+    {testxml},
+    {testxlate},
+    {testrmm},
+    {testdbm},
+    {testqueue},
+    {testreslist}
+};
+
+#endif /* APR_TEST_INCLUDES */
diff --git a/test/dbd.c b/test/dbd.c
new file mode 100644
index 0000000..b5ae963
--- /dev/null
+++ b/test/dbd.c
@@ -0,0 +1,407 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apu.h"
+#include "apr_pools.h"
+#include "apr_dbd.h"
+
+#include <stdio.h>
+
+#define TEST(msg,func)					\
+    printf("======== %s ========\n", msg);		\
+    rv = func(pool, sql, driver);			\
+    if (rv != 0) {					\
+        printf("Error in %s: rc=%d\n\n", msg, rv);	\
+    }							\
+    else {						\
+        printf("%s test successful\n\n", msg);		\
+    }							\
+    fflush(stdout);
+
+static int create_table(apr_pool_t* pool, apr_dbd_t* handle,
+                        const apr_dbd_driver_t* driver)
+{
+    int rv = 0;
+    int nrows;
+    const char *statement = "CREATE TABLE apr_dbd_test ("
+        "col1 varchar(40) not null,"
+        "col2 varchar(40),"
+        "col3 integer)" ;
+    rv = apr_dbd_query(driver, handle, &nrows, statement);
+    return rv;
+}
+static int drop_table(apr_pool_t* pool, apr_dbd_t* handle,
+                      const apr_dbd_driver_t* driver)
+{
+    int rv = 0;
+    int nrows;
+    const char *statement = "DROP TABLE apr_dbd_test" ;
+    rv = apr_dbd_query(driver, handle, &nrows, statement);
+    return rv;
+}
+static int insert_rows(apr_pool_t* pool, apr_dbd_t* handle,
+                       const apr_dbd_driver_t* driver)
+{
+    int i;
+    int rv = 0;
+    int nrows;
+    int nerrors = 0;
+    const char *statement =
+        "INSERT into apr_dbd_test (col1) values ('foo');"
+        "INSERT into apr_dbd_test values ('wibble', 'other', 5);"
+        "INSERT into apr_dbd_test values ('wibble', 'nothing', 5);"
+        "INSERT into apr_dbd_test values ('qwerty', 'foo', 0);"
+        "INSERT into apr_dbd_test values ('asdfgh', 'bar', 1);"
+    ;
+    rv = apr_dbd_query(driver, handle, &nrows, statement);
+    if (rv) {
+        const char* stmt[] = {
+            "INSERT into apr_dbd_test (col1) values ('foo');",
+            "INSERT into apr_dbd_test values ('wibble', 'other', 5);",
+            "INSERT into apr_dbd_test values ('wibble', 'nothing', 5);",
+            "INSERT into apr_dbd_test values ('qwerty', 'foo', 0);",
+            "INSERT into apr_dbd_test values ('asdfgh', 'bar', 1);",
+            NULL
+        };
+        printf("Compound insert failed; trying statements one-by-one\n") ;
+        for (i=0; stmt[i] != NULL; ++i) {
+            statement = stmt[i];
+            rv = apr_dbd_query(driver, handle, &nrows, statement);
+            if (rv) {
+                nerrors++;
+            }
+        }
+        if (nerrors) {
+            printf("%d single inserts failed too.\n", nerrors) ;
+        }
+    }
+    return rv;
+}
+static int invalid_op(apr_pool_t* pool, apr_dbd_t* handle,
+                      const apr_dbd_driver_t* driver)
+{
+    int rv = 0;
+    int nrows;
+    const char *statement = "INSERT into apr_dbd_test1 (col2) values ('foo')" ;
+    rv = apr_dbd_query(driver, handle, &nrows, statement);
+    printf("invalid op returned %d (should be nonzero).  Error msg follows\n", rv);
+    printf("'%s'\n", apr_dbd_error(driver, handle, rv));
+    statement = "INSERT into apr_dbd_test (col1, col2) values ('bar', 'foo')" ;
+    rv = apr_dbd_query(driver, handle, &nrows, statement);
+    printf("valid op returned %d (should be zero; error shouldn't affect subsequent ops)\n", rv);
+    return rv;
+}
+static int select_sequential(apr_pool_t* pool, apr_dbd_t* handle,
+                             const apr_dbd_driver_t* driver)
+{
+    int rv = 0;
+    int i = 0;
+    int n;
+    const char* entry;
+    const char* statement = "SELECT * FROM apr_dbd_test ORDER BY col1, col2";
+    apr_dbd_results_t *res = NULL;
+    apr_dbd_row_t *row = NULL;
+    rv = apr_dbd_select(driver,pool,handle,&res,statement,0);
+    if (rv) {
+        printf("Select failed: %s", apr_dbd_error(driver, handle, rv));
+        return rv;
+    }
+    for (rv = apr_dbd_get_row(driver, pool, res, &row, -1);
+         rv == 0;
+         rv = apr_dbd_get_row(driver, pool, res, &row, -1)) {
+        printf("ROW %d:	", i++) ;
+        for (n = 0; n < apr_dbd_num_cols(driver, res); ++n) {
+            entry = apr_dbd_get_entry(driver, row, n);
+            if (entry == NULL) {
+                printf("(null)	") ;
+            }
+            else {
+                printf("%s	", entry);
+            }
+        }
+	fputs("\n", stdout);
+    }
+    return (rv == -1) ? 0 : 1;
+}
+static int select_random(apr_pool_t* pool, apr_dbd_t* handle,
+                         const apr_dbd_driver_t* driver)
+{
+    int rv = 0;
+    int n;
+    const char* entry;
+    const char* statement = "SELECT * FROM apr_dbd_test ORDER BY col1, col2";
+    apr_dbd_results_t *res = NULL;
+    apr_dbd_row_t *row = NULL;
+    rv = apr_dbd_select(driver,pool,handle,&res,statement,1);
+    if (rv) {
+        printf("Select failed: %s", apr_dbd_error(driver, handle, rv));
+        return rv;
+    }
+    rv = apr_dbd_get_row(driver, pool, res, &row, 5) ;
+    if (rv) {
+        printf("get_row failed: %s", apr_dbd_error(driver, handle, rv));
+        return rv;
+    }
+    printf("ROW 5:	");
+    for (n = 0; n < apr_dbd_num_cols(driver, res); ++n) {
+        entry = apr_dbd_get_entry(driver, row, n);
+        if (entry == NULL) {
+            printf("(null)	") ;
+        }
+        else {
+            printf("%s	", entry);
+        }
+    }
+    fputs("\n", stdout);
+    rv = apr_dbd_get_row(driver, pool, res, &row, 1) ;
+    if (rv) {
+        printf("get_row failed: %s", apr_dbd_error(driver, handle, rv));
+        return rv;
+    }
+    printf("ROW 1:	");
+    for (n = 0; n < apr_dbd_num_cols(driver, res); ++n) {
+        entry = apr_dbd_get_entry(driver, row, n);
+        if (entry == NULL) {
+            printf("(null)	") ;
+        }
+        else {
+            printf("%s	", entry);
+        }
+    }
+    fputs("\n", stdout);
+    rv = apr_dbd_get_row(driver, pool, res, &row, 11) ;
+    if (rv != -1) {
+        printf("Oops!  get_row out of range but thinks it succeeded!\n%s\n",
+                apr_dbd_error(driver, handle, rv));
+        return -1;
+    }
+    rv = 0;
+
+    return rv;
+}
+static int test_transactions(apr_pool_t* pool, apr_dbd_t* handle,
+                             const apr_dbd_driver_t* driver)
+{
+    int rv = 0;
+    int nrows;
+    apr_dbd_transaction_t *trans = NULL;
+    const char* statement;
+
+    /* trans 1 - error out early */
+    printf("Transaction 1\n");
+    rv = apr_dbd_transaction_start(driver, pool, handle, &trans);
+    if (rv) {
+        printf("Start transaction failed!\n%s\n",
+               apr_dbd_error(driver, handle, rv));
+        return rv;
+    }
+    statement = "UPDATE apr_dbd_test SET col2 = 'failed'";
+    rv = apr_dbd_query(driver, handle, &nrows, statement);
+    if (rv) {
+        printf("Update failed: '%s'\n", apr_dbd_error(driver, handle, rv));
+        apr_dbd_transaction_end(driver, pool, trans);
+        return rv;
+    }
+    printf("%d rows updated\n", nrows);
+
+    statement = "INSERT INTO apr_dbd_test1 (col3) values (3)";
+    rv = apr_dbd_query(driver, handle, &nrows, statement);
+    if (!rv) {
+        printf("Oops, invalid op succeeded but shouldn't!\n");
+    }
+    statement = "INSERT INTO apr_dbd_test values ('zzz', 'aaa', 3)";
+    rv = apr_dbd_query(driver, handle, &nrows, statement);
+    printf("Valid insert returned %d.  Should be nonzero (fail) because transaction is bad\n", rv) ;
+
+    rv = apr_dbd_transaction_end(driver, pool, trans);
+    if (rv) {
+        printf("End transaction failed!\n%s\n",
+               apr_dbd_error(driver, handle, rv));
+        return rv;
+    }
+    printf("Transaction ended (should be rollback) - viewing table\n"
+           "A column of \"failed\" indicates transaction failed (no rollback)\n");
+    select_sequential(pool, handle, driver);
+
+    /* trans 2 - complete successfully */
+    printf("Transaction 2\n");
+    rv = apr_dbd_transaction_start(driver, pool, handle, &trans);
+    if (rv) {
+        printf("Start transaction failed!\n%s\n",
+               apr_dbd_error(driver, handle, rv));
+        return rv;
+    }
+    statement = "UPDATE apr_dbd_test SET col2 = 'success'";
+    rv = apr_dbd_query(driver, handle, &nrows, statement);
+    if (rv) {
+        printf("Update failed: '%s'\n", apr_dbd_error(driver, handle, rv));
+        apr_dbd_transaction_end(driver, pool, trans);
+        return rv;
+    }
+    printf("%d rows updated\n", nrows);
+    statement = "INSERT INTO apr_dbd_test values ('aaa', 'zzz', 3)";
+    rv = apr_dbd_query(driver, handle, &nrows, statement);
+    printf("Valid insert returned %d.  Should be zero (OK)\n", rv) ;
+    rv = apr_dbd_transaction_end(driver, pool, trans);
+    if (rv) {
+        printf("End transaction failed!\n%s\n",
+               apr_dbd_error(driver, handle, rv));
+        return rv;
+    }
+    printf("Transaction ended (should be commit) - viewing table\n");
+    select_sequential(pool, handle, driver);
+    return rv;
+}
+static int test_pselect(apr_pool_t* pool, apr_dbd_t* handle,
+                        const apr_dbd_driver_t* driver)
+{
+    int rv = 0;
+    int i, n;
+    const char *query =
+        "SELECT * FROM apr_dbd_test WHERE col3 <= %s or col1 = 'bar'" ;
+    const char *label = "lowvalues";
+    apr_dbd_prepared_t *statement = NULL;
+    apr_dbd_results_t *res = NULL;
+    apr_dbd_row_t *row = NULL;
+    const char *entry = NULL;
+
+    rv = apr_dbd_prepare(driver, pool, handle, query, label, &statement);
+    if (rv) {
+        printf("Prepare statement failed!\n%s\n",
+               apr_dbd_error(driver, handle, rv));
+        return rv;
+    }
+    rv = apr_dbd_pvselect(driver, pool, handle, &res, statement, 0, "3", NULL);
+    if (rv) {
+        printf("Exec of prepared statement failed!\n%s\n",
+               apr_dbd_error(driver, handle, rv));
+        return rv;
+    }
+    i = 0;
+    printf("Selecting rows where col3 <= 3 and bar row where it's unset.\nShould show four rows.\n");
+    for (rv = apr_dbd_get_row(driver, pool, res, &row, -1);
+         rv == 0;
+         rv = apr_dbd_get_row(driver, pool, res, &row, -1)) {
+        printf("ROW %d:	", i++) ;
+        for (n = 0; n < apr_dbd_num_cols(driver, res); ++n) {
+            entry = apr_dbd_get_entry(driver, row, n);
+            if (entry == NULL) {
+                printf("(null)	") ;
+            }
+            else {
+                printf("%s	", entry);
+            }
+        }
+	fputs("\n", stdout);
+    }
+    return (rv == -1) ? 0 : 1;
+}
+static int test_pquery(apr_pool_t* pool, apr_dbd_t* handle,
+                       const apr_dbd_driver_t* driver)
+{
+    int rv = 0;
+    const char *query = "INSERT INTO apr_dbd_test VALUES (%s, %s, %d)";
+    apr_dbd_prepared_t *statement = NULL;
+    const char *label = "testpquery";
+    int nrows;
+    apr_dbd_transaction_t *trans =0;
+
+    rv = apr_dbd_prepare(driver, pool, handle, query, label, &statement);
+    /* rv = apr_dbd_prepare(driver, pool, handle, query, NULL, &statement); */
+    if (rv) {
+        printf("Prepare statement failed!\n%s\n",
+               apr_dbd_error(driver, handle, rv));
+        return rv;
+    }
+    apr_dbd_transaction_start(driver, pool, handle, &trans);
+    rv = apr_dbd_pvquery(driver, pool, handle, &nrows, statement,
+                         "prepared", "insert", "2", NULL);
+    apr_dbd_transaction_end(driver, pool, trans);
+    if (rv) {
+        printf("Exec of prepared statement failed!\n%s\n",
+               apr_dbd_error(driver, handle, rv));
+        return rv;
+    }
+    printf("Showing table (should now contain row \"prepared insert 2\")\n");
+    select_sequential(pool, handle, driver);
+    return rv;
+}
+int main(int argc, char** argv)
+{
+    const char *name;
+    const char *params;
+    apr_pool_t *pool = NULL;
+    apr_dbd_t *sql = NULL;
+    const apr_dbd_driver_t *driver = NULL;
+    int rv;
+
+    apr_initialize();
+    apr_pool_create(&pool, NULL);
+
+    if (argc >= 2 && argc <= 3) {
+        name = argv[1];
+        params = ( argc == 3 ) ? argv[2] : "";
+        apr_dbd_init(pool);
+        setbuf(stdout,NULL);
+        rv = apr_dbd_get_driver(pool, name, &driver);
+        switch (rv) {
+        case APR_SUCCESS:
+           printf("Loaded %s driver OK.\n", name);
+           break;
+        case APR_EDSOOPEN:
+           printf("Failed to load driver file apr_dbd_%s.so\n", name);
+           goto finish;
+        case APR_ESYMNOTFOUND:
+           printf("Failed to load driver apr_dbd_%s_driver.\n", name);
+           goto finish;
+        case APR_ENOTIMPL:
+           printf("No driver available for %s.\n", name);
+           goto finish;
+        default:        /* it's a bug if none of the above happen */
+           printf("Internal error loading %s.\n", name);
+           goto finish;
+        }
+        rv = apr_dbd_open(driver, pool, params, &sql);
+        switch (rv) {
+        case APR_SUCCESS:
+           printf("Opened %s[%s] OK\n", name, params);
+           break;
+        case APR_EGENERAL:
+           printf("Failed to open %s[%s]\n", name, params);
+           goto finish;
+        default:        /* it's a bug if none of the above happen */
+           printf("Internal error opening %s[%s]\n", name, params);
+           goto finish;
+        }
+        TEST("create table", create_table);
+        TEST("insert rows", insert_rows);
+        TEST("invalid op", invalid_op);
+        TEST("select random", select_random);
+        TEST("select sequential", select_sequential);
+        TEST("transactions", test_transactions);
+        TEST("prepared select", test_pselect);
+        TEST("prepared query", test_pquery);
+        TEST("drop table", drop_table);
+        apr_dbd_close(driver, sql);
+    }
+    else {
+        fprintf(stderr, "Usage: %s driver-name [params]\n", argv[0]);
+    }
+finish:
+    apr_pool_destroy(pool);
+    apr_terminate();
+    return 0;
+}
diff --git a/test/nw_misc.c b/test/nw_misc.c
new file mode 100644
index 0000000..cf68692
--- /dev/null
+++ b/test/nw_misc.c
@@ -0,0 +1,16 @@
+#include <netware.h>
+#include <screen.h>
+#include "testutil.h"
+
+void _NonAppStop( void )
+{
+    pressanykey();
+}
+
+/*
+static void test_not_impl(CuTest *tc)
+{
+    CuNotImpl(tc, "Test not implemented on this platform yet");
+}
+*/
+
diff --git a/test/nwgnuaputest b/test/nwgnuaputest
new file mode 100644
index 0000000..1611a58
--- /dev/null
+++ b/test/nwgnuaputest
@@ -0,0 +1,272 @@
+#
+# Make sure all needed macro's are defined
+#
+
+#
+# Get the 'head' of the build environment if necessary.  This includes default
+# targets and paths to tools
+#
+
+ifndef EnvironmentDefined
+include $(APR_WORK)\build\NWGNUhead.inc
+endif
+
+#
+# These directories will be at the beginning of the include list, followed by
+# INCDIRS
+#
+XINCDIRS	+= \
+			$(APR)/include \
+			$(APR)/include/arch/NetWare \
+			$(APRUTIL)/include \
+			$(LDAPSDK)/inc \
+			$(EOLIST)
+
+#
+# These flags will come after CFLAGS
+#
+XCFLAGS		+= \
+			$(EOLIST)
+
+#
+# These defines will come after DEFINES
+#
+XDEFINES	+= \
+			$(EOLIST)
+
+#
+# These flags will be added to the link.opt file
+#
+XLFLAGS		+= \
+			$(EOLIST)
+
+#
+# These values will be appended to the correct variables based on the value of
+# RELEASE
+#
+ifeq "$(RELEASE)" "debug"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+ifeq "$(RELEASE)" "noopt"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+ifeq "$(RELEASE)" "release"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+#
+# These are used by the link target if an NLM is being generated
+# This is used by the link 'name' directive to name the nlm.  If left blank
+# TARGET_nlm (see below) will be used.
+#
+NLM_NAME		=aputest
+#
+# This is used by the link '-desc ' directive. 
+# If left blank, NLM_NAME will be used.
+#
+NLM_DESCRIPTION	=  NLM is to test the apu layer
+
+#
+# This is used by the '-threadname' directive.  If left blank,
+# NLM_NAME Thread will be used.
+#
+NLM_THREAD_NAME	= aputest
+
+#
+# This is used by the '-screenname' directive.  If left blank,
+# 'Apache for NetWare' Thread will be used.
+#
+NLM_SCREEN_NAME = aputest
+
+#
+# If this is specified, it will override VERSION value in 
+# $(APR_WORK)\build\NWGNUenvironment.inc
+#
+NLM_VERSION		= 1,0,0
+
+#
+# If this is specified, it will override the default of 64K
+#
+NLM_STACK_SIZE = 524288
+
+#
+# If this is specified it will be used by the link '-entry' directive
+#
+NLM_ENTRY_SYM	= _LibCPrelude
+
+#
+# If this is specified it will be used by the link '-exit' directive
+#
+NLM_EXIT_SYM	= _LibCPostlude
+
+#
+# If this is specified it will be used by the link '-check' directive
+#
+NLM_CHECK_SYM	=
+
+#
+# If this is specified it will be used by the link '-flags' directive
+#
+NLM_FLAGS		= AUTOUNLOAD, PSEUDOPREEMPTION
+ 
+#
+# If this is specified it will be linked in with the XDCData option in the def 
+# file instead of the default of $(APR)/misc/netware/apache.xdc.  XDCData can 
+# be disabled by setting APACHE_UNIPROC in the environment
+#
+XDCDATA         = 
+
+#
+# Declare all target files (you must add your files here)
+#
+
+#
+# If there is an NLM target, put it here
+#
+TARGET_nlm = \
+	$(OBJDIR)/aputest.nlm \
+	$(EOLIST)
+
+#
+# If there is an LIB target, put it here
+#
+TARGET_lib = \
+	$(EOLIST)
+
+#
+# These are the OBJ files needed to create the NLM target above.
+# Paths must all use the '/' character
+#
+
+FILES_nlm_objs = \
+	$(OBJDIR)/abts.o \
+	$(OBJDIR)/teststrmatch.o \
+	$(OBJDIR)/testuri.o \
+	$(OBJDIR)/testuuid.o \
+	$(OBJDIR)/testbuckets.o \
+	$(OBJDIR)/testpass.o \
+	$(OBJDIR)/testmd4.o \
+	$(OBJDIR)/testmd5.o \
+	$(OBJDIR)/testldap.o \
+	$(OBJDIR)/testutil.o \
+	$(OBJDIR)/nw_misc.o \
+	$(EOLIST) 
+
+# Pending tests
+	
+#
+# These are the LIB files needed to create the NLM target above.
+# These will be added as a library command in the link.opt file.
+#
+FILES_nlm_libs = \
+	libcpre.o \
+	$(EOLIST)
+
+#
+# These are the modules that the above NLM target depends on to load.
+# These will be added as a module command in the link.opt file.
+#
+FILES_nlm_modules = \
+	Libc \
+	APRLIB \
+	lldapsdk \
+	lldapssl \
+	lldapx \
+	$(EOLIST)
+
+#
+# If the nlm has a msg file, put it's path here
+#
+FILE_nlm_msg =
+ 
+#
+# If the nlm has a hlp file put it's path here
+#
+FILE_nlm_hlp =
+
+#
+# If this is specified, it will override the default copyright.
+#
+FILE_nlm_copyright =
+
+#
+# Any additional imports go here
+#
+FILES_nlm_Ximports = \
+	@libc.imp \
+	@$(APR)/aprlib.imp	\
+	@$(LDAPSDK)/imports/lldapsdk.imp \
+	@$(LDAPSDK)/imports/lldapssl.imp \
+	$(EOLIST)
+ 
+#   
+# Any symbols exported to here
+#
+FILES_nlm_exports = \
+	$(EOLIST)
+	
+#   
+# These are the OBJ files needed to create the LIB target above.
+# Paths must all use the '/' character
+#
+FILES_lib_objs = \
+	$(EOLIST)
+
+#
+# implement targets and dependancies (leave this section alone)
+#
+
+libs :: $(OBJDIR) $(TARGET_lib)
+
+nlms :: libs $(TARGET_nlm)
+
+#
+# Updated this target to create necessary directories and copy files to the 
+# correct place.  (See $(APR_WORK)\build\NWGNUhead.inc for examples)
+#
+install :: nlms FORCE
+
+#
+# Any specialized rules here
+#
+
+
+#
+# Include the 'tail' makefile that has targets that depend on variables defined
+# in this makefile
+#
+
+include $(APR_WORK)\build\NWGNUtail.inc
+
diff --git a/test/test_apu.h b/test/test_apu.h
new file mode 100644
index 0000000..642edec
--- /dev/null
+++ b/test/test_apu.h
@@ -0,0 +1,100 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* Some simple functions to make the test apps easier to write and
+ * a bit more consistent...
+ * this is a >copy< of apr_test.h
+ */
+
+/* Things to bear in mind when using these...
+ *
+ * If you include '\t' within the string passed in it won't be included
+ * in the spacing, so use spaces instead :)
+ * 
+ */ 
+
+#ifndef APU_TEST_INCLUDES
+#define APU_TEST_INCLUDES
+
+#include "apr_strings.h"
+#include "apr_time.h"
+
+#define TEST_EQ(str, func, value, good, bad) \
+    printf("%-60s", str); \
+    { \
+    apr_status_t rv; \
+    if ((rv = func) == value){ \
+        char errmsg[200]; \
+        printf("%s\n", bad); \
+        fprintf(stderr, "Error was %d : %s\n", rv, \
+                apr_strerror(rv, (char*)&errmsg, 200)); \
+        exit(-1); \
+    } \
+    printf("%s\n", good); \
+    }
+
+#define TEST_NEQ(str, func, value, good, bad) \
+    printf("%-60s", str); \
+    { \
+    apr_status_t rv; \
+    if ((rv = func) != value){ \
+        char errmsg[200]; \
+        printf("%s\n", bad); \
+        fprintf(stderr, "Error was %d : %s\n", rv, \
+                apr_strerror(rv, (char*)&errmsg, 200)); \
+        exit(-1); \
+    } \
+    printf("%s\n", good); \
+    }
+
+#define TEST_STATUS(str, func, testmacro, good, bad) \
+    printf("%-60s", str); \
+    { \
+        apr_status_t rv = func; \
+        if (!testmacro(rv)) { \
+            char errmsg[200]; \
+            printf("%s\n", bad); \
+            fprintf(stderr, "Error was %d : %s\n", rv, \
+                    apr_strerror(rv, (char*)&errmsg, 200)); \
+            exit(-1); \
+        } \
+        printf("%s\n", good); \
+    }
+
+#define STD_TEST_NEQ(str, func) \
+	TEST_NEQ(str, func, APR_SUCCESS, "OK", "Failed");
+
+#define PRINT_ERROR(rv) \
+    { \
+        char errmsg[200]; \
+        fprintf(stderr, "Error was %d : %s\n", rv, \
+                apr_strerror(rv, (char*)&errmsg, 200)); \
+        exit(-1); \
+    }
+
+#define MSG_AND_EXIT(msg) \
+    printf("%s\n", msg); \
+    exit (-1);
+
+#define TIME_FUNCTION(time, function) \
+    { \
+        apr_time_t tt = apr_time_now(); \
+        function; \
+        time = apr_time_now() - tt; \
+    }
+    
+    
+#endif /* APU_TEST_INCLUDES */
diff --git a/test/testall.dsw b/test/testall.dsw
new file mode 100644
index 0000000..11ebced
--- /dev/null
+++ b/test/testall.dsw
@@ -0,0 +1,278 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00

+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!

+

+###############################################################################

+

+Project: "apr"="..\..\apr\apr.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+}}}

+

+###############################################################################

+

+Project: "apr_app"="..\..\apr\build\apr_app.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name apr

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "apriconv"="..\..\apr-iconv\apriconv.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name apr

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "aprutil"="..\aprutil.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name apriconv

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name xml

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "libapr"="..\..\apr\libapr.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+}}}

+

+###############################################################################

+

+Project: "libapr_app"="..\..\apr\build\libapr_app.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name libapr

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "libapriconv"="..\..\apr-iconv\libapriconv.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name libapr

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "libapriconv_ccs_modules"="..\..\apr-iconv\ccs\libapriconv_ccs_modules.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name libapr

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name libapriconv

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "libapriconv_ces_modules"="..\..\apr-iconv\ces\libapriconv_ces_modules.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name libapr

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name libapriconv

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "libaprutil"="..\libaprutil.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name libapr

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name libapriconv

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name libapriconv_ccs_modules

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name libapriconv_ces_modules

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name xml

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "testdll"="..\..\apr\test\testdll.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name libapr

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name libapr_app

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "testlib"="..\..\apr\test\testlib.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name apr

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name apr_app

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "testutildll"=".\testutildll.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name libapr

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name libapriconv

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name libaprutil

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name libapr_app

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "testutillib"=".\testutillib.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+    Begin Project Dependency

+    Project_Dep_Name apr

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name apriconv

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name aprutil

+    End Project Dependency

+    Begin Project Dependency

+    Project_Dep_Name apr_app

+    End Project Dependency

+}}}

+

+###############################################################################

+

+Project: "xml"="..\xml\expat\lib\xml.dsp" - Package Owner=<4>

+

+Package=<5>

+{{{

+}}}

+

+Package=<4>

+{{{

+}}}

+

+###############################################################################

+

+Global:

+

+Package=<5>

+{{{

+}}}

+

+Package=<3>

+{{{

+}}}

+

+###############################################################################

+

diff --git a/test/testbuckets.c b/test/testbuckets.c
new file mode 100644
index 0000000..6c23a77
--- /dev/null
+++ b/test/testbuckets.c
@@ -0,0 +1,490 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "abts.h"
+#include "testutil.h"
+#include "apr_buckets.h"
+#include "apr_strings.h"
+
+static void test_create(abts_case *tc, void *data)
+{
+    apr_bucket_alloc_t *ba;
+    apr_bucket_brigade *bb;
+
+    ba = apr_bucket_alloc_create(p);
+    bb = apr_brigade_create(p, ba);
+
+    ABTS_ASSERT(tc, "new brigade not NULL", bb != NULL);
+    ABTS_ASSERT(tc, "new brigade is empty", APR_BRIGADE_EMPTY(bb));
+
+    apr_brigade_destroy(bb);
+    apr_bucket_alloc_destroy(ba);
+}
+
+static void test_simple(abts_case *tc, void *data)
+{
+    apr_bucket_alloc_t *ba;
+    apr_bucket_brigade *bb;
+    apr_bucket *fb, *tb;
+    
+    ba = apr_bucket_alloc_create(p);
+    bb = apr_brigade_create(p, ba);
+    
+    fb = APR_BRIGADE_FIRST(bb);
+    ABTS_ASSERT(tc, "first bucket of empty brigade is sentinel",
+                fb == APR_BRIGADE_SENTINEL(bb));
+
+    fb = apr_bucket_flush_create(ba);
+    APR_BRIGADE_INSERT_HEAD(bb, fb);
+
+    ABTS_ASSERT(tc, "first bucket of brigade is flush",
+                APR_BRIGADE_FIRST(bb) == fb);
+
+    ABTS_ASSERT(tc, "bucket after flush is sentinel",
+                APR_BUCKET_NEXT(fb) == APR_BRIGADE_SENTINEL(bb));
+
+    tb = apr_bucket_transient_create("aaa", 3, ba);
+    APR_BUCKET_INSERT_BEFORE(fb, tb);
+
+    ABTS_ASSERT(tc, "bucket before flush now transient",
+                APR_BUCKET_PREV(fb) == tb);
+    ABTS_ASSERT(tc, "bucket after transient is flush",
+                APR_BUCKET_NEXT(tb) == fb);
+    ABTS_ASSERT(tc, "bucket before transient is sentinel",
+                APR_BUCKET_PREV(tb) == APR_BRIGADE_SENTINEL(bb));
+
+    apr_brigade_cleanup(bb);
+
+    ABTS_ASSERT(tc, "cleaned up brigade was empty", APR_BRIGADE_EMPTY(bb));
+
+    apr_brigade_destroy(bb);
+    apr_bucket_alloc_destroy(ba);
+}
+
+static apr_bucket_brigade *make_simple_brigade(apr_bucket_alloc_t *ba,
+                                               const char *first, 
+                                               const char *second)
+{
+    apr_bucket_brigade *bb = apr_brigade_create(p, ba);
+    apr_bucket *e;
+ 
+    e = apr_bucket_transient_create(first, strlen(first), ba);
+    APR_BRIGADE_INSERT_TAIL(bb, e);
+
+    e = apr_bucket_transient_create(second, strlen(second), ba);
+    APR_BRIGADE_INSERT_TAIL(bb, e);
+
+    return bb;
+}
+
+/* tests that 'bb' flattens to string 'expect'. */
+static void flatten_match(abts_case *tc, const char *ctx,
+                          apr_bucket_brigade *bb,
+                          const char *expect)
+{
+    apr_size_t elen = strlen(expect);
+    char *buf = malloc(elen);
+    apr_size_t len = elen;
+    char msg[200];
+
+    sprintf(msg, "%s: flatten brigade", ctx);
+    apr_assert_success(tc, msg, apr_brigade_flatten(bb, buf, &len));
+    sprintf(msg, "%s: length match (%ld not %ld)", ctx,
+            (long)len, (long)elen);
+    ABTS_ASSERT(tc, msg, len == elen);
+    sprintf(msg, "%s: result match", msg);
+    ABTS_STR_NEQUAL(tc, expect, buf, len);
+    free(buf);
+}
+
+static void test_flatten(abts_case *tc, void *data)
+{
+    apr_bucket_alloc_t *ba = apr_bucket_alloc_create(p);
+    apr_bucket_brigade *bb;
+
+    bb = make_simple_brigade(ba, "hello, ", "world");
+
+    flatten_match(tc, "flatten brigade", bb, "hello, world");
+
+    apr_brigade_destroy(bb);
+    apr_bucket_alloc_destroy(ba);    
+}
+
+static int count_buckets(apr_bucket_brigade *bb)
+{
+    apr_bucket *e;
+    int count = 0;
+
+    for (e = APR_BRIGADE_FIRST(bb); 
+         e != APR_BRIGADE_SENTINEL(bb);
+         e = APR_BUCKET_NEXT(e)) {
+        count++;
+    }
+    
+    return count;
+}
+
+static void test_split(abts_case *tc, void *data)
+{
+    apr_bucket_alloc_t *ba = apr_bucket_alloc_create(p);
+    apr_bucket_brigade *bb, *bb2;
+    apr_bucket *e;
+
+    bb = make_simple_brigade(ba, "hello, ", "world");
+
+    /* split at the "world" bucket */
+    e = APR_BRIGADE_LAST(bb);
+    bb2 = apr_brigade_split(bb, e);
+
+    ABTS_ASSERT(tc, "split brigade contains one bucket",
+                count_buckets(bb2) == 1);
+    ABTS_ASSERT(tc, "original brigade contains one bucket",
+                count_buckets(bb) == 1);
+
+    flatten_match(tc, "match original brigade", bb, "hello, ");
+    flatten_match(tc, "match split brigade", bb2, "world");
+
+    apr_brigade_destroy(bb2);
+    apr_brigade_destroy(bb);
+    apr_bucket_alloc_destroy(ba);
+}
+
+#define COUNT 3000
+#define THESTR "hello"
+
+static void test_bwrite(abts_case *tc, void *data)
+{
+    apr_bucket_alloc_t *ba = apr_bucket_alloc_create(p);
+    apr_bucket_brigade *bb = apr_brigade_create(p, ba);
+    apr_off_t length;
+    int n;
+
+    for (n = 0; n < COUNT; n++) {
+        apr_assert_success(tc, "brigade_write", 
+                           apr_brigade_write(bb, NULL, NULL,
+                                             THESTR, sizeof THESTR));
+    }
+
+    apr_assert_success(tc, "determine brigade length",
+                       apr_brigade_length(bb, 1, &length));
+
+    ABTS_ASSERT(tc, "brigade has correct length",
+                length == (COUNT * sizeof THESTR));
+    
+    apr_brigade_destroy(bb);
+    apr_bucket_alloc_destroy(ba);
+}
+
+static void test_splitline(abts_case *tc, void *data)
+{
+    apr_bucket_alloc_t *ba = apr_bucket_alloc_create(p);
+    apr_bucket_brigade *bin, *bout;
+
+    bin = make_simple_brigade(ba, "blah blah blah-",
+                              "end of line.\nfoo foo foo");
+    bout = apr_brigade_create(p, ba);
+
+    apr_assert_success(tc, "split line",
+                       apr_brigade_split_line(bout, bin,
+                                              APR_BLOCK_READ, 100));
+
+    flatten_match(tc, "split line", bout, "blah blah blah-end of line.\n");
+    flatten_match(tc, "remainder", bin, "foo foo foo");
+
+    apr_brigade_destroy(bout);
+    apr_brigade_destroy(bin);
+    apr_bucket_alloc_destroy(ba);
+}
+
+/* Test that bucket E has content EDATA of length ELEN. */
+static void test_bucket_content(abts_case *tc,
+                                apr_bucket *e,
+                                const char *edata,
+                                apr_size_t elen)
+{
+    const char *adata;
+    apr_size_t alen;
+
+    apr_assert_success(tc, "read from bucket",
+                       apr_bucket_read(e, &adata, &alen, 
+                                       APR_BLOCK_READ));
+
+    ABTS_ASSERT(tc, "read expected length", alen == elen);
+    ABTS_STR_NEQUAL(tc, edata, adata, elen);
+}
+
+static void test_splits(abts_case *tc, void *ctx)
+{
+    apr_bucket_alloc_t *ba = apr_bucket_alloc_create(p);
+    apr_bucket_brigade *bb;
+    apr_bucket *e;
+    char *str = "alphabeta";
+    int n;
+
+    bb = apr_brigade_create(p, ba);
+
+    APR_BRIGADE_INSERT_TAIL(bb,
+                            apr_bucket_immortal_create(str, 9, ba));
+    APR_BRIGADE_INSERT_TAIL(bb, 
+                            apr_bucket_transient_create(str, 9, ba));
+    APR_BRIGADE_INSERT_TAIL(bb, 
+                            apr_bucket_heap_create(strdup(str), 9, free, ba));
+    APR_BRIGADE_INSERT_TAIL(bb, 
+                            apr_bucket_pool_create(apr_pstrdup(p, str), 9, p, 
+                                                   ba));
+
+    ABTS_ASSERT(tc, "four buckets inserted", count_buckets(bb) == 4);
+    
+    /* now split each of the buckets after byte 5 */
+    for (n = 0, e = APR_BRIGADE_FIRST(bb); n < 4; n++) {
+        ABTS_ASSERT(tc, "reached end of brigade", 
+                    e != APR_BRIGADE_SENTINEL(bb));
+        ABTS_ASSERT(tc, "split bucket OK",
+                    apr_bucket_split(e, 5) == APR_SUCCESS);
+        e = APR_BUCKET_NEXT(e);
+        ABTS_ASSERT(tc, "split OK", e != APR_BRIGADE_SENTINEL(bb));
+        e = APR_BUCKET_NEXT(e);
+    }
+    
+    ABTS_ASSERT(tc, "four buckets split into eight", 
+                count_buckets(bb) == 8);
+
+    for (n = 0, e = APR_BRIGADE_FIRST(bb); n < 4; n++) {
+        const char *data;
+        apr_size_t len;
+        
+        apr_assert_success(tc, "read alpha from bucket",
+                           apr_bucket_read(e, &data, &len, APR_BLOCK_READ));
+        ABTS_ASSERT(tc, "read 5 bytes", len == 5);
+        ABTS_STR_NEQUAL(tc, "alpha", data, 5);
+
+        e = APR_BUCKET_NEXT(e);
+
+        apr_assert_success(tc, "read beta from bucket",
+                           apr_bucket_read(e, &data, &len, APR_BLOCK_READ));
+        ABTS_ASSERT(tc, "read 4 bytes", len == 4);
+        ABTS_STR_NEQUAL(tc, "beta", data, 5);
+
+        e = APR_BUCKET_NEXT(e);
+    }
+
+    /* now delete the "alpha" buckets */
+    for (n = 0, e = APR_BRIGADE_FIRST(bb); n < 4; n++) {
+        apr_bucket *f;
+
+        ABTS_ASSERT(tc, "reached end of brigade",
+                    e != APR_BRIGADE_SENTINEL(bb));
+        f = APR_BUCKET_NEXT(e);
+        apr_bucket_delete(e);
+        e = APR_BUCKET_NEXT(f);
+    }    
+    
+    ABTS_ASSERT(tc, "eight buckets reduced to four", 
+                count_buckets(bb) == 4);
+
+    flatten_match(tc, "flatten beta brigade", bb,
+                  "beta" "beta" "beta" "beta");
+
+    apr_brigade_destroy(bb);
+    apr_bucket_alloc_destroy(ba);
+}
+
+#define TIF_FNAME "testfile.txt"
+
+static void test_insertfile(abts_case *tc, void *ctx)
+{
+    apr_bucket_alloc_t *ba = apr_bucket_alloc_create(p);
+    apr_bucket_brigade *bb;
+    const apr_off_t bignum = (APR_INT64_C(2) << 32) + 424242;
+    apr_off_t count;
+    apr_file_t *f;
+    apr_bucket *e;
+
+    ABTS_ASSERT(tc, "open test file",
+                apr_file_open(&f, TIF_FNAME,
+                              APR_WRITE|APR_TRUNCATE|APR_CREATE,
+                              APR_OS_DEFAULT, p) == APR_SUCCESS);
+
+    if (apr_file_trunc(f, bignum)) {
+        apr_file_close(f);
+        apr_file_remove(TIF_FNAME, p);
+        ABTS_NOT_IMPL(tc, "Skipped: could not create large file");
+        return;
+    }
+    
+    bb = apr_brigade_create(p, ba);
+
+    e = apr_brigade_insert_file(bb, f, 0, bignum, p);
+    
+    ABTS_ASSERT(tc, "inserted file was not at end of brigade",
+                e == APR_BRIGADE_LAST(bb));
+
+    /* check that the total size of inserted buckets is equal to the
+     * total size of the file. */
+    count = 0;
+
+    for (e = APR_BRIGADE_FIRST(bb);
+         e != APR_BRIGADE_SENTINEL(bb);
+         e = APR_BUCKET_NEXT(e)) {
+        ABTS_ASSERT(tc, "bucket size sane", e->length != (apr_size_t)-1);
+        count += e->length;
+    }
+
+    ABTS_ASSERT(tc, "total size of buckets incorrect", count == bignum);
+
+    apr_brigade_destroy(bb);
+
+    /* Truncate the file to zero size before close() so that we don't
+     * actually write out the large file if we are on a non-sparse file
+     * system - like Mac OS X's HFS.  Otherwise, pity the poor user who
+     * has to wait for the 8GB file to be written to disk.
+     */
+    apr_file_trunc(f, 0);
+
+    apr_file_close(f);
+    apr_bucket_alloc_destroy(ba);
+    apr_file_remove(TIF_FNAME, p);
+}
+
+/* Make a test file named FNAME, and write CONTENTS to it. */
+static apr_file_t *make_test_file(abts_case *tc, const char *fname,
+                                  const char *contents)
+{
+    apr_file_t *f;
+
+    ABTS_ASSERT(tc, "create test file",
+                apr_file_open(&f, fname,
+                              APR_READ|APR_WRITE|APR_TRUNCATE|APR_CREATE,
+                              APR_OS_DEFAULT, p) == APR_SUCCESS);
+    
+    ABTS_ASSERT(tc, "write test file contents",
+                apr_file_puts(contents, f) == APR_SUCCESS);
+
+    return f;
+}
+
+static void test_manyfile(abts_case *tc, void *data)
+{
+    apr_bucket_alloc_t *ba = apr_bucket_alloc_create(p);
+    apr_bucket_brigade *bb = apr_brigade_create(p, ba);
+    apr_file_t *f;
+
+    f = make_test_file(tc, "manyfile.bin",
+                       "world" "hello" "brave" " ,\n");
+
+    apr_brigade_insert_file(bb, f, 5, 5, p);
+    apr_brigade_insert_file(bb, f, 16, 1, p);
+    apr_brigade_insert_file(bb, f, 15, 1, p);
+    apr_brigade_insert_file(bb, f, 10, 5, p);
+    apr_brigade_insert_file(bb, f, 15, 1, p);
+    apr_brigade_insert_file(bb, f, 0, 5, p);
+    apr_brigade_insert_file(bb, f, 17, 1, p);
+
+    /* can you tell what it is yet? */
+    flatten_match(tc, "file seek test", bb,
+                  "hello, brave world\n");
+
+    apr_file_close(f);
+    apr_brigade_destroy(bb);
+    apr_bucket_alloc_destroy(ba);
+}
+
+/* Regression test for PR 34708, where a file bucket will keep
+ * duplicating itself on being read() when EOF is reached
+ * prematurely. */
+static void test_truncfile(abts_case *tc, void *data)
+{
+    apr_bucket_alloc_t *ba = apr_bucket_alloc_create(p);
+    apr_bucket_brigade *bb = apr_brigade_create(p, ba);
+    apr_file_t *f = make_test_file(tc, "testfile.txt", "hello");
+    apr_bucket *e;
+    const char *buf;
+    apr_size_t len;
+
+    apr_brigade_insert_file(bb, f, 0, 5, p);
+
+    apr_file_trunc(f, 0);
+
+    e = APR_BRIGADE_FIRST(bb);
+
+    ABTS_ASSERT(tc, "single bucket in brigade",
+                APR_BUCKET_NEXT(e) == APR_BRIGADE_SENTINEL(bb));
+
+    apr_bucket_file_enable_mmap(e, 0);
+
+    ABTS_ASSERT(tc, "read gave APR_EOF",
+                apr_bucket_read(e, &buf, &len, APR_BLOCK_READ) == APR_EOF);
+
+    ABTS_ASSERT(tc, "read length 0", len == 0);
+    
+    ABTS_ASSERT(tc, "still a single bucket in brigade",
+                APR_BUCKET_NEXT(e) == APR_BRIGADE_SENTINEL(bb));
+
+    apr_file_close(f);
+    apr_brigade_destroy(bb);
+    apr_bucket_alloc_destroy(ba);
+}
+
+static const char hello[] = "hello, world";
+
+static void test_partition(abts_case *tc, void *data)
+{
+    apr_bucket_alloc_t *ba = apr_bucket_alloc_create(p);
+    apr_bucket_brigade *bb = apr_brigade_create(p, ba);
+    apr_bucket *e;
+
+    e = apr_bucket_immortal_create(hello, strlen(hello), ba);
+    APR_BRIGADE_INSERT_HEAD(bb, e);
+
+    apr_assert_success(tc, "partition brigade",
+                       apr_brigade_partition(bb, 5, &e));
+
+    test_bucket_content(tc, APR_BRIGADE_FIRST(bb),
+                        "hello", 5);
+
+    test_bucket_content(tc, APR_BRIGADE_LAST(bb),
+                        ", world", 7);
+
+    ABTS_ASSERT(tc, "partition returns APR_INCOMPLETE",
+                apr_brigade_partition(bb, 8192, &e));
+
+    ABTS_ASSERT(tc, "APR_INCOMPLETE partition returned sentinel",
+                e == APR_BRIGADE_SENTINEL(bb));
+
+    apr_brigade_destroy(bb);
+    apr_bucket_alloc_destroy(ba);
+}
+
+abts_suite *testbuckets(abts_suite *suite)
+{
+    suite = ADD_SUITE(suite);
+
+    abts_run_test(suite, test_create, NULL);
+    abts_run_test(suite, test_simple, NULL);
+    abts_run_test(suite, test_flatten, NULL);
+    abts_run_test(suite, test_split, NULL);
+    abts_run_test(suite, test_bwrite, NULL);
+    abts_run_test(suite, test_splitline, NULL);
+    abts_run_test(suite, test_splits, NULL);
+    abts_run_test(suite, test_insertfile, NULL);
+    abts_run_test(suite, test_manyfile, NULL);
+    abts_run_test(suite, test_truncfile, NULL);
+    abts_run_test(suite, test_partition, NULL);
+
+    return suite;
+}
+
+
diff --git a/test/testdate.c b/test/testdate.c
new file mode 100644
index 0000000..b4e2edf
--- /dev/null
+++ b/test/testdate.c
@@ -0,0 +1,202 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "abts.h"
+#include "testutil.h"
+#include "apr_date.h"
+#include "apr_general.h"
+
+#if APR_HAVE_TIME_H
+#include <time.h>
+#endif /* APR_HAVE_TIME_H */
+
+static struct datetest {
+  const char *input;
+  const char *output;
+} tests[] = {
+  { "Mon, 27 Feb 1995 20:49:44 -0800",  "Tue, 28 Feb 1995 04:49:44 GMT" },
+  { "Fri,  1 Jul 2005 11:34:25 -0400",  "Fri, 01 Jul 2005 15:34:25 GMT" },
+  { "Monday, 27-Feb-95 20:49:44 -0800", "Tue, 28 Feb 1995 04:49:44 GMT" },
+  { "Tue, 4 Mar 1997 12:43:52 +0200",   "Tue, 04 Mar 1997 10:43:52 GMT" },
+  { "Mon, 27 Feb 95 20:49:44 -0800",    "Tue, 28 Feb 1995 04:49:44 GMT" },
+  { "Tue,  4 Mar 97 12:43:52 +0200",    "Tue, 04 Mar 1997 10:43:52 GMT" },
+  { "Tue, 4 Mar 97 12:43:52 +0200",     "Tue, 04 Mar 1997 10:43:52 GMT" },
+  { "Mon, 27 Feb 95 20:49 GMT",         "Mon, 27 Feb 1995 20:49:00 GMT" },
+  { "Tue, 4 Mar 97 12:43 GMT",          "Tue, 04 Mar 1997 12:43:00 GMT" },
+  { NULL, NULL }
+};
+
+static const apr_time_t year2secs[] = {
+             APR_INT64_C(0),    /* 1970 */
+      APR_INT64_C(31536000),    /* 1971 */
+      APR_INT64_C(63072000),    /* 1972 */
+      APR_INT64_C(94694400),    /* 1973 */
+     APR_INT64_C(126230400),    /* 1974 */
+     APR_INT64_C(157766400),    /* 1975 */
+     APR_INT64_C(189302400),    /* 1976 */
+     APR_INT64_C(220924800),    /* 1977 */
+     APR_INT64_C(252460800),    /* 1978 */
+     APR_INT64_C(283996800),    /* 1979 */
+     APR_INT64_C(315532800),    /* 1980 */
+     APR_INT64_C(347155200),    /* 1981 */
+     APR_INT64_C(378691200),    /* 1982 */
+     APR_INT64_C(410227200),    /* 1983 */
+     APR_INT64_C(441763200),    /* 1984 */
+     APR_INT64_C(473385600),    /* 1985 */
+     APR_INT64_C(504921600),    /* 1986 */
+     APR_INT64_C(536457600),    /* 1987 */
+     APR_INT64_C(567993600),    /* 1988 */
+     APR_INT64_C(599616000),    /* 1989 */
+     APR_INT64_C(631152000),    /* 1990 */
+     APR_INT64_C(662688000),    /* 1991 */
+     APR_INT64_C(694224000),    /* 1992 */
+     APR_INT64_C(725846400),    /* 1993 */
+     APR_INT64_C(757382400),    /* 1994 */
+     APR_INT64_C(788918400),    /* 1995 */
+     APR_INT64_C(820454400),    /* 1996 */
+     APR_INT64_C(852076800),    /* 1997 */
+     APR_INT64_C(883612800),    /* 1998 */
+     APR_INT64_C(915148800),    /* 1999 */
+     APR_INT64_C(946684800),    /* 2000 */
+     APR_INT64_C(978307200),    /* 2001 */
+    APR_INT64_C(1009843200),    /* 2002 */
+    APR_INT64_C(1041379200),    /* 2003 */
+    APR_INT64_C(1072915200),    /* 2004 */
+    APR_INT64_C(1104537600),    /* 2005 */
+    APR_INT64_C(1136073600),    /* 2006 */
+    APR_INT64_C(1167609600),    /* 2007 */
+    APR_INT64_C(1199145600),    /* 2008 */
+    APR_INT64_C(1230768000),    /* 2009 */
+    APR_INT64_C(1262304000),    /* 2010 */
+    APR_INT64_C(1293840000),    /* 2011 */
+    APR_INT64_C(1325376000),    /* 2012 */
+    APR_INT64_C(1356998400),    /* 2013 */
+    APR_INT64_C(1388534400),    /* 2014 */
+    APR_INT64_C(1420070400),    /* 2015 */
+    APR_INT64_C(1451606400),    /* 2016 */
+    APR_INT64_C(1483228800),    /* 2017 */
+    APR_INT64_C(1514764800),    /* 2018 */
+    APR_INT64_C(1546300800),    /* 2019 */
+    APR_INT64_C(1577836800),    /* 2020 */
+    APR_INT64_C(1609459200),    /* 2021 */
+    APR_INT64_C(1640995200),    /* 2022 */
+    APR_INT64_C(1672531200),    /* 2023 */
+    APR_INT64_C(1704067200),    /* 2024 */
+    APR_INT64_C(1735689600),    /* 2025 */
+    APR_INT64_C(1767225600),    /* 2026 */
+    APR_INT64_C(1798761600),    /* 2027 */
+    APR_INT64_C(1830297600),    /* 2028 */
+    APR_INT64_C(1861920000),    /* 2029 */
+    APR_INT64_C(1893456000),    /* 2030 */
+    APR_INT64_C(1924992000),    /* 2031 */
+    APR_INT64_C(1956528000),    /* 2032 */
+    APR_INT64_C(1988150400),    /* 2033 */
+    APR_INT64_C(2019686400),    /* 2034 */
+    APR_INT64_C(2051222400),    /* 2035 */
+    APR_INT64_C(2082758400),    /* 2036 */
+    APR_INT64_C(2114380800),    /* 2037 */
+    APR_INT64_C(2145916800)     /* 2038 */
+};
+
+const char month_snames[12][4] = {
+    "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"
+};
+
+/* XXX: non-portable */
+static void gm_timestr_822(char *ts, apr_time_t sec)
+{
+    static const char *const days[7]=
+        {"Sun","Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
+    struct tm *tms;
+    time_t ls = (time_t)sec;
+
+    tms = gmtime(&ls);
+
+    sprintf(ts, "%s, %.2d %s %d %.2d:%.2d:%.2d GMT", days[tms->tm_wday],
+            tms->tm_mday, month_snames[tms->tm_mon], tms->tm_year + 1900,
+            tms->tm_hour, tms->tm_min, tms->tm_sec);
+}
+
+/* Linear congruential generator */
+static apr_uint32_t lgc(apr_uint32_t a)
+{
+    apr_uint64_t z = a;
+    z *= 279470273;
+    z %= APR_UINT64_C(4294967291);
+    return (apr_uint32_t)z;
+}
+
+static void test_date_parse_http(abts_case *tc, void *data)
+{
+    int year, i;
+    apr_time_t guess;
+    apr_time_t offset = 0;
+    apr_time_t secstodate, newsecs;
+    char datestr[50];
+
+    for (year = 1970; year < 2038; ++year) {
+        secstodate = year2secs[year - 1970] + offset;
+        gm_timestr_822(datestr, secstodate);
+        secstodate *= APR_USEC_PER_SEC;
+        newsecs = apr_date_parse_http(datestr);
+        ABTS_TRUE(tc, secstodate == newsecs);
+    }
+
+#if APR_HAS_RANDOM
+    apr_generate_random_bytes((unsigned char *)&guess, sizeof(guess));
+#else
+    guess = apr_time_now() % APR_TIME_C(4294967291);
+#endif
+
+    for (i = 0; i < 10000; ++i) {
+        guess = (time_t)lgc((apr_uint32_t)guess);
+        if (guess < 0)
+            guess *= -1;
+        secstodate = guess + offset;
+        gm_timestr_822(datestr, secstodate);
+        secstodate *= APR_USEC_PER_SEC;
+        newsecs = apr_date_parse_http(datestr);
+        ABTS_TRUE(tc, secstodate == newsecs);
+    }
+}
+
+static void test_date_rfc(abts_case *tc, void *data)
+{
+    apr_time_t date;
+    int i = 0;
+
+    while (tests[i].input) {
+        char str_date[APR_RFC822_DATE_LEN] = { 0 };
+
+        date = apr_date_parse_rfc(tests[i].input);
+
+        apr_rfc822_date(str_date, date);
+
+        ABTS_STR_EQUAL(tc, str_date, tests[i].output);
+
+        i++;
+    }
+}
+
+abts_suite *testdate(abts_suite *suite)
+{
+    suite = ADD_SUITE(suite);
+
+    abts_run_test(suite, test_date_parse_http, NULL);
+    abts_run_test(suite, test_date_rfc, NULL);
+
+    return suite;
+}
diff --git a/test/testdbd.c b/test/testdbd.c
new file mode 100644
index 0000000..fd9a787
--- /dev/null
+++ b/test/testdbd.c
@@ -0,0 +1,233 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "testutil.h"
+#include "apr.h"
+#include "apu.h"
+#include "apr_pools.h"
+#include "apr_dbd.h"
+#include "apr_strings.h"
+
+static void test_dbd_init(abts_case *tc, void *data)
+{
+    apr_pool_t *pool = p;
+    apr_status_t rv;
+
+    rv = apr_dbd_init(pool);
+    ABTS_ASSERT(tc, "failed to init apr_dbd", rv == APR_SUCCESS);
+}
+
+#if APU_HAVE_SQLITE2 || APU_HAVE_SQLITE3
+static void test_statement(abts_case *tc, apr_dbd_t* handle, 
+                           const apr_dbd_driver_t* driver, const char* sql)
+{
+    int nrows;
+    apr_status_t rv;
+
+    rv = apr_dbd_query(driver, handle, &nrows, sql);
+
+    ABTS_ASSERT(tc, sql, rv == APR_SUCCESS);
+}
+
+static void create_table(abts_case *tc, apr_dbd_t* handle, 
+                         const apr_dbd_driver_t* driver)
+{
+    const char *sql = "CREATE TABLE apr_dbd_test ("
+                             "col1 varchar(40) not null,"
+                             "col2 varchar(40),"
+                             "col3 integer)";
+
+    test_statement(tc, handle, driver, sql);
+}
+
+static void drop_table(abts_case *tc, apr_dbd_t* handle, 
+                       const apr_dbd_driver_t* driver)
+{
+    const char *sql = "DROP TABLE apr_dbd_test";
+    test_statement(tc, handle, driver, sql);
+}
+
+static void delete_rows(abts_case *tc, apr_dbd_t* handle, 
+                        const apr_dbd_driver_t* driver)
+{
+    const char *sql = "DELETE FROM apr_dbd_test";
+    test_statement(tc, handle, driver, sql);
+}
+
+
+static void insert_data(abts_case *tc, apr_dbd_t* handle, 
+                        const apr_dbd_driver_t* driver, int count)
+{
+    apr_pool_t* pool = p;
+    const char* sql = "INSERT INTO apr_dbd_test VALUES('%d', '%d', %d)";
+    char* sqf = NULL;
+    int i;
+    int nrows;
+    apr_status_t rv;
+
+    for (i=0; i<count; i++) {
+        sqf = apr_psprintf(pool, sql, i, i, i);
+        rv = apr_dbd_query(driver, handle, &nrows, sqf);
+        ABTS_ASSERT(tc, sqf, rv == APR_SUCCESS);
+        ABTS_ASSERT(tc, sqf, 1 == nrows);
+    }
+}
+
+static void select_rows(abts_case *tc, apr_dbd_t* handle, 
+                        const apr_dbd_driver_t* driver, int count)
+{
+    apr_status_t rv;
+    apr_pool_t* pool = p;
+    apr_pool_t* tpool;
+    const char* sql = "SELECT * FROM apr_dbd_test ORDER BY col1";
+    apr_dbd_results_t *res = NULL;
+    apr_dbd_row_t *row = NULL;
+    int i;
+
+    rv = apr_dbd_select(driver, pool, handle, &res, sql, 0);
+    ABTS_ASSERT(tc, sql, rv == APR_SUCCESS);
+    ABTS_PTR_NOTNULL(tc, res);
+
+    apr_pool_create(&tpool, pool);
+    i = count;
+    while (i > 0) {
+        row = NULL;
+        rv = apr_dbd_get_row(driver, pool, res, &row, -1);
+        ABTS_ASSERT(tc, sql, rv == APR_SUCCESS);
+        ABTS_PTR_NOTNULL(tc, row);
+        apr_pool_clear(tpool);
+        i--;
+    }
+    ABTS_ASSERT(tc, "Missing Rows!", i == 0);
+
+    res = NULL;
+    i = count;
+
+    rv = apr_dbd_select(driver, pool, handle, &res, sql, 1);
+    ABTS_ASSERT(tc, sql, rv == APR_SUCCESS);
+    ABTS_PTR_NOTNULL(tc, res);
+
+    rv = apr_dbd_num_tuples(driver, res);
+    ABTS_ASSERT(tc, "invalid row count", rv == count);
+
+    while (i > 0) {
+        row = NULL;
+        rv = apr_dbd_get_row(driver, pool, res, &row, i);
+        ABTS_ASSERT(tc, sql, rv == APR_SUCCESS);
+        ABTS_PTR_NOTNULL(tc, row);
+        apr_pool_clear(tpool);
+        i--;
+    }
+    ABTS_ASSERT(tc, "Missing Rows!", i == 0);
+    rv = apr_dbd_get_row(driver, pool, res, &row, count+100);
+    ABTS_ASSERT(tc, "If we overseek, get_row should return -1", rv == -1);
+}
+
+static void test_escape(abts_case *tc, apr_dbd_t *handle,
+                        const apr_dbd_driver_t *driver)
+{
+  const char *escaped = apr_dbd_escape(driver, p, "foo'bar", handle);
+
+  ABTS_STR_EQUAL(tc, "foo''bar", escaped);
+}
+
+static void test_dbd_generic(abts_case *tc, apr_dbd_t* handle, 
+                             const apr_dbd_driver_t* driver)
+{
+    void* native;
+    apr_pool_t *pool = p;
+    apr_status_t rv;
+
+    native = apr_dbd_native_handle(driver, handle);
+    ABTS_PTR_NOTNULL(tc, native);
+
+    rv = apr_dbd_check_conn(driver, pool, handle);
+
+    create_table(tc, handle, driver);
+    select_rows(tc, handle, driver, 0);
+    insert_data(tc, handle, driver, 5);
+    select_rows(tc, handle, driver, 5);
+    delete_rows(tc, handle, driver);
+    select_rows(tc, handle, driver, 0);
+    drop_table(tc, handle, driver);
+
+    test_escape(tc, handle, driver);
+
+    rv = apr_dbd_close(driver, handle);
+    ABTS_ASSERT(tc, "failed to close database", rv == APR_SUCCESS);
+}
+#endif
+
+#if APU_HAVE_SQLITE2
+static void test_dbd_sqlite2(abts_case *tc, void *data)
+{
+    apr_pool_t *pool = p;
+    apr_status_t rv;
+    const apr_dbd_driver_t* driver = NULL;
+    apr_dbd_t* handle = NULL;
+
+    rv = apr_dbd_get_driver(pool, "sqlite2", &driver);
+    ABTS_ASSERT(tc, "failed to fetch driver", rv == APR_SUCCESS);
+    ABTS_PTR_NOTNULL(tc, driver);
+
+    ABTS_STR_EQUAL(tc, apr_dbd_name(driver), "sqlite2");
+
+    rv = apr_dbd_open(driver, pool, "data/sqlite2.db:600", &handle);
+    ABTS_ASSERT(tc, "failed to open database", rv == APR_SUCCESS);
+    ABTS_PTR_NOTNULL(tc, handle);
+
+    test_dbd_generic(tc, handle, driver);
+}
+#endif
+
+#if APU_HAVE_SQLITE3
+static void test_dbd_sqlite3(abts_case *tc, void *data)
+{
+    apr_pool_t *pool = p;
+    apr_status_t rv;
+    const apr_dbd_driver_t* driver = NULL;
+    apr_dbd_t* handle = NULL;
+
+    rv = apr_dbd_get_driver(pool, "sqlite3", &driver);
+    ABTS_ASSERT(tc, "failed to fetch driver", rv == APR_SUCCESS);
+    ABTS_PTR_NOTNULL(tc, driver);
+
+    ABTS_STR_EQUAL(tc, apr_dbd_name(driver), "sqlite3");
+
+    rv = apr_dbd_open(driver, pool, "data/sqlite3.db", &handle);
+    ABTS_ASSERT(tc, "failed to open database", rv == APR_SUCCESS);
+    ABTS_PTR_NOTNULL(tc, handle);
+
+    test_dbd_generic(tc, handle, driver);
+}
+#endif
+
+abts_suite *testdbd(abts_suite *suite)
+{
+    suite = ADD_SUITE(suite);
+
+
+    abts_run_test(suite, test_dbd_init, NULL);
+
+#if APU_HAVE_SQLITE2
+    abts_run_test(suite, test_dbd_sqlite2, NULL);
+#endif
+
+#if APU_HAVE_SQLITE3
+    abts_run_test(suite, test_dbd_sqlite3, NULL);
+#endif
+    return suite;
+}
diff --git a/test/testdbm.c b/test/testdbm.c
new file mode 100644
index 0000000..fc64c5d
--- /dev/null
+++ b/test/testdbm.c
@@ -0,0 +1,221 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr.h"
+#include "apr_general.h"
+#include "apr_pools.h"
+#include "apr_errno.h"
+#include "apr_dbm.h"
+#include "apr_uuid.h"
+#include "apr_strings.h"
+#include "abts.h"
+#include "testutil.h"
+
+#define NUM_TABLE_ROWS  1024
+
+typedef struct {
+    apr_datum_t key;
+    apr_datum_t val;
+    int deleted;
+    int visited;
+} dbm_table_t;
+
+static dbm_table_t *generate_table(void)
+{
+    unsigned int i;
+    apr_uuid_t uuid;
+    dbm_table_t *table = apr_pcalloc(p, sizeof(*table) * NUM_TABLE_ROWS);
+
+    for (i = 0; i < NUM_TABLE_ROWS/2; i++) {
+        apr_uuid_get(&uuid);
+        table[i].key.dptr = apr_pmemdup(p, uuid.data, sizeof(uuid.data));
+        table[i].key.dsize = sizeof(uuid.data);
+        table[i].val.dptr = apr_palloc(p, APR_UUID_FORMATTED_LENGTH);
+        table[i].val.dsize = APR_UUID_FORMATTED_LENGTH;
+        apr_uuid_format(table[i].val.dptr, &uuid);
+    }
+
+    for (; i < NUM_TABLE_ROWS; i++) {
+        apr_uuid_get(&uuid);
+        table[i].val.dptr = apr_pmemdup(p, uuid.data, sizeof(uuid.data));
+        table[i].val.dsize = sizeof(uuid.data);
+        table[i].key.dptr = apr_palloc(p, APR_UUID_FORMATTED_LENGTH);
+        table[i].key.dsize = APR_UUID_FORMATTED_LENGTH;
+        apr_uuid_format(table[i].key.dptr, &uuid);
+    }
+
+    return table;
+}
+
+static void test_dbm_store(abts_case *tc, apr_dbm_t *db, dbm_table_t *table)
+{
+    apr_status_t rv;
+    unsigned int i = NUM_TABLE_ROWS - 1;
+
+    for (; i >= NUM_TABLE_ROWS/2; i--) {
+        rv = apr_dbm_store(db, table[i].key, table[i].val);
+        ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+        table[i].deleted = FALSE;
+    }
+
+    for (i = 0; i < NUM_TABLE_ROWS/2; i++) {
+        rv = apr_dbm_store(db, table[i].key, table[i].val);
+        ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+        table[i].deleted = FALSE;
+    }
+}
+
+static void test_dbm_fetch(abts_case *tc, apr_dbm_t *db, dbm_table_t *table)
+{
+    apr_status_t rv;
+    unsigned int i;
+    apr_datum_t val;
+
+    for (i = 0; i < NUM_TABLE_ROWS; i++) {
+        memset(&val, 0, sizeof(val));
+        rv = apr_dbm_fetch(db, table[i].key, &val);
+        if (!table[i].deleted) {
+            ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+            ABTS_INT_EQUAL(tc, (int)table[i].val.dsize, (int)val.dsize);
+            ABTS_INT_EQUAL(tc, 0, memcmp(table[i].val.dptr, val.dptr, val.dsize));
+            apr_dbm_freedatum(db, val);
+        } else {
+            ABTS_INT_EQUAL(tc, 0, (int)val.dsize);
+        }
+    }
+}
+
+static void test_dbm_delete(abts_case *tc, apr_dbm_t *db, dbm_table_t *table)
+{
+    apr_status_t rv;
+    unsigned int i;
+
+    for (i = 0; i < NUM_TABLE_ROWS; i++) {
+        /* XXX: random */
+        if (i & 1)
+            continue;
+        rv = apr_dbm_delete(db, table[i].key);
+        ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+        table[i].deleted = TRUE;
+    }
+}
+
+static void test_dbm_exists(abts_case *tc, apr_dbm_t *db, dbm_table_t *table)
+{
+    unsigned int i;
+    int cond;
+
+    for (i = 0; i < NUM_TABLE_ROWS; i++) {
+        cond = apr_dbm_exists(db, table[i].key);
+        if (table[i].deleted) {
+            ABTS_TRUE(tc, cond == 0);
+        } else {
+            ABTS_TRUE(tc, cond != 0);
+        }
+    }
+}
+
+static void test_dbm_traversal(abts_case *tc, apr_dbm_t *db, dbm_table_t *table)
+{
+    apr_status_t rv;
+    unsigned int i;
+    apr_datum_t key;
+
+    rv = apr_dbm_firstkey(db, &key);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    do {
+        if (key.dptr == NULL || key.dsize == 0)
+            break;
+
+        for (i = 0; i < NUM_TABLE_ROWS; i++) {
+            if (table[i].key.dsize != key.dsize)
+                continue;
+            if (memcmp(table[i].key.dptr, key.dptr, key.dsize))
+                continue;
+            ABTS_INT_EQUAL(tc, table[i].deleted, 0);
+            ABTS_INT_EQUAL(tc, table[i].visited, 0);
+            table[i].visited++;
+        }
+
+        rv = apr_dbm_nextkey(db, &key);
+        ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+    } while (1);
+
+    for (i = 0; i < NUM_TABLE_ROWS; i++) {
+        if (table[i].deleted)
+            continue;
+        ABTS_INT_EQUAL(tc, table[i].visited, 1);
+        table[i].visited = 0;
+    }
+}
+
+static void test_dbm(abts_case *tc, void *data)
+{
+    apr_dbm_t *db;
+    apr_status_t rv;
+    dbm_table_t *table;
+    const char *type = data;
+    const char *file = apr_pstrcat(p, "data/test-", type, NULL);
+
+    rv = apr_dbm_open_ex(&db, type, file, APR_DBM_RWCREATE, APR_OS_DEFAULT, p);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    if (rv != APR_SUCCESS)
+        return;
+
+    table = generate_table();
+
+    test_dbm_store(tc, db, table);
+    test_dbm_fetch(tc, db, table);
+    test_dbm_delete(tc, db, table);
+    test_dbm_exists(tc, db, table);
+    test_dbm_traversal(tc, db, table);
+
+    apr_dbm_close(db);
+
+    rv = apr_dbm_open_ex(&db, type, file, APR_DBM_READONLY, APR_OS_DEFAULT, p);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    if (rv != APR_SUCCESS)
+        return;
+
+    test_dbm_exists(tc, db, table);
+    test_dbm_traversal(tc, db, table);
+    test_dbm_fetch(tc, db, table);
+
+    apr_dbm_close(db);
+}
+
+abts_suite *testdbm(abts_suite *suite)
+{
+    suite = ADD_SUITE(suite);
+
+#if APU_HAVE_GDBM
+    abts_run_test(suite, test_dbm, "gdbm");
+#endif
+#if APU_HAVE_NDBM
+    abts_run_test(suite, test_dbm, "ndbm");
+#endif
+#if APU_HAVE_SDBM
+    abts_run_test(suite, test_dbm, "sdbm");
+#endif
+#if APU_HAVE_DB
+    abts_run_test(suite, test_dbm, "db");
+#endif
+
+    return suite;
+}
diff --git a/test/testldap.c b/test/testldap.c
new file mode 100644
index 0000000..7595a55
--- /dev/null
+++ b/test/testldap.c
@@ -0,0 +1,250 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+ /* Setup:
+  *  - Create or edit the file data/host.data and add an
+  *     ldap server DN.  Multiple DNs may be listed on
+  *     a single line.
+  *  - Copy the server certificates to the data/ directory.
+  *     All DER type certificates must have the .der extention.
+  *     All BASE64 or PEM certificates must have the .b64
+  *     extension.  All certificate files copied to the /data
+  *     directory will be added to the ldap certificate store.
+  */
+   
+ /* This test covers the following three types of connections:
+  *  - Unsecure ldap://
+  *  - Secure ldaps://
+  *  - Secure ldap://+Start_TLS
+  *
+  *  - (TBD) Mutual authentication 
+  *
+  * There are other variations that should be tested:
+  *  - All of the above with multiple redundant LDAP servers
+  *     This can be done by listing more than one server DN
+  *      in the host.data file.  The DNs should all be listed
+  *      on one line separated by a space.
+  *  - All of the above with multiple certificates
+  *     If more than one certificate is found in the data/
+  *      directory, each certificate found will be added
+  *      to the certificate store.
+  *  - All of the above on alternate ports
+  *     An alternate port can be specified as part of the
+  *      host in the host.data file.  The ":port" should 
+  *      follow each DN listed.  Default is 389 and 636.
+  *  - Secure connections with mutual authentication
+  */
+
+#include "testutil.h"
+
+#include "apr.h"
+#include "apr_general.h"
+#include "apr_ldap.h"
+#include "apr_file_io.h"
+#include "apr_file_info.h"
+#include "apr_strings.h"
+#if APR_HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#define APR_WANT_STDIO
+#define APR_WANT_STRFUNC
+#include "apr_want.h"
+
+#define DIRNAME "data"
+#define FILENAME DIRNAME "/host.data"
+#define CERTFILEDER DIRNAME "/*.der"
+#define CERTFILEB64 DIRNAME "/*.b64"
+
+#if APR_HAS_LDAP
+
+static char ldap_host[256];
+
+static int get_ldap_host(void)
+{
+    apr_status_t rv;
+    apr_file_t *thefile = NULL;
+    char *ptr;
+
+    ldap_host[0] = '\0';
+    rv = apr_file_open(&thefile, FILENAME, 
+                       APR_READ, 
+                       APR_UREAD | APR_UWRITE | APR_GREAD, p);
+    if (rv != APR_SUCCESS) {
+        return 0;
+    }
+
+    rv = apr_file_gets(ldap_host, sizeof(ldap_host), thefile);
+    if (rv != APR_SUCCESS) {
+        return 0;
+    }
+
+    ptr = strstr (ldap_host, "\r\n");
+    if (ptr) {
+        *ptr = '\0';
+    }
+    apr_file_close(thefile);
+
+    return 1;
+
+}
+
+static int add_ldap_certs(abts_case *tc)
+{
+    apr_status_t status;
+    apr_dir_t *thedir;
+    apr_finfo_t dirent;
+    apr_ldap_err_t *result = NULL;
+
+    if ((status = apr_dir_open(&thedir, DIRNAME, p)) == APR_SUCCESS) {
+        apr_ldap_opt_tls_cert_t *cert = (apr_ldap_opt_tls_cert_t *)apr_pcalloc(p, sizeof(apr_ldap_opt_tls_cert_t));
+
+        do {
+            status = apr_dir_read(&dirent, APR_FINFO_MIN | APR_FINFO_NAME, thedir);
+            if (APR_STATUS_IS_INCOMPLETE(status)) {
+                continue; /* ignore un-stat()able files */
+            }
+            else if (status != APR_SUCCESS) {
+                break;
+            }
+
+            if (strstr(dirent.name, ".der")) {
+                cert->type = APR_LDAP_CA_TYPE_DER;
+                cert->path = apr_pstrcat (p, DIRNAME, "/", dirent.name, NULL);
+                apr_ldap_set_option(p, NULL, APR_LDAP_OPT_TLS_CERT, (void *)cert, &result);
+                ABTS_TRUE(tc, result->rc == LDAP_SUCCESS);
+            }
+            if (strstr(dirent.name, ".b64")) {
+                cert->type = APR_LDAP_CA_TYPE_BASE64;
+                cert->path = apr_pstrcat (p, DIRNAME, "/", dirent.name, NULL);
+                apr_ldap_set_option(p, NULL, APR_LDAP_OPT_TLS_CERT, (void *)cert, &result);
+                ABTS_TRUE(tc, result->rc == LDAP_SUCCESS);
+            }
+
+        } while (1);
+
+        apr_dir_close(thedir);
+    }
+    return 0;
+}
+
+static void test_ldap_connection(abts_case *tc, LDAP *ldap)
+{
+    int version  = LDAP_VERSION3;
+    int failures, result;
+    
+    /* always default to LDAP V3 */
+    ldap_set_option(ldap, LDAP_OPT_PROTOCOL_VERSION, &version);
+
+    for (failures=0; failures<10; failures++)
+    {
+        result = ldap_simple_bind_s(ldap,
+                                    (char *)NULL,
+                                    (char *)NULL);
+        if (LDAP_SERVER_DOWN != result)
+            break;
+    }
+
+    ABTS_TRUE(tc, result == LDAP_SUCCESS);
+    if (result != LDAP_SUCCESS) {
+        abts_log_message("%s\n", ldap_err2string(result));
+    }
+
+    ldap_unbind_s(ldap);
+
+    return;
+}
+
+static void test_ldap(abts_case *tc, void *data)
+{
+    apr_pool_t *pool = p;
+    LDAP *ldap;
+    apr_ldap_err_t *result = NULL;
+
+
+    ABTS_ASSERT(tc, "failed to get host", ldap_host[0] != '\0');
+    
+    apr_ldap_init(pool, &ldap,
+                  ldap_host, LDAP_PORT,
+                  APR_LDAP_NONE, &(result));
+
+    ABTS_TRUE(tc, ldap != NULL);
+    ABTS_PTR_NOTNULL(tc, result);
+
+    if (result->rc == LDAP_SUCCESS) {
+        test_ldap_connection(tc, ldap);
+    }
+}
+
+static void test_ldaps(abts_case *tc, void *data)
+{
+    apr_pool_t *pool = p;
+    LDAP *ldap;
+    apr_ldap_err_t *result = NULL;
+
+    apr_ldap_init(pool, &ldap,
+                  ldap_host, LDAPS_PORT,
+                  APR_LDAP_SSL, &(result));
+
+    ABTS_TRUE(tc, ldap != NULL);
+    ABTS_PTR_NOTNULL(tc, result);
+
+    if (result->rc == LDAP_SUCCESS) {
+        add_ldap_certs(tc);
+
+        test_ldap_connection(tc, ldap);
+    }
+}
+
+static void test_ldap_tls(abts_case *tc, void *data)
+{
+    apr_pool_t *pool = p;
+    LDAP *ldap;
+    apr_ldap_err_t *result = NULL;
+
+    apr_ldap_init(pool, &ldap,
+                  ldap_host, LDAP_PORT,
+                  APR_LDAP_STARTTLS, &(result));
+
+    ABTS_TRUE(tc, ldap != NULL);
+    ABTS_PTR_NOTNULL(tc, result);
+
+    if (result->rc == LDAP_SUCCESS) {
+        add_ldap_certs(tc);
+
+        test_ldap_connection(tc, ldap);
+    }
+}
+
+#endif /* APR_HAS_LDAP */
+
+abts_suite *testldap(abts_suite *suite)
+{
+#if APR_HAS_LDAP
+    apr_ldap_err_t *result = NULL;
+    suite = ADD_SUITE(suite);
+
+    apr_ldap_ssl_init(p, NULL, 0, &result);
+
+    if (get_ldap_host()) {
+        abts_run_test(suite, test_ldap, NULL);
+        abts_run_test(suite, test_ldaps, NULL);
+        abts_run_test(suite, test_ldap_tls, NULL);
+    }
+#endif /* APR_HAS_LDAP */
+
+    return suite;
+}
+
diff --git a/test/testmd4.c b/test/testmd4.c
new file mode 100644
index 0000000..345650e
--- /dev/null
+++ b/test/testmd4.c
@@ -0,0 +1,119 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/* This is derived from material copyright RSA Data Security, Inc.
+ * Their notice is reproduced below in its entirety.
+ *
+ * Copyright (C) 1990-2, RSA Data Security, Inc. Created 1990. All
+ * rights reserved.
+ *
+ * RSA Data Security, Inc. makes no representations concerning either
+ * the merchantability of this software or the suitability of this
+ * software for any particular purpose. It is provided "as is"
+ * without express or implied warranty of any kind.
+ *
+ * These notices must be retained in any copies of any part of this
+ * documentation and/or software.
+ */
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "apr_errno.h"
+#include "apr_md4.h"
+#include "apr_file_io.h"
+
+#include "abts.h"
+#include "testutil.h"
+
+static struct {
+        const char *string;
+        const char *md4sum;
+} md4sums[] = 
+{
+/* 
+* Taken from the old md4 test suite.
+* MD4 ("") = 31d6cfe0d16ae931b73c59d7e0c089c0
+* MD4 ("a") = bde52cb31de33e46245e05fbdbd6fb24
+* MD4 ("abc") = a448017aaf21d8525fc10ae87aa6729d
+* MD4 ("message digest") = d9130a8164549fe818874806e1c7014b
+* MD4 ("abcdefghijklmnopqrstuvwxyz") = d79e1c308aa5bbcdeea8ed63df412da9
+* MD4 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")
+* MD4 ("12345678901234567890123456789012345678901234567890123456789012345678901234567890") = e33b4ddc9c38f2199c3e7b164fcc0536
+* 
+*/
+        {"", 
+         "\x31\xd6\xcf\xe0\xd1\x6a\xe9\x31\xb7\x3c\x59\xd7\xe0\xc0\x89\xc0"},
+        {"a", 
+         "\xbd\xe5\x2c\xb3\x1d\xe3\x3e\x46\x24\x5e\x05\xfb\xdb\xd6\xfb\x24"},
+        {"abc", 
+         "\xa4\x48\x01\x7a\xaf\x21\xd8\x52\x5f\xc1\x0a\xe8\x7a\xa6\x72\x9d"},
+        {"message digest", 
+         "\xd9\x13\x0a\x81\x64\x54\x9f\xe8\x18\x87\x48\x06\xe1\xc7\x01\x4b"},
+        {"abcdefghijklmnopqrstuvwxyz", 
+         "\xd7\x9e\x1c\x30\x8a\xa5\xbb\xcd\xee\xa8\xed\x63\xdf\x41\x2d\xa9"},
+        {"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", 
+         "\x04\x3f\x85\x82\xf2\x41\xdb\x35\x1c\xe6\x27\xe1\x53\xe7\xf0\xe4"},
+        {"12345678901234567890123456789012345678901234567890123456789012345678901234567890", 
+         "\xe3\x3b\x4d\xdc\x9c\x38\xf2\x19\x9c\x3e\x7b\x16\x4f\xcc\x05\x36"}
+};
+
+static int num_sums = sizeof(md4sums) / sizeof(md4sums[0]); 
+static int count;
+
+#if 0
+static int MDStringComp(const void *string, const void *sum)
+{
+        apr_md4_ctx_t context;
+        unsigned char digest[APR_MD4_DIGESTSIZE];
+        unsigned int len = strlen(string);
+
+        apr_md4_init(&context);
+        apr_md4_update(&context, (unsigned char *)string, len);
+        apr_md4_final(digest, &context);
+        return (memcmp(digest, sum, APR_MD4_DIGESTSIZE));
+
+}
+#endif
+
+static void test_md4sum(abts_case *tc, void *data)
+{
+        apr_md4_ctx_t context;
+        unsigned char digest[APR_MD4_DIGESTSIZE];
+        const void *string = md4sums[count].string;
+        const void *sum = md4sums[count].md4sum;
+        apr_size_t len = strlen(string);
+
+        ABTS_ASSERT(tc, "apr_md4_init", (apr_md4_init(&context) == 0));
+        ABTS_ASSERT(tc, "apr_md4_update", 
+                    (apr_md4_update(&context, 
+                                    (unsigned char *)string, len) == 0));
+        
+        ABTS_ASSERT(tc, "apr_md4_final", (apr_md4_final(digest, &context) ==0));
+        ABTS_ASSERT(tc, "check for correct md4 digest", 
+                    (memcmp(digest, sum, APR_MD4_DIGESTSIZE) == 0));
+}
+
+abts_suite *testmd4(abts_suite *suite)
+{
+        suite = ADD_SUITE(suite);
+
+        for (count=0; count < num_sums; count++) {
+            abts_run_test(suite, test_md4sum, NULL);
+        }
+
+        return suite;
+}
diff --git a/test/testmd5.c b/test/testmd5.c
new file mode 100644
index 0000000..5f8241a
--- /dev/null
+++ b/test/testmd5.c
@@ -0,0 +1,78 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "apr_md5.h"
+#include "apr_xlate.h"
+#include "apr_general.h"
+
+#include "abts.h"
+#include "testutil.h"
+
+static struct {
+    const char *string;
+    const char *digest;
+} md5sums[] = 
+{
+    {"Jeff was here!",
+     "\xa5\x25\x8a\x89\x11\xb2\x9d\x1f\x81\x75\x96\x3b\x60\x94\x49\xc0"},
+    {"01234567890aBcDeFASDFGHJKLPOIUYTR"
+     "POIUYTREWQZXCVBN  LLLLLLLLLLLLLLL",
+     "\xd4\x1a\x06\x2c\xc5\xfd\x6f\x24\x67\x68\x56\x7c\x40\x8a\xd5\x69"},
+    {"111111118888888888888888*******%%%%%%%%%%#####"
+     "142134u8097289720432098409289nkjlfkjlmn,m..   ",
+     "\xb6\xea\x5b\xe8\xca\x45\x8a\x33\xf0\xf1\x84\x6f\xf9\x65\xa8\xe1"},
+    {"01234567890aBcDeFASDFGHJKLPOIUYTR"
+     "POIUYTREWQZXCVBN  LLLLLLLLLLLLLLL"
+     "01234567890aBcDeFASDFGHJKLPOIUYTR"
+     "POIUYTREWQZXCVBN  LLLLLLLLLLLLLLL"
+     "1",
+     "\xd1\xa1\xc0\x97\x8a\x60\xbb\xfb\x2a\x25\x46\x9d\xa5\xae\xd0\xb0"}
+};
+
+static int num_sums = sizeof(md5sums) / sizeof(md5sums[0]);
+static int count;
+
+static void test_md5sum(abts_case *tc, void *data)
+{
+        apr_md5_ctx_t context;
+        unsigned char digest[APR_MD5_DIGESTSIZE];
+        const void *string = md5sums[count].string;
+        const void *sum = md5sums[count].digest;
+        apr_size_t len = strlen(string);
+
+        ABTS_ASSERT(tc, "apr_md5_init", (apr_md5_init(&context) == 0));
+        ABTS_ASSERT(tc, "apr_md5_update", 
+                    (apr_md5_update(&context, string, len) == 0));
+        ABTS_ASSERT(tc, "apr_md5_final", (apr_md5_final(digest, &context)
+                                          == 0));
+        ABTS_ASSERT(tc, "check for correct md5 digest",
+                    (memcmp(digest, sum, APR_MD5_DIGESTSIZE) == 0));
+}
+
+abts_suite *testmd5(abts_suite *suite)
+{
+        suite = ADD_SUITE(suite);
+        
+        for (count=0; count < num_sums; count++) {
+            abts_run_test(suite, test_md5sum, NULL);
+        }
+
+        return suite;
+}
diff --git a/test/testpass.c b/test/testpass.c
new file mode 100644
index 0000000..66ab77d
--- /dev/null
+++ b/test/testpass.c
@@ -0,0 +1,140 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "apr_errno.h"
+#include "apr_strings.h"
+#include "apr_file_io.h"
+#include "apr_thread_proc.h"
+#include "apr_md5.h"
+#include "apr_sha1.h"
+
+#include "abts.h"
+#include "testutil.h"
+
+static struct {
+    const char *password;
+    const char *hash;
+} passwords[] =
+{
+/*
+  passwords and hashes created with Apache's htpasswd utility like this:
+  
+  htpasswd -c -b passwords pass1 pass1
+  htpasswd -b passwords pass2 pass2
+  htpasswd -b passwords pass3 pass3
+  htpasswd -b passwords pass4 pass4
+  htpasswd -b passwords pass5 pass5
+  htpasswd -b passwords pass6 pass6
+  htpasswd -b passwords pass7 pass7
+  htpasswd -b passwords pass8 pass8
+  (insert Perl one-liner to convert to initializer :) )
+ */
+    {"pass1", "1fWDc9QWYCWrQ"},
+    {"pass2", "1fiGx3u7QoXaM"},
+    {"pass3", "1fzijMylTiwCs"},
+    {"pass4", "nHUYc8U2UOP7s"},
+    {"pass5", "nHpETGLGPwAmA"},
+    {"pass6", "nHbsbWmJ3uyhc"},
+    {"pass7", "nHQ3BbF0Y9vpI"},
+    {"pass8", "nHZA1rViSldQk"}
+};
+static int num_passwords = sizeof(passwords) / sizeof(passwords[0]);
+
+static void test_crypt(abts_case *tc, void *data)
+{
+    int i;
+
+    for (i = 0; i < num_passwords; i++) {
+        apr_assert_success(tc, "check for valid password",
+                           apr_password_validate(passwords[i].password,
+                                                 passwords[i].hash));
+    }
+}
+
+#if APR_HAS_THREADS
+
+static void * APR_THREAD_FUNC testing_thread(apr_thread_t *thd,
+                                             void *data)
+{
+    abts_case *tc = data;
+    int i;
+
+    for (i = 0; i < 100; i++) {
+        test_crypt(tc, NULL);
+    }
+
+    return APR_SUCCESS;
+}
+
+/* test for threadsafe crypt() */
+static void test_threadsafe(abts_case *tc, void *data)
+{
+#define NUM_THR 20
+    apr_thread_t *my_threads[NUM_THR];
+    int i;
+    apr_status_t rv;
+    
+    for (i = 0; i < NUM_THR; i++) {
+        apr_assert_success(tc, "create test thread",
+                           apr_thread_create(&my_threads[i], NULL, 
+                                             testing_thread, tc, p));
+    }
+
+    for (i = 0; i < NUM_THR; i++) {
+        apr_thread_join(&rv, my_threads[i]);
+    }
+}
+#endif
+
+static void test_shapass(abts_case *tc, void *data)
+{
+    const char *pass = "hellojed";
+    char hash[100];
+
+    apr_sha1_base64(pass, (int)strlen(pass), hash);
+
+    apr_assert_success(tc, "SHA1 password validated",
+                       apr_password_validate(pass, hash));
+}
+
+static void test_md5pass(abts_case *tc, void *data)
+{
+    const char *pass = "hellojed", *salt = "sardine";
+    char hash[100];
+
+    apr_md5_encode(pass, salt, hash, sizeof hash);
+
+    apr_assert_success(tc, "MD5 password validated",
+                       apr_password_validate(pass, hash));
+}
+
+abts_suite *testpass(abts_suite *suite)
+{
+    suite = ADD_SUITE(suite);
+
+    abts_run_test(suite, test_crypt, NULL);
+#if APR_HAS_THREADS
+    abts_run_test(suite, test_threadsafe, NULL);
+#endif
+    abts_run_test(suite, test_shapass, NULL);
+    abts_run_test(suite, test_md5pass, NULL);
+    
+    return suite;
+}
diff --git a/test/testqueue.c b/test/testqueue.c
new file mode 100644
index 0000000..b442f90
--- /dev/null
+++ b/test/testqueue.c
@@ -0,0 +1,141 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apu.h"
+#include "apr_queue.h"
+#include "apr_thread_proc.h"
+#include "apr_time.h"
+#include "abts.h"
+#include "testutil.h"
+
+#if APR_HAS_THREADS
+
+#define NUMBER_CONSUMERS    3
+#define CONSUMER_ACTIVITY   4
+#define NUMBER_PRODUCERS    4
+#define PRODUCER_ACTIVITY   5
+#define QUEUE_SIZE          100
+
+static apr_queue_t *queue;
+
+static void * APR_THREAD_FUNC consumer(apr_thread_t *thd, void *data)
+{
+    long sleeprate;
+    abts_case *tc = data;
+    apr_status_t rv;
+    void *v;
+
+    sleeprate = 1000000/CONSUMER_ACTIVITY;
+    apr_sleep( (rand() % 4 ) * 1000000 ); /* sleep random seconds */
+
+    while (1)
+    {
+        rv = apr_queue_pop(queue, &v);
+
+        if (rv == APR_EINTR)
+            continue;
+
+        if (rv == APR_EOF)
+            break;
+        
+        ABTS_TRUE(tc, v == NULL);
+        ABTS_TRUE(tc, rv == APR_SUCCESS);
+
+        apr_sleep( sleeprate ); /* sleep this long to acheive our rate */
+    }
+
+    apr_thread_exit(thd, rv);
+
+    /* not reached */
+    return NULL;
+} 
+
+static void * APR_THREAD_FUNC producer(apr_thread_t *thd, void *data)
+{
+    long sleeprate;
+    abts_case *tc = data;
+    apr_status_t rv;
+
+    sleeprate = 1000000/PRODUCER_ACTIVITY;
+    apr_sleep( (rand() % 4 ) * 1000000 ); /* sleep random seconds */
+
+    while (1)        
+    {
+        rv = apr_queue_push(queue, NULL);
+
+        if (rv == APR_EINTR)
+            continue;
+        
+        if (rv == APR_EOF)
+            break;
+
+        ABTS_TRUE(tc, rv == APR_SUCCESS);
+
+        apr_sleep( sleeprate ); /* sleep this long to acheive our rate */
+    }
+
+    apr_thread_exit(thd, rv);
+
+    /* not reached */
+    return NULL;
+} 
+
+static void test_queue_producer_consumer(abts_case *tc, void *data)
+{
+    unsigned int i;
+    apr_status_t rv;
+    apr_thread_t **t;
+
+    /* XXX: non-portable */
+    srand((unsigned int)apr_time_now());
+    
+    rv = apr_queue_create(&queue, QUEUE_SIZE, p);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    t = apr_palloc(p, sizeof(apr_thread_t*) * (NUMBER_CONSUMERS 
+                                             + NUMBER_PRODUCERS));
+    for (i = 0; i < NUMBER_CONSUMERS; ++i) {
+        rv = apr_thread_create(&t[i], NULL, consumer, tc, p);
+        ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+    }
+    for (i = NUMBER_CONSUMERS; i < NUMBER_CONSUMERS + NUMBER_PRODUCERS; ++i) {
+        rv = apr_thread_create(&t[i], NULL, producer, tc, p);
+        ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+    }
+
+    apr_sleep(5000000); /* sleep 5 seconds */
+
+    rv = apr_queue_term(queue);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    for (i = 0; i < NUMBER_CONSUMERS + NUMBER_PRODUCERS; ++i) {
+        apr_thread_join(&rv, t[i]);
+        ABTS_INT_EQUAL(tc, rv, APR_EOF);
+    }
+}
+
+#endif /* APR_HAS_THREADS */
+
+abts_suite *testqueue(abts_suite *suite)
+{
+    suite = ADD_SUITE(suite);
+
+#if APR_HAS_THREADS
+    abts_run_test(suite, test_queue_producer_consumer, NULL);
+#endif /* APR_HAS_THREADS */
+
+    return suite;
+}
diff --git a/test/testreslist.c b/test/testreslist.c
new file mode 100644
index 0000000..a91de15
--- /dev/null
+++ b/test/testreslist.c
@@ -0,0 +1,281 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "apr_general.h"
+#include "apu.h"
+#include "apr_reslist.h"
+#include "apr_thread_proc.h"
+#if APR_HAVE_TIME_H
+#include <time.h>
+#endif /* APR_HAVE_TIME_H */
+
+#include "abts.h"
+#include "testutil.h"
+
+#if APR_HAS_THREADS
+
+#define RESLIST_MIN   3
+#define RESLIST_SMAX 10
+#define RESLIST_HMAX 20
+#define RESLIST_TTL  APR_TIME_C(35000) /* 35 ms */
+#define CONSUMER_THREADS 25
+#define CONSUMER_ITERATIONS 250
+#define CONSTRUCT_SLEEP_TIME  APR_TIME_C(25000) /* 25 ms */
+#define DESTRUCT_SLEEP_TIME   APR_TIME_C(10000) /* 10 ms */
+#define WORK_DELAY_SLEEP_TIME APR_TIME_C(15000) /* 15 ms */
+
+typedef struct {
+    apr_interval_time_t sleep_upon_construct;
+    apr_interval_time_t sleep_upon_destruct;
+    int c_count;
+    int d_count;
+} my_parameters_t;
+
+typedef struct {
+    int id;
+} my_resource_t;
+
+/* Linear congruential generator */
+static apr_uint32_t lgc(apr_uint32_t a)
+{
+    apr_uint64_t z = a;
+    z *= 279470273;
+    z %= APR_UINT64_C(4294967291);
+    return (apr_uint32_t)z;
+}
+
+static apr_status_t my_constructor(void **resource, void *params,
+                                   apr_pool_t *pool)
+{
+    my_resource_t *res;
+    my_parameters_t *my_params = params;
+
+    /* Create some resource */
+    res = apr_palloc(pool, sizeof(*res));
+    res->id = my_params->c_count++;
+
+    /* Sleep for awhile, to simulate construction overhead. */
+    apr_sleep(my_params->sleep_upon_construct);
+
+    /* Set the resource so it can be managed by the reslist */
+    *resource = res;
+    return APR_SUCCESS;
+}
+
+static apr_status_t my_destructor(void *resource, void *params,
+                                  apr_pool_t *pool)
+{
+    my_resource_t *res = resource;
+    my_parameters_t *my_params = params;
+    res->id = my_params->d_count++;
+
+    apr_sleep(my_params->sleep_upon_destruct);
+
+    return APR_SUCCESS;
+}
+
+typedef struct {
+    int tid;
+    abts_case *tc;
+    apr_reslist_t *reslist;
+    apr_interval_time_t work_delay_sleep;
+} my_thread_info_t;
+
+#define PERCENT95th ( ( 2u^30 / 5u ) * 19u )
+
+static void * APR_THREAD_FUNC resource_consuming_thread(apr_thread_t *thd,
+                                                        void *data)
+{
+    int i;
+    apr_uint32_t chance;
+    void *vp;
+    apr_status_t rv;
+    my_resource_t *res;
+    my_thread_info_t *thread_info = data;
+    apr_reslist_t *rl = thread_info->reslist;
+
+#if APR_HAS_RANDOM
+    apr_generate_random_bytes((void*)&chance, sizeof(chance));
+#else
+    chance = (apr_uint32_t)(apr_time_now() % APR_TIME_C(4294967291));
+#endif
+
+    for (i = 0; i < CONSUMER_ITERATIONS; i++) {
+        rv = apr_reslist_acquire(rl, &vp);
+        ABTS_INT_EQUAL(thread_info->tc, rv, APR_SUCCESS);
+        res = vp;
+        apr_sleep(thread_info->work_delay_sleep);
+
+        /* simulate a 5% chance of the resource being bad */
+        chance = lgc(chance);
+        if ( chance < PERCENT95th ) {
+            rv = apr_reslist_release(rl, res);
+            ABTS_INT_EQUAL(thread_info->tc, rv, APR_SUCCESS);
+       } else {
+            rv = apr_reslist_invalidate(rl, res);
+            ABTS_INT_EQUAL(thread_info->tc, rv, APR_SUCCESS);
+       }
+    }
+
+    return APR_SUCCESS;
+}
+
+static void test_timeout(abts_case *tc, apr_reslist_t *rl)
+{
+    apr_status_t rv;
+    my_resource_t *resources[RESLIST_HMAX];
+    my_resource_t *res;
+    void *vp;
+    int i;
+
+    apr_reslist_timeout_set(rl, 1000);
+
+    /* deplete all possible resources from the resource list 
+     * so that the next call will block until timeout is reached 
+     * (since there are no other threads to make a resource 
+     * available)
+     */
+
+    for (i = 0; i < RESLIST_HMAX; i++) {
+        rv = apr_reslist_acquire(rl, (void**)&resources[i]);
+        ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+    }
+
+    /* next call will block until timeout is reached */
+    rv = apr_reslist_acquire(rl, &vp);
+    ABTS_TRUE(tc, APR_STATUS_IS_TIMEUP(rv));
+
+    res = vp;
+
+    /* release the resources; otherwise the destroy operation
+     * will blow
+     */
+    for (i = 0; i < RESLIST_HMAX; i++) {
+        rv = apr_reslist_release(rl, resources[i]);
+        ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+    }
+}
+
+static void test_shrinking(abts_case *tc, apr_reslist_t *rl)
+{
+    apr_status_t rv;
+    my_resource_t *resources[RESLIST_HMAX];
+    my_resource_t *res;
+    void *vp;
+    int i;
+    int sleep_time = RESLIST_TTL / RESLIST_HMAX;
+
+    /* deplete all possible resources from the resource list */
+    for (i = 0; i < RESLIST_HMAX; i++) {
+        rv = apr_reslist_acquire(rl, (void**)&resources[i]);
+        ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+    }
+
+    /* Free all resources above RESLIST_SMAX - 1 */
+    for (i = RESLIST_SMAX - 1; i < RESLIST_HMAX; i++) {
+        rv = apr_reslist_release(rl, resources[i]);
+        ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+    }
+
+    for (i = 0; i < RESLIST_HMAX; i++) {
+        rv = apr_reslist_acquire(rl, &vp);
+        ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+        res = vp;
+        apr_sleep(sleep_time);
+        rv = apr_reslist_release(rl, res);
+        ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+    }
+    apr_sleep(sleep_time);
+
+    /*
+     * Now free the remaining elements. This should trigger the shrinking of
+     * the list
+     */
+    for (i = 0; i < RESLIST_SMAX - 1; i++) {
+        rv = apr_reslist_release(rl, resources[i]);
+        ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+    }
+}
+
+static void test_reslist(abts_case *tc, void *data)
+{
+    int i;
+    apr_pool_t *p;
+    apr_status_t rv;
+    apr_reslist_t *rl;
+    my_parameters_t *params;
+    apr_thread_t *my_threads[CONSUMER_THREADS];
+    my_thread_info_t my_thread_info[CONSUMER_THREADS];
+
+    rv = apr_pool_create(&p, NULL);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    /* Create some parameters that will be passed into each
+     * constructor and destructor call. */
+    params = apr_pcalloc(p, sizeof(*params));
+    params->sleep_upon_construct = CONSTRUCT_SLEEP_TIME;
+    params->sleep_upon_destruct = DESTRUCT_SLEEP_TIME;
+
+    /* We're going to want 10 blocks of data from our target rmm. */
+    rv = apr_reslist_create(&rl, RESLIST_MIN, RESLIST_SMAX, RESLIST_HMAX,
+                            RESLIST_TTL, my_constructor, my_destructor,
+                            params, p);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    for (i = 0; i < CONSUMER_THREADS; i++) {
+        putchar('.');
+        my_thread_info[i].tid = i;
+        my_thread_info[i].tc = tc;
+        my_thread_info[i].reslist = rl;
+        my_thread_info[i].work_delay_sleep = WORK_DELAY_SLEEP_TIME;
+        rv = apr_thread_create(&my_threads[i], NULL,
+                               resource_consuming_thread, &my_thread_info[i],
+                               p);
+        ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+    }
+
+    for (i = 0; i < CONSUMER_THREADS; i++) {
+        apr_status_t thread_rv;
+        apr_thread_join(&thread_rv, my_threads[i]);
+        ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+    }
+
+    test_timeout(tc, rl);
+
+    test_shrinking(tc, rl);
+    ABTS_INT_EQUAL(tc, RESLIST_SMAX, params->c_count - params->d_count);
+
+    rv = apr_reslist_destroy(rl);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    apr_pool_destroy(p);
+}
+
+
+#endif /* APR_HAS_THREADS */
+
+abts_suite *testreslist(abts_suite *suite)
+{
+    suite = ADD_SUITE(suite);
+
+#if APR_HAS_THREADS
+    abts_run_test(suite, test_reslist, NULL);
+#endif
+
+    return suite;
+}
diff --git a/test/testrmm.c b/test/testrmm.c
new file mode 100644
index 0000000..c899308
--- /dev/null
+++ b/test/testrmm.c
@@ -0,0 +1,191 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_shm.h"
+#include "apr_rmm.h"
+#include "apr_errno.h"
+#include "apr_general.h"
+#include "apr_lib.h"
+#include "apr_strings.h"
+#include "apr_time.h"
+#include "abts.h"
+#include "testutil.h"
+
+#if APR_HAS_SHARED_MEMORY
+
+#define FRAG_SIZE 80
+#define FRAG_COUNT 10
+#define SHARED_SIZE (apr_size_t)(FRAG_SIZE * FRAG_COUNT * sizeof(char*))
+
+static void test_rmm(abts_case *tc, void *data)
+{
+    apr_status_t rv;
+    apr_pool_t *pool;
+    apr_shm_t *shm;
+    apr_rmm_t *rmm;
+    apr_size_t size, fragsize;
+    apr_rmm_off_t *off, off2;
+    int i;
+    void *entity;
+
+    rv = apr_pool_create(&pool, p);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    /* We're going to want 10 blocks of data from our target rmm. */
+    size = SHARED_SIZE + apr_rmm_overhead_get(FRAG_COUNT + 1);
+    rv = apr_shm_create(&shm, size, NULL, pool);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    if (rv != APR_SUCCESS)
+        return;
+
+    rv = apr_rmm_init(&rmm, NULL, apr_shm_baseaddr_get(shm), size, pool);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    if (rv != APR_SUCCESS)
+        return;
+
+    /* Creating each fragment of size fragsize */
+    fragsize = SHARED_SIZE / FRAG_COUNT;
+    off = apr_palloc(pool, FRAG_COUNT * sizeof(apr_rmm_off_t));
+    for (i = 0; i < FRAG_COUNT; i++) {
+        off[i] = apr_rmm_malloc(rmm, fragsize);
+    }
+
+    /* Checking for out of memory allocation */
+    off2 = apr_rmm_malloc(rmm, FRAG_SIZE * FRAG_COUNT);
+    ABTS_TRUE(tc, !off2);
+
+    /* Checking each fragment for address alignment */
+    for (i = 0; i < FRAG_COUNT; i++) {
+        char *c = apr_rmm_addr_get(rmm, off[i]);
+        apr_size_t sc = (apr_size_t)c;
+
+        ABTS_TRUE(tc, !!off[i]);
+        ABTS_TRUE(tc, !(sc & 7));
+    }
+
+    /* Setting each fragment to a unique value */
+    for (i = 0; i < FRAG_COUNT; i++) {
+        int j;
+        char **c = apr_rmm_addr_get(rmm, off[i]);
+        for (j = 0; j < FRAG_SIZE; j++, c++) {
+            *c = apr_itoa(pool, i + j);
+        }
+    }
+
+    /* Checking each fragment for its unique value */
+    for (i = 0; i < FRAG_COUNT; i++) {
+        int j;
+        char **c = apr_rmm_addr_get(rmm, off[i]);
+        for (j = 0; j < FRAG_SIZE; j++, c++) {
+            char *d = apr_itoa(pool, i + j);
+            ABTS_STR_EQUAL(tc, *c, d);
+        }
+    }
+
+    /* Freeing each fragment */
+    for (i = 0; i < FRAG_COUNT; i++) {
+        rv = apr_rmm_free(rmm, off[i]);
+        ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+    }
+
+    /* Creating one large segment */
+    off[0] = apr_rmm_calloc(rmm, SHARED_SIZE);
+
+    /* Setting large segment */
+    for (i = 0; i < FRAG_COUNT * FRAG_SIZE; i++) {
+        char **c = apr_rmm_addr_get(rmm, off[0]);
+        c[i] = apr_itoa(pool, i);
+    }
+
+    /* Freeing large segment */
+    rv = apr_rmm_free(rmm, off[0]);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    /* Creating each fragment of size fragsize */
+    for (i = 0; i < FRAG_COUNT; i++) {
+        off[i] = apr_rmm_malloc(rmm, fragsize);
+    }
+
+    /* Freeing each fragment backwards */
+    for (i = FRAG_COUNT - 1; i >= 0; i--) {
+        rv = apr_rmm_free(rmm, off[i]);
+        ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+    }
+
+    /* Creating one large segment (again) */
+    off[0] = apr_rmm_calloc(rmm, SHARED_SIZE);
+
+    /* Freeing large segment */
+    rv = apr_rmm_free(rmm, off[0]);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    /* Checking realloc */
+    off[0] = apr_rmm_calloc(rmm, SHARED_SIZE - 100);
+    off[1] = apr_rmm_calloc(rmm, 100);
+    ABTS_TRUE(tc, !!off[0]);
+    ABTS_TRUE(tc, !!off[1]);
+
+    entity = apr_rmm_addr_get(rmm, off[1]);
+    rv = apr_rmm_free(rmm, off[0]);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    {
+        unsigned char *c = entity;
+
+        /* Fill in the region; the first half with zereos, which will
+         * likely catch the apr_rmm_realloc offset calculation bug by
+         * making it think the old region was zero length. */
+        for (i = 0; i < 100; i++) {
+            c[i] = (i < 50) ? 0 : i;
+        }
+    }
+
+    /* now we can realloc off[1] and get many more bytes */
+    off[0] = apr_rmm_realloc(rmm, entity, SHARED_SIZE - 100);
+    ABTS_TRUE(tc, !!off[0]);
+
+    {
+        unsigned char *c = apr_rmm_addr_get(rmm, off[0]);
+
+        /* fill in the region */
+        for (i = 0; i < 100; i++) {
+            ABTS_TRUE(tc, c[i] == (i < 50 ? 0 : i));
+        }
+    }
+
+    rv = apr_rmm_destroy(rmm);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    rv = apr_shm_destroy(shm);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    apr_pool_destroy(pool);
+}
+
+#endif /* APR_HAS_SHARED_MEMORY */
+
+abts_suite *testrmm(abts_suite *suite)
+{
+    suite = ADD_SUITE(suite);
+
+#if APR_HAS_SHARED_MEMORY
+    abts_run_test(suite, test_rmm, NULL);
+#endif
+
+    return suite;
+}
diff --git a/test/teststrmatch.c b/test/teststrmatch.c
new file mode 100644
index 0000000..5ed70f8
--- /dev/null
+++ b/test/teststrmatch.c
@@ -0,0 +1,92 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "testutil.h"
+
+#include "apr.h"
+#include "apr_general.h"
+#include "apr_strmatch.h"
+#if APR_HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#define APR_WANT_STDIO
+#define APR_WANT_STRFUNC
+#include "apr_want.h"
+
+static void test_str(abts_case *tc, void *data)
+{
+    apr_pool_t *pool = p;
+    const apr_strmatch_pattern *pattern;
+    const apr_strmatch_pattern *pattern_nocase;
+    const apr_strmatch_pattern *pattern_onechar;
+    const apr_strmatch_pattern *pattern_zero;
+    const char *match = NULL;
+    const char *input1 = "string that contains a patterN...";
+    const char *input2 = "string that contains a pattern...";
+    const char *input3 = "pattern at the start of a string";
+    const char *input4 = "string that ends with a pattern";
+    const char *input5 = "patter\200n not found, negative chars in input";
+    const char *input6 = "patter\200n, negative chars, contains pattern...";
+
+    pattern = apr_strmatch_precompile(pool, "pattern", 1);
+    ABTS_PTR_NOTNULL(tc, pattern);
+ 
+    pattern_nocase = apr_strmatch_precompile(pool, "pattern", 0);
+    ABTS_PTR_NOTNULL(tc, pattern_nocase);
+
+    pattern_onechar = apr_strmatch_precompile(pool, "g", 0);
+    ABTS_PTR_NOTNULL(tc, pattern_onechar);
+
+    pattern_zero = apr_strmatch_precompile(pool, "", 0);
+    ABTS_PTR_NOTNULL(tc, pattern_zero);
+
+    match = apr_strmatch(pattern, input1, strlen(input1));
+    ABTS_PTR_EQUAL(tc, match, NULL);
+
+    match = apr_strmatch(pattern, input2, strlen(input2));
+    ABTS_PTR_EQUAL(tc, match, input2 + 23);
+
+    match = apr_strmatch(pattern_onechar, input1, strlen(input1));
+    ABTS_PTR_EQUAL(tc, match, input1 + 5);
+
+    match = apr_strmatch(pattern_zero, input1, strlen(input1));
+    ABTS_PTR_EQUAL(tc, match, input1);
+
+    match = apr_strmatch(pattern_nocase, input1, strlen(input1));
+    ABTS_PTR_EQUAL(tc, match, input1 + 23);
+
+    match = apr_strmatch(pattern, input3, strlen(input3));
+    ABTS_PTR_EQUAL(tc, match, input3);
+
+    match = apr_strmatch(pattern, input4, strlen(input4));
+    ABTS_PTR_EQUAL(tc, match, input4 + 24);
+
+    match = apr_strmatch(pattern, input5, strlen(input5));
+    ABTS_PTR_EQUAL(tc, match, NULL);
+
+    match = apr_strmatch(pattern, input6, strlen(input6));
+    ABTS_PTR_EQUAL(tc, match, input6 + 35);
+}
+
+abts_suite *teststrmatch(abts_suite *suite)
+{
+    suite = ADD_SUITE(suite);
+
+    abts_run_test(suite, test_str, NULL);
+
+    return suite;
+}
+
diff --git a/test/testuri.c b/test/testuri.c
new file mode 100644
index 0000000..b84df9a
--- /dev/null
+++ b/test/testuri.c
@@ -0,0 +1,230 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "testutil.h"
+#include "apr_general.h"
+#include "apr_strings.h"
+#include "apr_uri.h"
+
+struct aup_test {
+    const char *uri;
+    apr_status_t rv;
+    const char *scheme;
+    const char *hostinfo;
+    const char *user;
+    const char *password;
+    const char *hostname;
+    const char *port_str;
+    const char *path;
+    const char *query;
+    const char *fragment;
+    apr_port_t  port;
+};
+
+struct aup_test aup_tests[] =
+{
+    { "http://[/::1]/index.html", APR_EGENERAL },
+    { "http://[", APR_EGENERAL },
+    { "http://[?::1]/index.html", APR_EGENERAL },
+
+    {
+        "http://127.0.0.1:9999/asdf.html",
+        0, "http", "127.0.0.1:9999", NULL, NULL, "127.0.0.1", "9999", "/asdf.html", NULL, NULL, 9999
+    },
+    {
+        "http://127.0.0.1:9999a/asdf.html",
+        APR_EGENERAL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0
+    },
+    {
+        "http://[::127.0.0.1]:9999/asdf.html",
+        0, "http", "[::127.0.0.1]:9999", NULL, NULL, "::127.0.0.1", "9999", "/asdf.html", NULL, NULL, 9999
+    },
+    {
+        "http://[::127.0.0.1]:9999a/asdf.html",
+        APR_EGENERAL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0
+    },
+    {
+        "/error/include/top.html",
+        0, NULL, NULL, NULL, NULL, NULL, NULL, "/error/include/top.html", NULL, NULL, 0
+    },
+    {
+        "/error/include/../contact.html.var",
+        0, NULL, NULL, NULL, NULL, NULL, NULL, "/error/include/../contact.html.var", NULL, NULL, 0
+    },
+    {
+        "/",
+        0, NULL, NULL, NULL, NULL, NULL, NULL, "/", NULL, NULL, 0
+    },
+    {
+        "/manual/",
+        0, NULL, NULL, NULL, NULL, NULL, NULL, "/manual/", NULL, NULL, 0
+    },
+    {
+        "/cocoon/developing/graphics/Using%20Databases-label_over.jpg",
+        0, NULL, NULL, NULL, NULL, NULL, NULL, "/cocoon/developing/graphics/Using%20Databases-label_over.jpg", NULL, NULL, 0
+    },
+    {
+        "http://sonyamt:garbage@127.0.0.1/filespace/",
+        0, "http", "sonyamt:garbage@127.0.0.1", "sonyamt", "garbage", "127.0.0.1", NULL, "/filespace/", NULL, NULL, 0
+    },
+    {
+        "http://sonyamt:garbage@[fe80::1]/filespace/",
+        0, "http", "sonyamt:garbage@[fe80::1]", "sonyamt", "garbage", "fe80::1", NULL, "/filespace/", NULL, NULL, 0
+    },
+    {
+        "http://sonyamt@[fe80::1]/filespace/?arg1=store",
+        0, "http", "sonyamt@[fe80::1]", "sonyamt", NULL, "fe80::1", NULL, "/filespace/", "arg1=store", NULL, 0
+    },
+    {
+        "//www.apache.org/",
+        0, NULL, "www.apache.org", NULL, NULL, "www.apache.org", NULL, "/", NULL, NULL, 0
+    },
+};
+
+struct uph_test {
+    const char *hostinfo;
+    apr_status_t rv;
+    const char *hostname;
+    const char *port_str;
+    apr_port_t port;
+};
+
+struct uph_test uph_tests[] =
+{
+    {
+        "www.ibm.com:443",
+        0, "www.ibm.com", "443", 443
+    },
+    {
+        "[fe80::1]:443",
+        0, "fe80::1", "443", 443
+    },
+    {
+        "127.0.0.1:443",
+        0, "127.0.0.1", "443", 443
+    },
+    {
+        "127.0.0.1",
+        APR_EGENERAL, NULL, NULL, 0
+    },
+    {
+        "[fe80:80",
+        APR_EGENERAL, NULL, NULL, 0
+    },
+    {
+        "fe80::80]:443",
+        APR_EGENERAL, NULL, NULL, 0
+    }
+};
+
+#if 0
+static void show_info(apr_status_t rv, apr_status_t expected, const apr_uri_t *info)
+{
+    if (rv != expected) {
+        fprintf(stderr, "  actual rv: %d    expected rv:  %d\n", rv, expected);
+    }
+    else {
+        fprintf(stderr, 
+                "  scheme:           %s\n"
+                "  hostinfo:         %s\n"
+                "  user:             %s\n"
+                "  password:         %s\n"
+                "  hostname:         %s\n"
+                "  port_str:         %s\n"
+                "  path:             %s\n"
+                "  query:            %s\n"
+                "  fragment:         %s\n"
+                "  hostent:          %p\n"
+                "  port:             %u\n"
+                "  is_initialized:   %u\n"
+                "  dns_looked_up:    %u\n"
+                "  dns_resolved:     %u\n",
+                info->scheme, info->hostinfo, info->user, info->password,
+                info->hostname, info->port_str, info->path, info->query,
+                info->fragment, info->hostent, info->port, info->is_initialized,
+                info->dns_looked_up, info->dns_resolved);
+    }
+}
+#endif
+
+static void test_aup(abts_case *tc, void *data)
+{
+    int i;
+    apr_status_t rv;
+    apr_uri_t info;
+    struct aup_test *t;
+    const char *s = NULL;
+
+    for (i = 0; i < sizeof(aup_tests) / sizeof(aup_tests[0]); i++) {
+        char msg[256];
+
+        memset(&info, 0, sizeof(info));
+        t = &aup_tests[i];
+        rv = apr_uri_parse(p, t->uri, &info);
+        apr_snprintf(msg, sizeof msg, "uri '%s': rv=%d not %d", t->uri,
+                     rv, t->rv);
+        ABTS_ASSERT(tc, msg, rv == t->rv);
+        if (t->rv == APR_SUCCESS) {
+            ABTS_STR_EQUAL(tc, info.scheme, t->scheme);
+            ABTS_STR_EQUAL(tc, info.hostinfo, t->hostinfo);
+            ABTS_STR_EQUAL(tc, info.user, t->user);
+            ABTS_STR_EQUAL(tc, info.password, t->password);
+            ABTS_STR_EQUAL(tc, info.hostname, t->hostname);
+            ABTS_STR_EQUAL(tc, info.port_str, t->port_str);
+            ABTS_STR_EQUAL(tc, info.path, t->path);
+            ABTS_STR_EQUAL(tc, info.query, t->query);
+            ABTS_STR_EQUAL(tc, info.user, t->user);
+            ABTS_INT_EQUAL(tc, info.port, t->port);
+
+            s = apr_uri_unparse(p, &info, APR_URI_UNP_REVEALPASSWORD);
+            ABTS_STR_EQUAL(tc, s, t->uri);
+        }
+    }
+}
+
+static void test_uph(abts_case *tc, void *data)
+{
+    int i;
+    apr_status_t rv;
+    apr_uri_t info;
+    struct uph_test *t;
+
+    for (i = 0; i < sizeof(uph_tests) / sizeof(uph_tests[0]); i++) {
+        memset(&info, 0, sizeof(info));
+        t = &uph_tests[i];
+        rv = apr_uri_parse_hostinfo(p, t->hostinfo, &info);
+        ABTS_INT_EQUAL(tc, rv, t->rv);
+        if (t->rv == APR_SUCCESS) {
+            ABTS_STR_EQUAL(tc, info.hostname, t->hostname);
+            ABTS_STR_EQUAL(tc, info.port_str, t->port_str);
+            ABTS_INT_EQUAL(tc, info.port, t->port);
+        }
+    }
+}
+
+abts_suite *testuri(abts_suite *suite)
+{
+    suite = ADD_SUITE(suite);
+
+    abts_run_test(suite, test_aup, NULL);
+    abts_run_test(suite, test_uph, NULL);
+
+    return suite;
+}
+
diff --git a/test/testutil.c b/test/testutil.c
new file mode 100644
index 0000000..11a1923
--- /dev/null
+++ b/test/testutil.c
@@ -0,0 +1,48 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "abts.h"
+#include "testutil.h"
+#include "apr_pools.h"
+
+apr_pool_t *p;
+
+void apr_assert_success(abts_case* tc, const char* context, apr_status_t rv)
+{
+    if (rv == APR_ENOTIMPL) {
+        ABTS_NOT_IMPL(tc, context);
+    }
+
+    if (rv != APR_SUCCESS) {
+        char buf[STRING_MAX], ebuf[128];
+        sprintf(buf, "%s (%d): %s\n", context, rv,
+                apr_strerror(rv, ebuf, sizeof ebuf));
+        ABTS_FAIL(tc, buf);
+    }
+}
+
+void initialize(void) {
+    if (apr_initialize() != APR_SUCCESS) {
+        abort();
+    }
+    atexit(apr_terminate);
+    
+    apr_pool_create(&p, NULL);
+    apr_pool_tag(p, "apr-util global test pool");
+}
diff --git a/test/testutil.h b/test/testutil.h
new file mode 100644
index 0000000..6b8e5f8
--- /dev/null
+++ b/test/testutil.h
@@ -0,0 +1,64 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_pools.h"
+#include "abts.h"
+
+#ifndef APR_TEST_UTIL
+#define APR_TEST_UTIL
+
+/* XXX FIXME */
+#ifdef WIN32
+#define EXTENSION ".exe"
+#elif NETWARE
+#define EXTENSION ".nlm"
+#else
+#define EXTENSION
+#endif
+
+#define STRING_MAX 8096
+
+/* Some simple functions to make the test apps easier to write and
+ * a bit more consistent...
+ */
+
+extern apr_pool_t *p;
+
+/* Assert that RV is an APR_SUCCESS value; else fail giving strerror
+ * for RV and CONTEXT message. */
+void apr_assert_success(abts_case* tc, const char *context, apr_status_t rv);
+
+void initialize(void);
+
+abts_suite *teststrmatch(abts_suite *suite);
+abts_suite *testuri(abts_suite *suite);
+abts_suite *testuuid(abts_suite *suite);
+abts_suite *testbuckets(abts_suite *suite);
+abts_suite *testpass(abts_suite *suite);
+abts_suite *testmd4(abts_suite *suite);
+abts_suite *testmd5(abts_suite *suite);
+abts_suite *testldap(abts_suite *suite);
+abts_suite *testdbd(abts_suite *suite);
+abts_suite *testdate(abts_suite *suite);
+abts_suite *testmemcache(abts_suite *suite);
+abts_suite *testreslist(abts_suite *suite);
+abts_suite *testqueue(abts_suite *suite);
+abts_suite *testxml(abts_suite *suite);
+abts_suite *testxlate(abts_suite *suite);
+abts_suite *testrmm(abts_suite *suite);
+abts_suite *testdbm(abts_suite *suite);
+
+#endif /* APR_TEST_INCLUDES */
diff --git a/test/testutildll.dsp b/test/testutildll.dsp
new file mode 100644
index 0000000..523a148
--- /dev/null
+++ b/test/testutildll.dsp
@@ -0,0 +1,266 @@
+# Microsoft Developer Studio Project File - Name="testutildll" - Package Owner=<4>

+# Microsoft Developer Studio Generated Build File, Format Version 6.00

+# ** DO NOT EDIT **

+

+# TARGTYPE "Win32 (x86) External Target" 0x0106

+

+CFG=testutildll - Win32 Release

+!MESSAGE This is not a valid makefile. To build this project using NMAKE,

+!MESSAGE use the Export Makefile command and run

+!MESSAGE 

+!MESSAGE NMAKE /f "testutildll.mak".

+!MESSAGE 

+!MESSAGE You can specify a configuration when running NMAKE

+!MESSAGE by defining the macro CFG on the command line. For example:

+!MESSAGE 

+!MESSAGE NMAKE /f "testutildll.mak" CFG="testutildll - Win32 Release"

+!MESSAGE 

+!MESSAGE Possible choices for configuration are:

+!MESSAGE 

+!MESSAGE "testutildll - Win32 Release" (based on "Win32 (x86) External Target")

+!MESSAGE "testutildll - Win32 Debug" (based on "Win32 (x86) External Target")

+!MESSAGE "testutildll - Win32 ReleaseNT" (based on "Win32 (x86) External Target")

+!MESSAGE "testutildll - Win32 DebugNT" (based on "Win32 (x86) External Target")

+!MESSAGE "testutildll - x64 Release" (based on "Win32 (x86) External Target")

+!MESSAGE "testutildll - x64 Debug" (based on "Win32 (x86) External Target")

+!MESSAGE 

+

+# Begin Project

+# PROP AllowPerConfigDependencies 0

+# PROP Scc_ProjName ""

+# PROP Scc_LocalPath ""

+

+!IF  "$(CFG)" == "testutildll - Win32 Release"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 0

+# PROP BASE Output_Dir ""

+# PROP BASE Intermediate_Dir ""

+# PROP BASE Cmd_Line "NMAKE /f Makefile.win INTDIR=Release OUTDIR=Release MODEL=dynamic all check"

+# PROP BASE Rebuild_Opt "/a"

+# PROP BASE Target_File "Release\testall.exe"

+# PROP BASE Bsc_Name ""

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 0

+# PROP Output_Dir ""

+# PROP Intermediate_Dir ""

+# PROP Cmd_Line "NMAKE /f Makefile.win INTDIR=Release OUTDIR=Release MODEL=dynamic all check"

+# PROP Rebuild_Opt "/a"

+# PROP Target_File "Release\testall.exe"

+# PROP Bsc_Name ""

+# PROP Target_Dir ""

+

+!ELSEIF  "$(CFG)" == "testutildll - Win32 Debug"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 1

+# PROP BASE Output_Dir ""

+# PROP BASE Intermediate_Dir ""

+# PROP BASE Cmd_Line "NMAKE /f Makefile.win INTDIR=Debug OUTDIR=Debug MODEL=dynamic _DEBUG=1 all check"

+# PROP BASE Rebuild_Opt "/a"

+# PROP BASE Target_File "Debug\testall.exe"

+# PROP BASE Bsc_Name ""

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 1

+# PROP Output_Dir ""

+# PROP Intermediate_Dir ""

+# PROP Cmd_Line "NMAKE /f Makefile.win INTDIR=Debug OUTDIR=Debug MODEL=dynamic _DEBUG=1 all check"

+# PROP Rebuild_Opt "/a"

+# PROP Target_File "Debug\testall.exe"

+# PROP Bsc_Name ""

+# PROP Target_Dir ""

+

+!ELSEIF  "$(CFG)" == "testutildll - Win32 ReleaseNT"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 0

+# PROP BASE Output_Dir ""

+# PROP BASE Intermediate_Dir ""

+# PROP BASE Cmd_Line "NMAKE /f Makefile.win INTDIR=NT\Release OUTDIR=NT\Release MODEL=dynamic all check"

+# PROP BASE Rebuild_Opt "/a"

+# PROP BASE Target_File "NT\Release\testall.exe"

+# PROP BASE Bsc_Name ""

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 0

+# PROP Output_Dir ""

+# PROP Intermediate_Dir ""

+# PROP Cmd_Line "NMAKE /f Makefile.win INTDIR=NT\Release OUTDIR=NT\Release MODEL=dynamic all check"

+# PROP Rebuild_Opt "/a"

+# PROP Target_File "NT\Release\testall.exe"

+# PROP Bsc_Name ""

+# PROP Target_Dir ""

+

+!ELSEIF  "$(CFG)" == "testutildll - Win32 DebugNT"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 1

+# PROP BASE Output_Dir ""

+# PROP BASE Intermediate_Dir ""

+# PROP BASE Cmd_Line "NMAKE /f Makefile.win INTDIR=NT\Debug OUTDIR=NT\Debug MODEL=dynamic _DEBUG=1 all check"

+# PROP BASE Rebuild_Opt "/a"

+# PROP BASE Target_File "NT\Debug\testall.exe"

+# PROP BASE Bsc_Name ""

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 1

+# PROP Output_Dir ""

+# PROP Intermediate_Dir ""

+# PROP Cmd_Line "NMAKE /f Makefile.win INTDIR=NT\Debug OUTDIR=NT\Debug MODEL=dynamic _DEBUG=1 all check"

+# PROP Rebuild_Opt "/a"

+# PROP Target_File "NT\Debug\testall.exe"

+# PROP Bsc_Name ""

+# PROP Target_Dir ""

+

+!ELSEIF  "$(CFG)" == "testutildll - x64 Release"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 0

+# PROP BASE Output_Dir ""

+# PROP BASE Intermediate_Dir ""

+# PROP BASE Cmd_Line "NMAKE /f Makefile.win INTDIR=x64\Release OUTDIR=x64\Release MODEL=dynamic all check"

+# PROP BASE Rebuild_Opt "/a"

+# PROP BASE Target_File "x64\Release\testall.exe"

+# PROP BASE Bsc_Name ""

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 0

+# PROP Output_Dir ""

+# PROP Intermediate_Dir ""

+# PROP Cmd_Line "NMAKE /f Makefile.win INTDIR=x64\Release OUTDIR=x64\Release MODEL=dynamic all check"

+# PROP Rebuild_Opt "/a"

+# PROP Target_File "x64\Release\testall.exe"

+# PROP Bsc_Name ""

+# PROP Target_Dir ""

+

+!ELSEIF  "$(CFG)" == "testutildll - x64 Debug"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 1

+# PROP BASE Output_Dir ""

+# PROP BASE Intermediate_Dir ""

+# PROP BASE Cmd_Line "NMAKE /f Makefile.win INTDIR=x64\Debug OUTDIR=x64\Debug MODEL=dynamic _DEBUG=1 all check"

+# PROP BASE Rebuild_Opt "/a"

+# PROP BASE Target_File "x64\Debug\testall.exe"

+# PROP BASE Bsc_Name ""

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 1

+# PROP Output_Dir ""

+# PROP Intermediate_Dir ""

+# PROP Cmd_Line "NMAKE /f Makefile.win INTDIR=x64\Debug OUTDIR=x64\Debug MODEL=dynamic _DEBUG=1 all check"

+# PROP Rebuild_Opt "/a"

+# PROP Target_File "x64\Debug\testall.exe"

+# PROP Bsc_Name ""

+# PROP Target_Dir ""

+

+!ENDIF 

+

+# Begin Target

+

+# Name "testutildll - Win32 Release"

+# Name "testutildll - Win32 Debug"

+# Name "testutildll - Win32 ReleaseNT"

+# Name "testutildll - Win32 DebugNT"

+# Name "testutildll - x64 Release"

+# Name "testutildll - x64 Debug"

+# Begin Group "testall Source Files"

+

+# PROP Default_Filter ".c"

+# Begin Source File

+

+SOURCE=.\abts.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\abts.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\abts_tests.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\testbuckets.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testdate.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testdbd.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testdbm.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testldap.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testmd4.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testmd5.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testpass.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testqueue.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testreslist.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testrmm.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\teststrmatch.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testuri.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testutil.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testuuid.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testxlate.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testxml.c

+# End Source File

+# End Group

+# Begin Group "Other Source Files"

+

+# PROP Default_Filter ".c"

+# Begin Source File

+

+SOURCE=.\dbd.c

+# End Source File

+# End Group

+# Begin Source File

+

+SOURCE=.\Makefile.win

+# End Source File

+# End Target

+# End Project

diff --git a/test/testutillib.dsp b/test/testutillib.dsp
new file mode 100644
index 0000000..5ca51ae
--- /dev/null
+++ b/test/testutillib.dsp
@@ -0,0 +1,266 @@
+# Microsoft Developer Studio Project File - Name="testutillib" - Package Owner=<4>

+# Microsoft Developer Studio Generated Build File, Format Version 6.00

+# ** DO NOT EDIT **

+

+# TARGTYPE "Win32 (x86) External Target" 0x0106

+

+CFG=testutillib - Win32 Release

+!MESSAGE This is not a valid makefile. To build this project using NMAKE,

+!MESSAGE use the Export Makefile command and run

+!MESSAGE 

+!MESSAGE NMAKE /f "testutillib.mak".

+!MESSAGE 

+!MESSAGE You can specify a configuration when running NMAKE

+!MESSAGE by defining the macro CFG on the command line. For example:

+!MESSAGE 

+!MESSAGE NMAKE /f "testutillib.mak" CFG="testutillib - Win32 Release"

+!MESSAGE 

+!MESSAGE Possible choices for configuration are:

+!MESSAGE 

+!MESSAGE "testutillib - Win32 Release" (based on "Win32 (x86) External Target")

+!MESSAGE "testutillib - Win32 Debug" (based on "Win32 (x86) External Target")

+!MESSAGE "testutillib - Win32 ReleaseNT" (based on "Win32 (x86) External Target")

+!MESSAGE "testutillib - Win32 DebugNT" (based on "Win32 (x86) External Target")

+!MESSAGE "testutillib - x64 Release" (based on "Win32 (x86) External Target")

+!MESSAGE "testutillib - x64 Debug" (based on "Win32 (x86) External Target")

+!MESSAGE 

+

+# Begin Project

+# PROP AllowPerConfigDependencies 0

+# PROP Scc_ProjName ""

+# PROP Scc_LocalPath ""

+

+!IF  "$(CFG)" == "testutillib - Win32 Release"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 0

+# PROP BASE Output_Dir ""

+# PROP BASE Intermediate_Dir ""

+# PROP BASE Cmd_Line "NMAKE /f Makefile.win INTDIR=LibR OUTDIR=LibR MODEL=static all check"

+# PROP BASE Rebuild_Opt "/a"

+# PROP BASE Target_File "LibR\testall.exe"

+# PROP BASE Bsc_Name ""

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 0

+# PROP Output_Dir ""

+# PROP Intermediate_Dir ""

+# PROP Cmd_Line "NMAKE /f Makefile.win INTDIR=LibR OUTDIR=LibR MODEL=static all check"

+# PROP Rebuild_Opt "/a"

+# PROP Target_File "LibR\testall.exe"

+# PROP Bsc_Name ""

+# PROP Target_Dir ""

+

+!ELSEIF  "$(CFG)" == "testutillib - Win32 Debug"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 1

+# PROP BASE Output_Dir ""

+# PROP BASE Intermediate_Dir ""

+# PROP BASE Cmd_Line "NMAKE /f Makefile.win INTDIR=LibD OUTDIR=LibD MODEL=static _DEBUG=1 all check"

+# PROP BASE Rebuild_Opt "/a"

+# PROP BASE Target_File "LibD\testall.exe"

+# PROP BASE Bsc_Name ""

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 1

+# PROP Output_Dir ""

+# PROP Intermediate_Dir ""

+# PROP Cmd_Line "NMAKE /f Makefile.win INTDIR=LibD OUTDIR=LibD MODEL=static _DEBUG=1 all check"

+# PROP Rebuild_Opt "/a"

+# PROP Target_File "LibD\testall.exe"

+# PROP Bsc_Name ""

+# PROP Target_Dir ""

+

+!ELSEIF  "$(CFG)" == "testutillib - Win32 ReleaseNT"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 0

+# PROP BASE Output_Dir ""

+# PROP BASE Intermediate_Dir ""

+# PROP BASE Cmd_Line "NMAKE /f Makefile.win INTDIR=NT\LibR OUTDIR=NT\LibR MODEL=static all check"

+# PROP BASE Rebuild_Opt "/a"

+# PROP BASE Target_File "NT\LibR\testall.exe"

+# PROP BASE Bsc_Name ""

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 0

+# PROP Output_Dir ""

+# PROP Intermediate_Dir ""

+# PROP Cmd_Line "NMAKE /f Makefile.win INTDIR=NT\LibR OUTDIR=NT\LibR MODEL=static all check"

+# PROP Rebuild_Opt "/a"

+# PROP Target_File "NT\LibR\testall.exe"

+# PROP Bsc_Name ""

+# PROP Target_Dir ""

+

+!ELSEIF  "$(CFG)" == "testutillib - Win32 DebugNT"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 1

+# PROP BASE Output_Dir ""

+# PROP BASE Intermediate_Dir ""

+# PROP BASE Cmd_Line "NMAKE /f Makefile.win INTDIR=NT\LibD OUTDIR=NT\LibD MODEL=static _DEBUG=1 all check"

+# PROP BASE Rebuild_Opt "/a"

+# PROP BASE Target_File "NT\LibD\testall.exe"

+# PROP BASE Bsc_Name ""

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 1

+# PROP Output_Dir ""

+# PROP Intermediate_Dir ""

+# PROP Cmd_Line "NMAKE /f Makefile.win INTDIR=NT\LibD OUTDIR=NT\LibD MODEL=static _DEBUG=1 all check"

+# PROP Rebuild_Opt "/a"

+# PROP Target_File "NT\LibD\testall.exe"

+# PROP Bsc_Name ""

+# PROP Target_Dir ""

+

+!ELSEIF  "$(CFG)" == "testutillib - x64 Release"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 0

+# PROP BASE Output_Dir ""

+# PROP BASE Intermediate_Dir ""

+# PROP BASE Cmd_Line "NMAKE /f Makefile.win INTDIR=x64\LibR OUTDIR=x64\LibR MODEL=static all check"

+# PROP BASE Rebuild_Opt "/a"

+# PROP BASE Target_File "x64\LibR\testall.exe"

+# PROP BASE Bsc_Name ""

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 0

+# PROP Output_Dir ""

+# PROP Intermediate_Dir ""

+# PROP Cmd_Line "NMAKE /f Makefile.win INTDIR=x64\LibR OUTDIR=x64\LibR MODEL=static all check"

+# PROP Rebuild_Opt "/a"

+# PROP Target_File "x64\LibR\testall.exe"

+# PROP Bsc_Name ""

+# PROP Target_Dir ""

+

+!ELSEIF  "$(CFG)" == "testutillib - x64 Debug"

+

+# PROP BASE Use_MFC 0

+# PROP BASE Use_Debug_Libraries 1

+# PROP BASE Output_Dir ""

+# PROP BASE Intermediate_Dir ""

+# PROP BASE Cmd_Line "NMAKE /f Makefile.win INTDIR=x64\LibD OUTDIR=x64\LibD MODEL=static _DEBUG=1 all check"

+# PROP BASE Rebuild_Opt "/a"

+# PROP BASE Target_File "x64\LibD\testall.exe"

+# PROP BASE Bsc_Name ""

+# PROP BASE Target_Dir ""

+# PROP Use_MFC 0

+# PROP Use_Debug_Libraries 1

+# PROP Output_Dir ""

+# PROP Intermediate_Dir ""

+# PROP Cmd_Line "NMAKE /f Makefile.win INTDIR=x64\LibD OUTDIR=x64\LibD MODEL=static _DEBUG=1 all check"

+# PROP Rebuild_Opt "/a"

+# PROP Target_File "x64\LibD\testall.exe"

+# PROP Bsc_Name ""

+# PROP Target_Dir ""

+

+!ENDIF 

+

+# Begin Target

+

+# Name "testutillib - Win32 Release"

+# Name "testutillib - Win32 Debug"

+# Name "testutillib - Win32 ReleaseNT"

+# Name "testutillib - Win32 DebugNT"

+# Name "testutillib - x64 Release"

+# Name "testutillib - x64 Debug"

+# Begin Group "testall Source Files"

+

+# PROP Default_Filter ".c"

+# Begin Source File

+

+SOURCE=.\abts.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\abts.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\abts_tests.h

+# End Source File

+# Begin Source File

+

+SOURCE=.\testbuckets.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testdate.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testdbd.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testdbm.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testldap.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testmd4.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testmd5.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testpass.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testqueue.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testreslist.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testrmm.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\teststrmatch.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testuri.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testutil.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testuuid.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testxlate.c

+# End Source File

+# Begin Source File

+

+SOURCE=.\testxml.c

+# End Source File

+# End Group

+# Begin Group "Other Source Files"

+

+# PROP Default_Filter ".c"

+# Begin Source File

+

+SOURCE=.\dbd.c

+# End Source File

+# End Group

+# Begin Source File

+

+SOURCE=.\Makefile.win

+# End Source File

+# End Target

+# End Project

diff --git a/test/testuuid.c b/test/testuuid.c
new file mode 100644
index 0000000..f33adde
--- /dev/null
+++ b/test/testuuid.c
@@ -0,0 +1,56 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "testutil.h"
+#include "apr_general.h"
+#include "apr_uuid.h"
+
+static void test_uuid_parse(abts_case *tc, void *data)
+{
+    apr_uuid_t uuid;
+    apr_uuid_t uuid2;
+    char buf[APR_UUID_FORMATTED_LENGTH + 1];
+
+    apr_uuid_get(&uuid);
+    apr_uuid_format(buf, &uuid);
+
+    apr_uuid_parse(&uuid2, buf);
+    ABTS_ASSERT(tc, "parse produced a different UUID",
+             memcmp(&uuid, &uuid2, sizeof(uuid)) == 0);
+}
+
+static void test_gen2(abts_case *tc, void *data)
+{
+    apr_uuid_t uuid;
+    apr_uuid_t uuid2;
+
+    /* generate two of them quickly */
+    apr_uuid_get(&uuid);
+    apr_uuid_get(&uuid2);
+
+    ABTS_ASSERT(tc, "generated the same UUID twice",
+             memcmp(&uuid, &uuid2, sizeof(uuid)) != 0);
+}
+
+abts_suite *testuuid(abts_suite *suite)
+{
+    suite = ADD_SUITE(suite);
+
+    abts_run_test(suite, test_uuid_parse, NULL);
+    abts_run_test(suite, test_gen2, NULL);
+
+    return suite;
+}
diff --git a/test/testxlate.c b/test/testxlate.c
new file mode 100644
index 0000000..8dbc4c8
--- /dev/null
+++ b/test/testxlate.c
@@ -0,0 +1,103 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr.h"
+#include "apr_errno.h"
+#include "apr_general.h"
+#include "apr_strings.h"
+#include "apr_xlate.h"
+#include "abts.h"
+#include "testutil.h"
+
+#ifdef APR_HAS_XLATE
+
+static const char test_utf8[] = "Edelwei\xc3\x9f";
+static const char test_utf7[] = "Edelwei+AN8-";
+static const char test_latin1[] = "Edelwei\xdf";
+static const char test_latin2[] = "Edelwei\xdf";
+
+static void test_conversion(abts_case *tc, apr_xlate_t *convset,
+                            const char *inbuf, const char *expected)
+{
+    static char buf[1024];
+    apr_size_t inbytes_left = strlen(inbuf);
+    apr_size_t outbytes_left = sizeof(buf) - 1;
+    apr_status_t rv;
+
+    rv = apr_xlate_conv_buffer(convset, inbuf, &inbytes_left, buf, &outbytes_left);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    if (rv != APR_SUCCESS)
+        return;
+
+    rv = apr_xlate_conv_buffer(convset, NULL, NULL, buf + sizeof(buf) -
+                               outbytes_left - 1, &outbytes_left);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    buf[sizeof(buf) - outbytes_left - 1] = '\0';
+
+    ABTS_STR_EQUAL(tc, buf, expected);
+}
+
+static void one_test(abts_case *tc, const char *cs1, const char *cs2,
+                     const char *str1, const char *str2,
+                     apr_pool_t *pool)
+{
+    apr_status_t rv;
+    apr_xlate_t *convset;
+
+    rv = apr_xlate_open(&convset, cs2, cs1, pool);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    if (rv != APR_SUCCESS)
+        return;
+
+    test_conversion(tc, convset, str1, str2);
+
+    rv = apr_xlate_close(convset);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+}
+
+static void test_transformation(abts_case *tc, void *data)
+{
+    /* 1. Identity transformation: UTF-8 -> UTF-8 */
+    one_test(tc, "UTF-8", "UTF-8", test_utf8, test_utf8, p);
+
+    /* 2. UTF-8 <-> ISO-8859-1 */
+    one_test(tc, "UTF-8", "ISO-8859-1", test_utf8, test_latin1, p);
+    one_test(tc, "ISO-8859-1", "UTF-8", test_latin1, test_utf8, p);
+
+    /* 3. ISO-8859-1 <-> ISO-8859-2, identity */
+    one_test(tc, "ISO-8859-1", "ISO-8859-2", test_latin1, test_latin2, p);
+    one_test(tc, "ISO-8859-2", "ISO-8859-1", test_latin2, test_latin1, p);
+
+    /* 4. Transformation using charset aliases */
+    one_test(tc, "UTF-8", "UTF-7", test_utf8, test_utf7, p);
+    one_test(tc, "UTF-7", "UTF-8", test_utf7, test_utf8, p);
+}
+
+#endif /* APR_HAS_XLATE */
+
+abts_suite *testxlate(abts_suite *suite)
+{
+    suite = ADD_SUITE(suite);
+
+#ifdef APR_HAS_XLATE
+    abts_run_test(suite, test_transformation, NULL);
+#endif
+
+    return suite;
+}
diff --git a/test/testxml.c b/test/testxml.c
new file mode 100644
index 0000000..8db4053
--- /dev/null
+++ b/test/testxml.c
@@ -0,0 +1,159 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr.h"
+#include "apr_general.h"
+#include "apr_xml.h"
+#include "abts.h"
+#include "testutil.h"
+
+static apr_status_t create_dummy_file_error(abts_case *tc, apr_pool_t *p,
+                                            apr_file_t **fd)
+{
+    int i;
+    apr_status_t rv;
+    apr_off_t off = 0L;
+    char template[] = "data/testxmldummyerrorXXXXXX";
+
+    rv = apr_file_mktemp(fd, template, APR_CREATE | APR_TRUNCATE | APR_DELONCLOSE |
+                         APR_READ | APR_WRITE | APR_EXCL, p);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    if (rv != APR_SUCCESS)
+        return rv;
+
+    rv = apr_file_puts("<?xml version=\"1.0\" ?>\n<maryx>"
+                       "<had a=\"little\"/><lamb its='fleece "
+                       "was white as snow' />\n", *fd);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    for (i = 0; i < 5000; i++) {
+        rv = apr_file_puts("<hmm roast=\"lamb\" "
+                           "for=\"dinner\">yummy</hmm>\n", *fd);
+        ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+    }
+
+    rv = apr_file_puts("</mary>\n", *fd);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    rv = apr_file_seek(*fd, APR_SET, &off);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    return rv;
+}
+
+static apr_status_t create_dummy_file(abts_case *tc, apr_pool_t *p,
+                                      apr_file_t **fd)
+{
+    int i;
+    apr_status_t rv;
+    apr_off_t off = 0L;
+    char template[] = "data/testxmldummyXXXXXX";
+
+    rv = apr_file_mktemp(fd, template, APR_CREATE | APR_TRUNCATE | APR_DELONCLOSE |
+                         APR_READ | APR_WRITE | APR_EXCL, p);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    if (rv != APR_SUCCESS)
+        return rv;
+
+    rv = apr_file_puts("<?xml version=\"1.0\" ?>\n<mary>\n", *fd);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    for (i = 0; i < 5000; i++) {
+        rv = apr_file_puts("<hmm roast=\"lamb\" "
+                           "for=\"dinner\">yummy</hmm>\n", *fd);
+        ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+    }
+
+    rv = apr_file_puts("</mary>\n", *fd);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    rv = apr_file_seek(*fd, APR_SET, &off);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    return rv;
+}
+
+static void dump_xml(abts_case *tc, apr_xml_elem *e, int level)
+{
+    apr_xml_attr *a;
+    apr_xml_elem *ec;
+
+    if (level == 0) {
+        ABTS_STR_EQUAL(tc, e->name, "mary");
+    } else {
+        ABTS_STR_EQUAL(tc, e->name, "hmm");
+    }
+
+    if (e->attr) {
+        a = e->attr;
+        ABTS_PTR_NOTNULL(tc, a);
+        ABTS_STR_EQUAL(tc, a->name, "for");
+        ABTS_STR_EQUAL(tc, a->value, "dinner");
+        a = a->next;
+        ABTS_PTR_NOTNULL(tc, a);
+        ABTS_STR_EQUAL(tc, a->name, "roast");
+        ABTS_STR_EQUAL(tc, a->value, "lamb");
+    }
+    if (e->first_child) {
+        ec = e->first_child;
+        while (ec) {
+            dump_xml(tc, ec, level + 1);
+            ec = ec->next;
+        }
+    }
+}
+
+static void test_xml_parser(abts_case *tc, void *data)
+{
+    apr_file_t *fd;
+    apr_xml_parser *parser;
+    apr_xml_doc *doc;
+    apr_status_t rv;
+
+    rv = create_dummy_file(tc, p, &fd);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    if (rv != APR_SUCCESS)
+        return;
+
+    rv = apr_xml_parse_file(p, &parser, &doc, fd, 2000);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    dump_xml(tc, doc->root, 0);
+
+    rv = apr_file_close(fd);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    rv = create_dummy_file_error(tc, p, &fd);
+    ABTS_INT_EQUAL(tc, rv, APR_SUCCESS);
+
+    if (rv != APR_SUCCESS)
+        return;
+
+    rv = apr_xml_parse_file(p, &parser, &doc, fd, 2000);
+    ABTS_TRUE(tc, rv != APR_SUCCESS);
+}
+
+abts_suite *testxml(abts_suite *suite)
+{
+    suite = ADD_SUITE(suite);
+
+    abts_run_test(suite, test_xml_parser, NULL);
+
+    return suite;
+}
diff --git a/uri/NWGNUmakefile b/uri/NWGNUmakefile
new file mode 100644
index 0000000..bf97c96
--- /dev/null
+++ b/uri/NWGNUmakefile
@@ -0,0 +1,257 @@
+#
+# NWGNUmakefile for GenUri.nlm (Apache2)
+# Declare the sub-directories to be built here
+#
+
+SUBDIRS = \
+		$(EOLIST) 
+
+#
+# Get the 'head' of the build environment.  This includes default targets and
+# paths to tools
+#
+
+include $(APR_WORK)\build\NWGNUhead.inc
+
+#
+# build this level's files
+
+#
+# Make sure all needed macro's are defined
+#
+
+#
+# These directories will be at the beginning of the include list, followed by
+# INCDIRS
+#
+XINCDIRS	+= \
+			$(APR)/include/arch/NetWare \
+			$(APR)/include \
+			$(APRUTIL)/include \
+			$(APRUTIL)/include/private \
+			$(APRUTIL)/xml/expat/lib \
+			$(EOLIST)
+
+#
+# These flags will come after CFLAGS
+#
+XCFLAGS		+= \
+			$(EOLIST)
+
+#
+# These defines will come after DEFINES
+#
+XDEFINES	+= \
+			$(EOLIST)
+
+#
+# These flags will be added to the link.opt file
+#
+XLFLAGS		+= \
+			$(EOLIST)
+
+#
+# These values will be appended to the correct variables based on the value of
+# RELEASE
+#
+ifeq "$(RELEASE)" "debug"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+ifeq "$(RELEASE)" "noopt"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+ifeq "$(RELEASE)" "release"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+#
+# These are used by the link target if an NLM is being generated
+# This is used by the link 'name' directive to name the nlm.  If left blank
+# TARGET_nlm (see below) will be used.
+#
+NLM_NAME		= Genuri
+
+#
+# This is used by the link '-desc ' directive. 
+# If left blank, NLM_NAME will be used.
+#
+NLM_DESCRIPTION	= Generate URI Delimiters
+
+#
+# This is used by the '-threadname' directive.  If left blank,
+# NLM_NAME Thread will be used.
+#
+NLM_THREAD_NAME	= genuri
+
+#
+# If this is specified, it will override VERSION value in 
+# $(APR_WORK)\build\NWGNUenvironment.inc
+#
+NLM_VERSION		= 1,0,0
+
+#
+# If this is specified, it will override the default of 64K
+#
+NLM_STACK_SIZE	= 8192
+
+#
+# If this is specified it will be used by the link '-entry' directive
+#
+NLM_ENTRY_SYM	=_LibCPrelude 
+
+#
+# If this is specified it will be used by the link '-exit' directive
+#
+NLM_EXIT_SYM	=_LibCPostlude 
+
+#
+# If this is specified it will be used by the link '-check' directive
+#
+NLM_CHECK_SYM	=
+
+#
+# If this is specified it will be used by the link '-flags' directive
+#
+NLM_FLAGS		= PSEUDOPREEMPTION
+ 
+#
+# If this is specified it will be linked in with the XDCData option in the def 
+# file instead of the default of $(APR)/misc/netware/apr.xdc.  XDCData can 
+# be disabled by setting APACHE_UNIPROC in the environment
+#
+XDCDATA         = 
+
+#
+# Declare all target files (you must add your files here)
+#
+
+#
+# If there is an NLM target, put it here
+#
+TARGET_nlm = \
+$(OBJDIR)/Genuri.nlm \
+	$(EOLIST)
+
+#
+# If there is an LIB target, put it here
+#
+TARGET_lib = \
+	$(EOLIST)
+
+#
+# These are the OBJ files needed to create the NLM target above.
+# Paths must all use the '/' character
+#
+FILES_nlm_objs = \
+	$(OBJDIR)/gen_uri_delims.o \
+	$(EOLIST)
+
+#
+# These are the LIB files needed to create the NLM target above.
+# These will be added as a library command in the link.opt file.
+#
+FILES_nlm_libs = \
+	libcpre.o \
+	$(EOLIST)
+
+#
+# These are the modules that the above NLM target depends on to load.
+# These will be added as a module command in the link.opt file.
+#
+FILES_nlm_modules = \
+	Libc \
+	$(EOLIST)
+
+#
+# If the nlm has a msg file, put it's path here
+#
+FILE_nlm_msg =
+ 
+#
+# If the nlm has a hlp file put it's path here
+#
+FILE_nlm_hlp =
+
+#
+# If this is specified, it will override $(NWOS)\copyright.txt.
+#
+FILE_nlm_copyright =
+
+#
+# Any additional imports go here
+#
+FILES_nlm_Ximports = \
+	@libc.imp \
+	$(EOLIST)
+ 
+#   
+# Any symbols exported to here
+#
+FILES_nlm_exports = \
+	$(EOLIST)
+	
+#   
+# These are the OBJ files needed to create the LIB target above.
+# Paths must all use the '/' character
+#
+FILES_lib_objs = \
+	$(EOLIST)
+
+#
+# implement targets and dependancies (leave this section alone)
+#
+
+libs :: $(OBJDIR) $(TARGET_lib)
+
+nlms :: libs $(TARGET_nlm)
+
+#
+# Updated this target to create necessary directories and copy files to the 
+# correct place.  (See $(APR_WORK)\build\NWGNUhead.inc for examples)
+#
+install :: nlms FORCE
+
+#
+# Any specialized rules here
+#
+
+
+#
+# Include the 'tail' makefile that has targets that depend on variables defined
+# in this makefile
+#
+
+include $(APR_WORK)\build\NWGNUtail.inc
+
diff --git a/uri/apr_uri.c b/uri/apr_uri.c
new file mode 100644
index 0000000..2a5aa3c
--- /dev/null
+++ b/uri/apr_uri.c
@@ -0,0 +1,462 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * apr_uri.c: URI related utility things
+ * 
+ */
+
+#include <stdlib.h>
+
+#include "apu.h"
+#include "apr.h"
+#include "apr_general.h"
+#include "apr_strings.h"
+
+#define APR_WANT_STRFUNC
+#include "apr_want.h"
+
+#include "apr_uri.h"
+
+typedef struct schemes_t schemes_t;
+
+/** Structure to store various schemes and their default ports */
+struct schemes_t {
+    /** The name of the scheme */
+    const char *name;
+    /** The default port for the scheme */
+    apr_port_t default_port;
+};
+
+/* Some WWW schemes and their default ports; this is basically /etc/services */
+/* This will become global when the protocol abstraction comes */
+/* As the schemes are searched by a linear search, */
+/* they are sorted by their expected frequency */
+static schemes_t schemes[] =
+{
+    {"http",     APR_URI_HTTP_DEFAULT_PORT},
+    {"ftp",      APR_URI_FTP_DEFAULT_PORT},
+    {"https",    APR_URI_HTTPS_DEFAULT_PORT},
+    {"gopher",   APR_URI_GOPHER_DEFAULT_PORT},
+    {"ldap",     APR_URI_LDAP_DEFAULT_PORT},
+    {"nntp",     APR_URI_NNTP_DEFAULT_PORT},
+    {"snews",    APR_URI_SNEWS_DEFAULT_PORT},
+    {"imap",     APR_URI_IMAP_DEFAULT_PORT},
+    {"pop",      APR_URI_POP_DEFAULT_PORT},
+    {"sip",      APR_URI_SIP_DEFAULT_PORT},
+    {"rtsp",     APR_URI_RTSP_DEFAULT_PORT},
+    {"wais",     APR_URI_WAIS_DEFAULT_PORT},
+    {"z39.50r",  APR_URI_WAIS_DEFAULT_PORT},
+    {"z39.50s",  APR_URI_WAIS_DEFAULT_PORT},
+    {"prospero", APR_URI_PROSPERO_DEFAULT_PORT},
+    {"nfs",      APR_URI_NFS_DEFAULT_PORT},
+    {"tip",      APR_URI_TIP_DEFAULT_PORT},
+    {"acap",     APR_URI_ACAP_DEFAULT_PORT},
+    {"telnet",   APR_URI_TELNET_DEFAULT_PORT},
+    {"ssh",      APR_URI_SSH_DEFAULT_PORT},
+    { NULL, 0xFFFF }     /* unknown port */
+};
+
+APU_DECLARE(apr_port_t) apr_uri_port_of_scheme(const char *scheme_str)
+{
+    schemes_t *scheme;
+
+    if (scheme_str) {
+        for (scheme = schemes; scheme->name != NULL; ++scheme) {
+            if (strcasecmp(scheme_str, scheme->name) == 0) {
+                return scheme->default_port;
+            }
+        }
+    }
+    return 0;
+}
+
+/* Unparse a apr_uri_t structure to an URI string.
+ * Optionally suppress the password for security reasons.
+ */
+APU_DECLARE(char *) apr_uri_unparse(apr_pool_t *p, 
+                                    const apr_uri_t *uptr, 
+                                    unsigned flags)
+{
+    char *ret = "";
+
+    /* If suppressing the site part, omit both user name & scheme://hostname */
+    if (!(flags & APR_URI_UNP_OMITSITEPART)) {
+
+        /* Construct a "user:password@" string, honoring the passed
+         * APR_URI_UNP_ flags: */
+        if (uptr->user || uptr->password) {
+            ret = apr_pstrcat(p,
+                      (uptr->user     && !(flags & APR_URI_UNP_OMITUSER))
+                          ? uptr->user : "",
+                      (uptr->password && !(flags & APR_URI_UNP_OMITPASSWORD))
+                          ? ":" : "",
+                      (uptr->password && !(flags & APR_URI_UNP_OMITPASSWORD))
+                          ? ((flags & APR_URI_UNP_REVEALPASSWORD)
+                              ? uptr->password : "XXXXXXXX")
+                          : "",
+                      ((uptr->user     && !(flags & APR_URI_UNP_OMITUSER)) ||
+                       (uptr->password && !(flags & APR_URI_UNP_OMITPASSWORD)))
+                          ? "@" : "", 
+                      NULL);
+        }
+
+        /* Construct scheme://site string */
+        if (uptr->hostname) {
+            int is_default_port;
+            const char *lbrk = "", *rbrk = "";
+
+            if (strchr(uptr->hostname, ':')) { /* v6 literal */
+                lbrk = "[";
+                rbrk = "]";
+            }
+
+            is_default_port =
+                (uptr->port_str == NULL ||
+                 uptr->port == 0 ||
+                 uptr->port == apr_uri_port_of_scheme(uptr->scheme));
+
+            if (uptr->scheme) {
+                ret = apr_pstrcat(p,
+                              uptr->scheme, "://", ret,
+                              lbrk, uptr->hostname, rbrk,
+                              is_default_port ? "" : ":",
+                              is_default_port ? "" : uptr->port_str,
+                              NULL);
+            }
+            else {
+                /* A violation of RFC2396, but it is clear from section 3.2
+                 * that the : belongs above to the scheme, while // belongs
+                 * to the authority, so include the authority prefix while
+                 * omitting the "scheme:" that the user neglected to pass us.
+                 */
+                ret = apr_pstrcat(p,
+                              "//", ret, lbrk, uptr->hostname, rbrk,
+                              is_default_port ? "" : ":",
+                              is_default_port ? "" : uptr->port_str,
+                              NULL);
+            }
+        }
+    }
+
+    /* Should we suppress all path info? */
+    if (!(flags & APR_URI_UNP_OMITPATHINFO)) {
+        /* Append path, query and fragment strings: */
+        ret = apr_pstrcat(p,
+                          ret,
+                          (uptr->path)
+                              ? uptr->path : "",
+                          (uptr->query    && !(flags & APR_URI_UNP_OMITQUERY))
+                              ? "?" : "",
+                          (uptr->query    && !(flags & APR_URI_UNP_OMITQUERY))
+                              ? uptr->query : "",
+                          (uptr->fragment && !(flags & APR_URI_UNP_OMITQUERY))
+                              ? "#" : NULL,
+                          (uptr->fragment && !(flags & APR_URI_UNP_OMITQUERY))
+                              ? uptr->fragment : NULL,
+                          NULL);
+    }
+    return ret;
+}
+
+/* Here is the hand-optimized parse_uri_components().  There are some wild
+ * tricks we could pull in assembly language that we don't pull here... like we
+ * can do word-at-time scans for delimiter characters using the same technique
+ * that fast memchr()s use.  But that would be way non-portable. -djg
+ */
+
+/* We have a apr_table_t that we can index by character and it tells us if the
+ * character is one of the interesting delimiters.  Note that we even get
+ * compares for NUL for free -- it's just another delimiter.
+ */
+
+#define T_COLON           0x01        /* ':' */
+#define T_SLASH           0x02        /* '/' */
+#define T_QUESTION        0x04        /* '?' */
+#define T_HASH            0x08        /* '#' */
+#define T_NUL             0x80        /* '\0' */
+
+#if APR_CHARSET_EBCDIC
+/* Delimiter table for the EBCDIC character set */
+static const unsigned char uri_delims[256] = {
+    T_NUL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,T_SLASH,0,0,0,0,0,0,0,0,0,0,0,0,0,T_QUESTION,
+    0,0,0,0,0,0,0,0,0,0,T_COLON,T_HASH,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+};
+#else
+/* Delimiter table for the ASCII character set */
+static const unsigned char uri_delims[256] = {
+    T_NUL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,T_HASH,0,0,0,0,0,0,0,0,0,0,0,T_SLASH,
+    0,0,0,0,0,0,0,0,0,0,T_COLON,0,0,0,0,T_QUESTION,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+};
+#endif
+
+
+/* it works like this:
+    if (uri_delims[ch] & NOTEND_foobar) {
+        then we're not at a delimiter for foobar
+    }
+*/
+
+/* Note that we optimize the scheme scanning here, we cheat and let the
+ * compiler know that it doesn't have to do the & masking.
+ */
+#define NOTEND_SCHEME     (0xff)
+#define NOTEND_HOSTINFO   (T_SLASH | T_QUESTION | T_HASH | T_NUL)
+#define NOTEND_PATH       (T_QUESTION | T_HASH | T_NUL)
+
+/* parse_uri_components():
+ * Parse a given URI, fill in all supplied fields of a uri_components
+ * structure. This eliminates the necessity of extracting host, port,
+ * path, query info repeatedly in the modules.
+ * Side effects:
+ *  - fills in fields of uri_components *uptr
+ *  - none on any of the r->* fields
+ */
+APU_DECLARE(apr_status_t) apr_uri_parse(apr_pool_t *p, const char *uri, 
+                                        apr_uri_t *uptr)
+{
+    const char *s;
+    const char *s1;
+    const char *hostinfo;
+    char *endstr;
+    int port;
+    int v6_offset1 = 0, v6_offset2 = 0;
+
+    /* Initialize the structure. parse_uri() and parse_uri_components()
+     * can be called more than once per request.
+     */
+    memset (uptr, '\0', sizeof(*uptr));
+    uptr->is_initialized = 1;
+
+    /* We assume the processor has a branch predictor like most --
+     * it assumes forward branches are untaken and backwards are taken.  That's
+     * the reason for the gotos.  -djg
+     */
+    if (uri[0] == '/') {
+        /* RFC2396 #4.3 says that two leading slashes mean we have an
+         * authority component, not a path!  Fixing this looks scary
+         * with the gotos here.  But if the existing logic is valid,
+         * then presumably a goto pointing to deal_with_authority works.
+         *
+         * RFC2396 describes this as resolving an ambiguity.  In the
+         * case of three or more slashes there would seem to be no
+         * ambiguity, so it is a path after all.
+         */
+        if (uri[1] == '/' && uri[2] != '/') {
+            s = uri + 2 ;
+            goto deal_with_authority ;
+        }
+
+deal_with_path:
+        /* we expect uri to point to first character of path ... remember
+         * that the path could be empty -- http://foobar?query for example
+         */
+        s = uri;
+        while ((uri_delims[*(unsigned char *)s] & NOTEND_PATH) == 0) {
+            ++s;
+        }
+        if (s != uri) {
+            uptr->path = apr_pstrmemdup(p, uri, s - uri);
+        }
+        if (*s == 0) {
+            return APR_SUCCESS;
+        }
+        if (*s == '?') {
+            ++s;
+            s1 = strchr(s, '#');
+            if (s1) {
+                uptr->fragment = apr_pstrdup(p, s1 + 1);
+                uptr->query = apr_pstrmemdup(p, s, s1 - s);
+            }
+            else {
+                uptr->query = apr_pstrdup(p, s);
+            }
+            return APR_SUCCESS;
+        }
+        /* otherwise it's a fragment */
+        uptr->fragment = apr_pstrdup(p, s + 1);
+        return APR_SUCCESS;
+    }
+
+    /* find the scheme: */
+    s = uri;
+    while ((uri_delims[*(unsigned char *)s] & NOTEND_SCHEME) == 0) {
+        ++s;
+    }
+    /* scheme must be non-empty and followed by :// */
+    if (s == uri || s[0] != ':' || s[1] != '/' || s[2] != '/') {
+        goto deal_with_path;        /* backwards predicted taken! */
+    }
+
+    uptr->scheme = apr_pstrmemdup(p, uri, s - uri);
+    s += 3;
+
+deal_with_authority:
+    hostinfo = s;
+    while ((uri_delims[*(unsigned char *)s] & NOTEND_HOSTINFO) == 0) {
+        ++s;
+    }
+    uri = s;        /* whatever follows hostinfo is start of uri */
+    uptr->hostinfo = apr_pstrmemdup(p, hostinfo, uri - hostinfo);
+
+    /* If there's a username:password@host:port, the @ we want is the last @...
+     * too bad there's no memrchr()... For the C purists, note that hostinfo
+     * is definately not the first character of the original uri so therefore
+     * &hostinfo[-1] < &hostinfo[0] ... and this loop is valid C.
+     */
+    do {
+        --s;
+    } while (s >= hostinfo && *s != '@');
+    if (s < hostinfo) {
+        /* again we want the common case to be fall through */
+deal_with_host:
+        /* We expect hostinfo to point to the first character of
+         * the hostname.  If there's a port it is the first colon,
+         * except with IPv6.
+         */
+        if (*hostinfo == '[') {
+            v6_offset1 = 1;
+            v6_offset2 = 2;
+            s = memchr(hostinfo, ']', uri - hostinfo);
+            if (s == NULL) {
+                return APR_EGENERAL;
+            }
+            if (*++s != ':') {
+                s = NULL; /* no port */
+            }
+        }
+        else {
+            s = memchr(hostinfo, ':', uri - hostinfo);
+        }
+        if (s == NULL) {
+            /* we expect the common case to have no port */
+            uptr->hostname = apr_pstrmemdup(p,
+                                            hostinfo + v6_offset1,
+                                            uri - hostinfo - v6_offset2);
+            goto deal_with_path;
+        }
+        uptr->hostname = apr_pstrmemdup(p,
+                                        hostinfo + v6_offset1,
+                                        s - hostinfo - v6_offset2);
+        ++s;
+        uptr->port_str = apr_pstrmemdup(p, s, uri - s);
+        if (uri != s) {
+            port = strtol(uptr->port_str, &endstr, 10);
+            uptr->port = port;
+            if (*endstr == '\0') {
+                goto deal_with_path;
+            }
+            /* Invalid characters after ':' found */
+            return APR_EGENERAL;
+        }
+        uptr->port = apr_uri_port_of_scheme(uptr->scheme);
+        goto deal_with_path;
+    }
+
+    /* first colon delimits username:password */
+    s1 = memchr(hostinfo, ':', s - hostinfo);
+    if (s1) {
+        uptr->user = apr_pstrmemdup(p, hostinfo, s1 - hostinfo);
+        ++s1;
+        uptr->password = apr_pstrmemdup(p, s1, s - s1);
+    }
+    else {
+        uptr->user = apr_pstrmemdup(p, hostinfo, s - hostinfo);
+    }
+    hostinfo = s + 1;
+    goto deal_with_host;
+}
+
+/* Special case for CONNECT parsing: it comes with the hostinfo part only */
+/* See the INTERNET-DRAFT document "Tunneling SSL Through a WWW Proxy"
+ * currently at http://www.mcom.com/newsref/std/tunneling_ssl.html
+ * for the format of the "CONNECT host:port HTTP/1.0" request
+ */
+APU_DECLARE(apr_status_t) apr_uri_parse_hostinfo(apr_pool_t *p, 
+                                                 const char *hostinfo, 
+                                                 apr_uri_t *uptr)
+{
+    const char *s;
+    char *endstr;
+    const char *rsb;
+    int v6_offset1 = 0;
+
+    /* Initialize the structure. parse_uri() and parse_uri_components()
+     * can be called more than once per request.
+     */
+    memset(uptr, '\0', sizeof(*uptr));
+    uptr->is_initialized = 1;
+    uptr->hostinfo = apr_pstrdup(p, hostinfo);
+
+    /* We expect hostinfo to point to the first character of
+     * the hostname.  There must be a port, separated by a colon
+     */
+    if (*hostinfo == '[') {
+        if ((rsb = strchr(hostinfo, ']')) == NULL ||
+            *(rsb + 1) != ':') {
+            return APR_EGENERAL;
+        }
+        /* literal IPv6 address */
+        s = rsb + 1;
+        ++hostinfo;
+        v6_offset1 = 1;
+    }
+    else {
+        s = strchr(hostinfo, ':');
+    }
+    if (s == NULL) {
+        return APR_EGENERAL;
+    }
+    uptr->hostname = apr_pstrndup(p, hostinfo, s - hostinfo - v6_offset1);
+    ++s;
+    uptr->port_str = apr_pstrdup(p, s);
+    if (*s != '\0') {
+        uptr->port = (unsigned short) strtol(uptr->port_str, &endstr, 10);
+        if (*endstr == '\0') {
+            return APR_SUCCESS;
+        }
+        /* Invalid characters after ':' found */
+    }
+    return APR_EGENERAL;
+}
diff --git a/xlate/xlate.c b/xlate/xlate.c
new file mode 100644
index 0000000..1ea840e
--- /dev/null
+++ b/xlate/xlate.c
@@ -0,0 +1,458 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apu.h"
+#include "apu_config.h"
+#include "apr_lib.h"
+#include "apr_strings.h"
+#include "apr_portable.h"
+#include "apr_xlate.h"
+
+/* If no implementation is available, don't generate code here since
+ * apr_xlate.h emitted macros which return APR_ENOTIMPL.
+ */
+
+#if APR_HAS_XLATE
+
+#ifdef HAVE_STDDEF_H
+#include <stddef.h> /* for NULL */
+#endif
+#if APR_HAVE_STRING_H
+#include <string.h>
+#endif
+#if APR_HAVE_STRINGS_H
+#include <strings.h>
+#endif
+#ifdef HAVE_ICONV_H
+#include <iconv.h>
+#endif
+#if APU_HAVE_APR_ICONV
+#include <apr_iconv.h>
+#endif
+
+#if defined(APU_ICONV_INBUF_CONST) || APU_HAVE_APR_ICONV
+#define ICONV_INBUF_TYPE const char **
+#else
+#define ICONV_INBUF_TYPE char **
+#endif
+
+#ifndef min
+#define min(x,y) ((x) <= (y) ? (x) : (y))
+#endif
+
+struct apr_xlate_t {
+    apr_pool_t *pool;
+    char *frompage;
+    char *topage;
+    char *sbcs_table;
+#if APU_HAVE_ICONV
+    iconv_t ich;
+#elif APU_HAVE_APR_ICONV
+    apr_iconv_t ich;
+#endif
+};
+
+
+static const char *handle_special_names(const char *page, apr_pool_t *pool)
+{
+    if (page == APR_DEFAULT_CHARSET) {
+        return apr_os_default_encoding(pool);
+    }
+    else if (page == APR_LOCALE_CHARSET) {
+        return apr_os_locale_encoding(pool);
+    }
+    else {
+        return page;
+    }
+}
+
+static apr_status_t apr_xlate_cleanup(void *convset)
+{
+    apr_xlate_t *old = convset;
+
+#if APU_HAVE_APR_ICONV
+    if (old->ich != (apr_iconv_t)-1) {
+        return apr_iconv_close(old->ich, old->pool);
+    }
+
+#elif APU_HAVE_ICONV
+    if (old->ich != (iconv_t)-1) {
+        if (iconv_close(old->ich)) {
+            int rv = errno;
+
+            /* Sometimes, iconv is not good about setting errno. */
+            return rv ? rv : APR_EINVAL;
+        }
+    }
+#endif
+
+    return APR_SUCCESS;
+}
+
+#if APU_HAVE_ICONV
+static void check_sbcs(apr_xlate_t *convset)
+{
+    char inbuf[256], outbuf[256];
+    char *inbufptr = inbuf;
+    char *outbufptr = outbuf;
+    apr_size_t inbytes_left, outbytes_left;
+    int i;
+    apr_size_t translated;
+
+    for (i = 0; i < sizeof(inbuf); i++) {
+        inbuf[i] = i;
+    }
+
+    inbytes_left = outbytes_left = sizeof(inbuf);
+    translated = iconv(convset->ich, (ICONV_INBUF_TYPE)&inbufptr,
+                       &inbytes_left, &outbufptr, &outbytes_left);
+
+    if (translated != (apr_size_t)-1
+        && inbytes_left == 0
+        && outbytes_left == 0) {
+        /* hurray... this is simple translation; save the table,
+         * close the iconv descriptor
+         */
+
+        convset->sbcs_table = apr_palloc(convset->pool, sizeof(outbuf));
+        memcpy(convset->sbcs_table, outbuf, sizeof(outbuf));
+        iconv_close(convset->ich);
+        convset->ich = (iconv_t)-1;
+
+        /* TODO: add the table to the cache */
+    }
+    else {
+        /* reset the iconv descriptor, since it's now in an undefined
+         * state. */
+        iconv_close(convset->ich);
+        convset->ich = iconv_open(convset->topage, convset->frompage);
+    }
+}
+#elif APU_HAVE_APR_ICONV
+static void check_sbcs(apr_xlate_t *convset)
+{
+    char inbuf[256], outbuf[256];
+    char *inbufptr = inbuf;
+    char *outbufptr = outbuf;
+    apr_size_t inbytes_left, outbytes_left;
+    int i;
+    apr_size_t translated;
+    apr_status_t rv;
+
+    for (i = 0; i < sizeof(inbuf); i++) {
+        inbuf[i] = i;
+    }
+
+    inbytes_left = outbytes_left = sizeof(inbuf);
+    rv = apr_iconv(convset->ich, (ICONV_INBUF_TYPE)&inbufptr,
+                   &inbytes_left, &outbufptr, &outbytes_left,
+                   &translated);
+
+    if ((rv == APR_SUCCESS)
+        && (translated != (apr_size_t)-1)
+        && inbytes_left == 0
+        && outbytes_left == 0) {
+        /* hurray... this is simple translation; save the table,
+         * close the iconv descriptor
+         */
+
+        convset->sbcs_table = apr_palloc(convset->pool, sizeof(outbuf));
+        memcpy(convset->sbcs_table, outbuf, sizeof(outbuf));
+        apr_iconv_close(convset->ich, convset->pool);
+        convset->ich = (apr_iconv_t)-1;
+
+        /* TODO: add the table to the cache */
+    }
+    else {
+        /* reset the iconv descriptor, since it's now in an undefined
+         * state. */
+        apr_iconv_close(convset->ich, convset->pool);
+        rv = apr_iconv_open(convset->topage, convset->frompage, 
+                            convset->pool, &convset->ich);
+    }
+}
+#endif /* APU_HAVE_APR_ICONV */
+
+static void make_identity_table(apr_xlate_t *convset)
+{
+  int i;
+
+  convset->sbcs_table = apr_palloc(convset->pool, 256);
+  for (i = 0; i < 256; i++)
+      convset->sbcs_table[i] = i;
+}
+
+APU_DECLARE(apr_status_t) apr_xlate_open(apr_xlate_t **convset,
+                                         const char *topage,
+                                         const char *frompage,
+                                         apr_pool_t *pool)
+{
+    apr_status_t rv;
+    apr_xlate_t *new;
+    int found = 0;
+
+    *convset = NULL;
+
+    topage = handle_special_names(topage, pool);
+    frompage = handle_special_names(frompage, pool);
+
+    new = (apr_xlate_t *)apr_pcalloc(pool, sizeof(apr_xlate_t));
+    if (!new) {
+        return APR_ENOMEM;
+    }
+
+    new->pool = pool;
+    new->topage = apr_pstrdup(pool, topage);
+    new->frompage = apr_pstrdup(pool, frompage);
+    if (!new->topage || !new->frompage) {
+        return APR_ENOMEM;
+    }
+
+#ifdef TODO
+    /* search cache of codepage pairs; we may be able to avoid the
+     * expensive iconv_open()
+     */
+
+    set found to non-zero if found in the cache
+#endif
+
+    if ((! found) && (strcmp(topage, frompage) == 0)) {
+        /* to and from are the same */
+        found = 1;
+        make_identity_table(new);
+    }
+
+#if APU_HAVE_APR_ICONV
+    if (!found) {
+        rv = apr_iconv_open(topage, frompage, pool, &new->ich);
+        if (rv != APR_SUCCESS) {
+            return rv;
+        }
+        found = 1;
+        check_sbcs(new);
+    } else
+        new->ich = (apr_iconv_t)-1;
+
+#elif APU_HAVE_ICONV
+    if (!found) {
+        new->ich = iconv_open(topage, frompage);
+        if (new->ich == (iconv_t)-1) {
+            int rv = errno;
+            /* Sometimes, iconv is not good about setting errno. */
+            return rv ? rv : APR_EINVAL;
+        }
+        found = 1;
+        check_sbcs(new);
+    } else
+        new->ich = (iconv_t)-1;
+#endif /* APU_HAVE_ICONV */
+
+    if (found) {
+        *convset = new;
+        apr_pool_cleanup_register(pool, (void *)new, apr_xlate_cleanup,
+                            apr_pool_cleanup_null);
+        rv = APR_SUCCESS;
+    }
+    else {
+        rv = APR_EINVAL; /* iconv() would return EINVAL if it
+                                couldn't handle the pair */
+    }
+
+    return rv;
+}
+
+APU_DECLARE(apr_status_t) apr_xlate_sb_get(apr_xlate_t *convset, int *onoff)
+{
+    *onoff = convset->sbcs_table != NULL;
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_status_t) apr_xlate_conv_buffer(apr_xlate_t *convset,
+                                                const char *inbuf,
+                                                apr_size_t *inbytes_left,
+                                                char *outbuf,
+                                                apr_size_t *outbytes_left)
+{
+    apr_status_t status = APR_SUCCESS;
+
+#if APU_HAVE_APR_ICONV
+    if (convset->ich != (apr_iconv_t)-1) {
+        const char *inbufptr = inbuf;
+        apr_size_t translated;
+        char *outbufptr = outbuf;
+        status = apr_iconv(convset->ich, &inbufptr, inbytes_left,
+                           &outbufptr, outbytes_left, &translated);
+
+        /* If everything went fine but we ran out of buffer, don't
+         * report it as an error.  Caller needs to look at the two
+         * bytes-left values anyway.
+         *
+         * There are three expected cases where rc is -1.  In each of
+         * these cases, *inbytes_left != 0.
+         * a) the non-error condition where we ran out of output
+         *    buffer
+         * b) the non-error condition where we ran out of input (i.e.,
+         *    the last input character is incomplete)
+         * c) the error condition where the input is invalid
+         */
+        switch (status) {
+
+            case APR_BADARG:  /* out of space on output */
+                status = 0; /* change table lookup code below if you
+                               make this an error */
+                break;
+
+            case APR_EINVAL: /* input character not complete (yet) */
+                status = APR_INCOMPLETE;
+                break;
+
+            case APR_BADCH: /* bad input byte */
+                status = APR_EINVAL;
+                break;
+
+             /* Sometimes, iconv is not good about setting errno. */
+            case 0:
+                if (inbytes_left && *inbytes_left)
+                    status = APR_INCOMPLETE;
+                break;
+
+            default:
+                break;
+        }
+    }
+    else
+
+#elif APU_HAVE_ICONV
+    if (convset->ich != (iconv_t)-1) {
+        const char *inbufptr = inbuf;
+        char *outbufptr = outbuf;
+        apr_size_t translated;
+        translated = iconv(convset->ich, (ICONV_INBUF_TYPE)&inbufptr,
+                           inbytes_left, &outbufptr, outbytes_left);
+
+        /* If everything went fine but we ran out of buffer, don't
+         * report it as an error.  Caller needs to look at the two
+         * bytes-left values anyway.
+         *
+         * There are three expected cases where rc is -1.  In each of
+         * these cases, *inbytes_left != 0.
+         * a) the non-error condition where we ran out of output
+         *    buffer
+         * b) the non-error condition where we ran out of input (i.e.,
+         *    the last input character is incomplete)
+         * c) the error condition where the input is invalid
+         */
+        if (translated == (apr_size_t)-1) {
+            int rv = errno;
+            switch (rv) {
+
+            case E2BIG:  /* out of space on output */
+                status = 0; /* change table lookup code below if you
+                               make this an error */
+                break;
+
+            case EINVAL: /* input character not complete (yet) */
+                status = APR_INCOMPLETE;
+                break;
+
+            case EILSEQ: /* bad input byte */
+                status = APR_EINVAL;
+                break;
+
+             /* Sometimes, iconv is not good about setting errno. */
+            case 0:
+                status = APR_INCOMPLETE;
+                break;
+
+            default:
+                status = rv;
+                break;
+            }
+        }
+    }
+    else
+#endif
+
+    if (inbuf) {
+        apr_size_t to_convert = min(*inbytes_left, *outbytes_left);
+        apr_size_t converted = to_convert;
+        char *table = convset->sbcs_table;
+
+        while (to_convert) {
+            *outbuf = table[(unsigned char)*inbuf];
+            ++outbuf;
+            ++inbuf;
+            --to_convert;
+        }
+        *inbytes_left -= converted;
+        *outbytes_left -= converted;
+    }
+
+    return status;
+}
+
+APU_DECLARE(apr_int32_t) apr_xlate_conv_byte(apr_xlate_t *convset,
+                                             unsigned char inchar)
+{
+    if (convset->sbcs_table) {
+        return convset->sbcs_table[inchar];
+    }
+    else {
+        return -1;
+    }
+}
+
+APU_DECLARE(apr_status_t) apr_xlate_close(apr_xlate_t *convset)
+{
+    return apr_pool_cleanup_run(convset->pool, convset, apr_xlate_cleanup);
+}
+
+#else /* !APR_HAS_XLATE */
+
+APU_DECLARE(apr_status_t) apr_xlate_open(apr_xlate_t **convset,
+                                         const char *topage,
+                                         const char *frompage,
+                                         apr_pool_t *pool)
+{
+    return APR_ENOTIMPL;
+}
+
+APU_DECLARE(apr_status_t) apr_xlate_sb_get(apr_xlate_t *convset, int *onoff)
+{
+    return APR_ENOTIMPL;
+}
+
+APU_DECLARE(apr_int32_t) apr_xlate_conv_byte(apr_xlate_t *convset,
+                                             unsigned char inchar)
+{
+    return (-1);
+}
+
+APU_DECLARE(apr_status_t) apr_xlate_conv_buffer(apr_xlate_t *convset,
+                                                const char *inbuf,
+                                                apr_size_t *inbytes_left,
+                                                char *outbuf,
+                                                apr_size_t *outbytes_left)
+{
+    return APR_ENOTIMPL;
+}
+
+APU_DECLARE(apr_status_t) apr_xlate_close(apr_xlate_t *convset)
+{
+    return APR_ENOTIMPL;
+}
+
+#endif /* APR_HAS_XLATE */
diff --git a/xml/NWGNUmakefile b/xml/NWGNUmakefile
new file mode 100644
index 0000000..5f85964
--- /dev/null
+++ b/xml/NWGNUmakefile
@@ -0,0 +1,258 @@
+#
+# Declare the sub-directories to be built here
+#
+
+SUBDIRS = \
+	$(EOLIST) 
+
+#
+# Get the 'head' of the build environment.  This includes default targets and
+# paths to tools
+#
+
+include $(APR_WORK)\build\NWGNUhead.inc
+
+#
+# build this level's files
+
+#
+# Make sure all needed macro's are defined
+#
+
+#
+# These directories will be at the beginning of the include list, followed by
+# INCDIRS
+#
+XINCDIRS	+= \
+			$(APR)/include \
+			$(APR)/include/arch/NetWare \
+			$(APRUTIL)/include \
+			$(APRUTIL)/uri \
+			$(APRUTIL)/dbm/sdbm \
+			$(APRUTIL)/include/private \
+			$(APRUTIL)/xml/expat/lib \
+			$(EOLIST)
+
+#
+# These flags will come after CFLAGS
+#
+XCFLAGS		+= \
+			$(EOLIST)
+
+#
+# These defines will come after DEFINES
+#
+XDEFINES	+= \
+			$(EOLIST)
+
+#
+# These flags will be added to the link.opt file
+#
+XLFLAGS		+= \
+			$(EOLIST)
+
+#
+# These values will be appended to the correct variables based on the value of
+# RELEASE
+#
+ifeq "$(RELEASE)" "debug"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+ifeq "$(RELEASE)" "noopt"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+ifeq "$(RELEASE)" "release"
+XINCDIRS	+= \
+			$(EOLIST)
+
+XCFLAGS		+= \
+			$(EOLIST)
+
+XDEFINES	+= \
+			$(EOLIST)
+
+XLFLAGS		+= \
+			$(EOLIST)
+endif
+
+#
+# These are used by the link target if an NLM is being generated
+# This is used by the link 'name' directive to name the nlm.  If left blank
+# TARGET_nlm (see below) will be used.
+#
+NLM_NAME		= 
+
+#
+# This is used by the link '-desc ' directive. 
+# If left blank, NLM_NAME will be used.
+#
+NLM_DESCRIPTION	= 
+
+#
+# This is used by the '-threadname' directive.  If left blank,
+# NLM_NAME Thread will be used.
+#
+NLM_THREAD_NAME	= 
+#
+# If this is specified, it will override VERSION value in 
+# $(APR_WORK)\build\NWGNUenvironment.inc
+#
+NLM_VERSION		=
+
+#
+# If this is specified, it will override the default of 64K
+#
+NLM_STACK_SIZE	= 
+
+#
+# If this is specified it will be used by the link '-entry' directive
+#
+NLM_ENTRY_SYM	= 
+
+#
+# If this is specified it will be used by the link '-exit' directive
+#
+NLM_EXIT_SYM	= 
+
+#
+# If this is specified it will be used by the link '-check' directive
+#
+NLM_CHECK_SYM	=
+
+#
+# If this is specified it will be used by the link '-flags' directive
+#
+NLM_FLAGS		=
+ 
+#
+# If this is specified it will be linked in with the XDCData option in the def 
+# file instead of the default of $(APR)/misc/netware/apache.xdc.  XDCData can 
+# be disabled by setting APACHE_UNIPROC in the environment
+#
+XDCDATA         = 
+
+#
+# Declare all target files (you must add your files here)
+#
+
+#
+# If there is an NLM target, put it here
+#
+TARGET_nlm = \
+	$(EOLIST)
+
+#
+# If there is an LIB target, put it here
+#
+TARGET_lib = \
+	$(OBJDIR)/xmllib.lib \
+	$(EOLIST)
+
+#
+# These are the OBJ files needed to create the NLM target above.
+# Paths must all use the '/' character
+#
+FILES_nlm_objs = \
+	$(EOLIST)
+
+#
+# These are the LIB files needed to create the NLM target above.
+# These will be added as a library command in the link.opt file.
+#
+FILES_nlm_libs = \
+	$(EOLIST)
+
+#
+# These are the modules that the above NLM target depends on to load.
+# These will be added as a module command in the link.opt file.
+#
+FILES_nlm_modules = \
+	$(EOLIST)
+
+#
+# If the nlm has a msg file, put it's path here
+#
+FILE_nlm_msg =
+ 
+#
+# If the nlm has a hlp file put it's path here
+#
+FILE_nlm_hlp =
+
+#
+# If this is specified, it will override the default copyright.
+#
+FILE_nlm_copyright =
+
+#
+# Any additional imports go here
+#
+FILES_nlm_Ximports = \
+	$(EOLIST)
+ 
+#   
+# Any symbols exported to here
+#
+FILES_nlm_exports = \
+	$(EOLIST)
+	
+#   
+# These are the OBJ files needed to create the LIB target above.
+# Paths must all use the '/' character
+#
+FILES_lib_objs = \
+	$(OBJDIR)/apr_xml.o \
+	$(OBJDIR)/xmlparse.o \
+	$(OBJDIR)/xmlrole.o \
+	$(OBJDIR)/xmltok.o \
+	$(EOLIST)
+
+#
+# implement targets and dependancies (leave this section alone)
+#
+
+libs :: $(OBJDIR) $(TARGET_lib)
+
+nlms :: libs $(TARGET_nlm)
+
+#
+# Updated this target to create necessary directories and copy files to the 
+# correct place.  (See $(APR_WORK)\build\NWGNUhead.inc for examples)
+#
+install :: nlms FORCE
+
+#
+# Any specialized rules here
+#
+
+vpath %.c expat/lib
+
+#
+# Include the 'tail' makefile that has targets that depend on variables defined
+# in this makefile
+#
+
+include $(APR_WORK)\build\NWGNUtail.inc
+
diff --git a/xml/apr_xml.c b/xml/apr_xml.c
new file mode 100644
index 0000000..256223f
--- /dev/null
+++ b/xml/apr_xml.c
@@ -0,0 +1,983 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr.h"
+#include "apr_strings.h"
+
+#define APR_WANT_STDIO          /* for sprintf() */
+#define APR_WANT_STRFUNC
+#include "apr_want.h"
+
+#include "apr_xml.h"
+
+#include "apu_config.h"
+
+#if defined(HAVE_XMLPARSE_XMLPARSE_H)
+#include <xmlparse/xmlparse.h>
+#elif defined(HAVE_XMLTOK_XMLPARSE_H)
+#include <xmltok/xmlparse.h>
+#elif defined(HAVE_XML_XMLPARSE_H)
+#include <xml/xmlparse.h>
+#else
+#include <expat.h>
+#endif
+
+#define DEBUG_CR "\r\n"
+
+static const char APR_KW_xmlns[] = { 0x78, 0x6D, 0x6C, 0x6E, 0x73, '\0' };
+static const char APR_KW_xmlns_lang[] = { 0x78, 0x6D, 0x6C, 0x3A, 0x6C, 0x61, 0x6E, 0x67, '\0' };
+static const char APR_KW_DAV[] = { 0x44, 0x41, 0x56, 0x3A, '\0' };
+
+/* errors related to namespace processing */
+#define APR_XML_NS_ERROR_UNKNOWN_PREFIX (-1000)
+#define APR_XML_NS_ERROR_INVALID_DECL (-1001)
+
+/* test for a namespace prefix that begins with [Xx][Mm][Ll] */
+#define APR_XML_NS_IS_RESERVED(name) \
+	( (name[0] == 0x58 || name[0] == 0x78) && \
+	  (name[1] == 0x4D || name[1] == 0x6D) && \
+	  (name[2] == 0x4C || name[2] == 0x6C) )
+
+
+/* the real (internal) definition of the parser context */
+struct apr_xml_parser {
+    apr_xml_doc *doc;		/* the doc we're parsing */
+    apr_pool_t *p;		/* the pool we allocate from */
+    apr_xml_elem *cur_elem;	/* current element */
+
+    int error;			/* an error has occurred */
+#define APR_XML_ERROR_EXPAT             1
+#define APR_XML_ERROR_PARSE_DONE        2
+/* also: public APR_XML_NS_ERROR_* values (if any) */
+
+    XML_Parser xp;              /* the actual (Expat) XML parser */
+    enum XML_Error xp_err;      /* stored Expat error code */
+};
+
+/* struct for scoping namespace declarations */
+typedef struct apr_xml_ns_scope {
+    const char *prefix;		/* prefix used for this ns */
+    int ns;			/* index into namespace table */
+    int emptyURI;		/* the namespace URI is the empty string */
+    struct apr_xml_ns_scope *next;	/* next scoped namespace */
+} apr_xml_ns_scope;
+
+
+/* return namespace table index for a given prefix */
+static int find_prefix(apr_xml_parser *parser, const char *prefix)
+{
+    apr_xml_elem *elem = parser->cur_elem;
+
+    /*
+    ** Walk up the tree, looking for a namespace scope that defines this
+    ** prefix.
+    */
+    for (; elem; elem = elem->parent) {
+	apr_xml_ns_scope *ns_scope = elem->ns_scope;
+
+	for (ns_scope = elem->ns_scope; ns_scope; ns_scope = ns_scope->next) {
+	    if (strcmp(prefix, ns_scope->prefix) == 0) {
+		if (ns_scope->emptyURI) {
+		    /*
+		    ** It is possible to set the default namespace to an
+		    ** empty URI string; this resets the default namespace
+		    ** to mean "no namespace." We just found the prefix
+		    ** refers to an empty URI, so return "no namespace."
+		    */
+		    return APR_XML_NS_NONE;
+		}
+
+		return ns_scope->ns;
+	    }
+	}
+    }
+
+    /*
+     * If the prefix is empty (""), this means that a prefix was not
+     * specified in the element/attribute. The search that was performed
+     * just above did not locate a default namespace URI (which is stored
+     * into ns_scope with an empty prefix). This means the element/attribute
+     * has "no namespace". We have a reserved value for this.
+     */
+    if (*prefix == '\0') {
+	return APR_XML_NS_NONE;
+    }
+
+    /* not found */
+    return APR_XML_NS_ERROR_UNKNOWN_PREFIX;
+}
+
+static void start_handler(void *userdata, const char *name, const char **attrs)
+{
+    apr_xml_parser *parser = userdata;
+    apr_xml_elem *elem;
+    apr_xml_attr *attr;
+    apr_xml_attr *prev;
+    char *colon;
+    const char *quoted;
+    char *elem_name;
+
+    /* punt once we find an error */
+    if (parser->error)
+	return;
+
+    elem = apr_pcalloc(parser->p, sizeof(*elem));
+
+    /* prep the element */
+    elem->name = elem_name = apr_pstrdup(parser->p, name);
+
+    /* fill in the attributes (note: ends up in reverse order) */
+    while (*attrs) {
+	attr = apr_palloc(parser->p, sizeof(*attr));
+	attr->name = apr_pstrdup(parser->p, *attrs++);
+	attr->value = apr_pstrdup(parser->p, *attrs++);
+	attr->next = elem->attr;
+	elem->attr = attr;
+    }
+
+    /* hook the element into the tree */
+    if (parser->cur_elem == NULL) {
+	/* no current element; this also becomes the root */
+	parser->cur_elem = parser->doc->root = elem;
+    }
+    else {
+	/* this element appeared within the current elem */
+	elem->parent = parser->cur_elem;
+
+	/* set up the child/sibling links */
+	if (elem->parent->last_child == NULL) {
+	    /* no first child either */
+	    elem->parent->first_child = elem->parent->last_child = elem;
+	}
+	else {
+	    /* hook onto the end of the parent's children */
+	    elem->parent->last_child->next = elem;
+	    elem->parent->last_child = elem;
+	}
+
+	/* this element is now the current element */
+	parser->cur_elem = elem;
+    }
+
+    /* scan the attributes for namespace declarations */
+    for (prev = NULL, attr = elem->attr;
+	 attr;
+	 attr = attr->next) {
+	if (strncmp(attr->name, APR_KW_xmlns, 5) == 0) {
+	    const char *prefix = &attr->name[5];
+	    apr_xml_ns_scope *ns_scope;
+
+	    /* test for xmlns:foo= form and xmlns= form */
+	    if (*prefix == 0x3A) {
+                /* a namespace prefix declaration must have a
+                   non-empty value. */
+                if (attr->value[0] == '\0') {
+                    parser->error = APR_XML_NS_ERROR_INVALID_DECL;
+                    return;
+                }
+		++prefix;
+            }
+	    else if (*prefix != '\0') {
+		/* advance "prev" since "attr" is still present */
+		prev = attr;
+		continue;
+	    }
+
+	    /* quote the URI before we ever start working with it */
+	    quoted = apr_xml_quote_string(parser->p, attr->value, 1);
+
+	    /* build and insert the new scope */
+	    ns_scope = apr_pcalloc(parser->p, sizeof(*ns_scope));
+	    ns_scope->prefix = prefix;
+	    ns_scope->ns = apr_xml_insert_uri(parser->doc->namespaces, quoted);
+	    ns_scope->emptyURI = *quoted == '\0';
+	    ns_scope->next = elem->ns_scope;
+	    elem->ns_scope = ns_scope;
+
+	    /* remove this attribute from the element */
+	    if (prev == NULL)
+		elem->attr = attr->next;
+	    else
+		prev->next = attr->next;
+
+	    /* Note: prev will not be advanced since we just removed "attr" */
+	}
+	else if (strcmp(attr->name, APR_KW_xmlns_lang) == 0) {
+	    /* save away the language (in quoted form) */
+	    elem->lang = apr_xml_quote_string(parser->p, attr->value, 1);
+
+	    /* remove this attribute from the element */
+	    if (prev == NULL)
+		elem->attr = attr->next;
+	    else
+		prev->next = attr->next;
+
+	    /* Note: prev will not be advanced since we just removed "attr" */
+	}
+	else {
+	    /* advance "prev" since "attr" is still present */
+	    prev = attr;
+	}
+    }
+
+    /*
+    ** If an xml:lang attribute didn't exist (lang==NULL), then copy the
+    ** language from the parent element (if present).
+    **
+    ** NOTE: elem_size() *depends* upon this pointer equality.
+    */
+    if (elem->lang == NULL && elem->parent != NULL)
+	elem->lang = elem->parent->lang;
+
+    /* adjust the element's namespace */
+    colon = strchr(elem_name, 0x3A);
+    if (colon == NULL) {
+	/*
+	 * The element is using the default namespace, which will always
+	 * be found. Either it will be "no namespace", or a default
+	 * namespace URI has been specified at some point.
+	 */
+	elem->ns = find_prefix(parser, "");
+    }
+    else if (APR_XML_NS_IS_RESERVED(elem->name)) {
+	elem->ns = APR_XML_NS_NONE;
+    }
+    else {
+	*colon = '\0';
+	elem->ns = find_prefix(parser, elem->name);
+	elem->name = colon + 1;
+
+	if (APR_XML_NS_IS_ERROR(elem->ns)) {
+	    parser->error = elem->ns;
+	    return;
+	}
+    }
+
+    /* adjust all remaining attributes' namespaces */
+    for (attr = elem->attr; attr; attr = attr->next) {
+        /*
+         * apr_xml_attr defines this as "const" but we dup'd it, so we
+         * know that we can change it. a bit hacky, but the existing
+         * structure def is best.
+         */
+        char *attr_name = (char *)attr->name;
+
+	colon = strchr(attr_name, 0x3A);
+	if (colon == NULL) {
+	    /*
+	     * Attributes do NOT use the default namespace. Therefore,
+	     * we place them into the "no namespace" category.
+	     */
+	    attr->ns = APR_XML_NS_NONE;
+	}
+	else if (APR_XML_NS_IS_RESERVED(attr->name)) {
+	    attr->ns = APR_XML_NS_NONE;
+	}
+	else {
+	    *colon = '\0';
+	    attr->ns = find_prefix(parser, attr->name);
+	    attr->name = colon + 1;
+
+	    if (APR_XML_NS_IS_ERROR(attr->ns)) {
+		parser->error = attr->ns;
+		return;
+	    }
+	}
+    }
+}
+
+static void end_handler(void *userdata, const char *name)
+{
+    apr_xml_parser *parser = userdata;
+
+    /* punt once we find an error */
+    if (parser->error)
+	return;
+
+    /* pop up one level */
+    parser->cur_elem = parser->cur_elem->parent;
+}
+
+static void cdata_handler(void *userdata, const char *data, int len)
+{
+    apr_xml_parser *parser = userdata;
+    apr_xml_elem *elem;
+    apr_text_header *hdr;
+    const char *s;
+
+    /* punt once we find an error */
+    if (parser->error)
+	return;
+
+    elem = parser->cur_elem;
+    s = apr_pstrndup(parser->p, data, len);
+
+    if (elem->last_child == NULL) {
+	/* no children yet. this cdata follows the start tag */
+	hdr = &elem->first_cdata;
+    }
+    else {
+	/* child elements exist. this cdata follows the last child. */
+	hdr = &elem->last_child->following_cdata;
+    }
+
+    apr_text_append(parser->p, hdr, s);
+}
+
+static apr_status_t cleanup_parser(void *ctx)
+{
+    apr_xml_parser *parser = ctx;
+
+    XML_ParserFree(parser->xp);
+    parser->xp = NULL;
+
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(apr_xml_parser *) apr_xml_parser_create(apr_pool_t *pool)
+{
+    apr_xml_parser *parser = apr_pcalloc(pool, sizeof(*parser));
+
+    parser->p = pool;
+    parser->doc = apr_pcalloc(pool, sizeof(*parser->doc));
+
+    parser->doc->namespaces = apr_array_make(pool, 5, sizeof(const char *));
+
+    /* ### is there a way to avoid hard-coding this? */
+    apr_xml_insert_uri(parser->doc->namespaces, APR_KW_DAV);
+
+    parser->xp = XML_ParserCreate(NULL);
+    if (parser->xp == NULL) {
+        (*apr_pool_abort_get(pool))(APR_ENOMEM);
+        return NULL;
+    }
+
+    apr_pool_cleanup_register(pool, parser, cleanup_parser,
+                              apr_pool_cleanup_null);
+
+    XML_SetUserData(parser->xp, parser);
+    XML_SetElementHandler(parser->xp, start_handler, end_handler);
+    XML_SetCharacterDataHandler(parser->xp, cdata_handler);
+
+    return parser;
+}
+
+static apr_status_t do_parse(apr_xml_parser *parser,
+                             const char *data, apr_size_t len,
+                             int is_final)
+{
+    if (parser->xp == NULL) {
+        parser->error = APR_XML_ERROR_PARSE_DONE;
+    }
+    else {
+        int rv = XML_Parse(parser->xp, data, (int)len, is_final);
+
+        if (rv == 0) {
+            parser->error = APR_XML_ERROR_EXPAT;
+            parser->xp_err = XML_GetErrorCode(parser->xp);
+        }
+    }
+
+    /* ### better error code? */
+    return parser->error ? APR_EGENERAL : APR_SUCCESS;
+}
+
+APU_DECLARE(apr_status_t) apr_xml_parser_feed(apr_xml_parser *parser,
+                                              const char *data,
+                                              apr_size_t len)
+{
+    return do_parse(parser, data, len, 0 /* is_final */);
+}
+
+APU_DECLARE(apr_status_t) apr_xml_parser_done(apr_xml_parser *parser,
+                                              apr_xml_doc **pdoc)
+{
+    char end;
+    apr_status_t status = do_parse(parser, &end, 0, 1 /* is_final */);
+
+    /* get rid of the parser */
+    (void) apr_pool_cleanup_run(parser->p, parser, cleanup_parser);
+
+    if (status)
+        return status;
+
+    if (pdoc != NULL)
+        *pdoc = parser->doc;
+    return APR_SUCCESS;
+}
+
+APU_DECLARE(char *) apr_xml_parser_geterror(apr_xml_parser *parser,
+                                            char *errbuf,
+                                            apr_size_t errbufsize)
+{
+    int error = parser->error;
+    const char *msg;
+
+    /* clear our record of an error */
+    parser->error = 0;
+
+    switch (error) {
+    case 0:
+        msg = "No error.";
+        break;
+
+    case APR_XML_NS_ERROR_UNKNOWN_PREFIX:
+        msg = "An undefined namespace prefix was used.";
+        break;
+
+    case APR_XML_NS_ERROR_INVALID_DECL:
+        msg = "A namespace prefix was defined with an empty URI.";
+        break;
+
+    case APR_XML_ERROR_EXPAT:
+        (void) apr_snprintf(errbuf, errbufsize,
+                            "XML parser error code: %s (%d)",
+                            XML_ErrorString(parser->xp_err), parser->xp_err);
+        return errbuf;
+
+    case APR_XML_ERROR_PARSE_DONE:
+        msg = "The parser is not active.";
+        break;
+
+    default:
+        msg = "There was an unknown error within the XML body.";
+        break;
+    }
+
+    (void) apr_cpystrn(errbuf, msg, errbufsize);
+    return errbuf;
+}
+
+APU_DECLARE(apr_status_t) apr_xml_parse_file(apr_pool_t *p,
+                                             apr_xml_parser **parser,
+                                             apr_xml_doc **ppdoc,
+                                             apr_file_t *xmlfd,
+                                             apr_size_t buffer_length)
+{
+    apr_status_t rv;
+    char *buffer;
+    apr_size_t length;
+
+    *parser = apr_xml_parser_create(p);
+    if (*parser == NULL) {
+        /* FIXME: returning an error code would be nice,
+         * but we dont get one ;( */
+        return APR_EGENERAL;
+    }
+    buffer = apr_palloc(p, buffer_length);
+    length = buffer_length;
+
+    rv = apr_file_read(xmlfd, buffer, &length);
+
+    while (rv == APR_SUCCESS) {
+        rv = apr_xml_parser_feed(*parser, buffer, length);
+        if (rv != APR_SUCCESS) {
+            return rv;
+        }
+
+        length = buffer_length;
+        rv = apr_file_read(xmlfd, buffer, &length);
+    }
+    if (rv != APR_EOF) {
+        return rv;
+    }
+    rv = apr_xml_parser_done(*parser, ppdoc);
+    *parser = NULL;
+    return rv;
+}
+
+APU_DECLARE(void) apr_text_append(apr_pool_t * p, apr_text_header *hdr,
+                                  const char *text)
+{
+    apr_text *t = apr_palloc(p, sizeof(*t));
+
+    t->text = text;
+    t->next = NULL;
+
+    if (hdr->first == NULL) {
+	/* no text elements yet */
+	hdr->first = hdr->last = t;
+    }
+    else {
+	/* append to the last text element */
+	hdr->last->next = t;
+	hdr->last = t;
+    }
+}
+
+
+/* ---------------------------------------------------------------
+**
+** XML UTILITY FUNCTIONS
+*/
+
+/*
+** apr_xml_quote_string: quote an XML string
+**
+** Replace '<', '>', and '&' with '&lt;', '&gt;', and '&amp;'.
+** If quotes is true, then replace '"' with '&quot;'.
+**
+** quotes is typically set to true for XML strings that will occur within
+** double quotes -- attribute values.
+*/
+APU_DECLARE(const char *) apr_xml_quote_string(apr_pool_t *p, const char *s,
+                                               int quotes)
+{
+    const char *scan;
+    apr_size_t len = 0;
+    apr_size_t extra = 0;
+    char *qstr;
+    char *qscan;
+    char c;
+
+    for (scan = s; (c = *scan) != '\0'; ++scan, ++len) {
+	if (c == '<' || c == '>')
+	    extra += 3;		/* &lt; or &gt; */
+	else if (c == '&')
+	    extra += 4;		/* &amp; */
+	else if (quotes && c == '"')
+	    extra += 5;		/* &quot; */
+    }
+
+    /* nothing to do? */
+    if (extra == 0)
+	return s;
+
+    qstr = apr_palloc(p, len + extra + 1);
+    for (scan = s, qscan = qstr; (c = *scan) != '\0'; ++scan) {
+	if (c == '<') {
+	    *qscan++ = '&';
+	    *qscan++ = 'l';
+	    *qscan++ = 't';
+	    *qscan++ = ';';
+	}
+	else if (c == '>') {
+	    *qscan++ = '&';
+	    *qscan++ = 'g';
+	    *qscan++ = 't';
+	    *qscan++ = ';';
+	}
+	else if (c == '&') {
+	    *qscan++ = '&';
+	    *qscan++ = 'a';
+	    *qscan++ = 'm';
+	    *qscan++ = 'p';
+	    *qscan++ = ';';
+	}
+	else if (quotes && c == '"') {
+	    *qscan++ = '&';
+	    *qscan++ = 'q';
+	    *qscan++ = 'u';
+	    *qscan++ = 'o';
+	    *qscan++ = 't';
+	    *qscan++ = ';';
+	}
+	else {
+	    *qscan++ = c;
+	}
+    }
+
+    *qscan = '\0';
+    return qstr;
+}
+
+/* how many characters for the given integer? */
+#define APR_XML_NS_LEN(ns) ((ns) < 10 ? 1 : (ns) < 100 ? 2 : (ns) < 1000 ? 3 : \
+                            (ns) < 10000 ? 4 : (ns) < 100000 ? 5 : \
+                            (ns) < 1000000 ? 6 : (ns) < 10000000 ? 7 : \
+                            (ns) < 100000000 ? 8 : (ns) < 1000000000 ? 9 : 10)
+
+static apr_size_t text_size(const apr_text *t)
+{
+    apr_size_t size = 0;
+
+    for (; t; t = t->next)
+	size += strlen(t->text);
+    return size;
+}
+
+static apr_size_t elem_size(const apr_xml_elem *elem, int style,
+                            apr_array_header_t *namespaces, int *ns_map)
+{
+    apr_size_t size;
+
+    if (style == APR_XML_X2T_FULL || style == APR_XML_X2T_FULL_NS_LANG) {
+	const apr_xml_attr *attr;
+
+	size = 0;
+
+	if (style == APR_XML_X2T_FULL_NS_LANG) {
+	    int i;
+
+	    /*
+	    ** The outer element will contain xmlns:ns%d="%s" attributes
+	    ** and an xml:lang attribute, if applicable.
+	    */
+
+	    for (i = namespaces->nelts; i--;) {
+		/* compute size of: ' xmlns:ns%d="%s"' */
+		size += (9 + APR_XML_NS_LEN(i) + 2 +
+			 strlen(APR_XML_GET_URI_ITEM(namespaces, i)) + 1);
+	    }
+
+	    if (elem->lang != NULL) {
+		/* compute size of: ' xml:lang="%s"' */
+		size += 11 + strlen(elem->lang) + 1;
+	    }
+	}
+
+	if (elem->ns == APR_XML_NS_NONE) {
+	    /* compute size of: <%s> */
+	    size += 1 + strlen(elem->name) + 1;
+	}
+	else {
+	    int ns = ns_map ? ns_map[elem->ns] : elem->ns;
+
+	    /* compute size of: <ns%d:%s> */
+	    size += 3 + APR_XML_NS_LEN(ns) + 1 + strlen(elem->name) + 1;
+	}
+
+	if (APR_XML_ELEM_IS_EMPTY(elem)) {
+	    /* insert a closing "/" */
+	    size += 1;
+	}
+	else {
+	    /*
+	     * two of above plus "/":
+	     *     <ns%d:%s> ... </ns%d:%s>
+	     * OR  <%s> ... </%s>
+	     */
+	    size = 2 * size + 1;
+	}
+
+	for (attr = elem->attr; attr; attr = attr->next) {
+	    if (attr->ns == APR_XML_NS_NONE) {
+		/* compute size of: ' %s="%s"' */
+		size += 1 + strlen(attr->name) + 2 + strlen(attr->value) + 1;
+	    }
+	    else {
+		/* compute size of: ' ns%d:%s="%s"' */
+                int ns = ns_map ? ns_map[attr->ns] : attr->ns;
+                size += 3 + APR_XML_NS_LEN(ns) + 1 + strlen(attr->name) + 2 + strlen(attr->value) + 1;
+	    }
+	}
+
+	/*
+	** If the element has an xml:lang value that is *different* from
+	** its parent, then add the thing in: ' xml:lang="%s"'.
+	**
+	** NOTE: we take advantage of the pointer equality established by
+	** the parsing for "inheriting" the xml:lang values from parents.
+	*/
+	if (elem->lang != NULL &&
+	    (elem->parent == NULL || elem->lang != elem->parent->lang)) {
+	    size += 11 + strlen(elem->lang) + 1;
+	}
+    }
+    else if (style == APR_XML_X2T_LANG_INNER) {
+	/*
+	 * This style prepends the xml:lang value plus a null terminator.
+	 * If a lang value is not present, then we insert a null term.
+	 */
+	size = elem->lang ? strlen(elem->lang) + 1 : 1;
+    }
+    else
+	size = 0;
+
+    size += text_size(elem->first_cdata.first);
+
+    for (elem = elem->first_child; elem; elem = elem->next) {
+	/* the size of the child element plus the CDATA that follows it */
+	size += (elem_size(elem, APR_XML_X2T_FULL, NULL, ns_map) +
+		 text_size(elem->following_cdata.first));
+    }
+
+    return size;
+}
+
+static char *write_text(char *s, const apr_text *t)
+{
+    for (; t; t = t->next) {
+	apr_size_t len = strlen(t->text);
+	memcpy(s, t->text, len);
+	s += len;
+    }
+    return s;
+}
+
+static char *write_elem(char *s, const apr_xml_elem *elem, int style,
+			apr_array_header_t *namespaces, int *ns_map)
+{
+    const apr_xml_elem *child;
+    apr_size_t len;
+    int ns;
+
+    if (style == APR_XML_X2T_FULL || style == APR_XML_X2T_FULL_NS_LANG) {
+	int empty = APR_XML_ELEM_IS_EMPTY(elem);
+	const apr_xml_attr *attr;
+
+	if (elem->ns == APR_XML_NS_NONE) {
+	    len = sprintf(s, "<%s", elem->name);
+	}
+	else {
+	    ns = ns_map ? ns_map[elem->ns] : elem->ns;
+	    len = sprintf(s, "<ns%d:%s", ns, elem->name);
+	}
+	s += len;
+
+	for (attr = elem->attr; attr; attr = attr->next) {
+	    if (attr->ns == APR_XML_NS_NONE)
+		len = sprintf(s, " %s=\"%s\"", attr->name, attr->value);
+            else {
+                ns = ns_map ? ns_map[attr->ns] : attr->ns;
+                len = sprintf(s, " ns%d:%s=\"%s\"", ns, attr->name, attr->value);
+            }
+	    s += len;
+	}
+
+	/* add the xml:lang value if necessary */
+	if (elem->lang != NULL &&
+	    (style == APR_XML_X2T_FULL_NS_LANG ||
+	     elem->parent == NULL ||
+	     elem->lang != elem->parent->lang)) {
+	    len = sprintf(s, " xml:lang=\"%s\"", elem->lang);
+	    s += len;
+	}
+
+	/* add namespace definitions, if required */
+	if (style == APR_XML_X2T_FULL_NS_LANG) {
+	    int i;
+
+	    for (i = namespaces->nelts; i--;) {
+		len = sprintf(s, " xmlns:ns%d=\"%s\"", i,
+			      APR_XML_GET_URI_ITEM(namespaces, i));
+		s += len;
+	    }
+	}
+
+	/* no more to do. close it up and go. */
+	if (empty) {
+	    *s++ = '/';
+	    *s++ = '>';
+	    return s;
+	}
+
+	/* just close it */
+	*s++ = '>';
+    }
+    else if (style == APR_XML_X2T_LANG_INNER) {
+	/* prepend the xml:lang value */
+	if (elem->lang != NULL) {
+	    len = strlen(elem->lang);
+	    memcpy(s, elem->lang, len);
+	    s += len;
+	}
+	*s++ = '\0';
+    }
+
+    s = write_text(s, elem->first_cdata.first);
+
+    for (child = elem->first_child; child; child = child->next) {
+	s = write_elem(s, child, APR_XML_X2T_FULL, NULL, ns_map);
+	s = write_text(s, child->following_cdata.first);
+    }
+
+    if (style == APR_XML_X2T_FULL || style == APR_XML_X2T_FULL_NS_LANG) {
+	if (elem->ns == APR_XML_NS_NONE) {
+	    len = sprintf(s, "</%s>", elem->name);
+	}
+	else {
+	    ns = ns_map ? ns_map[elem->ns] : elem->ns;
+	    len = sprintf(s, "</ns%d:%s>", ns, elem->name);
+	}
+	s += len;
+    }
+
+    return s;
+}
+
+APU_DECLARE(void) apr_xml_quote_elem(apr_pool_t *p, apr_xml_elem *elem)
+{
+    apr_text *scan_txt;
+    apr_xml_attr *scan_attr;
+    apr_xml_elem *scan_elem;
+
+    /* convert the element's text */
+    for (scan_txt = elem->first_cdata.first;
+	 scan_txt != NULL;
+	 scan_txt = scan_txt->next) {
+	scan_txt->text = apr_xml_quote_string(p, scan_txt->text, 0);
+    }
+    for (scan_txt = elem->following_cdata.first;
+	 scan_txt != NULL;
+	 scan_txt = scan_txt->next) {
+	scan_txt->text = apr_xml_quote_string(p, scan_txt->text, 0);
+    }
+
+    /* convert the attribute values */
+    for (scan_attr = elem->attr;
+	 scan_attr != NULL;
+	 scan_attr = scan_attr->next) {
+	scan_attr->value = apr_xml_quote_string(p, scan_attr->value, 1);
+    }
+
+    /* convert the child elements */
+    for (scan_elem = elem->first_child;
+	 scan_elem != NULL;
+	 scan_elem = scan_elem->next) {
+	apr_xml_quote_elem(p, scan_elem);
+    }
+}
+
+/* convert an element to a text string */
+APU_DECLARE(void) apr_xml_to_text(apr_pool_t * p, const apr_xml_elem *elem,
+                                  int style, apr_array_header_t *namespaces,
+                                  int *ns_map, const char **pbuf,
+                                  apr_size_t *psize)
+{
+    /* get the exact size, plus a null terminator */
+    apr_size_t size = elem_size(elem, style, namespaces, ns_map) + 1;
+    char *s = apr_palloc(p, size);
+
+    (void) write_elem(s, elem, style, namespaces, ns_map);
+    s[size - 1] = '\0';
+
+    *pbuf = s;
+    if (psize)
+	*psize = size;
+}
+
+APU_DECLARE(const char *) apr_xml_empty_elem(apr_pool_t * p,
+                                             const apr_xml_elem *elem)
+{
+    if (elem->ns == APR_XML_NS_NONE) {
+	/*
+	 * The prefix (xml...) is already within the prop name, or
+	 * the element simply has no prefix.
+	 */
+	return apr_psprintf(p, "<%s/>" DEBUG_CR, elem->name);
+    }
+
+    return apr_psprintf(p, "<ns%d:%s/>" DEBUG_CR, elem->ns, elem->name);
+}
+
+/* return the URI's (existing) index, or insert it and return a new index */
+APU_DECLARE(int) apr_xml_insert_uri(apr_array_header_t *uri_array,
+                                    const char *uri)
+{
+    int i;
+    const char **pelt;
+
+    /* never insert an empty URI; this index is always APR_XML_NS_NONE */
+    if (*uri == '\0')
+        return APR_XML_NS_NONE;  
+
+    for (i = uri_array->nelts; i--;) {
+	if (strcmp(uri, APR_XML_GET_URI_ITEM(uri_array, i)) == 0)
+	    return i;
+    }
+
+    pelt = apr_array_push(uri_array);
+    *pelt = uri;		/* assume uri is const or in a pool */
+    return uri_array->nelts - 1;
+}
+
+/* convert the element to EBCDIC */
+#if APR_CHARSET_EBCDIC
+static apr_status_t apr_xml_parser_convert_elem(apr_xml_elem *e,
+                                                apr_xlate_t *convset)
+{
+    apr_xml_attr *a;
+    apr_xml_elem *ec;
+    apr_text *t;
+    apr_size_t inbytes_left, outbytes_left;
+    apr_status_t status;
+
+    inbytes_left = outbytes_left = strlen(e->name);
+    status = apr_xlate_conv_buffer(convset, e->name,  &inbytes_left, (char *) e->name, &outbytes_left);
+    if (status) {
+        return status;
+    }
+
+    for (t = e->first_cdata.first; t != NULL; t = t->next) {
+        inbytes_left = outbytes_left = strlen(t->text);
+        status = apr_xlate_conv_buffer(convset, t->text, &inbytes_left, (char *) t->text, &outbytes_left);
+        if (status) {
+            return status;
+        }
+    }
+
+    for (t = e->following_cdata.first;  t != NULL; t = t->next) {
+        inbytes_left = outbytes_left = strlen(t->text);
+        status = apr_xlate_conv_buffer(convset, t->text, &inbytes_left, (char *) t->text, &outbytes_left);
+        if (status) {
+            return status;
+        }
+    }
+
+    for (a = e->attr; a != NULL; a = a->next) {
+        inbytes_left = outbytes_left = strlen(a->name);
+        status = apr_xlate_conv_buffer(convset, a->name, &inbytes_left, (char *) a->name, &outbytes_left);
+        if (status) {
+            return status;
+        }
+        inbytes_left = outbytes_left = strlen(a->value);
+        status = apr_xlate_conv_buffer(convset, a->value, &inbytes_left, (char *) a->value, &outbytes_left);
+        if (status) {
+            return status;
+        }
+    }
+
+    for (ec = e->first_child; ec != NULL; ec = ec->next) {
+        status = apr_xml_parser_convert_elem(ec, convset);
+        if (status) {
+            return status;
+        }
+    }
+    return APR_SUCCESS;
+}
+
+/* convert the whole document to EBCDIC */
+APU_DECLARE(apr_status_t) apr_xml_parser_convert_doc(apr_pool_t *pool,
+                                                     apr_xml_doc *pdoc,
+                                                     apr_xlate_t *convset)
+{
+    apr_status_t status;
+    /* Don't convert the namespaces: they are constant! */
+    if (pdoc->namespaces != NULL) {
+        int i;
+        apr_array_header_t *namespaces;
+        namespaces = apr_array_make(pool, pdoc->namespaces->nelts, sizeof(const char *));
+        if (namespaces == NULL)
+            return APR_ENOMEM;
+        for (i = 0; i < pdoc->namespaces->nelts; i++) {
+            apr_size_t inbytes_left, outbytes_left;
+            char *ptr = (char *) APR_XML_GET_URI_ITEM(pdoc->namespaces, i);
+            ptr = apr_pstrdup(pool, ptr);
+            if ( ptr == NULL)
+                return APR_ENOMEM;
+            inbytes_left = outbytes_left = strlen(ptr);
+            status = apr_xlate_conv_buffer(convset, ptr, &inbytes_left, ptr, &outbytes_left);
+            if (status) {
+                return status;
+            }
+            apr_xml_insert_uri(namespaces, ptr);
+        }
+        pdoc->namespaces = namespaces;
+    }
+    return apr_xml_parser_convert_elem(pdoc->root, convset);
+}
+#endif