From befa7a22f1a74e43ae15e39d5e321c29e76b5063 Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 12 Aug 2014 01:40:11 +0000 Subject: [PATCH] MFC r266728,266731,266735,266736,268135,268960,269833 Update apr 1.4.8 -> 1.5.1 Update apr-util 1.5.2 -> 1.5.3 Update serf 1.3.4 -> 1.3.7 Update svnlite 1.8.8 -> 1.8.10 Deal with svnlite.1 manpage. git-svn-id: svn://svn.freebsd.org/base/stable/10@269847 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- contrib/apr/CHANGES | 275 +- contrib/apr/CMakeLists.txt | 434 ++ contrib/apr/LICENSE | 4 +- contrib/apr/Makefile.in | 25 +- contrib/apr/Makefile.win | 2 +- contrib/apr/NOTICE | 4 +- contrib/apr/README.cmake | 112 + contrib/apr/apr.dep | 2474 +++++++--- contrib/apr/apr.dsp | 159 + contrib/apr/apr.mak | 3747 +++++++-------- contrib/apr/apr.spec | 2 +- contrib/apr/build-outputs.mk | 15 +- contrib/apr/build.conf | 1 + contrib/apr/configure | 348 +- contrib/apr/configure.in | 178 +- contrib/apr/docs/canonical_filenames.html | 6 +- contrib/apr/encoding/apr_escape.c | 1181 +++++ contrib/apr/file_io/unix/filedup.c | 3 +- contrib/apr/file_io/unix/filestat.c | 4 +- contrib/apr/file_io/unix/mktemp.c | 2 +- contrib/apr/file_io/unix/open.c | 8 + contrib/apr/file_io/unix/pipe.c | 8 +- contrib/apr/file_io/unix/readwrite.c | 2 +- contrib/apr/include/apr.h.in | 18 +- contrib/apr/include/apr.hwc | 641 +++ contrib/apr/include/apr_allocator.h | 2 +- contrib/apr/include/apr_errno.h | 6 +- contrib/apr/include/apr_escape.h | 374 ++ contrib/apr/include/apr_file_info.h | 8 +- contrib/apr/include/apr_file_io.h | 202 +- contrib/apr/include/apr_fnmatch.h | 18 +- contrib/apr/include/apr_hash.h | 21 + contrib/apr/include/apr_inherit.h | 4 +- contrib/apr/include/apr_lib.h | 26 +- contrib/apr/include/apr_mmap.h | 2 +- contrib/apr/include/apr_network_io.h | 26 +- contrib/apr/include/apr_poll.h | 24 +- contrib/apr/include/apr_pools.h | 36 +- contrib/apr/include/apr_shm.h | 66 +- contrib/apr/include/apr_skiplist.h | 259 ++ contrib/apr/include/apr_strings.h | 16 +- contrib/apr/include/apr_tables.h | 12 + contrib/apr/include/apr_thread_mutex.h | 2 +- contrib/apr/include/apr_thread_proc.h | 10 +- contrib/apr/include/apr_time.h | 36 +- contrib/apr/include/apr_user.h | 6 +- contrib/apr/include/apr_version.h | 6 +- .../include/arch/unix/apr_arch_poll_private.h | 11 +- .../include/arch/unix/apr_arch_threadproc.h | 2 +- .../apr/include/arch/unix/apr_private.h.in | 5 +- contrib/apr/libapr.dep | 2481 +++++++--- contrib/apr/libapr.dsp | 152 + contrib/apr/libapr.mak | 4035 +++++++++-------- contrib/apr/locks/unix/proc_mutex.c | 11 +- contrib/apr/network_io/unix/sendrecv.c | 2 +- contrib/apr/network_io/unix/sockaddr.c | 29 + contrib/apr/network_io/unix/socket_util.c | 3 +- contrib/apr/network_io/unix/sockets.c | 15 +- contrib/apr/network_io/unix/sockopt.c | 12 + contrib/apr/passwd/apr_getpass.c | 86 +- contrib/apr/poll/unix/pollcb.c | 1 + contrib/apr/poll/unix/pollset.c | 8 + contrib/apr/poll/unix/z_asio.c | 772 ++++ contrib/apr/shmem/unix/shm.c | 124 +- contrib/apr/strings/apr_cpystrn.c | 16 +- contrib/apr/strings/apr_strings.c | 3 +- contrib/apr/support/unix/waitio.c | 2 +- contrib/apr/tables/apr_hash.c | 23 + contrib/apr/tables/apr_skiplist.c | 650 +++ contrib/apr/tables/apr_tables.c | 62 +- contrib/apr/tools/gen_test_char.c | 115 + contrib/serf/CHANGES | 16 +- contrib/serf/auth/auth_spnego.c | 3 +- contrib/serf/buckets/ssl_buckets.c | 183 +- contrib/serf/serf.h | 2 +- contrib/serf/ssltunnel.c | 9 +- contrib/subversion/CHANGES | 171 +- contrib/subversion/NOTICE | 2 +- contrib/subversion/build-outputs.mk | 18 +- contrib/subversion/build.conf | 1 + contrib/subversion/configure | 717 +-- contrib/subversion/configure.ac | 8 +- contrib/subversion/get-deps.sh | 10 +- .../subversion/include/private/svn_cache.h | 8 +- .../subversion/include/private/svn_cert.h | 68 + .../include/private/svn_dep_compat.h | 7 + .../subversion/include/svn_version.h | 6 +- .../subversion/libsvn_client/commit_util.c | 118 +- .../subversion/libsvn_client/delete.c | 7 +- .../subversion/libsvn_client/export.c | 5 +- .../subversion/libsvn_client/externals.c | 23 +- .../subversion/libsvn_client/merge.c | 159 +- .../subversion/libsvn_client/prop_commands.c | 18 +- .../subversion/libsvn_delta/svndiff.c | 10 +- .../subversion/subversion/libsvn_fs_fs/fs.c | 5 +- .../subversion/subversion/libsvn_fs_fs/fs.h | 2 +- .../subversion/libsvn_fs_fs/fs_fs.c | 7 +- .../subversion/libsvn_fs_fs/rep-cache-db.h | 2 +- .../subversion/libsvn_ra_serf/commit.c | 185 +- .../subversion/libsvn_ra_serf/getlocks.c | 19 +- .../libsvn_ra_serf/inherited_props.c | 237 +- .../subversion/libsvn_ra_serf/locks.c | 45 +- .../subversion/libsvn_ra_serf/log.c | 2 +- .../subversion/libsvn_ra_serf/options.c | 2 +- .../subversion/libsvn_ra_serf/update.c | 19 - .../subversion/libsvn_ra_serf/util.c | 57 +- .../subversion/libsvn_ra_svn/protocol | 2 + .../subversion/subversion/libsvn_repos/dump.c | 76 +- .../subversion/libsvn_repos/fs-wrap.c | 25 +- .../subversion/libsvn_subr/cache-memcache.c | 7 +- .../subversion/libsvn_subr/config_auth.c | 6 + .../subversion/libsvn_subr/config_file.c | 2 +- .../subversion/libsvn_subr/dirent_uri.c | 79 + .../libsvn_subr/internal_statements.h | 2 +- .../subversion/subversion/libsvn_subr/io.c | 38 +- .../subversion/subversion/libsvn_subr/opt.c | 4 +- .../subversion/libsvn_subr/prompt.c | 2 +- .../subversion/libsvn_subr/sysinfo.c | 1 + .../subversion/libsvn_subr/version.c | 2 +- .../subversion/subversion/libsvn_wc/status.c | 190 +- .../subversion/libsvn_wc/wc-checks.h | 2 +- .../subversion/libsvn_wc/wc-metadata.h | 4 +- .../subversion/libsvn_wc/wc-metadata.sql | 3 + .../subversion/libsvn_wc/wc-queries.h | 1134 ++--- .../subversion/libsvn_wc/wc-queries.sql | 36 +- .../subversion/subversion/libsvn_wc/wc_db.c | 683 ++- .../subversion/subversion/libsvn_wc/wc_db.h | 23 +- .../subversion/libsvn_wc/wc_db_wcroot.c | 8 +- .../subversion/svn/conflict-callbacks.c | 2 +- .../subversion/svndumpfilter/svndumpfilter.c | 33 +- contrib/subversion/subversion/svnrdump/util.c | 2 +- .../subversion/subversion/svnserve/serve.c | 23 +- tools/build/mk/OptionalObsoleteFiles.inc | 1 + usr.bin/svn/lib/libapr/Makefile | 4 +- usr.bin/svn/lib/libapr/apr.h | 18 +- usr.bin/svn/lib/libapr/apr_private.h | 7 +- usr.bin/svn/svn/Makefile | 6 +- usr.bin/svn/svn_private_config.h | 4 +- 138 files changed, 16860 insertions(+), 7155 deletions(-) create mode 100644 contrib/apr/CMakeLists.txt create mode 100644 contrib/apr/README.cmake create mode 100644 contrib/apr/encoding/apr_escape.c create mode 100644 contrib/apr/include/apr.hwc create mode 100644 contrib/apr/include/apr_escape.h create mode 100644 contrib/apr/include/apr_skiplist.h create mode 100644 contrib/apr/poll/unix/z_asio.c create mode 100644 contrib/apr/tables/apr_skiplist.c create mode 100644 contrib/apr/tools/gen_test_char.c create mode 100644 contrib/subversion/subversion/include/private/svn_cert.h diff --git a/contrib/apr/CHANGES b/contrib/apr/CHANGES index 51d123671..d04ad11a9 100644 --- a/contrib/apr/CHANGES +++ b/contrib/apr/CHANGES @@ -1,235 +1,124 @@ -*- coding: utf-8 -*- -Changes for APR 1.4.8 +Changes for APR 1.5.1 - *) Fix compiltation with FreeBSD on ARM. [Olli Hauer ] + *) apr_os_proc_mutex_get() on Unix: Avoid segfault for cross- + process pthread mutexes. [Yann Ylavic ] - *) Fix 1.4.7 regression in apr_mcast_hops() and apr_mcast_loopback() - for AF_INET (IPv4) sockets on most Unix platforms. [Joe Orton] + *) When using shmget-based shared memory, the ID used for ftok is + now an APR hash of the filename instead of the constant '1'. + We do this to help avoid collisions. PR 53996 [Jim Jagielski] - *) Fix the return value of apr_threadattr_detach_get() on some - platforms like OS X and Solaris. [Rainer Jung, ] + *) apr_socket_atreadeof(): Fix breakage on OS X. [Jim Jagielski] -Changes for APR 1.4.7 + *) Fix POSIX shared memory (shm_open) use for named shared memory. + Includes adding '--enable-posix-shm' to force POSIX shm if + available, and OS X compatibility. PR 55928. + [Jozef Hatala , Jim Jagielski] - *) Fix apr_sockaddr_info_get() not returning an error in some cases. - PR 54779. [Jan Kaluža ] + *) Fix race condition when calling apr_dir_make_recursive from + multiple threads on Windows. + [Bert Huijben] - *) Fix amd64 assembler version of apr_atomic_xchgptr(). PR 51851. [Mattias - Engdegård ] + *) Fix apr_escape.c compilation errors on EBCDIC platforms. + [Eric Covener] - *) Fix PPC atomics to work with gcc 4.0. PR 54840. [Mattias Engdegård - ] + *) FreeBSD 10: Correct a regression in 1.5.0 which affected non- + blocking sockets in some applications, including httpd. [Jeff + Trawick] - *) configure: Fix detection of O_NONBLOCK inheritance on busy - systems. [Rainer Jung] + *) Windows cmake build: Fix incorrect installation of some .pdb + files. Fix incorrect use of some logic intended for Windows 9x, + including legacy filesystem interfaces and dynamic loading of + some Windows APIs. [Jeff Trawick] - *) Remove unused code, fix strict C compliance bug in SHA-256 - implementation. [Jan Kaluza ] - - *) Fix apr_ipsubnet_test() false positives when comparing IPv4 - subnet representation against an IPv6 address. PR 54047. [Joe Orton] - - *) apr_socket_accept_filter: Return success when trying to again set - the filter to the same value as before, avoiding an unhelpful - APR_EINVAL. PR 37863. [Jeff Trawick] - - *) configure: Fix Linux 3.x detection. PR 54001. [Gilles Espinasse - ] - - *) apr_time_exp_*() on Windows: Fix error in the tm_yday field of - apr_time_exp_t for times within leap years. PR 53175. + *) apr_skiplist: Add compatibility with C++ applications. [Jeff Trawick] - *) Improve platform detection by updating config.guess and config.sub. - [Rainer Jung] - - *) Add support for OSX Mountain Lion (10.8) [Jim Jagielski] - - *) Add various gcc function attributes. [Stefan Fritsch] - - *) Fix some problems in apr_sockaddr_info_get() when trying to resolve - the loopback addresses of a protocol family that is not otherwise - configured on the system. PR 52709. [Nirgal Vourgère - , Stefan Fritsch] - - *) Fix file not being unlocked if truncate call on a file fails. - [Mladen Turk] - - *) apr_mcast_hops: Fix EINVAL for IPv6 sockets caused by using byte - instead integer for setsockopt. [Mladen Turk] - - *) Windows: Fix compile-time checks for 64-bit builds, resolving a - crash in httpd's mod_rewrite. PR 49155. [] + *) Correct a regression in 1.5.0 which affected out-of-tree + builds on Unix. [Rainer Jung] -Changes for APR 1.4.6 + *) Improve platform detection for bundled expat by updating + config.guess and config.sub. [Rainer Jung] - *) Flush write buffer before truncate call on a file. - [Mladen Turk] - - *) Randomise hashes by providing a seed. - Assigned CVE-2012-0840, oCERT-2011-003, but not known to be exploitable. - [Bojan Smojver, Branko Čibej, Ruediger Pluem et al.] - - *) apr_random: Prevent segfault if pool used to initialize apr_random is - destroyed before forking. [Stefan Fritsch] - - *) testrand: Improve child randomness test case. [Rainer Jung] - - *) apr_proc_fork, apr_random_after_fork: disambiguate what happens to the - proc structure passed in, and ensure that the pid is set correctly in - a newly created child; note that merely mixing a PID into the random - seed of a new child doesn't markedly increase entropy. [Sander Temme] - - *) apr_file_open: Avoid fcntl() calls if support for O_CLOEXEC works. - PR 48557. [Mike Frysinger ] - - *) apr_dir_make_recursive: Fix race condition that could lead to EEXIST - being returned. PR 51254. [William Lee , - Wim Lewis ] - - *) configure: Fix APR_RESTORE_THE_ENVIRONMENT if the original variable was - a single space. PR 50334. [Nathan Phillip Brink ] - - *) apr_proc_create: Don't close any of the new stdin/stdout/stderr in the - child if it already has the correct FD. PR 51995. - [Dan Ports ] - - *) Fix flag character '#' in combination with format character 'x' in - apr snprintf implementations. [Rainer Jung] - - *) Improve platform detection by updating config.guess and config.sub. - [Rainer Jung] +Changes for APR 1.5.0 - *) Add libtool2 files to extraclean make target. [Rainer Jung] + *) Fix Linux kernel version check to recognize more versions, + including versions 3.10 and later. PR 55690. [Joe Orton, + Arfrever Frehtes Taifersar Arahesis ] - *) Don't overwrite our config.guess and config.sub - when running buildconf. [Rainer Jung] + *) Add apr_sockaddr_is_wildcard() to check if a socket address + refers to the wildcard address for the protocol family (e.g., + 0.0.0.0/INADDR_ANY for IPv4). [Jeff Trawick] - *) Silence autoconf 2.68 warnings. [Rainer Jung] + *) apr_file_dup2() on Windows: Fix debug RTL assertion when + attempting to _commit(stdout) or _commit(stderr). [Mike Rumph + ] -Changes for APR 1.4.5 + *) apr_socket_connect() on Windows: Handle WSAEISCONN. PR 48736. + [, Jeff Trawick] - *) Security: CVE-2011-1928 - apr_fnmatch(): Fix high CPU loop. [William Rowe] + *) z/OS: threadsafe apr_pollset_poll support for sockets [Greg Ames] - *) Fix top_builddir in installed apr_rules.mk. [Bojan Smojver] + *) Windows: Don't obtain a mutex for buffered file I/O unless the + file was opened with the APR_FOPEN_XTHREAD flag. [Ivan Zhakov + ] -Changes for APR 1.4.4 - - *) Windows: Fix command-line builds. [William Rowe] - -Changes for APR 1.4.3 - - *) Security: CVE-2011-0419 - Reimplement apr_fnmatch() from scratch using a non-recursive - algorithm; now has improved compliance with the fnmatch() spec. - [William Rowe] - - *) Fix environment-related crash using some non-standard builds on - Windows 7/Server 2008. [Steve Hay ] - - *) poll, pollset, pollcb on Windows: Handle calls with no file/socket - descriptors. PR 49882. [Stefan Ruppert , Jeff Trawick] - - *) Fix APR_IPV6_V6ONLY issues on Windows related to run-time behavior - on Windows older than Vista and SDK/MinGW levels without IPV6_V6ONLY. - PR 45321. [Sob ] - - *) Fix address handling when accepting an AF_INET socket from a socket - bound as AF_INET6. PR 49678. [Joe Orton] + *) Windows: Create named shared memory segments under the "Local" + namespace if the caller is unprivileged, fixing an inability of + unprivileged callers to use apr_shm_create() with named shared + memory segments under recent Windows. As before, shared memory + segments are created under the "Global" namespace for privileged + callers. Add apr_shm_create_ex() and apr_shm_attach_ex(), which + provide the ability to override the normal namespace selection. + [Jeff Trawick] - *) Fix error return values from apr_sockaddr_info_get() on Windows for - IPv6 builds. [Ivan Zhakov ] + *) Update compile settings for MINT OS. PR 47181. [Alan Hourihane + ] - *) Add new experimental configure option --enable-allocator-uses-mmap to - use mmap instead of malloc in apr_allocator_alloc(). This greatly reduces - memory fragmentation with malloc implementations (e.g. glibc) that - don't handle allocationss of a page-size-multiples in an efficient way. - It also makes apr_allocator_max_free_set() actually have some effect - on such platforms. [Stefan Fritsch] + *) Files and pipes on Windows: Don't create an unused pollset when + files and pipes are opened. [Mladen Turk] - *) configure: Support 64 and 32 bit universal builds for Darwin/ - OS X 10.6+. [Jim Jagielski] + *) apr_socket_timeout_set() on Windows: If the socket was in a non- + blocking state before, disable that setting so that timeouts work. + [Jeff Trawick] - *) apr_sockaddr_info_get() on AIX: Fix a problem which could set - the port field in the native socket address to 1 when 0 was - specified. PR 46964. [Jeff Trawick] + *) File info APIs: Fix calculation of atime and mtime on AIX. PR 51146. + [Ruediger Pluem] - *) configure: Make definition of apr_ino_t independent of - _FILE_OFFSET_BITS even on platforms where ino_t is 'unsigned int'. - [Stefan Fritsch] + *) Add the apr_escape interface. [Graham Leggett] - *) apr_ring: Workaround for aliasing problem that causes gcc 4.5 to - miscompile some brigade related code. PR 50190. [Stefan Fritsch] + *) Cygwin build fixes. PRs 51016 and 55586. [Carlo Bramini + ] - *) apr_file_flush_locked(): Handle short writes. [Stefan Fritsch] + *) Add apr_skiplist family. [Jim Jagielski] - *) apr_pollset_create_ex(): Trap errors from pollset providers. - PR 49094. [Sami Tolvanen ] + *) Add experimental cmake-based build system for Windows. Refer to + README.cmake for more information. [Jeff Trawick, Tom Donovan] - *) apr_pollset_create*(): Fix memory lifetime problem with the wakeup - pipe when the pollset was created with APR_POLLSET_NOCOPY. - [Neil Conway ] + *) Add the apr_table_getm() call, which transparently handles the + merging of keys with multiple values. [Graham Leggett] - *) Fix detection of some Linux variants when configure is built with - recent GNU tools. [Eric Covener] + *) Add apr_hash_this_key(), apr_hash_this_key_len(), and + apr_hash_this_val() for easier access to those attributes from + a hash iterator. [Hyrum K. Wright ] - *) Avoid a redundant fcntl() call in apr_file_open() where O_CLOEXEC - is supported. PR 46297. [Joe Orton] + *) MinGW/MSYS: Support shared builds of APR, other general improvements + to support of this toolchain. PR 46175. [Carlo Bramini + ] *) Improve platform detection by updating config.guess and config.sub. [Rainer Jung] -Changes for APR 1.4.2 - - *) Undo a crash-bug introduced in 1.4.1 affecting some applications of - the apr hash and table structures, reported to affect Subversion - by Bert Huijben . [Graham Leggett] - -Changes for APR 1.4.1 - - *) Win32: Properly handle the ERROR_DIRECTORY system error code. - [Brane Čibej] - -Changes for APR 1.4.0 - - *) Windows: Default build configurations assume NT or higher at run-time. - - *) Add apr_global_mutex_lockfile() for retrieving the file, if any, - associated with the mutex. Add apr_global_mutex_name() for retrieving - the name of the lock mechanism used by the underlying proc mutex. - [Jeff Trawick] - - *) Add apr_socket_atreadeof to determine whether the receive part of the - socket has been closed by the peer. - [Ruediger Pluem, Mladen Turk, Joe Orton] - - *) Make apr_pollset and apr_pollcb implementations using providers. - Added apr_pollset_create_ex and apr_pollcb_create_ex that allows - choosing non-default providers. - [Mladen Turk] - - *) Win32: Use WSAPoll as default pollset method if supported and found - inside winsock dll. [Mladen Turk] - - *) apr_temp_dir_get() now checks the TMPDIR environment variable first, - instead of third. [Jim Jagielski] - - *) Add apr_file_sync() and apr_file_datasync() calls. [Bojan Smojver] - - *) apr_pollset_wakeup() on Windows: Fix core caused by closing the - file_socket_pipe with standard file_close. - [Arsen Chaloyan, Mladen Turk] - - *) Introduce apr_hash_do() for iterating over a hash table. [Mladen Turk] + *) apr_socket_opt_set: Add support for APR_SO_BROADCAST. PR 46389. + [Armin Müller ] - *) Make sure WIN32 behaves the same as posix for file-backed shared memory - by removing the file on cleanup/remove. [Mladen Turk] + *) Enable platform specific support for the opening of a file or + pipe in non-blocking mode through the APR_FOPEN_NONBLOCK flag. + [Graham Leggett] - *) Introduce apr_pollset_wakeup() for interrupting the blocking - apr_pollset_poll() call. [Mladen Turk] +Changes for APR 1.4.x and later: - *) Add apr_file_link() function. PR 44841. [Mark Heily ] + *) http://svn.apache.org/viewvc/apr/apr/branches/1.4.x/CHANGES?view=markup Changes for APR 1.3.x and later: diff --git a/contrib/apr/CMakeLists.txt b/contrib/apr/CMakeLists.txt new file mode 100644 index 000000000..04903f9f9 --- /dev/null +++ b/contrib/apr/CMakeLists.txt @@ -0,0 +1,434 @@ +# 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. +# +# Read README.cmake before using this. + +PROJECT(APR C) + +CMAKE_MINIMUM_REQUIRED(VERSION 2.8) + +OPTION(APR_INSTALL_PRIVATE_H "Install selected private .h files (for httpd)" OFF) +OPTION(APR_HAVE_IPV6 "IPv6 support" ON) +OPTION(INSTALL_PDB "Install .pdb files (if generated)" ON) +OPTION(APR_BUILD_TESTAPR "Build the test suite" OFF) +OPTION(TEST_STATIC_LIBS "Test programs use APR static libraries instead of shared libraries?" OFF) +SET(MIN_WINDOWS_VER "Vista" + CACHE STRING "Minimum Windows version") + +# create 1-or-0 representation of feature tests for apr.h + +SET(apr_have_ipv6_10 0) + +IF(APR_HAVE_IPV6) + SET(apr_have_ipv6_10 1) +ENDIF() + +IF("${MIN_WINDOWS_VER}" STREQUAL "") + SET(win32_winnt_str "0x0600") +ELSEIF(${MIN_WINDOWS_VER} STREQUAL "Vista") + SET(win32_winnt_str "0x0600") +ELSEIF(${MIN_WINDOWS_VER} STREQUAL "Windows7") + SET(win32_winnt_str "0x0601") +ELSE() + SET(win32_winnt_str ${MIN_WINDOWS_VER}) +ENDIF() + +CONFIGURE_FILE(include/apr.hwc + ${PROJECT_BINARY_DIR}/apr.h) + +ADD_EXECUTABLE(gen_test_char tools/gen_test_char.c) +GET_TARGET_PROPERTY(GEN_TEST_CHAR_EXE gen_test_char LOCATION) +ADD_CUSTOM_COMMAND( + COMMENT "Generating character tables, apr_escape_test_char.h, for current locale" + DEPENDS gen_test_char + COMMAND ${GEN_TEST_CHAR_EXE} > ${PROJECT_BINARY_DIR}/apr_escape_test_char.h + OUTPUT ${PROJECT_BINARY_DIR}/apr_escape_test_char.h +) +ADD_CUSTOM_TARGET( + test_char_header ALL + DEPENDS ${PROJECT_BINARY_DIR}/apr_escape_test_char.h +) + +# Generated .h files are stored in PROJECT_BINARY_DIR, not the +# source tree. +# +# BROKEN: not searching PROJECT_BINARY_DIR first, so you have to +# manually delete apr.h in PROJECT_SOURCE_DIR/include if +# you've generated apr.h before using a different build + +SET(APR_INCLUDE_DIRECTORIES + ${PROJECT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_SOURCE_DIR}/include/arch/win32 + ${CMAKE_CURRENT_SOURCE_DIR}/include/arch/unix + ${CMAKE_CURRENT_SOURCE_DIR}/include/private +) + +SET(APR_SYSTEM_LIBS + ws2_32 + mswsock + rpcrt4 +) + +INCLUDE_DIRECTORIES(${APR_INCLUDE_DIRECTORIES}) + +SET(APR_PUBLIC_HEADERS_STATIC + include/apr_allocator.h + include/apr_atomic.h + include/apr_dso.h + include/apr_env.h + include/apr_errno.h + include/apr_escape.h + include/apr_file_info.h + include/apr_file_io.h + include/apr_fnmatch.h + include/apr_general.h + include/apr_getopt.h + include/apr_global_mutex.h + include/apr_hash.h + include/apr_inherit.h + include/apr_lib.h + include/apr_mmap.h + include/apr_network_io.h + include/apr_poll.h + include/apr_pools.h + include/apr_portable.h + include/apr_proc_mutex.h + include/apr_random.h + include/apr_ring.h + include/apr_shm.h + include/apr_signal.h + include/apr_skiplist.h + include/apr_strings.h + include/apr_support.h + include/apr_tables.h + include/apr_thread_cond.h + include/apr_thread_mutex.h + include/apr_thread_proc.h + include/apr_thread_rwlock.h + include/apr_time.h + include/apr_user.h + include/apr_version.h + include/apr_want.h +) +SET(APR_PUBLIC_HEADERS_GENERATED + ${PROJECT_BINARY_DIR}/apr.h +) + +SET(APR_SOURCES + atomic/win32/apr_atomic.c + dso/win32/dso.c + encoding/apr_escape.c + file_io/unix/copy.c + file_io/unix/fileacc.c + file_io/unix/filepath_util.c + file_io/unix/fullrw.c + file_io/unix/mktemp.c + file_io/unix/tempdir.c + file_io/win32/buffer.c + file_io/win32/dir.c + file_io/win32/filedup.c + file_io/win32/filepath.c + file_io/win32/filestat.c + file_io/win32/filesys.c + file_io/win32/flock.c + file_io/win32/open.c + file_io/win32/pipe.c + file_io/win32/readwrite.c + file_io/win32/seek.c + locks/win32/proc_mutex.c + locks/win32/thread_cond.c + locks/win32/thread_mutex.c + locks/win32/thread_rwlock.c + memory/unix/apr_pools.c + misc/unix/errorcodes.c + misc/unix/getopt.c + misc/unix/otherchild.c + misc/unix/version.c + misc/win32/charset.c + misc/win32/env.c + misc/win32/internal.c + misc/win32/misc.c + misc/win32/rand.c + misc/win32/start.c + misc/win32/utf8.c + mmap/unix/common.c + mmap/win32/mmap.c + network_io/unix/inet_ntop.c + network_io/unix/inet_pton.c + network_io/unix/multicast.c + network_io/unix/sockaddr.c + network_io/unix/socket_util.c + network_io/win32/sendrecv.c + network_io/win32/sockets.c + network_io/win32/sockopt.c + passwd/apr_getpass.c + poll/unix/poll.c + poll/unix/pollcb.c + poll/unix/pollset.c + poll/unix/select.c + random/unix/apr_random.c + random/unix/sha2.c + random/unix/sha2_glue.c + shmem/win32/shm.c + strings/apr_cpystrn.c + strings/apr_fnmatch.c + strings/apr_snprintf.c + strings/apr_strings.c + strings/apr_strnatcmp.c + strings/apr_strtok.c + tables/apr_hash.c + tables/apr_skiplist.c + tables/apr_tables.c + threadproc/win32/proc.c + threadproc/win32/signals.c + threadproc/win32/thread.c + threadproc/win32/threadpriv.c + time/win32/time.c + time/win32/timestr.c + user/win32/groupinfo.c + user/win32/userinfo.c +) + +SET(APR_TEST_SOURCES + test/abts.c + test/testargs.c + test/testatomic.c + test/testcond.c + test/testdir.c + test/testdso.c + test/testdup.c + test/testenv.c + test/testescape.c + test/testfile.c + test/testfilecopy.c + test/testfileinfo.c + test/testflock.c + test/testfmt.c + test/testfnmatch.c + test/testglobalmutex.c + test/testhash.c + test/testipsub.c + test/testlfs.c + test/testlock.c + test/testmmap.c + test/testnames.c + test/testoc.c + test/testpath.c + test/testpipe.c + test/testpoll.c + test/testpools.c + test/testproc.c + test/testprocmutex.c + test/testrand.c + test/testshm.c + test/testsleep.c + test/testsock.c + test/testsockets.c + test/testsockopt.c + test/teststr.c + test/teststrnatcmp.c + test/testtable.c + test/testtemp.c + test/testthread.c + test/testtime.c + test/testud.c + test/testuser.c + test/testutil.c + test/testvsn.c +) + +SET(install_targets) +SET(install_bin_pdb) +SET(install_lib_pdb) + +# libapr-1 is shared, apr-1 is static +ADD_LIBRARY(libapr-1 SHARED ${APR_SOURCES} ${APR_PUBLIC_HEADERS_GENERATED} libapr.rc) +SET(install_targets ${install_targets} libapr-1) +SET(install_bin_pdb ${install_bin_pdb} ${PROJECT_BINARY_DIR}/libapr-1.pdb) +TARGET_LINK_LIBRARIES(libapr-1 ${APR_SYSTEM_LIBS}) +SET_TARGET_PROPERTIES(libapr-1 PROPERTIES COMPILE_DEFINITIONS "APR_DECLARE_EXPORT;WINNT") +ADD_DEPENDENCIES(libapr-1 test_char_header) + +ADD_LIBRARY(apr-1 STATIC ${APR_SOURCES} ${APR_PUBLIC_HEADERS_GENERATED}) +SET(install_targets ${install_targets} apr-1) +SET(install_lib_pdb ${install_lib_pdb} ${PROJECT_BINARY_DIR}/apr-1.pdb) +TARGET_LINK_LIBRARIES(apr-1 ${APR_SYSTEM_LIBS}) +SET_TARGET_PROPERTIES(apr-1 PROPERTIES COMPILE_DEFINITIONS "APR_DECLARE_STATIC;WINNT") +ADD_DEPENDENCIES(apr-1 test_char_header) + +# libaprapp-1 and aprapp-1 are static +ADD_LIBRARY(libaprapp-1 STATIC misc/win32/apr_app.c misc/win32/internal.c ${APR_PUBLIC_HEADERS_GENERATED}) +SET(install_targets ${install_targets} libaprapp-1) +SET(install_lib_pdb ${install_lib_pdb} ${PROJECT_BINARY_DIR}/libaprapp-1.pdb) +SET_TARGET_PROPERTIES(libaprapp-1 PROPERTIES COMPILE_DEFINITIONS "APR_APP;WINNT") + +ADD_LIBRARY(aprapp-1 STATIC misc/win32/apr_app.c misc/win32/internal.c ${APR_PUBLIC_HEADERS_GENERATED}) +SET(install_targets ${install_targets} aprapp-1) +SET(install_lib_pdb ${install_lib_pdb} ${PROJECT_BINARY_DIR}/aprapp-1.pdb) +SET_TARGET_PROPERTIES(aprapp-1 PROPERTIES COMPILE_DEFINITIONS "APR_DECLARE_STATIC;APR_APP;WINNT") + +IF(APR_BUILD_TESTAPR) + ENABLE_TESTING() + # Create a "check" target that displays test program output to the console. + ADD_CUSTOM_TARGET(check COMMAND ${CMAKE_CTEST_COMMAND} --verbose) + + # copy data files to build directory so that we can run programs from there + EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory + ${PROJECT_BINARY_DIR}/data) + EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${PROJECT_SOURCE_DIR}/test/data/file_datafile.txt + ${PROJECT_BINARY_DIR}/data/file_datafile.txt) + EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${PROJECT_SOURCE_DIR}/test/data/mmap_datafile.txt + ${PROJECT_BINARY_DIR}/data/mmap_datafile.txt) + + IF(TEST_STATIC_LIBS) + SET(whichapr apr-1) + SET(whichaprapp aprapp-1) + SET(apiflag -DAPR_DECLARE_STATIC) + ELSE() + SET(whichapr libapr-1) + SET(whichaprapp libaprapp-1) + SET(apiflag) + ENDIF() + + ADD_EXECUTABLE(testapp test/testapp.c) + TARGET_LINK_LIBRARIES(testapp ${whichapr} ${whichaprapp} ${APR_SYSTEM_LIBS}) + SET_TARGET_PROPERTIES(testapp PROPERTIES LINK_FLAGS /entry:wmainCRTStartup) + IF(apiflag) + SET_TARGET_PROPERTIES(testapp PROPERTIES COMPILE_FLAGS ${apiflag}) + ENDIF() + ADD_TEST(NAME testapp COMMAND testapp) + + ADD_EXECUTABLE(testall ${APR_TEST_SOURCES}) + TARGET_LINK_LIBRARIES(testall ${whichapr} ${APR_SYSTEM_LIBS}) + IF(apiflag) + SET_TARGET_PROPERTIES(testall PROPERTIES COMPILE_FLAGS ${apiflag}) + ENDIF() + ADD_TEST(NAME testall COMMAND testall) + + ADD_LIBRARY(mod_test MODULE test/mod_test.c) + TARGET_LINK_LIBRARIES(mod_test ${whichapr} ${APR_SYSTEM_LIBS}) + SET_PROPERTY(TARGET mod_test APPEND PROPERTY LINK_FLAGS /export:print_hello) + # nasty work-around for difficulties adding more than one additional flag + # (they get joined in a bad way behind the scenes) + GET_PROPERTY(link_flags TARGET mod_test PROPERTY LINK_FLAGS) + SET(link_flags "${link_flags} /export:count_reps") + SET_TARGET_PROPERTIES(mod_test PROPERTIES LINK_FLAGS ${link_flags}) + IF(apiflag) + SET_TARGET_PROPERTIES(mod_test PROPERTIES COMPILE_FLAGS ${apiflag}) + ENDIF() + + # Build all the single-source executable files with no special build + # requirements. + SET(single_source_programs + test/echod.c + test/sendfile.c + test/sockperf.c + test/testlockperf.c + test/testmutexscope.c + test/globalmutexchild.c + test/occhild.c + test/proc_child.c + test/readchild.c + test/sockchild.c + test/testshmproducer.c + test/testshmconsumer.c + test/tryread.c + test/internal/testucs.c + ) + + FOREACH(sourcefile ${single_source_programs}) + STRING(REGEX REPLACE ".*/([^\\]+)\\.c" "\\1" proggie ${sourcefile}) + ADD_EXECUTABLE(${proggie} ${sourcefile}) + TARGET_LINK_LIBRARIES(${proggie} ${whichapr} ${APR_SYSTEM_LIBS}) + IF(apiflag) + SET_TARGET_PROPERTIES(${proggie} PROPERTIES COMPILE_FLAGS ${apiflag}) + ENDIF() + ENDFOREACH() + + # Add tests for programs that run by themselves with no arguments. + SET(simple_tests + testmutexscope + testucs + ) + + FOREACH(simple ${simple_tests}) + ADD_TEST(NAME ${simple} COMMAND ${simple}) + ENDFOREACH() + + # testlockperf takes forever on Windows with default counter limit + ADD_TEST(NAME testlockperf COMMAND testlockperf -c 50000) + + # sendfile runs multiple times with different parameters. + FOREACH(sendfile_mode blocking nonblocking timeout) + ADD_TEST(NAME sendfile-${sendfile_mode} COMMAND sendfile client ${sendfile_mode} startserver) + ENDFOREACH() + + # No test is added for echod+sockperf. Those will have to be run manually. + +ENDIF (APR_BUILD_TESTAPR) + +# Installation + +INSTALL(TARGETS ${install_targets} + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + ) + +IF(INSTALL_PDB) + INSTALL(FILES ${install_bin_pdb} + DESTINATION bin + CONFIGURATIONS RelWithDebInfo Debug) + + INSTALL(FILES ${install_lib_pdb} + DESTINATION lib + CONFIGURATIONS RelWithDebInfo Debug) +ENDIF() + +INSTALL(FILES ${APR_PUBLIC_HEADERS_STATIC} ${APR_PUBLIC_HEADERS_GENERATED} DESTINATION include) +IF(APR_INSTALL_PRIVATE_H) + # Kludges for unexpected dependencies of httpd 2.x, not installed by default + SET(APR_PRIVATE_H_FOR_HTTPD + include/arch/win32/apr_arch_file_io.h + include/arch/win32/apr_arch_misc.h + include/arch/win32/apr_arch_utf8.h + include/arch/win32/apr_private.h + ) + INSTALL(FILES ${APR_PRIVATE_H_FOR_HTTPD} DESTINATION include/arch/win32) + INSTALL(FILES include/arch/apr_private_common.h DESTINATION include/arch) +ENDIF() + +STRING(TOUPPER "${CMAKE_BUILD_TYPE}" buildtype) +MESSAGE(STATUS "") +MESSAGE(STATUS "") +MESSAGE(STATUS "APR configuration summary:") +MESSAGE(STATUS "") + +MESSAGE(STATUS " Build type ...................... : ${CMAKE_BUILD_TYPE}") +MESSAGE(STATUS " Install .pdb (if available)...... : ${INSTALL_PDB}") +MESSAGE(STATUS " Install prefix .................. : ${CMAKE_INSTALL_PREFIX}") +MESSAGE(STATUS " C compiler ...................... : ${CMAKE_C_COMPILER}") +MESSAGE(STATUS " IPv6 ............................ : ${APR_HAVE_IPV6}") +MESSAGE(STATUS " Minimum Windows version ......... : ${MIN_WINDOWS_VER}") +MESSAGE(STATUS " Build test suite ................ : ${APR_BUILD_TESTAPR}") +IF(TEST_STATIC_LIBS) +MESSAGE(STATUS " (testing static libraries)") +ELSE() +MESSAGE(STATUS " (testing dynamic libraries)") +ENDIF() +MESSAGE(STATUS " Install private .h for httpd .... : ${APR_INSTALL_PRIVATE_H}") diff --git a/contrib/apr/LICENSE b/contrib/apr/LICENSE index 02418e191..cf0fb6305 100644 --- a/contrib/apr/LICENSE +++ b/contrib/apr/LICENSE @@ -206,8 +206,8 @@ 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. +code for these subcomponents is subject to the terms and conditions +of the following licenses. From strings/apr_fnmatch.c, include/apr_fnmatch.h, misc/unix/getopt.c, file_io/unix/mktemp.c, strings/apr_strings.c: diff --git a/contrib/apr/Makefile.in b/contrib/apr/Makefile.in index 6d3b9127e..6f99733bd 100644 --- a/contrib/apr/Makefile.in +++ b/contrib/apr/Makefile.in @@ -18,7 +18,7 @@ APR_MAJOR_VERSION=@APR_MAJOR_VERSION@ INCDIR=./include OSDIR=$(top_srcdir)/include/arch/@OSDIR@ DEFOSDIR=$(INCDIR)/arch/@DEFAULT_OSDIR@ -INCLUDES=-I$(INCDIR) -I$(OSDIR) -I$(DEFOSDIR) -I$(top_srcdir)/include/arch/@DEFAULT_OSDIR@ -I$(top_srcdir)/include +INCLUDES=-I$(INCDIR) -I$(OSDIR) -I$(DEFOSDIR) -I$(top_srcdir)/include/arch/@DEFAULT_OSDIR@ -I$(top_srcdir)/include -I$(top_srcdir)/include/private -I$(top_blddir)/include/private # # Macros for target determination @@ -36,7 +36,7 @@ INSTALL_DATA = @INSTALL_DATA@ # Rules for building specific targets, starting with 'all' for # building the entire package. # -TARGETS = $(TARGET_LIB) apr.exp apr-config.out build/apr_rules.out +TARGETS = $(TARGET_LIB) include/private/apr_escape_test_char.h apr.exp apr-config.out build/apr_rules.out LT_VERSION = @LT_VERSION@ @@ -45,7 +45,9 @@ LT_VERSION = @LT_VERSION@ @INCLUDE_OUTPUTS@ CLEAN_TARGETS = apr-config.out apr.exp exports.c export_vars.c .make.dirs \ - build/apr_rules.out + build/apr_rules.out tools/gen_test_char@EXEEXT@ \ + tools/gen_test_char.o tools/gen_test_char.lo \ + include/private/apr_escape_test_char.h DISTCLEAN_TARGETS = config.cache config.log config.status \ include/apr.h include/arch/unix/apr_private.h \ libtool $(APR_CONFIG) build/apr_rules.mk apr.pc \ @@ -99,6 +101,8 @@ install: $(TARGETS) $(TARGET_LIB): $(OBJECTS) $(LINK) @lib_target@ $(ALL_LIBS) +encoding/apr_escape.lo: include/private/apr_escape_test_char.h + exports.c: $(HEADERS) $(APR_MKEXPORT) $(HEADERS) > $@ @@ -125,5 +129,20 @@ check: $(TARGET_LIB) etags: etags `find . -name '*.[ch]'` +make_tools_dir: + $(APR_MKDIR) tools + +OBJECTS_gen_test_char = tools/gen_test_char.lo $(LOCAL_LIBS) +tools/gen_test_char.lo: make_tools_dir +tools/gen_test_char@EXEEXT@: $(OBJECTS_gen_test_char) + $(LINK_PROG) $(OBJECTS_gen_test_char) $(ALL_LIBS) + +include/private/apr_escape_test_char.h: tools/gen_test_char@EXEEXT@ + $(APR_MKDIR) include/private + tools/gen_test_char@EXEEXT@ > $@ + +LINK_PROG = $(LIBTOOL) $(LTFLAGS) --mode=link $(COMPILE) $(LT_LDFLAGS) \ + @LT_NO_INSTALL@ $(ALL_LDFLAGS) -o $@ + # DO NOT REMOVE docs: $(INCDIR)/*.h diff --git a/contrib/apr/Makefile.win b/contrib/apr/Makefile.win index 5f9c3133f..a3573eae6 100644 --- a/contrib/apr/Makefile.win +++ b/contrib/apr/Makefile.win @@ -7,7 +7,7 @@ # install - compile everything # clean - mop up everything # -# You can override the build mechansim, choose only one; +# You can override the build mechanism, choose only one; # # USEMAK=1 - compile from exported make files # USEDSW=1 - compile from .dsw / .dsp VC6 projects diff --git a/contrib/apr/NOTICE b/contrib/apr/NOTICE index 6643ee6d7..b16965be9 100644 --- a/contrib/apr/NOTICE +++ b/contrib/apr/NOTICE @@ -1,7 +1,7 @@ Apache Portable Runtime -Copyright (c) 2011 The Apache Software Foundation. +Copyright (c) 2000-2014 The Apache Software Foundation. -This product includes software developed by +This product includes software developed at The Apache Software Foundation (http://www.apache.org/). Portions of this software were developed at the National Center diff --git a/contrib/apr/README.cmake b/contrib/apr/README.cmake new file mode 100644 index 000000000..cfff8ca0d --- /dev/null +++ b/contrib/apr/README.cmake @@ -0,0 +1,112 @@ +Experimental cmake-based build support for APR on Microsoft Windows + +Status +------ + +This build support is currently intended only for Microsoft Windows. +Only Windows NT-based systems can be targeted. (The traditional +Windows build support for APR can target Windows 9x as well.) + +This build support is experimental. Specifically, + +* It does not support all features of APR. +* Some components may not be built correctly and/or in a manner + compatible with the previous Windows build support. +* Build interfaces, such as the mechanisms which are used to enable + optional functionality or specify prerequisites, may change from + release to release as feedback is received from users and bugs and + limitations are resolved. + +Important: Refer to the "Known Bugs and Limitations" section for further + information. + + It is beyond the scope of this document to document or explain + how to utilize the various cmake features, such as different + build backends or provisions for finding support libraries. + + Please refer to the cmake documentation for additional information + that applies to building any project with cmake. + +Prerequisites +------------- + +The following tools must be in PATH: + +* cmake, version 2.8 or later +* If using a command-line compiler: compiler and linker and related tools + (Refer to the cmake documentation for more information.) + +How to build +------------ + +1. cd to a clean directory for building (i.e., don't build in your + source tree) + +2. Some cmake backends may want your compile tools in PATH. (Hint: "Visual + Studio Command Prompt") + +3. cmake -G "some backend, like 'NMake Makefiles'" + -DCMAKE_INSTALL_PREFIX=d:/path/to/aprinst + -DAPR-specific-flags + d:/path/to/aprsource + + Alternately, use cmake-gui and update settings in the GUI. + + APR feature flags: + + APR_INSTALL_PRIVATE_H Install extra .h files which are required when + building httpd and Subversion but which aren't + intended for use by applications. + Default: OFF + APR_HAVE_IPV6 Enable IPv6 support + Default: ON + APR_BUILD_TESTAPR Build APR test suite + Default: OFF + TEST_STATIC_LIBS Build the test suite to test the APR static + library instead of the APR dynamic library. + Default: OFF + In order to build the test suite against both + static and dynamic libraries, separate builds + will be required, one with TEST_STATIC_LIBS + set to ON. + MIN_WINDOWS_VER Minimum Windows version supported by this build + (This controls the setting of _WIN32_WINNT.) + "Vista" or "Windows7" or a numeric value like + "0x0601" + Default: "Vista" + For desktop/server equivalence or other values, + refer to + http://msdn.microsoft.com/en-us/library/windows/ + desktop/aa383745(v=vs.85).aspx + INSTALL_PDB Install .pdb files if generated. + Default: ON + + CMAKE_C_FLAGS_RELEASE, _DEBUG, _RELWITHDEBINFO, _MINSIZEREL + + CMAKE_BUILD_TYPE + + For NMake Makefiles the choices are at least DEBUG, RELEASE, + RELWITHDEBINFO, and MINSIZEREL + Other backends make have other selections. + +4. build using chosen backend (e.g., "nmake install") + +Known Bugs and Limitations +-------------------------- + +* If include/apr.h or other generated files have been created in the source + directory by another build system, they will be used unexpectedly and + cause the build to fail. +* Options should be provided for remaining features: + + APR_POOL_DEBUG +* APR-CHANGES.txt, APR-LICENSE.txt, and APR-NOTICE.txt are not installed, + though perhaps that is a job for a higher-level script. + +Generally: + +* Many APR features have not been tested with this build. +* Developers need to examine the existing Windows build in great detail and see + what is missing from the cmake-based build, whether a feature or some build + nuance. +* Any feedback you can provide on your experiences with this build will be + helpful. diff --git a/contrib/apr/apr.dep b/contrib/apr/apr.dep index 3abf37def..aa2be7432 100644 --- a/contrib/apr/apr.dep +++ b/contrib/apr/apr.dep @@ -1,558 +1,1916 @@ -# Microsoft Developer Studio Generated Dependency File, included by apr.mak - -.\atomic\win32\apr_atomic.c : \ - ".\include\apr_atomic.h"\ - - -.\dso\win32\dso.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_dso.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\file_io\win32\buffer.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\file_io\unix\copy.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\file_io\win32\dir.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_atime.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\file_io\unix\fileacc.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\file_io\win32\filedup.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_inherit.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\file_io\win32\filepath.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\file_io\unix\filepath_util.c : \ - ".\include\apr_strings.h"\ - - -.\file_io\win32\filestat.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_atime.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\file_io\win32\filesys.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\file_io\win32\flock.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\file_io\unix\fullrw.c : \ - - -.\file_io\unix\mktemp.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_inherit.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\file_io\win32\open.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_inherit.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\file_io\win32\pipe.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\file_io\win32\readwrite.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_atime.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\file_io\win32\seek.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\file_io\unix\tempdir.c : \ - ".\include\apr_env.h"\ - ".\include\apr_strings.h"\ - - -.\locks\win32\proc_mutex.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_proc_mutex.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\locks\win32\thread_cond.c : \ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\apr_thread_cond.h"\ - ".\include\arch\win32\apr_arch_thread_cond.h"\ - ".\include\arch\win32\apr_arch_thread_mutex.h"\ - - -.\locks\win32\thread_mutex.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_thread_mutex.h"\ - - -.\locks\win32\thread_rwlock.c : \ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\apr_thread_rwlock.h"\ - ".\include\arch\win32\apr_arch_thread_rwlock.h"\ - - -.\memory\unix\apr_pools.c : \ - ".\include\apr_atomic.h"\ - ".\include\apr_env.h"\ - ".\include\apr_hash.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - - -.\misc\win32\charset.c : \ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - - -.\misc\win32\env.c : \ - ".\include\apr_env.h"\ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\misc\unix\errorcodes.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - - -.\misc\unix\getopt.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - - -.\misc\win32\internal.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\misc\win32\misc.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - ".\include\arch\win32\apr_dbg_win32_handles.h"\ - - -.\misc\unix\otherchild.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_threadproc.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\misc\win32\rand.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_portable.h"\ - - -.\misc\win32\start.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_signal.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_threadproc.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\misc\win32\utf8.c : \ - ".\include\apr_lib.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\misc\unix\version.c : \ - ".\include\apr_version.h"\ - - -.\mmap\unix\common.c : \ - ".\include\apr_mmap.h"\ - - -.\mmap\win32\mmap.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_mmap.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\network_io\unix\inet_ntop.c : \ - ".\include\apr_poll.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_networkio.h"\ - - -.\network_io\unix\inet_pton.c : \ - ".\include\apr_poll.h"\ - ".\include\arch\win32\apr_arch_networkio.h"\ - - -.\network_io\unix\multicast.c : \ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_support.h"\ - ".\include\arch\win32\apr_arch_inherit.h"\ - ".\include\arch\win32\apr_arch_networkio.h"\ - - -.\network_io\win32\sendrecv.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_networkio.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\network_io\unix\sockaddr.c : \ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_networkio.h"\ - - -.\network_io\unix\socket_util.c : \ - ".\include\apr_poll.h"\ - - -.\network_io\win32\sockets.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_inherit.h"\ - ".\include\arch\win32\apr_arch_networkio.h"\ - - -.\network_io\win32\sockopt.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_networkio.h"\ - - -.\passwd\apr_getpass.c : \ - ".\include\apr_lib.h"\ - ".\include\apr_strings.h"\ - - -.\poll\unix\poll.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\arch\unix\apr_arch_poll_private.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_networkio.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\poll\unix\pollcb.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\arch\unix\apr_arch_poll_private.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_networkio.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\poll\unix\pollset.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\arch\unix\apr_arch_poll_private.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_inherit.h"\ - ".\include\arch\win32\apr_arch_networkio.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\poll\unix\select.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\arch\unix\apr_arch_poll_private.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_networkio.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\random\unix\apr_random.c : \ - ".\include\apr_random.h"\ - - -.\random\unix\sha2.c : \ - ".\random\unix\sha2.h"\ - - -.\random\unix\sha2_glue.c : \ - ".\include\apr_random.h"\ - ".\random\unix\sha2.h"\ - - -.\shmem\win32\shm.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\strings\apr_cpystrn.c : \ - ".\include\apr_lib.h"\ - ".\include\apr_strings.h"\ - - -.\strings\apr_fnmatch.c : \ - ".\include\apr_fnmatch.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_strings.h"\ - - -.\strings\apr_snprintf.c : \ - ".\include\apr_lib.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - - -.\strings\apr_strings.c : \ - ".\include\apr_lib.h"\ - ".\include\apr_strings.h"\ - - -.\strings\apr_strnatcmp.c : \ - ".\include\apr_lib.h"\ - ".\include\apr_strings.h"\ - - -.\strings\apr_strtok.c : \ - ".\include\apr_strings.h"\ - - -.\tables\apr_hash.c : \ - ".\include\apr_hash.h"\ - - -.\tables\apr_tables.c : \ - ".\include\apr_lib.h"\ - ".\include\apr_strings.h"\ - - -.\threadproc\win32\proc.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_threadproc.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\threadproc\win32\signals.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_signal.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_threadproc.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -.\threadproc\win32\thread.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_portable.h"\ - ".\include\arch\win32\apr_arch_threadproc.h"\ - - -.\threadproc\win32\threadpriv.c : \ - ".\include\apr_lib.h"\ - ".\include\apr_portable.h"\ - ".\include\arch\win32\apr_arch_threadproc.h"\ - - -.\time\win32\time.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_portable.h"\ - ".\include\arch\win32\apr_arch_atime.h"\ - - -.\time\win32\timestr.c : \ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_atime.h"\ - - -.\user\win32\groupinfo.c : \ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - - -.\user\win32\userinfo.c : \ - ".\include\apr_getopt.h"\ - ".\include\apr_lib.h"\ - ".\include\apr_poll.h"\ - ".\include\apr_portable.h"\ - ".\include\apr_strings.h"\ - ".\include\arch\win32\apr_arch_file_io.h"\ - ".\include\arch\win32\apr_arch_utf8.h"\ - - -!IF "$(CFG)" == "apr - Win32 Release" - -!ELSEIF "$(CFG)" == "apr - Win32 Debug" - -!ELSEIF "$(CFG)" == "apr - Win32 Release9x" - -!ELSEIF "$(CFG)" == "apr - Win32 Debug9x" - -!ELSEIF "$(CFG)" == "apr - x64 Release" - -!ELSEIF "$(CFG)" == "apr - x64 Debug" - -!ENDIF - +# Microsoft Developer Studio Generated Dependency File, included by apr.mak + +.\atomic\win32\apr_atomic.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_atomic.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_general.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_want.h"\ + + +.\dso\win32\dso.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_dso.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\encoding\apr_escape.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_escape.h"\ + ".\include\apr_escape_test_char.h"\ + ".\include\apr_general.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_want.h"\ + + +.\file_io\win32\buffer.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\file_io\unix\copy.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\file_io\win32\dir.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_atime.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\file_io\unix\fileacc.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\file_io\win32\filedup.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_inherit.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\file_io\win32\filepath.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\file_io\unix\filepath_util.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_general.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\file_io\win32\filestat.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_atime.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\file_io\win32\filesys.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\file_io\win32\flock.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\file_io\unix\fullrw.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + + +.\file_io\unix\mktemp.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_inherit.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\file_io\win32\open.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_inherit.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\file_io\win32\pipe.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\file_io\win32\readwrite.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_atime.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\file_io\win32\seek.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\file_io\unix\tempdir.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_env.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\locks\win32\proc_mutex.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_proc_mutex.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\locks\win32\thread_cond.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_cond.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_thread_cond.h"\ + ".\include\arch\win32\apr_arch_thread_mutex.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\locks\win32\thread_mutex.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_thread_mutex.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\locks\win32\thread_rwlock.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_thread_rwlock.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_thread_rwlock.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\memory\unix\apr_pools.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_atomic.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_env.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_hash.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\misc\win32\charset.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + + +.\misc\win32\env.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_env.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\misc\unix\errorcodes.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\misc\unix\getopt.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\misc\win32\internal.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\misc\win32\misc.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\misc\unix\otherchild.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_threadproc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\misc\win32\rand.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\misc\win32\start.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_signal.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_threadproc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\misc\win32\utf8.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_general.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\misc\unix\version.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_general.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_version.h"\ + ".\include\apr_want.h"\ + + +.\mmap\unix\common.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_mmap.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_ring.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\mmap\win32\mmap.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_mmap.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_ring.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\network_io\unix\inet_ntop.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_networkio.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\network_io\unix\inet_pton.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_networkio.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\network_io\unix\multicast.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_support.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\win32\apr_arch_inherit.h"\ + ".\include\arch\win32\apr_arch_networkio.h"\ + + +.\network_io\win32\sendrecv.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_networkio.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\network_io\unix\sockaddr.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_networkio.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\network_io\unix\socket_util.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + + +.\network_io\win32\sockets.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_inherit.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_networkio.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\network_io\win32\sockopt.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_networkio.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\passwd\apr_getpass.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_general.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\poll\unix\poll.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_ring.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\unix\apr_arch_poll_private.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_networkio.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\poll\unix\pollcb.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_ring.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\unix\apr_arch_poll_private.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_networkio.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\poll\unix\pollset.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_ring.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\unix\apr_arch_poll_private.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_inherit.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_networkio.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\poll\unix\select.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_ring.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\unix\apr_arch_poll_private.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_networkio.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\random\unix\apr_random.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_random.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + + +.\random\unix\sha2.c : \ + ".\include\apr.h"\ + ".\random\unix\sha2.h"\ + + +.\random\unix\sha2_glue.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_random.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\random\unix\sha2.h"\ + + +.\shmem\win32\shm.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\strings\apr_cpystrn.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_general.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\strings\apr_fnmatch.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_fnmatch.h"\ + ".\include\apr_general.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + + +.\strings\apr_snprintf.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\strings\apr_strings.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_general.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\strings\apr_strnatcmp.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_general.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_want.h"\ + + +.\strings\apr_strtok.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_general.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_want.h"\ + + +.\tables\apr_hash.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_general.h"\ + ".\include\apr_hash.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_time.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\tables\apr_skiplist.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_skiplist.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + + +.\tables\apr_tables.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_general.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\threadproc\win32\proc.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_threadproc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\threadproc\win32\signals.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_signal.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_threadproc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\threadproc\win32\thread.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_threadproc.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\threadproc\win32\threadpriv.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_threadproc.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\time\win32\time.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_atime.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\time\win32\timestr.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_atime.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\user\win32\groupinfo.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_private.h"\ + + +.\user\win32\userinfo.c : \ + ".\include\apr.h"\ + ".\include\apr_allocator.h"\ + ".\include\apr_dso.h"\ + ".\include\apr_errno.h"\ + ".\include\apr_file_info.h"\ + ".\include\apr_file_io.h"\ + ".\include\apr_general.h"\ + ".\include\apr_getopt.h"\ + ".\include\apr_global_mutex.h"\ + ".\include\apr_inherit.h"\ + ".\include\apr_lib.h"\ + ".\include\apr_network_io.h"\ + ".\include\apr_poll.h"\ + ".\include\apr_pools.h"\ + ".\include\apr_portable.h"\ + ".\include\apr_proc_mutex.h"\ + ".\include\apr_shm.h"\ + ".\include\apr_strings.h"\ + ".\include\apr_tables.h"\ + ".\include\apr_thread_mutex.h"\ + ".\include\apr_thread_proc.h"\ + ".\include\apr_time.h"\ + ".\include\apr_user.h"\ + ".\include\apr_want.h"\ + ".\include\arch\apr_private_common.h"\ + ".\include\arch\win32\apr_arch_file_io.h"\ + ".\include\arch\win32\apr_arch_misc.h"\ + ".\include\arch\win32\apr_arch_utf8.h"\ + ".\include\arch\win32\apr_private.h"\ + + +!IF "$(CFG)" == "apr - Win32 Release" + +!ELSEIF "$(CFG)" == "apr - Win32 Debug" + +!ELSEIF "$(CFG)" == "apr - Win32 Release9x" + +!ELSEIF "$(CFG)" == "apr - Win32 Debug9x" + +!ELSEIF "$(CFG)" == "apr - x64 Release" + +!ELSEIF "$(CFG)" == "apr - x64 Debug" + +!ENDIF + +!IF "$(CFG)" == "apr - Win32 Release" + +!ELSEIF "$(CFG)" == "apr - Win32 Debug" + +!ELSEIF "$(CFG)" == "apr - Win32 Release9x" + +!ELSEIF "$(CFG)" == "apr - Win32 Debug9x" + +!ELSEIF "$(CFG)" == "apr - x64 Release" + +!ELSEIF "$(CFG)" == "apr - x64 Debug" + +!ENDIF + +!IF "$(CFG)" == "apr - Win32 Release" + +!ELSEIF "$(CFG)" == "apr - Win32 Debug" + +!ELSEIF "$(CFG)" == "apr - Win32 Release9x" + +!ELSEIF "$(CFG)" == "apr - Win32 Debug9x" + +!ELSEIF "$(CFG)" == "apr - x64 Release" + +!ELSEIF "$(CFG)" == "apr - x64 Debug" + +!ENDIF + diff --git a/contrib/apr/apr.dsp b/contrib/apr/apr.dsp index 82eda32c0..bbba9267f 100644 --- a/contrib/apr/apr.dsp +++ b/contrib/apr/apr.dsp @@ -200,6 +200,15 @@ SOURCE=.\atomic\win32\apr_atomic.c # Begin Source File SOURCE=.\dso\win32\dso.c +# End Source File +# End Group +# Begin Group "encoding" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\encoding\apr_escape.c + # End Source File # End Group # Begin Group "file_io" @@ -492,6 +501,10 @@ SOURCE=.\tables\apr_hash.c # End Source File # Begin Source File +SOURCE=.\tables\apr_skiplist.c +# End Source File +# Begin Source File + SOURCE=.\tables\apr_tables.c # End Source File # End Group @@ -694,6 +707,85 @@ SOURCE=.\include\apr_errno.h # End Source File # Begin Source File +SOURCE=.\include\apr_escape.h +# End Source File +# Begin Source File + +SOURCE=.\include\apr_escape.h + +!IF "$(CFG)" == "apr - Win32 Release" + +# Begin Custom Build - Creating gen_test_char.exe and apr_escape_test_char.h +InputPath=.\include\apr_escape.h + +".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + cl.exe /nologo /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /I ".\include" /Fo.\LibR\gen_test_char /Fe.\LibR\gen_test_char.exe .\tools\gen_test_char.c + .\LibR\gen_test_char.exe > .\include\apr_escape_test_char.h + +# End Custom Build + +!ELSEIF "$(CFG)" == "apr - Win32 Debug" + +# Begin Custom Build - Creating gen_test_char.exe and apr_escape_test_char.h +InputPath=.\include\apr_escape.h + +".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + cl.exe /nologo /W3 /EHsc /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /I ".\include" /Fo.\LibD\gen_test_char /Fe.\LibD\gen_test_char.exe .\tools\gen_test_char.c + .\LibD\gen_test_char.exe > .\include\apr_escape_test_char.h + +# End Custom Build + +!ELSEIF "$(CFG)" == "apr - Win32 Release9x" + +# Begin Custom Build - Creating gen_test_char.exe and apr_escape_test_char.h +InputPath=.\include\apr_escape.h + +".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + cl.exe /nologo /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /I ".\include" /Fo.\9x\LibR\gen_test_char /Fe.\9x\LibR\gen_test_char.exe .\tools\gen_test_char.c + .\9x\LibR\gen_test_char.exe > .\include\apr_escape_test_char.h + +# End Custom Build + +!ELSEIF "$(CFG)" == "apr - Win32 Debug9x" + +# Begin Custom Build - Creating gen_test_char.exe and apr_escape_test_char.h +InputPath=.\include\apr_escape.h + +InputPath=.\include\apr_escape.h +".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + cl.exe /nologo /W3 /EHsc /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /I ".\include" /Fo.\9x\LibD\gen_test_char /Fe.\9x\LibD\gen_test_char.exe .\tools\gen_test_char.c + .\9x\LibD\gen_test_char.exe > .\include\apr_escape_test_char.h + +# End Custom Build + +!ELSEIF "$(CFG)" == "apr - x64 Release" + +# Begin Custom Build - Creating gen_test_char.exe and apr_escape_test_char.h +InputPath=.\include\apr_escape.h + +InputPath=.\include\apr_escape.h +".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + cl.exe /nologo /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /I ".\include" /Fo.\x64\LibR\gen_test_char /Fe.\x64\LibR\gen_test_char.exe .\tools\gen_test_char.c + .\x64\LibR\gen_test_char.exe > .\include\apr_escape_test_char.h + +# End Custom Build + +!ELSEIF "$(CFG)" == "apr - x64 Debug" + +# Begin Custom Build - Creating gen_test_char.exe and apr_escape_test_char.h +InputPath=.\include\apr_escape.h + +".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + cl.exe /nologo /W3 /EHsc /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /I ".\include" /Fo.\x64\LibD\gen_test_char /Fe.\x64\LibD\gen_test_char.exe .\tools\gen_test_char.c + .\x64\LibD\gen_test_char.exe > .\include\apr_escape_test_char.h + +# End Custom Build + +!ENDIF + +# End Source File +# Begin Source File + SOURCE=.\include\apr_file_info.h # End Source File # Begin Source File @@ -770,6 +862,10 @@ SOURCE=.\include\apr_signal.h # End Source File # Begin Source File +SOURCE=.\include\apr_skiplist.h +# End Source File +# Begin Source File + SOURCE=.\include\apr_strings.h # End Source File # Begin Source File @@ -811,6 +907,69 @@ SOURCE=.\include\apr_version.h # Begin Source File SOURCE=.\include\apr_want.h + +!IF "$(CFG)" == "apr - Win32 Release" + +# Begin Custom Build +InputPath=.\include\apr_want.h + +".\LibR\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + type .\include\apr.hw > .\include\apr.h + +# End Custom Build + +!ELSEIF "$(CFG)" == "apr - Win32 Debug" + +# Begin Custom Build +InputPath=.\include\apr_want.h + +".\LibD\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + type .\include\apr.hw > .\include\apr.h + +# End Custom Build + +!ELSEIF "$(CFG)" == "apr - Win32 Release9x" + +# Begin Custom Build +InputPath=.\include\apr_want.h + +".\9x\LibR\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + type .\include\apr.hw > .\include\apr.h + +# End Custom Build + +!ELSEIF "$(CFG)" == "apr - Win32 Debug9x" + +# Begin Custom Build +InputPath=.\include\apr_want.h + +".\9x\LibD\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + type .\include\apr.hw > .\include\apr.h + +# End Custom Build + +!ELSEIF "$(CFG)" == "apr - x64 Release" + +# Begin Custom Build +InputPath=.\include\apr_want.h + +".\x64\LibR\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + type .\include\apr.hw > .\include\apr.h + +# End Custom Build + +!ELSEIF "$(CFG)" == "apr - x64 Debug" + +# Begin Custom Build +InputPath=.\include\apr_want.h + +".\x64\LibD\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + type .\include\apr.hw > .\include\apr.h + +# End Custom Build + +!ENDIF + # End Source File # End Group # End Target diff --git a/contrib/apr/apr.mak b/contrib/apr/apr.mak index 78bd56a98..8248fa13c 100644 --- a/contrib/apr/apr.mak +++ b/contrib/apr/apr.mak @@ -1,1779 +1,1980 @@ -# Microsoft Developer Studio Generated NMAKE File, Based on apr.dsp -!IF "$(CFG)" == "" -CFG=apr - Win32 Release -!MESSAGE No configuration specified. Defaulting to apr - Win32 Release. -!ENDIF - -!IF "$(CFG)" != "apr - Win32 Release" && "$(CFG)" != "apr - Win32 Debug" && "$(CFG)" != "apr - Win32 Release9x" && "$(CFG)" != "apr - Win32 Debug9x" && "$(CFG)" != "apr - x64 Release" && "$(CFG)" != "apr - 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 "apr.mak" CFG="apr - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "apr - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "apr - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE "apr - Win32 Release9x" (based on "Win32 (x86) Static Library") -!MESSAGE "apr - Win32 Debug9x" (based on "Win32 (x86) Static Library") -!MESSAGE "apr - x64 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "apr - 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)" == "apr - Win32 Release" - -OUTDIR=.\LibR -INTDIR=.\LibR -# Begin Custom Macros -OutDir=.\LibR -# End Custom Macros - -ALL : "$(OUTDIR)\apr-1.lib" - - -CLEAN : - -@erase "$(INTDIR)\apr-1.idb" - -@erase "$(INTDIR)\apr-1.pdb" - -@erase "$(INTDIR)\apr_atomic.obj" - -@erase "$(INTDIR)\apr_cpystrn.obj" - -@erase "$(INTDIR)\apr_fnmatch.obj" - -@erase "$(INTDIR)\apr_getpass.obj" - -@erase "$(INTDIR)\apr_hash.obj" - -@erase "$(INTDIR)\apr_pools.obj" - -@erase "$(INTDIR)\apr_random.obj" - -@erase "$(INTDIR)\apr_snprintf.obj" - -@erase "$(INTDIR)\apr_strings.obj" - -@erase "$(INTDIR)\apr_strnatcmp.obj" - -@erase "$(INTDIR)\apr_strtok.obj" - -@erase "$(INTDIR)\apr_tables.obj" - -@erase "$(INTDIR)\buffer.obj" - -@erase "$(INTDIR)\charset.obj" - -@erase "$(INTDIR)\common.obj" - -@erase "$(INTDIR)\copy.obj" - -@erase "$(INTDIR)\dir.obj" - -@erase "$(INTDIR)\dso.obj" - -@erase "$(INTDIR)\env.obj" - -@erase "$(INTDIR)\errorcodes.obj" - -@erase "$(INTDIR)\fileacc.obj" - -@erase "$(INTDIR)\filedup.obj" - -@erase "$(INTDIR)\filepath.obj" - -@erase "$(INTDIR)\filepath_util.obj" - -@erase "$(INTDIR)\filestat.obj" - -@erase "$(INTDIR)\filesys.obj" - -@erase "$(INTDIR)\flock.obj" - -@erase "$(INTDIR)\fullrw.obj" - -@erase "$(INTDIR)\getopt.obj" - -@erase "$(INTDIR)\groupinfo.obj" - -@erase "$(INTDIR)\inet_ntop.obj" - -@erase "$(INTDIR)\inet_pton.obj" - -@erase "$(INTDIR)\internal.obj" - -@erase "$(INTDIR)\misc.obj" - -@erase "$(INTDIR)\mktemp.obj" - -@erase "$(INTDIR)\mmap.obj" - -@erase "$(INTDIR)\multicast.obj" - -@erase "$(INTDIR)\open.obj" - -@erase "$(INTDIR)\otherchild.obj" - -@erase "$(INTDIR)\pipe.obj" - -@erase "$(INTDIR)\poll.obj" - -@erase "$(INTDIR)\pollcb.obj" - -@erase "$(INTDIR)\pollset.obj" - -@erase "$(INTDIR)\proc.obj" - -@erase "$(INTDIR)\proc_mutex.obj" - -@erase "$(INTDIR)\rand.obj" - -@erase "$(INTDIR)\readwrite.obj" - -@erase "$(INTDIR)\seek.obj" - -@erase "$(INTDIR)\select.obj" - -@erase "$(INTDIR)\sendrecv.obj" - -@erase "$(INTDIR)\sha2.obj" - -@erase "$(INTDIR)\sha2_glue.obj" - -@erase "$(INTDIR)\shm.obj" - -@erase "$(INTDIR)\signals.obj" - -@erase "$(INTDIR)\sockaddr.obj" - -@erase "$(INTDIR)\socket_util.obj" - -@erase "$(INTDIR)\sockets.obj" - -@erase "$(INTDIR)\sockopt.obj" - -@erase "$(INTDIR)\start.obj" - -@erase "$(INTDIR)\tempdir.obj" - -@erase "$(INTDIR)\thread.obj" - -@erase "$(INTDIR)\thread_cond.obj" - -@erase "$(INTDIR)\thread_mutex.obj" - -@erase "$(INTDIR)\thread_rwlock.obj" - -@erase "$(INTDIR)\threadpriv.obj" - -@erase "$(INTDIR)\time.obj" - -@erase "$(INTDIR)\timestr.obj" - -@erase "$(INTDIR)\userinfo.obj" - -@erase "$(INTDIR)\utf8.obj" - -@erase "$(INTDIR)\version.obj" - -@erase "$(OUTDIR)\apr-1.lib" - -"$(OUTDIR)" : - if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" - -CPP=cl.exe -CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "NDEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\apr-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)\apr.bsc" -BSC32_SBRS= \ - -LIB32=link.exe -lib -LIB32_FLAGS=/nologo /out:"$(OUTDIR)\apr-1.lib" -LIB32_OBJS= \ - "$(INTDIR)\apr_atomic.obj" \ - "$(INTDIR)\dso.obj" \ - "$(INTDIR)\buffer.obj" \ - "$(INTDIR)\copy.obj" \ - "$(INTDIR)\dir.obj" \ - "$(INTDIR)\fileacc.obj" \ - "$(INTDIR)\filedup.obj" \ - "$(INTDIR)\filepath.obj" \ - "$(INTDIR)\filepath_util.obj" \ - "$(INTDIR)\filestat.obj" \ - "$(INTDIR)\filesys.obj" \ - "$(INTDIR)\flock.obj" \ - "$(INTDIR)\fullrw.obj" \ - "$(INTDIR)\mktemp.obj" \ - "$(INTDIR)\open.obj" \ - "$(INTDIR)\pipe.obj" \ - "$(INTDIR)\readwrite.obj" \ - "$(INTDIR)\seek.obj" \ - "$(INTDIR)\tempdir.obj" \ - "$(INTDIR)\proc_mutex.obj" \ - "$(INTDIR)\thread_cond.obj" \ - "$(INTDIR)\thread_mutex.obj" \ - "$(INTDIR)\thread_rwlock.obj" \ - "$(INTDIR)\apr_pools.obj" \ - "$(INTDIR)\charset.obj" \ - "$(INTDIR)\env.obj" \ - "$(INTDIR)\errorcodes.obj" \ - "$(INTDIR)\getopt.obj" \ - "$(INTDIR)\internal.obj" \ - "$(INTDIR)\misc.obj" \ - "$(INTDIR)\otherchild.obj" \ - "$(INTDIR)\rand.obj" \ - "$(INTDIR)\start.obj" \ - "$(INTDIR)\utf8.obj" \ - "$(INTDIR)\version.obj" \ - "$(INTDIR)\common.obj" \ - "$(INTDIR)\mmap.obj" \ - "$(INTDIR)\inet_ntop.obj" \ - "$(INTDIR)\inet_pton.obj" \ - "$(INTDIR)\multicast.obj" \ - "$(INTDIR)\sendrecv.obj" \ - "$(INTDIR)\sockaddr.obj" \ - "$(INTDIR)\sockets.obj" \ - "$(INTDIR)\socket_util.obj" \ - "$(INTDIR)\sockopt.obj" \ - "$(INTDIR)\apr_getpass.obj" \ - "$(INTDIR)\poll.obj" \ - "$(INTDIR)\pollcb.obj" \ - "$(INTDIR)\pollset.obj" \ - "$(INTDIR)\select.obj" \ - "$(INTDIR)\apr_random.obj" \ - "$(INTDIR)\sha2.obj" \ - "$(INTDIR)\sha2_glue.obj" \ - "$(INTDIR)\shm.obj" \ - "$(INTDIR)\apr_cpystrn.obj" \ - "$(INTDIR)\apr_fnmatch.obj" \ - "$(INTDIR)\apr_snprintf.obj" \ - "$(INTDIR)\apr_strings.obj" \ - "$(INTDIR)\apr_strnatcmp.obj" \ - "$(INTDIR)\apr_strtok.obj" \ - "$(INTDIR)\apr_hash.obj" \ - "$(INTDIR)\apr_tables.obj" \ - "$(INTDIR)\proc.obj" \ - "$(INTDIR)\signals.obj" \ - "$(INTDIR)\thread.obj" \ - "$(INTDIR)\threadpriv.obj" \ - "$(INTDIR)\time.obj" \ - "$(INTDIR)\timestr.obj" \ - "$(INTDIR)\groupinfo.obj" \ - "$(INTDIR)\userinfo.obj" - -"$(OUTDIR)\apr-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) - $(LIB32) @<< - $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) -<< - -!ELSEIF "$(CFG)" == "apr - Win32 Debug" - -OUTDIR=.\LibD -INTDIR=.\LibD -# Begin Custom Macros -OutDir=.\LibD -# End Custom Macros - -ALL : ".\include\apr.h" "$(OUTDIR)\apr-1.lib" - - -CLEAN : - -@erase "$(INTDIR)\apr-1.idb" - -@erase "$(INTDIR)\apr-1.pdb" - -@erase "$(INTDIR)\apr_atomic.obj" - -@erase "$(INTDIR)\apr_cpystrn.obj" - -@erase "$(INTDIR)\apr_fnmatch.obj" - -@erase "$(INTDIR)\apr_getpass.obj" - -@erase "$(INTDIR)\apr_hash.obj" - -@erase "$(INTDIR)\apr_pools.obj" - -@erase "$(INTDIR)\apr_random.obj" - -@erase "$(INTDIR)\apr_snprintf.obj" - -@erase "$(INTDIR)\apr_strings.obj" - -@erase "$(INTDIR)\apr_strnatcmp.obj" - -@erase "$(INTDIR)\apr_strtok.obj" - -@erase "$(INTDIR)\apr_tables.obj" - -@erase "$(INTDIR)\buffer.obj" - -@erase "$(INTDIR)\charset.obj" - -@erase "$(INTDIR)\common.obj" - -@erase "$(INTDIR)\copy.obj" - -@erase "$(INTDIR)\dir.obj" - -@erase "$(INTDIR)\dso.obj" - -@erase "$(INTDIR)\env.obj" - -@erase "$(INTDIR)\errorcodes.obj" - -@erase "$(INTDIR)\fileacc.obj" - -@erase "$(INTDIR)\filedup.obj" - -@erase "$(INTDIR)\filepath.obj" - -@erase "$(INTDIR)\filepath_util.obj" - -@erase "$(INTDIR)\filestat.obj" - -@erase "$(INTDIR)\filesys.obj" - -@erase "$(INTDIR)\flock.obj" - -@erase "$(INTDIR)\fullrw.obj" - -@erase "$(INTDIR)\getopt.obj" - -@erase "$(INTDIR)\groupinfo.obj" - -@erase "$(INTDIR)\inet_ntop.obj" - -@erase "$(INTDIR)\inet_pton.obj" - -@erase "$(INTDIR)\internal.obj" - -@erase "$(INTDIR)\misc.obj" - -@erase "$(INTDIR)\mktemp.obj" - -@erase "$(INTDIR)\mmap.obj" - -@erase "$(INTDIR)\multicast.obj" - -@erase "$(INTDIR)\open.obj" - -@erase "$(INTDIR)\otherchild.obj" - -@erase "$(INTDIR)\pipe.obj" - -@erase "$(INTDIR)\poll.obj" - -@erase "$(INTDIR)\pollcb.obj" - -@erase "$(INTDIR)\pollset.obj" - -@erase "$(INTDIR)\proc.obj" - -@erase "$(INTDIR)\proc_mutex.obj" - -@erase "$(INTDIR)\rand.obj" - -@erase "$(INTDIR)\readwrite.obj" - -@erase "$(INTDIR)\seek.obj" - -@erase "$(INTDIR)\select.obj" - -@erase "$(INTDIR)\sendrecv.obj" - -@erase "$(INTDIR)\sha2.obj" - -@erase "$(INTDIR)\sha2_glue.obj" - -@erase "$(INTDIR)\shm.obj" - -@erase "$(INTDIR)\signals.obj" - -@erase "$(INTDIR)\sockaddr.obj" - -@erase "$(INTDIR)\socket_util.obj" - -@erase "$(INTDIR)\sockets.obj" - -@erase "$(INTDIR)\sockopt.obj" - -@erase "$(INTDIR)\start.obj" - -@erase "$(INTDIR)\tempdir.obj" - -@erase "$(INTDIR)\thread.obj" - -@erase "$(INTDIR)\thread_cond.obj" - -@erase "$(INTDIR)\thread_mutex.obj" - -@erase "$(INTDIR)\thread_rwlock.obj" - -@erase "$(INTDIR)\threadpriv.obj" - -@erase "$(INTDIR)\time.obj" - -@erase "$(INTDIR)\timestr.obj" - -@erase "$(INTDIR)\userinfo.obj" - -@erase "$(INTDIR)\utf8.obj" - -@erase "$(INTDIR)\version.obj" - -@erase "$(OUTDIR)\apr-1.lib" - -@erase ".\include\apr.h" - -"$(OUTDIR)" : - if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" - -CPP=cl.exe -CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "_DEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\apr-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)\apr.bsc" -BSC32_SBRS= \ - -LIB32=link.exe -lib -LIB32_FLAGS=/nologo /out:"$(OUTDIR)\apr-1.lib" -LIB32_OBJS= \ - "$(INTDIR)\apr_atomic.obj" \ - "$(INTDIR)\dso.obj" \ - "$(INTDIR)\buffer.obj" \ - "$(INTDIR)\copy.obj" \ - "$(INTDIR)\dir.obj" \ - "$(INTDIR)\fileacc.obj" \ - "$(INTDIR)\filedup.obj" \ - "$(INTDIR)\filepath.obj" \ - "$(INTDIR)\filepath_util.obj" \ - "$(INTDIR)\filestat.obj" \ - "$(INTDIR)\filesys.obj" \ - "$(INTDIR)\flock.obj" \ - "$(INTDIR)\fullrw.obj" \ - "$(INTDIR)\mktemp.obj" \ - "$(INTDIR)\open.obj" \ - "$(INTDIR)\pipe.obj" \ - "$(INTDIR)\readwrite.obj" \ - "$(INTDIR)\seek.obj" \ - "$(INTDIR)\tempdir.obj" \ - "$(INTDIR)\proc_mutex.obj" \ - "$(INTDIR)\thread_cond.obj" \ - "$(INTDIR)\thread_mutex.obj" \ - "$(INTDIR)\thread_rwlock.obj" \ - "$(INTDIR)\apr_pools.obj" \ - "$(INTDIR)\charset.obj" \ - "$(INTDIR)\env.obj" \ - "$(INTDIR)\errorcodes.obj" \ - "$(INTDIR)\getopt.obj" \ - "$(INTDIR)\internal.obj" \ - "$(INTDIR)\misc.obj" \ - "$(INTDIR)\otherchild.obj" \ - "$(INTDIR)\rand.obj" \ - "$(INTDIR)\start.obj" \ - "$(INTDIR)\utf8.obj" \ - "$(INTDIR)\version.obj" \ - "$(INTDIR)\common.obj" \ - "$(INTDIR)\mmap.obj" \ - "$(INTDIR)\inet_ntop.obj" \ - "$(INTDIR)\inet_pton.obj" \ - "$(INTDIR)\multicast.obj" \ - "$(INTDIR)\sendrecv.obj" \ - "$(INTDIR)\sockaddr.obj" \ - "$(INTDIR)\sockets.obj" \ - "$(INTDIR)\socket_util.obj" \ - "$(INTDIR)\sockopt.obj" \ - "$(INTDIR)\apr_getpass.obj" \ - "$(INTDIR)\poll.obj" \ - "$(INTDIR)\pollcb.obj" \ - "$(INTDIR)\pollset.obj" \ - "$(INTDIR)\select.obj" \ - "$(INTDIR)\apr_random.obj" \ - "$(INTDIR)\sha2.obj" \ - "$(INTDIR)\sha2_glue.obj" \ - "$(INTDIR)\shm.obj" \ - "$(INTDIR)\apr_cpystrn.obj" \ - "$(INTDIR)\apr_fnmatch.obj" \ - "$(INTDIR)\apr_snprintf.obj" \ - "$(INTDIR)\apr_strings.obj" \ - "$(INTDIR)\apr_strnatcmp.obj" \ - "$(INTDIR)\apr_strtok.obj" \ - "$(INTDIR)\apr_hash.obj" \ - "$(INTDIR)\apr_tables.obj" \ - "$(INTDIR)\proc.obj" \ - "$(INTDIR)\signals.obj" \ - "$(INTDIR)\thread.obj" \ - "$(INTDIR)\threadpriv.obj" \ - "$(INTDIR)\time.obj" \ - "$(INTDIR)\timestr.obj" \ - "$(INTDIR)\groupinfo.obj" \ - "$(INTDIR)\userinfo.obj" - -"$(OUTDIR)\apr-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) - $(LIB32) @<< - $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) -<< - -!ELSEIF "$(CFG)" == "apr - Win32 Release9x" - -OUTDIR=.\9x\LibR -INTDIR=.\9x\LibR -# Begin Custom Macros -OutDir=.\9x\LibR -# End Custom Macros - -ALL : ".\include\apr.h" "$(OUTDIR)\apr-1.lib" - - -CLEAN : - -@erase "$(INTDIR)\apr-1.idb" - -@erase "$(INTDIR)\apr-1.pdb" - -@erase "$(INTDIR)\apr_atomic.obj" - -@erase "$(INTDIR)\apr_cpystrn.obj" - -@erase "$(INTDIR)\apr_fnmatch.obj" - -@erase "$(INTDIR)\apr_getpass.obj" - -@erase "$(INTDIR)\apr_hash.obj" - -@erase "$(INTDIR)\apr_pools.obj" - -@erase "$(INTDIR)\apr_random.obj" - -@erase "$(INTDIR)\apr_snprintf.obj" - -@erase "$(INTDIR)\apr_strings.obj" - -@erase "$(INTDIR)\apr_strnatcmp.obj" - -@erase "$(INTDIR)\apr_strtok.obj" - -@erase "$(INTDIR)\apr_tables.obj" - -@erase "$(INTDIR)\buffer.obj" - -@erase "$(INTDIR)\charset.obj" - -@erase "$(INTDIR)\common.obj" - -@erase "$(INTDIR)\copy.obj" - -@erase "$(INTDIR)\dir.obj" - -@erase "$(INTDIR)\dso.obj" - -@erase "$(INTDIR)\env.obj" - -@erase "$(INTDIR)\errorcodes.obj" - -@erase "$(INTDIR)\fileacc.obj" - -@erase "$(INTDIR)\filedup.obj" - -@erase "$(INTDIR)\filepath.obj" - -@erase "$(INTDIR)\filepath_util.obj" - -@erase "$(INTDIR)\filestat.obj" - -@erase "$(INTDIR)\filesys.obj" - -@erase "$(INTDIR)\flock.obj" - -@erase "$(INTDIR)\fullrw.obj" - -@erase "$(INTDIR)\getopt.obj" - -@erase "$(INTDIR)\groupinfo.obj" - -@erase "$(INTDIR)\inet_ntop.obj" - -@erase "$(INTDIR)\inet_pton.obj" - -@erase "$(INTDIR)\internal.obj" - -@erase "$(INTDIR)\misc.obj" - -@erase "$(INTDIR)\mktemp.obj" - -@erase "$(INTDIR)\mmap.obj" - -@erase "$(INTDIR)\multicast.obj" - -@erase "$(INTDIR)\open.obj" - -@erase "$(INTDIR)\otherchild.obj" - -@erase "$(INTDIR)\pipe.obj" - -@erase "$(INTDIR)\poll.obj" - -@erase "$(INTDIR)\pollcb.obj" - -@erase "$(INTDIR)\pollset.obj" - -@erase "$(INTDIR)\proc.obj" - -@erase "$(INTDIR)\proc_mutex.obj" - -@erase "$(INTDIR)\rand.obj" - -@erase "$(INTDIR)\readwrite.obj" - -@erase "$(INTDIR)\seek.obj" - -@erase "$(INTDIR)\select.obj" - -@erase "$(INTDIR)\sendrecv.obj" - -@erase "$(INTDIR)\sha2.obj" - -@erase "$(INTDIR)\sha2_glue.obj" - -@erase "$(INTDIR)\shm.obj" - -@erase "$(INTDIR)\signals.obj" - -@erase "$(INTDIR)\sockaddr.obj" - -@erase "$(INTDIR)\socket_util.obj" - -@erase "$(INTDIR)\sockets.obj" - -@erase "$(INTDIR)\sockopt.obj" - -@erase "$(INTDIR)\start.obj" - -@erase "$(INTDIR)\tempdir.obj" - -@erase "$(INTDIR)\thread.obj" - -@erase "$(INTDIR)\thread_cond.obj" - -@erase "$(INTDIR)\thread_mutex.obj" - -@erase "$(INTDIR)\thread_rwlock.obj" - -@erase "$(INTDIR)\threadpriv.obj" - -@erase "$(INTDIR)\time.obj" - -@erase "$(INTDIR)\timestr.obj" - -@erase "$(INTDIR)\userinfo.obj" - -@erase "$(INTDIR)\utf8.obj" - -@erase "$(INTDIR)\version.obj" - -@erase "$(OUTDIR)\apr-1.lib" - -@erase ".\include\apr.h" - -"$(OUTDIR)" : - if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" - -CPP=cl.exe -CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "NDEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\apr-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)\apr.bsc" -BSC32_SBRS= \ - -LIB32=link.exe -lib -LIB32_FLAGS=/nologo /out:"$(OUTDIR)\apr-1.lib" -LIB32_OBJS= \ - "$(INTDIR)\apr_atomic.obj" \ - "$(INTDIR)\dso.obj" \ - "$(INTDIR)\buffer.obj" \ - "$(INTDIR)\copy.obj" \ - "$(INTDIR)\dir.obj" \ - "$(INTDIR)\fileacc.obj" \ - "$(INTDIR)\filedup.obj" \ - "$(INTDIR)\filepath.obj" \ - "$(INTDIR)\filepath_util.obj" \ - "$(INTDIR)\filestat.obj" \ - "$(INTDIR)\filesys.obj" \ - "$(INTDIR)\flock.obj" \ - "$(INTDIR)\fullrw.obj" \ - "$(INTDIR)\mktemp.obj" \ - "$(INTDIR)\open.obj" \ - "$(INTDIR)\pipe.obj" \ - "$(INTDIR)\readwrite.obj" \ - "$(INTDIR)\seek.obj" \ - "$(INTDIR)\tempdir.obj" \ - "$(INTDIR)\proc_mutex.obj" \ - "$(INTDIR)\thread_cond.obj" \ - "$(INTDIR)\thread_mutex.obj" \ - "$(INTDIR)\thread_rwlock.obj" \ - "$(INTDIR)\apr_pools.obj" \ - "$(INTDIR)\charset.obj" \ - "$(INTDIR)\env.obj" \ - "$(INTDIR)\errorcodes.obj" \ - "$(INTDIR)\getopt.obj" \ - "$(INTDIR)\internal.obj" \ - "$(INTDIR)\misc.obj" \ - "$(INTDIR)\otherchild.obj" \ - "$(INTDIR)\rand.obj" \ - "$(INTDIR)\start.obj" \ - "$(INTDIR)\utf8.obj" \ - "$(INTDIR)\version.obj" \ - "$(INTDIR)\common.obj" \ - "$(INTDIR)\mmap.obj" \ - "$(INTDIR)\inet_ntop.obj" \ - "$(INTDIR)\inet_pton.obj" \ - "$(INTDIR)\multicast.obj" \ - "$(INTDIR)\sendrecv.obj" \ - "$(INTDIR)\sockaddr.obj" \ - "$(INTDIR)\sockets.obj" \ - "$(INTDIR)\socket_util.obj" \ - "$(INTDIR)\sockopt.obj" \ - "$(INTDIR)\apr_getpass.obj" \ - "$(INTDIR)\poll.obj" \ - "$(INTDIR)\pollcb.obj" \ - "$(INTDIR)\pollset.obj" \ - "$(INTDIR)\select.obj" \ - "$(INTDIR)\apr_random.obj" \ - "$(INTDIR)\sha2.obj" \ - "$(INTDIR)\sha2_glue.obj" \ - "$(INTDIR)\shm.obj" \ - "$(INTDIR)\apr_cpystrn.obj" \ - "$(INTDIR)\apr_fnmatch.obj" \ - "$(INTDIR)\apr_snprintf.obj" \ - "$(INTDIR)\apr_strings.obj" \ - "$(INTDIR)\apr_strnatcmp.obj" \ - "$(INTDIR)\apr_strtok.obj" \ - "$(INTDIR)\apr_hash.obj" \ - "$(INTDIR)\apr_tables.obj" \ - "$(INTDIR)\proc.obj" \ - "$(INTDIR)\signals.obj" \ - "$(INTDIR)\thread.obj" \ - "$(INTDIR)\threadpriv.obj" \ - "$(INTDIR)\time.obj" \ - "$(INTDIR)\timestr.obj" \ - "$(INTDIR)\groupinfo.obj" \ - "$(INTDIR)\userinfo.obj" - -"$(OUTDIR)\apr-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) - $(LIB32) @<< - $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) -<< - -!ELSEIF "$(CFG)" == "apr - Win32 Debug9x" - -OUTDIR=.\9x\LibD -INTDIR=.\9x\LibD -# Begin Custom Macros -OutDir=.\9x\LibD -# End Custom Macros - -ALL : ".\include\apr.h" "$(OUTDIR)\apr-1.lib" - - -CLEAN : - -@erase "$(INTDIR)\apr-1.idb" - -@erase "$(INTDIR)\apr-1.pdb" - -@erase "$(INTDIR)\apr_atomic.obj" - -@erase "$(INTDIR)\apr_cpystrn.obj" - -@erase "$(INTDIR)\apr_fnmatch.obj" - -@erase "$(INTDIR)\apr_getpass.obj" - -@erase "$(INTDIR)\apr_hash.obj" - -@erase "$(INTDIR)\apr_pools.obj" - -@erase "$(INTDIR)\apr_random.obj" - -@erase "$(INTDIR)\apr_snprintf.obj" - -@erase "$(INTDIR)\apr_strings.obj" - -@erase "$(INTDIR)\apr_strnatcmp.obj" - -@erase "$(INTDIR)\apr_strtok.obj" - -@erase "$(INTDIR)\apr_tables.obj" - -@erase "$(INTDIR)\buffer.obj" - -@erase "$(INTDIR)\charset.obj" - -@erase "$(INTDIR)\common.obj" - -@erase "$(INTDIR)\copy.obj" - -@erase "$(INTDIR)\dir.obj" - -@erase "$(INTDIR)\dso.obj" - -@erase "$(INTDIR)\env.obj" - -@erase "$(INTDIR)\errorcodes.obj" - -@erase "$(INTDIR)\fileacc.obj" - -@erase "$(INTDIR)\filedup.obj" - -@erase "$(INTDIR)\filepath.obj" - -@erase "$(INTDIR)\filepath_util.obj" - -@erase "$(INTDIR)\filestat.obj" - -@erase "$(INTDIR)\filesys.obj" - -@erase "$(INTDIR)\flock.obj" - -@erase "$(INTDIR)\fullrw.obj" - -@erase "$(INTDIR)\getopt.obj" - -@erase "$(INTDIR)\groupinfo.obj" - -@erase "$(INTDIR)\inet_ntop.obj" - -@erase "$(INTDIR)\inet_pton.obj" - -@erase "$(INTDIR)\internal.obj" - -@erase "$(INTDIR)\misc.obj" - -@erase "$(INTDIR)\mktemp.obj" - -@erase "$(INTDIR)\mmap.obj" - -@erase "$(INTDIR)\multicast.obj" - -@erase "$(INTDIR)\open.obj" - -@erase "$(INTDIR)\otherchild.obj" - -@erase "$(INTDIR)\pipe.obj" - -@erase "$(INTDIR)\poll.obj" - -@erase "$(INTDIR)\pollcb.obj" - -@erase "$(INTDIR)\pollset.obj" - -@erase "$(INTDIR)\proc.obj" - -@erase "$(INTDIR)\proc_mutex.obj" - -@erase "$(INTDIR)\rand.obj" - -@erase "$(INTDIR)\readwrite.obj" - -@erase "$(INTDIR)\seek.obj" - -@erase "$(INTDIR)\select.obj" - -@erase "$(INTDIR)\sendrecv.obj" - -@erase "$(INTDIR)\sha2.obj" - -@erase "$(INTDIR)\sha2_glue.obj" - -@erase "$(INTDIR)\shm.obj" - -@erase "$(INTDIR)\signals.obj" - -@erase "$(INTDIR)\sockaddr.obj" - -@erase "$(INTDIR)\socket_util.obj" - -@erase "$(INTDIR)\sockets.obj" - -@erase "$(INTDIR)\sockopt.obj" - -@erase "$(INTDIR)\start.obj" - -@erase "$(INTDIR)\tempdir.obj" - -@erase "$(INTDIR)\thread.obj" - -@erase "$(INTDIR)\thread_cond.obj" - -@erase "$(INTDIR)\thread_mutex.obj" - -@erase "$(INTDIR)\thread_rwlock.obj" - -@erase "$(INTDIR)\threadpriv.obj" - -@erase "$(INTDIR)\time.obj" - -@erase "$(INTDIR)\timestr.obj" - -@erase "$(INTDIR)\userinfo.obj" - -@erase "$(INTDIR)\utf8.obj" - -@erase "$(INTDIR)\version.obj" - -@erase "$(OUTDIR)\apr-1.lib" - -@erase ".\include\apr.h" - -"$(OUTDIR)" : - if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" - -CPP=cl.exe -CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "_DEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\apr-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)\apr.bsc" -BSC32_SBRS= \ - -LIB32=link.exe -lib -LIB32_FLAGS=/nologo /out:"$(OUTDIR)\apr-1.lib" -LIB32_OBJS= \ - "$(INTDIR)\apr_atomic.obj" \ - "$(INTDIR)\dso.obj" \ - "$(INTDIR)\buffer.obj" \ - "$(INTDIR)\copy.obj" \ - "$(INTDIR)\dir.obj" \ - "$(INTDIR)\fileacc.obj" \ - "$(INTDIR)\filedup.obj" \ - "$(INTDIR)\filepath.obj" \ - "$(INTDIR)\filepath_util.obj" \ - "$(INTDIR)\filestat.obj" \ - "$(INTDIR)\filesys.obj" \ - "$(INTDIR)\flock.obj" \ - "$(INTDIR)\fullrw.obj" \ - "$(INTDIR)\mktemp.obj" \ - "$(INTDIR)\open.obj" \ - "$(INTDIR)\pipe.obj" \ - "$(INTDIR)\readwrite.obj" \ - "$(INTDIR)\seek.obj" \ - "$(INTDIR)\tempdir.obj" \ - "$(INTDIR)\proc_mutex.obj" \ - "$(INTDIR)\thread_cond.obj" \ - "$(INTDIR)\thread_mutex.obj" \ - "$(INTDIR)\thread_rwlock.obj" \ - "$(INTDIR)\apr_pools.obj" \ - "$(INTDIR)\charset.obj" \ - "$(INTDIR)\env.obj" \ - "$(INTDIR)\errorcodes.obj" \ - "$(INTDIR)\getopt.obj" \ - "$(INTDIR)\internal.obj" \ - "$(INTDIR)\misc.obj" \ - "$(INTDIR)\otherchild.obj" \ - "$(INTDIR)\rand.obj" \ - "$(INTDIR)\start.obj" \ - "$(INTDIR)\utf8.obj" \ - "$(INTDIR)\version.obj" \ - "$(INTDIR)\common.obj" \ - "$(INTDIR)\mmap.obj" \ - "$(INTDIR)\inet_ntop.obj" \ - "$(INTDIR)\inet_pton.obj" \ - "$(INTDIR)\multicast.obj" \ - "$(INTDIR)\sendrecv.obj" \ - "$(INTDIR)\sockaddr.obj" \ - "$(INTDIR)\sockets.obj" \ - "$(INTDIR)\socket_util.obj" \ - "$(INTDIR)\sockopt.obj" \ - "$(INTDIR)\apr_getpass.obj" \ - "$(INTDIR)\poll.obj" \ - "$(INTDIR)\pollcb.obj" \ - "$(INTDIR)\pollset.obj" \ - "$(INTDIR)\select.obj" \ - "$(INTDIR)\apr_random.obj" \ - "$(INTDIR)\sha2.obj" \ - "$(INTDIR)\sha2_glue.obj" \ - "$(INTDIR)\shm.obj" \ - "$(INTDIR)\apr_cpystrn.obj" \ - "$(INTDIR)\apr_fnmatch.obj" \ - "$(INTDIR)\apr_snprintf.obj" \ - "$(INTDIR)\apr_strings.obj" \ - "$(INTDIR)\apr_strnatcmp.obj" \ - "$(INTDIR)\apr_strtok.obj" \ - "$(INTDIR)\apr_hash.obj" \ - "$(INTDIR)\apr_tables.obj" \ - "$(INTDIR)\proc.obj" \ - "$(INTDIR)\signals.obj" \ - "$(INTDIR)\thread.obj" \ - "$(INTDIR)\threadpriv.obj" \ - "$(INTDIR)\time.obj" \ - "$(INTDIR)\timestr.obj" \ - "$(INTDIR)\groupinfo.obj" \ - "$(INTDIR)\userinfo.obj" - -"$(OUTDIR)\apr-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) - $(LIB32) @<< - $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) -<< - -!ELSEIF "$(CFG)" == "apr - x64 Release" - -OUTDIR=.\x64\LibR -INTDIR=.\x64\LibR -# Begin Custom Macros -OutDir=.\x64\LibR -# End Custom Macros - -ALL : ".\include\apr.h" "$(OUTDIR)\apr-1.lib" - - -CLEAN : - -@erase "$(INTDIR)\apr-1.idb" - -@erase "$(INTDIR)\apr-1.pdb" - -@erase "$(INTDIR)\apr_atomic.obj" - -@erase "$(INTDIR)\apr_cpystrn.obj" - -@erase "$(INTDIR)\apr_fnmatch.obj" - -@erase "$(INTDIR)\apr_getpass.obj" - -@erase "$(INTDIR)\apr_hash.obj" - -@erase "$(INTDIR)\apr_pools.obj" - -@erase "$(INTDIR)\apr_random.obj" - -@erase "$(INTDIR)\apr_snprintf.obj" - -@erase "$(INTDIR)\apr_strings.obj" - -@erase "$(INTDIR)\apr_strnatcmp.obj" - -@erase "$(INTDIR)\apr_strtok.obj" - -@erase "$(INTDIR)\apr_tables.obj" - -@erase "$(INTDIR)\buffer.obj" - -@erase "$(INTDIR)\charset.obj" - -@erase "$(INTDIR)\common.obj" - -@erase "$(INTDIR)\copy.obj" - -@erase "$(INTDIR)\dir.obj" - -@erase "$(INTDIR)\dso.obj" - -@erase "$(INTDIR)\env.obj" - -@erase "$(INTDIR)\errorcodes.obj" - -@erase "$(INTDIR)\fileacc.obj" - -@erase "$(INTDIR)\filedup.obj" - -@erase "$(INTDIR)\filepath.obj" - -@erase "$(INTDIR)\filepath_util.obj" - -@erase "$(INTDIR)\filestat.obj" - -@erase "$(INTDIR)\filesys.obj" - -@erase "$(INTDIR)\flock.obj" - -@erase "$(INTDIR)\fullrw.obj" - -@erase "$(INTDIR)\getopt.obj" - -@erase "$(INTDIR)\groupinfo.obj" - -@erase "$(INTDIR)\inet_ntop.obj" - -@erase "$(INTDIR)\inet_pton.obj" - -@erase "$(INTDIR)\internal.obj" - -@erase "$(INTDIR)\misc.obj" - -@erase "$(INTDIR)\mktemp.obj" - -@erase "$(INTDIR)\mmap.obj" - -@erase "$(INTDIR)\multicast.obj" - -@erase "$(INTDIR)\open.obj" - -@erase "$(INTDIR)\otherchild.obj" - -@erase "$(INTDIR)\pipe.obj" - -@erase "$(INTDIR)\poll.obj" - -@erase "$(INTDIR)\pollcb.obj" - -@erase "$(INTDIR)\pollset.obj" - -@erase "$(INTDIR)\proc.obj" - -@erase "$(INTDIR)\proc_mutex.obj" - -@erase "$(INTDIR)\rand.obj" - -@erase "$(INTDIR)\readwrite.obj" - -@erase "$(INTDIR)\seek.obj" - -@erase "$(INTDIR)\select.obj" - -@erase "$(INTDIR)\sendrecv.obj" - -@erase "$(INTDIR)\sha2.obj" - -@erase "$(INTDIR)\sha2_glue.obj" - -@erase "$(INTDIR)\shm.obj" - -@erase "$(INTDIR)\signals.obj" - -@erase "$(INTDIR)\sockaddr.obj" - -@erase "$(INTDIR)\socket_util.obj" - -@erase "$(INTDIR)\sockets.obj" - -@erase "$(INTDIR)\sockopt.obj" - -@erase "$(INTDIR)\start.obj" - -@erase "$(INTDIR)\tempdir.obj" - -@erase "$(INTDIR)\thread.obj" - -@erase "$(INTDIR)\thread_cond.obj" - -@erase "$(INTDIR)\thread_mutex.obj" - -@erase "$(INTDIR)\thread_rwlock.obj" - -@erase "$(INTDIR)\threadpriv.obj" - -@erase "$(INTDIR)\time.obj" - -@erase "$(INTDIR)\timestr.obj" - -@erase "$(INTDIR)\userinfo.obj" - -@erase "$(INTDIR)\utf8.obj" - -@erase "$(INTDIR)\version.obj" - -@erase "$(OUTDIR)\apr-1.lib" - -@erase ".\include\apr.h" - -"$(OUTDIR)" : - if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" - -CPP=cl.exe -CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "NDEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\apr-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)\apr.bsc" -BSC32_SBRS= \ - -LIB32=link.exe -lib -LIB32_FLAGS=/nologo /out:"$(OUTDIR)\apr-1.lib" -LIB32_OBJS= \ - "$(INTDIR)\apr_atomic.obj" \ - "$(INTDIR)\dso.obj" \ - "$(INTDIR)\buffer.obj" \ - "$(INTDIR)\copy.obj" \ - "$(INTDIR)\dir.obj" \ - "$(INTDIR)\fileacc.obj" \ - "$(INTDIR)\filedup.obj" \ - "$(INTDIR)\filepath.obj" \ - "$(INTDIR)\filepath_util.obj" \ - "$(INTDIR)\filestat.obj" \ - "$(INTDIR)\filesys.obj" \ - "$(INTDIR)\flock.obj" \ - "$(INTDIR)\fullrw.obj" \ - "$(INTDIR)\mktemp.obj" \ - "$(INTDIR)\open.obj" \ - "$(INTDIR)\pipe.obj" \ - "$(INTDIR)\readwrite.obj" \ - "$(INTDIR)\seek.obj" \ - "$(INTDIR)\tempdir.obj" \ - "$(INTDIR)\proc_mutex.obj" \ - "$(INTDIR)\thread_cond.obj" \ - "$(INTDIR)\thread_mutex.obj" \ - "$(INTDIR)\thread_rwlock.obj" \ - "$(INTDIR)\apr_pools.obj" \ - "$(INTDIR)\charset.obj" \ - "$(INTDIR)\env.obj" \ - "$(INTDIR)\errorcodes.obj" \ - "$(INTDIR)\getopt.obj" \ - "$(INTDIR)\internal.obj" \ - "$(INTDIR)\misc.obj" \ - "$(INTDIR)\otherchild.obj" \ - "$(INTDIR)\rand.obj" \ - "$(INTDIR)\start.obj" \ - "$(INTDIR)\utf8.obj" \ - "$(INTDIR)\version.obj" \ - "$(INTDIR)\common.obj" \ - "$(INTDIR)\mmap.obj" \ - "$(INTDIR)\inet_ntop.obj" \ - "$(INTDIR)\inet_pton.obj" \ - "$(INTDIR)\multicast.obj" \ - "$(INTDIR)\sendrecv.obj" \ - "$(INTDIR)\sockaddr.obj" \ - "$(INTDIR)\sockets.obj" \ - "$(INTDIR)\socket_util.obj" \ - "$(INTDIR)\sockopt.obj" \ - "$(INTDIR)\apr_getpass.obj" \ - "$(INTDIR)\poll.obj" \ - "$(INTDIR)\pollcb.obj" \ - "$(INTDIR)\pollset.obj" \ - "$(INTDIR)\select.obj" \ - "$(INTDIR)\apr_random.obj" \ - "$(INTDIR)\sha2.obj" \ - "$(INTDIR)\sha2_glue.obj" \ - "$(INTDIR)\shm.obj" \ - "$(INTDIR)\apr_cpystrn.obj" \ - "$(INTDIR)\apr_fnmatch.obj" \ - "$(INTDIR)\apr_snprintf.obj" \ - "$(INTDIR)\apr_strings.obj" \ - "$(INTDIR)\apr_strnatcmp.obj" \ - "$(INTDIR)\apr_strtok.obj" \ - "$(INTDIR)\apr_hash.obj" \ - "$(INTDIR)\apr_tables.obj" \ - "$(INTDIR)\proc.obj" \ - "$(INTDIR)\signals.obj" \ - "$(INTDIR)\thread.obj" \ - "$(INTDIR)\threadpriv.obj" \ - "$(INTDIR)\time.obj" \ - "$(INTDIR)\timestr.obj" \ - "$(INTDIR)\groupinfo.obj" \ - "$(INTDIR)\userinfo.obj" - -"$(OUTDIR)\apr-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) - $(LIB32) @<< - $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) -<< - -!ELSEIF "$(CFG)" == "apr - x64 Debug" - -OUTDIR=.\x64\LibD -INTDIR=.\x64\LibD -# Begin Custom Macros -OutDir=.\x64\LibD -# End Custom Macros - -ALL : ".\include\apr.h" "$(OUTDIR)\apr-1.lib" - - -CLEAN : - -@erase "$(INTDIR)\apr-1.idb" - -@erase "$(INTDIR)\apr-1.pdb" - -@erase "$(INTDIR)\apr_atomic.obj" - -@erase "$(INTDIR)\apr_cpystrn.obj" - -@erase "$(INTDIR)\apr_fnmatch.obj" - -@erase "$(INTDIR)\apr_getpass.obj" - -@erase "$(INTDIR)\apr_hash.obj" - -@erase "$(INTDIR)\apr_pools.obj" - -@erase "$(INTDIR)\apr_random.obj" - -@erase "$(INTDIR)\apr_snprintf.obj" - -@erase "$(INTDIR)\apr_strings.obj" - -@erase "$(INTDIR)\apr_strnatcmp.obj" - -@erase "$(INTDIR)\apr_strtok.obj" - -@erase "$(INTDIR)\apr_tables.obj" - -@erase "$(INTDIR)\buffer.obj" - -@erase "$(INTDIR)\charset.obj" - -@erase "$(INTDIR)\common.obj" - -@erase "$(INTDIR)\copy.obj" - -@erase "$(INTDIR)\dir.obj" - -@erase "$(INTDIR)\dso.obj" - -@erase "$(INTDIR)\env.obj" - -@erase "$(INTDIR)\errorcodes.obj" - -@erase "$(INTDIR)\fileacc.obj" - -@erase "$(INTDIR)\filedup.obj" - -@erase "$(INTDIR)\filepath.obj" - -@erase "$(INTDIR)\filepath_util.obj" - -@erase "$(INTDIR)\filestat.obj" - -@erase "$(INTDIR)\filesys.obj" - -@erase "$(INTDIR)\flock.obj" - -@erase "$(INTDIR)\fullrw.obj" - -@erase "$(INTDIR)\getopt.obj" - -@erase "$(INTDIR)\groupinfo.obj" - -@erase "$(INTDIR)\inet_ntop.obj" - -@erase "$(INTDIR)\inet_pton.obj" - -@erase "$(INTDIR)\internal.obj" - -@erase "$(INTDIR)\misc.obj" - -@erase "$(INTDIR)\mktemp.obj" - -@erase "$(INTDIR)\mmap.obj" - -@erase "$(INTDIR)\multicast.obj" - -@erase "$(INTDIR)\open.obj" - -@erase "$(INTDIR)\otherchild.obj" - -@erase "$(INTDIR)\pipe.obj" - -@erase "$(INTDIR)\poll.obj" - -@erase "$(INTDIR)\pollcb.obj" - -@erase "$(INTDIR)\pollset.obj" - -@erase "$(INTDIR)\proc.obj" - -@erase "$(INTDIR)\proc_mutex.obj" - -@erase "$(INTDIR)\rand.obj" - -@erase "$(INTDIR)\readwrite.obj" - -@erase "$(INTDIR)\seek.obj" - -@erase "$(INTDIR)\select.obj" - -@erase "$(INTDIR)\sendrecv.obj" - -@erase "$(INTDIR)\sha2.obj" - -@erase "$(INTDIR)\sha2_glue.obj" - -@erase "$(INTDIR)\shm.obj" - -@erase "$(INTDIR)\signals.obj" - -@erase "$(INTDIR)\sockaddr.obj" - -@erase "$(INTDIR)\socket_util.obj" - -@erase "$(INTDIR)\sockets.obj" - -@erase "$(INTDIR)\sockopt.obj" - -@erase "$(INTDIR)\start.obj" - -@erase "$(INTDIR)\tempdir.obj" - -@erase "$(INTDIR)\thread.obj" - -@erase "$(INTDIR)\thread_cond.obj" - -@erase "$(INTDIR)\thread_mutex.obj" - -@erase "$(INTDIR)\thread_rwlock.obj" - -@erase "$(INTDIR)\threadpriv.obj" - -@erase "$(INTDIR)\time.obj" - -@erase "$(INTDIR)\timestr.obj" - -@erase "$(INTDIR)\userinfo.obj" - -@erase "$(INTDIR)\utf8.obj" - -@erase "$(INTDIR)\version.obj" - -@erase "$(OUTDIR)\apr-1.lib" - -@erase ".\include\apr.h" - -"$(OUTDIR)" : - if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" - -CPP=cl.exe -CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "_DEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\apr-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)\apr.bsc" -BSC32_SBRS= \ - -LIB32=link.exe -lib -LIB32_FLAGS=/nologo /out:"$(OUTDIR)\apr-1.lib" -LIB32_OBJS= \ - "$(INTDIR)\apr_atomic.obj" \ - "$(INTDIR)\dso.obj" \ - "$(INTDIR)\buffer.obj" \ - "$(INTDIR)\copy.obj" \ - "$(INTDIR)\dir.obj" \ - "$(INTDIR)\fileacc.obj" \ - "$(INTDIR)\filedup.obj" \ - "$(INTDIR)\filepath.obj" \ - "$(INTDIR)\filepath_util.obj" \ - "$(INTDIR)\filestat.obj" \ - "$(INTDIR)\filesys.obj" \ - "$(INTDIR)\flock.obj" \ - "$(INTDIR)\fullrw.obj" \ - "$(INTDIR)\mktemp.obj" \ - "$(INTDIR)\open.obj" \ - "$(INTDIR)\pipe.obj" \ - "$(INTDIR)\readwrite.obj" \ - "$(INTDIR)\seek.obj" \ - "$(INTDIR)\tempdir.obj" \ - "$(INTDIR)\proc_mutex.obj" \ - "$(INTDIR)\thread_cond.obj" \ - "$(INTDIR)\thread_mutex.obj" \ - "$(INTDIR)\thread_rwlock.obj" \ - "$(INTDIR)\apr_pools.obj" \ - "$(INTDIR)\charset.obj" \ - "$(INTDIR)\env.obj" \ - "$(INTDIR)\errorcodes.obj" \ - "$(INTDIR)\getopt.obj" \ - "$(INTDIR)\internal.obj" \ - "$(INTDIR)\misc.obj" \ - "$(INTDIR)\otherchild.obj" \ - "$(INTDIR)\rand.obj" \ - "$(INTDIR)\start.obj" \ - "$(INTDIR)\utf8.obj" \ - "$(INTDIR)\version.obj" \ - "$(INTDIR)\common.obj" \ - "$(INTDIR)\mmap.obj" \ - "$(INTDIR)\inet_ntop.obj" \ - "$(INTDIR)\inet_pton.obj" \ - "$(INTDIR)\multicast.obj" \ - "$(INTDIR)\sendrecv.obj" \ - "$(INTDIR)\sockaddr.obj" \ - "$(INTDIR)\sockets.obj" \ - "$(INTDIR)\socket_util.obj" \ - "$(INTDIR)\sockopt.obj" \ - "$(INTDIR)\apr_getpass.obj" \ - "$(INTDIR)\poll.obj" \ - "$(INTDIR)\pollcb.obj" \ - "$(INTDIR)\pollset.obj" \ - "$(INTDIR)\select.obj" \ - "$(INTDIR)\apr_random.obj" \ - "$(INTDIR)\sha2.obj" \ - "$(INTDIR)\sha2_glue.obj" \ - "$(INTDIR)\shm.obj" \ - "$(INTDIR)\apr_cpystrn.obj" \ - "$(INTDIR)\apr_fnmatch.obj" \ - "$(INTDIR)\apr_snprintf.obj" \ - "$(INTDIR)\apr_strings.obj" \ - "$(INTDIR)\apr_strnatcmp.obj" \ - "$(INTDIR)\apr_strtok.obj" \ - "$(INTDIR)\apr_hash.obj" \ - "$(INTDIR)\apr_tables.obj" \ - "$(INTDIR)\proc.obj" \ - "$(INTDIR)\signals.obj" \ - "$(INTDIR)\thread.obj" \ - "$(INTDIR)\threadpriv.obj" \ - "$(INTDIR)\time.obj" \ - "$(INTDIR)\timestr.obj" \ - "$(INTDIR)\groupinfo.obj" \ - "$(INTDIR)\userinfo.obj" - -"$(OUTDIR)\apr-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) - $(LIB32) @<< - $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) -<< - -!ENDIF - - -!IF "$(NO_EXTERNAL_DEPS)" != "1" -!IF EXISTS("apr.dep") -!INCLUDE "apr.dep" -!ELSE -!MESSAGE Warning: cannot find "apr.dep" -!ENDIF -!ENDIF - - -!IF "$(CFG)" == "apr - Win32 Release" || "$(CFG)" == "apr - Win32 Debug" || "$(CFG)" == "apr - Win32 Release9x" || "$(CFG)" == "apr - Win32 Debug9x" || "$(CFG)" == "apr - x64 Release" || "$(CFG)" == "apr - x64 Debug" -SOURCE=.\atomic\win32\apr_atomic.c - -"$(INTDIR)\apr_atomic.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\dso\win32\dso.c - -"$(INTDIR)\dso.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\file_io\win32\buffer.c - -"$(INTDIR)\buffer.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\file_io\unix\copy.c - -"$(INTDIR)\copy.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\file_io\win32\dir.c - -"$(INTDIR)\dir.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\file_io\unix\fileacc.c - -"$(INTDIR)\fileacc.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\file_io\win32\filedup.c - -"$(INTDIR)\filedup.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\file_io\win32\filepath.c - -"$(INTDIR)\filepath.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\file_io\unix\filepath_util.c - -"$(INTDIR)\filepath_util.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\file_io\win32\filestat.c - -"$(INTDIR)\filestat.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\file_io\win32\filesys.c - -"$(INTDIR)\filesys.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\file_io\win32\flock.c - -"$(INTDIR)\flock.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\file_io\unix\fullrw.c - -"$(INTDIR)\fullrw.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\file_io\unix\mktemp.c - -"$(INTDIR)\mktemp.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\file_io\win32\open.c - -"$(INTDIR)\open.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\file_io\win32\pipe.c - -"$(INTDIR)\pipe.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\file_io\win32\readwrite.c - -"$(INTDIR)\readwrite.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\file_io\win32\seek.c - -"$(INTDIR)\seek.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\file_io\unix\tempdir.c - -"$(INTDIR)\tempdir.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\locks\win32\proc_mutex.c - -"$(INTDIR)\proc_mutex.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\locks\win32\thread_cond.c - -"$(INTDIR)\thread_cond.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\locks\win32\thread_mutex.c - -"$(INTDIR)\thread_mutex.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\locks\win32\thread_rwlock.c - -"$(INTDIR)\thread_rwlock.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\memory\unix\apr_pools.c - -"$(INTDIR)\apr_pools.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\misc\win32\apr_app.c -SOURCE=.\misc\win32\charset.c - -"$(INTDIR)\charset.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\misc\win32\env.c - -"$(INTDIR)\env.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\misc\unix\errorcodes.c - -"$(INTDIR)\errorcodes.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\misc\unix\getopt.c - -"$(INTDIR)\getopt.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\misc\win32\internal.c - -"$(INTDIR)\internal.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\misc\win32\misc.c - -"$(INTDIR)\misc.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\misc\unix\otherchild.c - -"$(INTDIR)\otherchild.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\misc\win32\rand.c - -"$(INTDIR)\rand.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\misc\win32\start.c - -"$(INTDIR)\start.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\misc\win32\utf8.c - -"$(INTDIR)\utf8.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\misc\unix\version.c - -"$(INTDIR)\version.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\mmap\unix\common.c - -"$(INTDIR)\common.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\mmap\win32\mmap.c - -"$(INTDIR)\mmap.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\network_io\unix\inet_ntop.c - -"$(INTDIR)\inet_ntop.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\network_io\unix\inet_pton.c - -"$(INTDIR)\inet_pton.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\network_io\unix\multicast.c - -"$(INTDIR)\multicast.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\network_io\win32\sendrecv.c - -"$(INTDIR)\sendrecv.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\network_io\unix\sockaddr.c - -"$(INTDIR)\sockaddr.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\network_io\unix\socket_util.c - -"$(INTDIR)\socket_util.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\network_io\win32\sockets.c - -"$(INTDIR)\sockets.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\network_io\win32\sockopt.c - -"$(INTDIR)\sockopt.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\passwd\apr_getpass.c - -"$(INTDIR)\apr_getpass.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\poll\unix\poll.c - -"$(INTDIR)\poll.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\poll\unix\pollcb.c - -"$(INTDIR)\pollcb.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\poll\unix\pollset.c - -"$(INTDIR)\pollset.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\poll\unix\select.c - -"$(INTDIR)\select.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\random\unix\apr_random.c - -"$(INTDIR)\apr_random.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\random\unix\sha2.c - -"$(INTDIR)\sha2.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\random\unix\sha2_glue.c - -"$(INTDIR)\sha2_glue.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\shmem\win32\shm.c - -"$(INTDIR)\shm.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\strings\apr_cpystrn.c - -"$(INTDIR)\apr_cpystrn.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\strings\apr_fnmatch.c - -"$(INTDIR)\apr_fnmatch.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\strings\apr_snprintf.c - -"$(INTDIR)\apr_snprintf.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\strings\apr_strings.c - -"$(INTDIR)\apr_strings.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\strings\apr_strnatcmp.c - -"$(INTDIR)\apr_strnatcmp.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\strings\apr_strtok.c - -"$(INTDIR)\apr_strtok.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\tables\apr_hash.c - -"$(INTDIR)\apr_hash.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\tables\apr_tables.c - -"$(INTDIR)\apr_tables.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\threadproc\win32\proc.c - -"$(INTDIR)\proc.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\threadproc\win32\signals.c - -"$(INTDIR)\signals.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\threadproc\win32\thread.c - -"$(INTDIR)\thread.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\threadproc\win32\threadpriv.c - -"$(INTDIR)\threadpriv.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\time\win32\time.c - -"$(INTDIR)\time.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\time\win32\timestr.c - -"$(INTDIR)\timestr.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\user\win32\groupinfo.c - -"$(INTDIR)\groupinfo.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\user\win32\userinfo.c - -"$(INTDIR)\userinfo.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -SOURCE=.\include\apr.hw - -!IF "$(CFG)" == "apr - Win32 Release" - -InputPath=.\include\apr.hw - -".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - < .\include\apr.h -<< - - -!ELSEIF "$(CFG)" == "apr - Win32 Debug" - -InputPath=.\include\apr.hw - -".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - < .\include\apr.h -<< - - -!ELSEIF "$(CFG)" == "apr - Win32 Release9x" - -InputPath=.\include\apr.hw - -".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - < .\include\apr.h -<< - - -!ELSEIF "$(CFG)" == "apr - Win32 Debug9x" - -InputPath=.\include\apr.hw - -".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - < .\include\apr.h -<< - - -!ELSEIF "$(CFG)" == "apr - x64 Release" - -InputPath=.\include\apr.hw - -".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - < .\include\apr.h -<< - - -!ELSEIF "$(CFG)" == "apr - x64 Debug" - -InputPath=.\include\apr.hw - -".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - < .\include\apr.h -<< - - -!ENDIF - - -!ENDIF - +<< + + +!ENDIF + +SOURCE=.\include\apr_escape.h + +!IF "$(CFG)" == "apr - Win32 Release" + +InputPath=.\include\apr_escape.h + +".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr_escape_test_char.h +<< + + +!ELSEIF "$(CFG)" == "apr - Win32 Debug" + +InputPath=.\include\apr_escape.h + +".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr_escape_test_char.h +<< + + +!ELSEIF "$(CFG)" == "apr - Win32 Release9x" + +InputPath=.\include\apr_escape.h + +".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr_escape_test_char.h +<< + + +!ELSEIF "$(CFG)" == "apr - Win32 Debug9x" + +InputPath=.\include\apr_escape.h + +".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr_escape_test_char.h +<< + + +!ELSEIF "$(CFG)" == "apr - x64 Release" + +InputPath=.\include\apr_escape.h + +".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr_escape_test_char.h +<< + + +!ELSEIF "$(CFG)" == "apr - x64 Debug" + +InputPath=.\include\apr_escape.h + +".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr_escape_test_char.h +<< + + +!ENDIF + +SOURCE=.\include\apr_want.h + +!IF "$(CFG)" == "apr - Win32 Release" + +InputPath=.\include\apr_want.h + +"$(INTDIR)\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr.h +<< + + +!ELSEIF "$(CFG)" == "apr - Win32 Debug" + +InputPath=.\include\apr_want.h + +"$(INTDIR)\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr.h +<< + + +!ELSEIF "$(CFG)" == "apr - Win32 Release9x" + +InputPath=.\include\apr_want.h + +"$(INTDIR)\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr.h +<< + + +!ELSEIF "$(CFG)" == "apr - Win32 Debug9x" + +InputPath=.\include\apr_want.h + +"$(INTDIR)\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr.h +<< + + +!ELSEIF "$(CFG)" == "apr - x64 Release" + +InputPath=.\include\apr_want.h + +"$(INTDIR)\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr.h +<< + + +!ELSEIF "$(CFG)" == "apr - x64 Debug" + +InputPath=.\include\apr_want.h + +"$(INTDIR)\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + < .\include\apr.h +<< + + +!ENDIF + + +!ENDIF + diff --git a/contrib/apr/apr.spec b/contrib/apr/apr.spec index 40204ffa0..b3db1675d 100644 --- a/contrib/apr/apr.spec +++ b/contrib/apr/apr.spec @@ -3,7 +3,7 @@ Summary: Apache Portable Runtime library Name: apr -Version: 1.4.8 +Version: 1.5.1 Release: 1 License: Apache Software License Group: System Environment/Libraries diff --git a/contrib/apr/build-outputs.mk b/contrib/apr/build-outputs.mk index 9f4876e3e..526f179a4 100644 --- a/contrib/apr/build-outputs.mk +++ b/contrib/apr/build-outputs.mk @@ -1,5 +1,6 @@ # DO NOT EDIT. AUTOMATICALLY GENERATED. +encoding/apr_escape.lo: encoding/apr_escape.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_escape.h include/apr_general.h include/apr_lib.h include/apr_pools.h include/apr_strings.h include/apr_thread_mutex.h include/apr_want.h passwd/apr_getpass.lo: passwd/apr_getpass.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_general.h include/apr_lib.h include/apr_pools.h include/apr_strings.h include/apr_thread_mutex.h include/apr_want.h strings/apr_cpystrn.lo: strings/apr_cpystrn.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_general.h include/apr_lib.h include/apr_pools.h include/apr_strings.h include/apr_thread_mutex.h include/apr_want.h strings/apr_fnmatch.lo: strings/apr_fnmatch.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_file_info.h include/apr_fnmatch.h include/apr_general.h include/apr_lib.h include/apr_pools.h include/apr_strings.h include/apr_tables.h include/apr_thread_mutex.h include/apr_time.h include/apr_user.h include/apr_want.h @@ -8,9 +9,10 @@ strings/apr_strings.lo: strings/apr_strings.c .make.dirs include/apr_allocator.h strings/apr_strnatcmp.lo: strings/apr_strnatcmp.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_general.h include/apr_lib.h include/apr_pools.h include/apr_strings.h include/apr_thread_mutex.h include/apr_want.h strings/apr_strtok.lo: strings/apr_strtok.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_general.h include/apr_pools.h include/apr_strings.h include/apr_thread_mutex.h include/apr_want.h tables/apr_hash.lo: tables/apr_hash.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_general.h include/apr_hash.h include/apr_pools.h include/apr_thread_mutex.h include/apr_time.h include/apr_want.h +tables/apr_skiplist.lo: tables/apr_skiplist.c .make.dirs include/apr_allocator.h include/apr_dso.h include/apr_errno.h include/apr_file_info.h include/apr_file_io.h include/apr_general.h include/apr_global_mutex.h include/apr_inherit.h include/apr_network_io.h include/apr_pools.h include/apr_portable.h include/apr_proc_mutex.h include/apr_shm.h include/apr_skiplist.h include/apr_tables.h include/apr_thread_mutex.h include/apr_thread_proc.h include/apr_time.h include/apr_user.h include/apr_want.h tables/apr_tables.lo: tables/apr_tables.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_general.h include/apr_lib.h include/apr_pools.h include/apr_strings.h include/apr_tables.h include/apr_thread_mutex.h include/apr_want.h -OBJECTS_all = passwd/apr_getpass.lo strings/apr_cpystrn.lo strings/apr_fnmatch.lo strings/apr_snprintf.lo strings/apr_strings.lo strings/apr_strnatcmp.lo strings/apr_strtok.lo tables/apr_hash.lo tables/apr_tables.lo +OBJECTS_all = encoding/apr_escape.lo passwd/apr_getpass.lo strings/apr_cpystrn.lo strings/apr_fnmatch.lo strings/apr_snprintf.lo strings/apr_strings.lo strings/apr_strnatcmp.lo strings/apr_strtok.lo tables/apr_hash.lo tables/apr_skiplist.lo tables/apr_tables.lo dso/unix/dso.lo: dso/unix/dso.c .make.dirs include/apr_allocator.h include/apr_dso.h include/apr_errno.h include/apr_file_info.h include/apr_file_io.h include/apr_general.h include/apr_global_mutex.h include/apr_inherit.h include/apr_network_io.h include/apr_pools.h include/apr_portable.h include/apr_proc_mutex.h include/apr_shm.h include/apr_strings.h include/apr_tables.h include/apr_thread_mutex.h include/apr_thread_proc.h include/apr_time.h include/apr_user.h include/apr_want.h @@ -81,8 +83,9 @@ poll/unix/pollcb.lo: poll/unix/pollcb.c .make.dirs include/apr_allocator.h inclu poll/unix/pollset.lo: poll/unix/pollset.c .make.dirs include/apr_allocator.h include/apr_dso.h include/apr_errno.h include/apr_file_info.h include/apr_file_io.h include/apr_general.h include/apr_global_mutex.h include/apr_inherit.h include/apr_network_io.h include/apr_poll.h include/apr_pools.h include/apr_portable.h include/apr_proc_mutex.h include/apr_shm.h include/apr_tables.h include/apr_thread_mutex.h include/apr_thread_proc.h include/apr_time.h include/apr_user.h include/apr_want.h poll/unix/port.lo: poll/unix/port.c .make.dirs include/apr_allocator.h include/apr_atomic.h include/apr_dso.h include/apr_errno.h include/apr_file_info.h include/apr_file_io.h include/apr_general.h include/apr_global_mutex.h include/apr_inherit.h include/apr_network_io.h include/apr_poll.h include/apr_pools.h include/apr_portable.h include/apr_proc_mutex.h include/apr_shm.h include/apr_tables.h include/apr_thread_mutex.h include/apr_thread_proc.h include/apr_time.h include/apr_user.h include/apr_want.h poll/unix/select.lo: poll/unix/select.c .make.dirs include/apr_allocator.h include/apr_dso.h include/apr_errno.h include/apr_file_info.h include/apr_file_io.h include/apr_general.h include/apr_global_mutex.h include/apr_inherit.h include/apr_network_io.h include/apr_poll.h include/apr_pools.h include/apr_portable.h include/apr_proc_mutex.h include/apr_shm.h include/apr_tables.h include/apr_thread_mutex.h include/apr_thread_proc.h include/apr_time.h include/apr_user.h include/apr_want.h +poll/unix/z_asio.lo: poll/unix/z_asio.c .make.dirs include/apr_allocator.h include/apr_dso.h include/apr_errno.h include/apr_file_info.h include/apr_file_io.h include/apr_general.h include/apr_global_mutex.h include/apr_hash.h include/apr_inherit.h include/apr_network_io.h include/apr_poll.h include/apr_pools.h include/apr_portable.h include/apr_proc_mutex.h include/apr_shm.h include/apr_tables.h include/apr_thread_mutex.h include/apr_thread_proc.h include/apr_time.h include/apr_user.h include/apr_want.h -OBJECTS_poll_unix = poll/unix/epoll.lo poll/unix/kqueue.lo poll/unix/poll.lo poll/unix/pollcb.lo poll/unix/pollset.lo poll/unix/port.lo poll/unix/select.lo +OBJECTS_poll_unix = poll/unix/epoll.lo poll/unix/kqueue.lo poll/unix/poll.lo poll/unix/pollcb.lo poll/unix/pollset.lo poll/unix/port.lo poll/unix/select.lo poll/unix/z_asio.lo random/unix/apr_random.lo: random/unix/apr_random.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_file_info.h include/apr_file_io.h include/apr_general.h include/apr_inherit.h include/apr_pools.h include/apr_random.h include/apr_tables.h include/apr_thread_mutex.h include/apr_thread_proc.h include/apr_time.h include/apr_user.h include/apr_want.h random/unix/sha2.lo: random/unix/sha2.c .make.dirs @@ -90,7 +93,7 @@ random/unix/sha2_glue.lo: random/unix/sha2_glue.c .make.dirs include/apr_allocat OBJECTS_random_unix = random/unix/apr_random.lo random/unix/sha2.lo random/unix/sha2_glue.lo -shmem/unix/shm.lo: shmem/unix/shm.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_general.h include/apr_pools.h include/apr_strings.h include/apr_thread_mutex.h include/apr_user.h include/apr_want.h +shmem/unix/shm.lo: shmem/unix/shm.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_general.h include/apr_hash.h include/apr_pools.h include/apr_strings.h include/apr_thread_mutex.h include/apr_user.h include/apr_want.h OBJECTS_shmem_unix = shmem/unix/shm.lo @@ -308,11 +311,11 @@ OBJECTS_atomic_win32 = atomic/win32/apr_atomic.lo OBJECTS_win32 = $(OBJECTS_all) $(OBJECTS_atomic_win32) $(OBJECTS_dso_win32) $(OBJECTS_file_io_win32) $(OBJECTS_locks_win32) $(OBJECTS_memory_unix) $(OBJECTS_misc_win32) $(OBJECTS_mmap_win32) $(OBJECTS_network_io_win32) $(OBJECTS_poll_unix) $(OBJECTS_random_unix) $(OBJECTS_shmem_win32) $(OBJECTS_support_unix) $(OBJECTS_threadproc_win32) $(OBJECTS_time_win32) $(OBJECTS_user_win32) -HEADERS = $(top_srcdir)/include/apr_allocator.h $(top_srcdir)/include/apr_atomic.h $(top_srcdir)/include/apr_dso.h $(top_srcdir)/include/apr_env.h $(top_srcdir)/include/apr_errno.h $(top_srcdir)/include/apr_file_info.h $(top_srcdir)/include/apr_file_io.h $(top_srcdir)/include/apr_fnmatch.h $(top_srcdir)/include/apr_general.h $(top_srcdir)/include/apr_getopt.h $(top_srcdir)/include/apr_global_mutex.h $(top_srcdir)/include/apr_hash.h $(top_srcdir)/include/apr_inherit.h $(top_srcdir)/include/apr_lib.h $(top_srcdir)/include/apr_mmap.h $(top_srcdir)/include/apr_network_io.h $(top_srcdir)/include/apr_poll.h $(top_srcdir)/include/apr_pools.h $(top_srcdir)/include/apr_portable.h $(top_srcdir)/include/apr_proc_mutex.h $(top_srcdir)/include/apr_random.h $(top_srcdir)/include/apr_ring.h $(top_srcdir)/include/apr_shm.h $(top_srcdir)/include/apr_signal.h $(top_srcdir)/include/apr_strings.h $(top_srcdir)/include/apr_support.h $(top_srcdir)/include/apr_tables.h $(top_srcdir)/include/apr_thread_cond.h $(top_srcdir)/include/apr_thread_mutex.h $(top_srcdir)/include/apr_thread_proc.h $(top_srcdir)/include/apr_thread_rwlock.h $(top_srcdir)/include/apr_time.h $(top_srcdir)/include/apr_user.h $(top_srcdir)/include/apr_version.h $(top_srcdir)/include/apr_want.h +HEADERS = $(top_srcdir)/include/apr_allocator.h $(top_srcdir)/include/apr_atomic.h $(top_srcdir)/include/apr_dso.h $(top_srcdir)/include/apr_env.h $(top_srcdir)/include/apr_errno.h $(top_srcdir)/include/apr_escape.h $(top_srcdir)/include/apr_file_info.h $(top_srcdir)/include/apr_file_io.h $(top_srcdir)/include/apr_fnmatch.h $(top_srcdir)/include/apr_general.h $(top_srcdir)/include/apr_getopt.h $(top_srcdir)/include/apr_global_mutex.h $(top_srcdir)/include/apr_hash.h $(top_srcdir)/include/apr_inherit.h $(top_srcdir)/include/apr_lib.h $(top_srcdir)/include/apr_mmap.h $(top_srcdir)/include/apr_network_io.h $(top_srcdir)/include/apr_poll.h $(top_srcdir)/include/apr_pools.h $(top_srcdir)/include/apr_portable.h $(top_srcdir)/include/apr_proc_mutex.h $(top_srcdir)/include/apr_random.h $(top_srcdir)/include/apr_ring.h $(top_srcdir)/include/apr_shm.h $(top_srcdir)/include/apr_signal.h $(top_srcdir)/include/apr_skiplist.h $(top_srcdir)/include/apr_strings.h $(top_srcdir)/include/apr_support.h $(top_srcdir)/include/apr_tables.h $(top_srcdir)/include/apr_thread_cond.h $(top_srcdir)/include/apr_thread_mutex.h $(top_srcdir)/include/apr_thread_proc.h $(top_srcdir)/include/apr_thread_rwlock.h $(top_srcdir)/include/apr_time.h $(top_srcdir)/include/apr_user.h $(top_srcdir)/include/apr_version.h $(top_srcdir)/include/apr_want.h -SOURCE_DIRS = random/unix misc/win32 mmap/win32 dso/os2 time/unix network_io/win32 dso/win32 locks/unix user/unix time/win32 locks/beos tables support/unix file_io/unix mmap/unix atomic/unix threadproc/win32 poll/os2 atomic/win32 dso/os390 atomic/os390 dso/beos poll/unix passwd network_io/beos threadproc/os2 network_io/os2 shmem/win32 threadproc/beos shmem/unix network_io/unix file_io/os2 dso/aix file_io/win32 threadproc/unix misc/unix locks/win32 shmem/beos dso/unix locks/os2 user/win32 shmem/os2 memory/unix strings $(EXTRA_SOURCE_DIRS) +SOURCE_DIRS = random/unix misc/win32 encoding dso/os2 time/unix network_io/win32 dso/win32 locks/unix user/unix time/win32 locks/beos tables support/unix file_io/unix mmap/unix atomic/unix threadproc/win32 poll/os2 atomic/win32 dso/os390 atomic/os390 dso/beos poll/unix passwd network_io/beos threadproc/os2 network_io/os2 shmem/win32 threadproc/beos shmem/unix network_io/unix file_io/os2 mmap/win32 dso/aix file_io/win32 threadproc/unix misc/unix locks/win32 shmem/beos dso/unix locks/os2 user/win32 shmem/os2 memory/unix strings $(EXTRA_SOURCE_DIRS) -BUILD_DIRS = atomic atomic/os390 atomic/unix atomic/win32 dso dso/aix dso/beos dso/os2 dso/os390 dso/unix dso/win32 file_io file_io/os2 file_io/unix file_io/win32 locks locks/beos locks/os2 locks/unix locks/win32 memory memory/unix misc misc/unix misc/win32 mmap mmap/unix mmap/win32 network_io network_io/beos network_io/os2 network_io/unix network_io/win32 passwd poll poll/os2 poll/unix random random/unix shmem shmem/beos shmem/os2 shmem/unix shmem/win32 strings support support/unix tables threadproc threadproc/beos threadproc/os2 threadproc/unix threadproc/win32 time time/unix time/win32 user user/unix user/win32 +BUILD_DIRS = atomic atomic/os390 atomic/unix atomic/win32 dso dso/aix dso/beos dso/os2 dso/os390 dso/unix dso/win32 encoding file_io file_io/os2 file_io/unix file_io/win32 locks locks/beos locks/os2 locks/unix locks/win32 memory memory/unix misc misc/unix misc/win32 mmap mmap/unix mmap/win32 network_io network_io/beos network_io/os2 network_io/unix network_io/win32 passwd poll poll/os2 poll/unix random random/unix shmem shmem/beos shmem/os2 shmem/unix shmem/win32 strings support support/unix tables threadproc threadproc/beos threadproc/os2 threadproc/unix threadproc/win32 time time/unix time/win32 user user/unix user/win32 .make.dirs: $(srcdir)/build-outputs.mk @for d in $(BUILD_DIRS); do test -d $$d || mkdir $$d; done diff --git a/contrib/apr/build.conf b/contrib/apr/build.conf index c302b98be..eecadbae8 100644 --- a/contrib/apr/build.conf +++ b/contrib/apr/build.conf @@ -6,6 +6,7 @@ # paths to platform-independent .c files to build paths = + encoding/*.c passwd/*.c strings/*.c tables/*.c diff --git a/contrib/apr/configure b/contrib/apr/configure index 00122df88..860c65b8f 100755 --- a/contrib/apr/configure +++ b/contrib/apr/configure @@ -639,6 +639,7 @@ DEFAULT_OSDIR OSDIR INCLUDES LDLIBS +INTERNAL_CPPFLAGS NOTEST_INCLUDES NOTEST_LIBS NOTEST_LDFLAGS @@ -919,6 +920,7 @@ enable_lfs enable_nonportable_atomics enable_threads with_efence +enable_posix_shm with_sendfile enable_allocator_uses_mmap enable_dso @@ -1563,7 +1565,8 @@ Optional Features: --disable-lfs Disable large file support on 32-bit platforms --enable-nonportable-atomics Use optimized atomic code which may produce nonportable binaries --enable-threads Enable threading support in APR. - --enable-allocator-uses-mmap Use mmap in apr_allocator instead of malloc (experimental) + --enable-posix-shm Use POSIX shared memory (shm_open) if available + --enable-allocator-uses-mmap Use mmap in apr_allocator instead of malloc --disable-dso Disable DSO support --enable-other-child Enable reliable child processes --disable-ipv6 Disable IPv6 support in APR. @@ -5933,10 +5936,10 @@ if test "x$apr_preload_done" != "xyes" ; then *mint) if test "x$CPPFLAGS" = "x"; then - test "x$silent" != "xyes" && echo " setting CPPFLAGS to \"-DMINT\"" - CPPFLAGS="-DMINT" + test "x$silent" != "xyes" && echo " setting CPPFLAGS to \"-DMINT -D_GNU_SOURCE\"" + CPPFLAGS="-DMINT -D_GNU_SOURCE" else - apr_addto_bugger="-DMINT" + apr_addto_bugger="-DMINT -D_GNU_SOURCE" for i in $apr_addto_bugger; do apr_addto_duplicate="0" for j in $CPPFLAGS; do @@ -5952,27 +5955,6 @@ if test "x$apr_preload_done" != "xyes" ; then done fi - - if test "x$LIBS" = "x"; then - test "x$silent" != "xyes" && echo " setting LIBS to \"-lportlib\"" - LIBS="-lportlib" - else - apr_addto_bugger="-lportlib" - 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 - ;; *MPE/iX*) @@ -9059,30 +9041,28 @@ $as_echo "#define HAVE_ZOS_PTHREADS 1" >>confdefs.h fi ;; - *cygwin*) + *mingw*) - if test "x$CPPFLAGS" = "x"; then - test "x$silent" != "xyes" && echo " setting CPPFLAGS to \"-DCYGWIN\"" - CPPFLAGS="-DCYGWIN" + if test "x$INTERNAL_CPPFLAGS" = "x"; then + test "x$silent" != "xyes" && echo " setting INTERNAL_CPPFLAGS to \"-DBINPATH=$apr_builddir/test/.libs\"" + INTERNAL_CPPFLAGS="-DBINPATH=$apr_builddir/test/.libs" else - apr_addto_bugger="-DCYGWIN" + apr_addto_bugger="-DBINPATH=$apr_builddir/test/.libs" for i in $apr_addto_bugger; do apr_addto_duplicate="0" - for j in $CPPFLAGS; do + for j in $INTERNAL_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" + test "x$silent" != "xyes" && echo " adding \"$i\" to INTERNAL_CPPFLAGS" + INTERNAL_CPPFLAGS="$INTERNAL_CPPFLAGS $i" fi done fi - ;; - *mingw*) if test "x$CPPFLAGS" = "x"; then test "x$silent" != "xyes" && echo " setting CPPFLAGS to \"-DWIN32 -D__MSVCRT__\"" @@ -17794,7 +17774,7 @@ fi if test "x$use_libtool" = "xyes"; then lt_compile='$(LIBTOOL) $(LTFLAGS) --mode=compile $(COMPILE) -o $@ -c $< && touch $@' LT_VERSION="-version-info `$get_version libtool $version_hdr APR`" - link="\$(LIBTOOL) \$(LTFLAGS) --mode=link \$(LT_LDFLAGS) \$(COMPILE) \$(LT_VERSION) \$(ALL_LDFLAGS) -o \$@" + link="\$(LIBTOOL) \$(LTFLAGS) --mode=link \$(COMPILE) \$(LT_LDFLAGS) \$(LT_VERSION) \$(ALL_LDFLAGS) -o \$@" so_ext='lo' lib_target='-rpath $(libdir) $(OBJECTS)' export_lib_target='-rpath \$(libdir) \$(OBJECTS)' @@ -17810,6 +17790,9 @@ case $host in *-solaris2*) apr_platform_runtime_link_flag="-R" ;; + *-mingw* | *-cygwin*) + LT_LDFLAGS="$LT_LDFLAGS -no-undefined" + ;; *) ;; esac @@ -18314,6 +18297,53 @@ case "$host:$CC" in AR="ar" ;; + *-mingw* | *-cygwin*) + if test "$enable_shared" = "yes"; then + + if test "x$INTERNAL_CPPFLAGS" = "x"; then + test "x$silent" != "xyes" && echo " setting INTERNAL_CPPFLAGS to \"-DAPR_DECLARE_EXPORT\"" + INTERNAL_CPPFLAGS="-DAPR_DECLARE_EXPORT" + else + apr_addto_bugger="-DAPR_DECLARE_EXPORT" + for i in $apr_addto_bugger; do + apr_addto_duplicate="0" + for j in $INTERNAL_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 INTERNAL_CPPFLAGS" + INTERNAL_CPPFLAGS="$INTERNAL_CPPFLAGS $i" + fi + done + fi + + else + + if test "x$CPPFLAGS" = "x"; then + test "x$silent" != "xyes" && echo " setting CPPFLAGS to \"-DAPR_DECLARE_STATIC\"" + CPPFLAGS="-DAPR_DECLARE_STATIC" + else + apr_addto_bugger="-DAPR_DECLARE_STATIC" + 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 + + fi + ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler provides atomic builtins" >&5 @@ -18791,7 +18821,17 @@ case $host in fi ;; *linux*) - os_version=`uname -r | sed -e 's/\(.\)\.\(.\)\.\(.\).*/\1\2\3/'` + os_major=`uname -r | sed -e 's/\([1-9][0-9]*\)\..*/\1/'` + os_minor=`uname -r | sed -e 's/[1-9][0-9]*\.\([0-9]\+\)\..*/\1/'` + if test $os_major -lt 2 -o \( $os_major -eq 2 -a $os_minor -lt 4 \); then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Configured for pre-2.4 Linux $os_major.$os_minor" >&5 +$as_echo "$as_me: WARNING: Configured for pre-2.4 Linux $os_major.$os_minor" >&2;} + os_pre24linux=1 + else + os_pre24linux=0 + { $as_echo "$as_me:${as_lineno-$LINENO}: Configured for Linux $os_major.$os_minor" >&5 +$as_echo "$as_me: Configured for Linux $os_major.$os_minor" >&6;} + fi ;; *os390) os_version=`uname -r | sed -e 's/\.//g'` @@ -20391,7 +20431,10 @@ $as_echo "#define HAVE_DUP3 1" >>confdefs.h fi -# test for accept4 +# Test for accept4(). Create a non-blocking socket, bind it to +# an unspecified port & address (kernel picks), and attempt to +# call accept4() on it. If the syscall is wired up (i.e. the +# kernel is new enough), it should return EAGAIN. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for accept4 support" >&5 $as_echo_n "checking for accept4 support... " >&6; } if ${apr_cv_accept4+:} false; then : @@ -20403,75 +20446,41 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include #include #include -#include #include -#include +#include +#include #include +#include +#include +#include -#define A4_SOCK "./apr_accept4_test_socket" - -int main() +int main(int argc, char **argv) { - pid_t pid; - int fd; - struct sockaddr_un loc, rem; - socklen_t rem_sz; - - if ((pid = fork())) { - int status; - - unlink(A4_SOCK); - - if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) - goto cleanup_failure2; - - loc.sun_family = AF_UNIX; - strncpy(loc.sun_path, A4_SOCK, sizeof(loc.sun_path) - 1); - - if (bind(fd, (struct sockaddr *) &loc, - sizeof(struct sockaddr_un)) == -1) - goto cleanup_failure; - - if (listen(fd, 5) == -1) - goto cleanup_failure; + int fd, flags; + struct sockaddr_in sin; - rem_sz = sizeof(struct sockaddr_un); - if (accept4(fd, (struct sockaddr *) &rem, &rem_sz, 0) == -1) { - goto cleanup_failure; - } - else { - close(fd); - waitpid(pid, &status, 0); - unlink(A4_SOCK); - return 0; - } - -cleanup_failure: - close(fd); -cleanup_failure2: - kill(pid, SIGKILL); - waitpid(pid, &status, 0); - unlink(A4_SOCK); + if ((fd = socket(AF_INET, SOCK_STREAM, 0)) == -1) return 1; - } - else { - if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) - return 1; /* this will be bad: we'll hang */ + flags = fcntl(fd, F_GETFL); + if (flags == -1 || fcntl(fd, F_SETFL, flags|O_NONBLOCK) == -1) + return 5; - loc.sun_family = AF_UNIX; - strncpy(loc.sun_path, A4_SOCK, sizeof(loc.sun_path) - 1); + memset(&sin, 0, sizeof sin); + sin.sin_family = AF_INET; - while(connect(fd, (struct sockaddr *) &loc, - sizeof(struct sockaddr_un)) == -1 && - (errno==ENOENT || errno==ECONNREFUSED)) - ; + if (bind(fd, (struct sockaddr *) &sin, sizeof sin) == -1) + return 2; - close(fd); + if (listen(fd, 5) == -1) + return 3; + + if (accept4(fd, NULL, 0, SOCK_NONBLOCK) == 0 + || errno == EAGAIN || errno == EWOULDBLOCK) return 0; - } + + return 4; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : @@ -20582,6 +20591,49 @@ $as_echo "#define HAVE_EPOLL_CREATE1 1" >>confdefs.h fi +# Check for z/OS async i/o support. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for asio -> message queue support" >&5 +$as_echo_n "checking for asio -> message queue support... " >&6; } +if ${apr_cv_aio_msgq+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + apr_cv_aio_msgq=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define _AIO_OS390 +#include + +int main() +{ + struct aiocb a; + + a.aio_notifytype = AIO_MSGQ; /* use IPC message queue for notification */ + + return aio_cancel(2, NULL) == -1; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + apr_cv_aio_msgq=yes +else + apr_cv_aio_msgq=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $apr_cv_aio_msgq" >&5 +$as_echo "$apr_cv_aio_msgq" >&6; } + +if test "$apr_cv_aio_msgq" = "yes"; then + +$as_echo "#define HAVE_AIO_MSGQ 1" >>confdefs.h + +fi + # test for dup3 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dup3 support" >&5 $as_echo_n "checking for dup3 support... " >&6; } @@ -21214,7 +21266,9 @@ case $host in # that it has it. # FIXME - find exact 2.3 version that MMANON was fixed in. It is # confirmed fixed in 2.4 series. - if test $os_version -le "240"; then + if test $os_pre24linux -eq 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disabling anon mmap() support for Linux pre-2.4" >&5 +$as_echo "$as_me: WARNING: Disabling anon mmap() support for Linux pre-2.4" >&2;} ac_decision='' for ac_item in USE_SHMEM_MMAP_ZERO USE_SHMEM_SHMGET_ANON; do eval "ac_decision_this=\$ac_decision_${ac_item}" @@ -21520,13 +21574,28 @@ else fi +# Check whether --enable-posix-shm was given. +if test "${enable_posix_shm+set}" = set; then : + enableval=$enable_posix_shm; +if test "$havemmapshm" = "1"; then + ac_decision='' + for ac_item in USE_SHMEM_MMAP_SHM; do + eval "ac_decision_this=\$ac_decision_${ac_item}" + if test ".$ac_decision_this" = .yes; then + ac_decision=$ac_item + eval "ac_decision_msg=\$ac_decision_${ac_item}_msg" + fi + done + +fi + +fi + case $host in *linux* ) - # Linux has problems with MM_SHMT_MMANON even though it reports - # that it has it. - # FIXME - find exact 2.3 version that MMANON was fixed in. It is - # confirmed fixed in 2.4 series. - if test $os_version -le "240"; then + # Linux pre-2.4 had problems with MM_SHMT_MMANON even though + # it reports that it has it. + if test $os_pre24linux -eq 1; then ac_decision='' for ac_item in USE_SHMEM_MMAP_TMP USE_SHMEM_MMAP_SHM USE_SHMEM_SHMGET; do eval "ac_decision_this=\$ac_decision_${ac_item}" @@ -21932,7 +22001,9 @@ else ;; s390-*-linux-gnu) # disable sendfile support for 2.2 on S/390 - if test $os_version -lt 240; then + if test $os_pre24linux -eq 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disabled sendfile support for Linux 2.2 on S/390" >&5 +$as_echo "$as_me: WARNING: Disabled sendfile support for Linux 2.2 on S/390" >&2;} sendfile="0" fi ;; @@ -23435,9 +23506,14 @@ else /* end confdefs.h. */ #include #include +#ifdef WIN32 +#define binmode "b" +#else +#define binmode +#endif main() { - FILE *f=fopen("conftestval", "w"); + FILE *f=fopen("conftestval", "w" binmode); if (!f) exit(1); fprintf(f, "%d\n", sizeof(pid_t)); exit(0); @@ -23665,9 +23741,14 @@ else /* end confdefs.h. */ #include #include +#ifdef WIN32 +#define binmode "b" +#else +#define binmode +#endif main() { - FILE *f=fopen("conftestval", "w"); + FILE *f=fopen("conftestval", "w" binmode); if (!f) exit(1); fprintf(f, "%d\n", sizeof(ssize_t)); exit(0); @@ -23723,9 +23804,14 @@ else /* end confdefs.h. */ #include #include +#ifdef WIN32 +#define binmode "b" +#else +#define binmode +#endif main() { - FILE *f=fopen("conftestval", "w"); + FILE *f=fopen("conftestval", "w" binmode); if (!f) exit(1); fprintf(f, "%d\n", sizeof(size_t)); exit(0); @@ -23781,9 +23867,14 @@ else /* end confdefs.h. */ #include #include +#ifdef WIN32 +#define binmode "b" +#else +#define binmode +#endif main() { - FILE *f=fopen("conftestval", "w"); + FILE *f=fopen("conftestval", "w" binmode); if (!f) exit(1); fprintf(f, "%d\n", sizeof(off_t)); exit(0); @@ -23910,9 +24001,14 @@ else /* end confdefs.h. */ #include $ac_includes_default +#ifdef WIN32 +#define binmode "b" +#else +#define binmode +#endif main() { - FILE *f=fopen("conftestval", "w"); + FILE *f=fopen("conftestval", "w" binmode); if (!f) exit(1); fprintf(f, "%d\n", sizeof(ino_t)); exit(0); @@ -24192,9 +24288,14 @@ else #include #include #include +#ifdef WIN32 +#define binmode "b" +#else +#define binmode +#endif main() { - FILE *f=fopen("conftestval", "w"); + FILE *f=fopen("conftestval", "w" binmode); if (!f) exit(1); fprintf(f, "%d\n", sizeof(struct iovec)); exit(0); @@ -27128,6 +27229,9 @@ else #ifdef HAVE_SYS_SOCKET_H #include #endif +#ifdef HAVE_SYS_TIME_H +#include +#endif #ifdef HAVE_SYS_SELECT_H #include #endif @@ -27148,6 +27252,8 @@ int main(void) { int listen_port, rc; struct sockaddr_in sa; socklen_t sa_len; + fd_set fds; + struct timeval tv; listen_s = socket(AF_INET, SOCK_STREAM, 0); if (listen_s < 0) { @@ -27826,7 +27932,7 @@ else #include #endif -void main(void) { +int main(void) { struct addrinfo hints, *ai; int error; @@ -27889,7 +27995,7 @@ else #include #endif -void main(void) { +int main(void) { if (EAI_ADDRFAMILY < 0) { exit(0); } @@ -27950,7 +28056,7 @@ else #include #endif -void main(void) { +int main(void) { struct sockaddr_in sa; char hbuf[256]; int error; @@ -28415,13 +28521,21 @@ fi -# 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. + +# Use -no-install or -no-fast-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" ;; + *-apple-darwin*) + LT_NO_INSTALL="" + ;; + *-mingw*) + LT_NO_INSTALL="-no-fast-install" + ;; + *) + LT_NO_INSTALL="-no-install" + ;; esac diff --git a/contrib/apr/configure.in b/contrib/apr/configure.in index 655de8dfe..2a37a30bd 100644 --- a/contrib/apr/configure.in +++ b/contrib/apr/configure.in @@ -35,7 +35,7 @@ AH_TOP([ dnl Hard-coded inclusion at the tail end of apr_private.h: AH_BOTTOM([ /* switch this on if we have a BeOS version below BONE */ -#if BEOS && !HAVE_BONE_VERSION +#if defined(BEOS) && !defined(HAVE_BONE_VERSION) #define BEOS_R5 1 #else #define BEOS_BONE 1 @@ -282,7 +282,7 @@ AC_ARG_WITH(libtool, [ --without-libtool avoid using libtool to link the if test "x$use_libtool" = "xyes"; then lt_compile='$(LIBTOOL) $(LTFLAGS) --mode=compile $(COMPILE) -o $@ -c $< && touch $@' LT_VERSION="-version-info `$get_version libtool $version_hdr APR`" - link="\$(LIBTOOL) \$(LTFLAGS) --mode=link \$(LT_LDFLAGS) \$(COMPILE) \$(LT_VERSION) \$(ALL_LDFLAGS) -o \$@" + link="\$(LIBTOOL) \$(LTFLAGS) --mode=link \$(COMPILE) \$(LT_LDFLAGS) \$(LT_VERSION) \$(ALL_LDFLAGS) -o \$@" so_ext='lo' lib_target='-rpath $(libdir) $(OBJECTS)' export_lib_target='-rpath \$(libdir) \$(OBJECTS)' @@ -298,6 +298,9 @@ case $host in *-solaris2*) apr_platform_runtime_link_flag="-R" ;; + *-mingw* | *-cygwin*) + LT_LDFLAGS="$LT_LDFLAGS -no-undefined" + ;; *) ;; esac @@ -432,6 +435,18 @@ case "$host:$CC" in APR_SETVAR(CC,mwcc) APR_SETVAR(AR,ar) ;; + dnl If building static APR, both the APR build and the app build + dnl need -DAPR_DECLARE_STATIC to generate the right linkage from + dnl APR_DECLARE et al. + dnl If building dynamic APR, the APR build needs APR_DECLARE_EXPORT + dnl and the app build should have neither define. + *-mingw* | *-cygwin*) + if test "$enable_shared" = "yes"; then + APR_ADDTO(INTERNAL_CPPFLAGS, -DAPR_DECLARE_EXPORT) + else + APR_ADDTO(CPPFLAGS, -DAPR_DECLARE_STATIC) + fi + ;; esac AC_CACHE_CHECK([whether the compiler provides atomic builtins], [ap_cv_atomic_builtins], @@ -649,7 +664,15 @@ case $host in fi ;; *linux*) - os_version=`uname -r | sed -e 's/\(.\)\.\(.\)\.\(.\).*/\1\2\3/'` + os_major=[`uname -r | sed -e 's/\([1-9][0-9]*\)\..*/\1/'`] + os_minor=[`uname -r | sed -e 's/[1-9][0-9]*\.\([0-9]\+\)\..*/\1/'`] + if test $os_major -lt 2 -o \( $os_major -eq 2 -a $os_minor -lt 4 \); then + AC_MSG_WARN([Configured for pre-2.4 Linux $os_major.$os_minor]) + os_pre24linux=1 + else + os_pre24linux=0 + AC_MSG_NOTICE([Configured for Linux $os_major.$os_minor]) + fi ;; *os390) os_version=`uname -r | sed -e 's/\.//g'` @@ -872,78 +895,47 @@ if test "$apr_cv_dup3" = "yes"; then AC_DEFINE([HAVE_DUP3], 1, [Define if dup3 function is supported]) fi -# test for accept4 +# Test for accept4(). Create a non-blocking socket, bind it to +# an unspecified port & address (kernel picks), and attempt to +# call accept4() on it. If the syscall is wired up (i.e. the +# kernel is new enough), it should return EAGAIN. AC_CACHE_CHECK([for accept4 support], [apr_cv_accept4], [AC_TRY_RUN([ -#include #include #include -#include #include -#include +#include +#include #include +#include +#include +#include -#define A4_SOCK "./apr_accept4_test_socket" - -int main() +int main(int argc, char **argv) { - pid_t pid; - int fd; - struct sockaddr_un loc, rem; - socklen_t rem_sz; - - if ((pid = fork())) { - int status; + int fd, flags; + struct sockaddr_in sin; - unlink(A4_SOCK); - - if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) - goto cleanup_failure2; - - loc.sun_family = AF_UNIX; - strncpy(loc.sun_path, A4_SOCK, sizeof(loc.sun_path) - 1); - - if (bind(fd, (struct sockaddr *) &loc, - sizeof(struct sockaddr_un)) == -1) - goto cleanup_failure; - - if (listen(fd, 5) == -1) - goto cleanup_failure; - - rem_sz = sizeof(struct sockaddr_un); - if (accept4(fd, (struct sockaddr *) &rem, &rem_sz, 0) == -1) { - goto cleanup_failure; - } - else { - close(fd); - waitpid(pid, &status, 0); - unlink(A4_SOCK); - return 0; - } - -cleanup_failure: - close(fd); -cleanup_failure2: - kill(pid, SIGKILL); - waitpid(pid, &status, 0); - unlink(A4_SOCK); + if ((fd = socket(AF_INET, SOCK_STREAM, 0)) == -1) return 1; - } - else { - if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) - return 1; /* this will be bad: we'll hang */ - - loc.sun_family = AF_UNIX; - strncpy(loc.sun_path, A4_SOCK, sizeof(loc.sun_path) - 1); + flags = fcntl(fd, F_GETFL); + if (flags == -1 || fcntl(fd, F_SETFL, flags|O_NONBLOCK) == -1) + return 5; - while(connect(fd, (struct sockaddr *) &loc, - sizeof(struct sockaddr_un)) == -1 && - (errno==ENOENT || errno==ECONNREFUSED)) - ; + memset(&sin, 0, sizeof sin); + sin.sin_family = AF_INET; + + if (bind(fd, (struct sockaddr *) &sin, sizeof sin) == -1) + return 2; + + if (listen(fd, 5) == -1) + return 3; - close(fd); + if (accept4(fd, NULL, 0, SOCK_NONBLOCK) == 0 + || errno == EAGAIN || errno == EWOULDBLOCK) return 0; - } + + return 4; }], [apr_cv_accept4=yes], [apr_cv_accept4=no], [apr_cv_accept4=no])]) if test "$apr_cv_accept4" = "yes"; then @@ -983,6 +975,25 @@ if test "$apr_cv_epoll_create1" = "yes"; then AC_DEFINE([HAVE_EPOLL_CREATE1], 1, [Define if epoll_create1 function is supported]) fi +# Check for z/OS async i/o support. +AC_CACHE_CHECK([for asio -> message queue support], [apr_cv_aio_msgq], +[AC_TRY_RUN([ +#define _AIO_OS390 +#include + +int main() +{ + struct aiocb a; + + a.aio_notifytype = AIO_MSGQ; /* use IPC message queue for notification */ + + return aio_cancel(2, NULL) == -1; +}], [apr_cv_aio_msgq=yes], [apr_cv_aio_msgq=no], [apr_cv_aio_msgq=no])]) + +if test "$apr_cv_aio_msgq" = "yes"; then + AC_DEFINE([HAVE_AIO_MSGQ], 1, [Define if async i/o supports message q's]) +fi + # test for dup3 AC_CACHE_CHECK([for dup3 support], [apr_cv_dup3], [AC_TRY_RUN([ @@ -1180,7 +1191,8 @@ case $host in # that it has it. # FIXME - find exact 2.3 version that MMANON was fixed in. It is # confirmed fixed in 2.4 series. - if test $os_version -le "240"; then + if test $os_pre24linux -eq 1; then + AC_MSG_WARN([Disabling anon mmap() support for Linux pre-2.4]) APR_DECISION_OVERRIDE(USE_SHMEM_MMAP_ZERO USE_SHMEM_SHMGET_ANON) fi ;; @@ -1244,13 +1256,18 @@ APR_IFALLYES(header:os2.h, APR_IFALLYES(header:windows.h, [havewin32shm="1" APR_DECIDE(USE_SHMEM_WIN32, [Windows shared memory])]) +AC_ARG_ENABLE(posix-shm, +[ --enable-posix-shm Use POSIX shared memory (shm_open) if available], +[ +if test "$havemmapshm" = "1"; then + APR_DECISION_OVERRIDE(USE_SHMEM_MMAP_SHM) +fi +]) case $host in *linux* ) - # Linux has problems with MM_SHMT_MMANON even though it reports - # that it has it. - # FIXME - find exact 2.3 version that MMANON was fixed in. It is - # confirmed fixed in 2.4 series. - if test $os_version -le "240"; then + # Linux pre-2.4 had problems with MM_SHMT_MMANON even though + # it reports that it has it. + if test $os_pre24linux -eq 1; then APR_DECISION_OVERRIDE(USE_SHMEM_MMAP_TMP USE_SHMEM_MMAP_SHM dnl USE_SHMEM_SHMGET) fi @@ -1347,7 +1364,8 @@ AC_ARG_WITH(sendfile, [ --with-sendfile Override decision to use sendfi ;; s390-*-linux-gnu) # disable sendfile support for 2.2 on S/390 - if test $os_version -lt 240; then + if test $os_pre24linux -eq 1; then + AC_MSG_WARN([Disabled sendfile support for Linux 2.2 on S/390]) sendfile="0" fi ;; @@ -1532,7 +1550,7 @@ if test "$netdbh" = "1"; then fi AC_ARG_ENABLE(allocator-uses-mmap, - [ --enable-allocator-uses-mmap Use mmap in apr_allocator instead of malloc (experimental)], + [ --enable-allocator-uses-mmap Use mmap in apr_allocator instead of malloc ], [ if test "$enableval" = "yes"; then APR_IFALLYES(header:sys/mman.h func:mmap func:munmap define:MAP_ANON, [AC_DEFINE(APR_ALLOCATOR_USES_MMAP, 1, @@ -2726,6 +2744,7 @@ AC_SUBST(NOTEST_INCLUDES) dnl ----------------------------- Construct the files +AC_SUBST(INTERNAL_CPPFLAGS) AC_SUBST(LDLIBS) AC_SUBST(INCLUDES) AC_SUBST(AR) @@ -2735,13 +2754,20 @@ AC_SUBST(DEFAULT_OSDIR) AC_SUBST(EXEEXT) AC_SUBST(LIBTOOL_LIBS) -# 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. +# Use -no-install or -no-fast-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" ;; + *-apple-darwin*) + LT_NO_INSTALL="" + ;; + *-mingw*) + LT_NO_INSTALL="-no-fast-install" + ;; + *) + LT_NO_INSTALL="-no-install" + ;; esac AC_SUBST(LT_NO_INSTALL) diff --git a/contrib/apr/docs/canonical_filenames.html b/contrib/apr/docs/canonical_filenames.html index 10867d379..2bd9bdba8 100644 --- a/contrib/apr/docs/canonical_filenames.html +++ b/contrib/apr/docs/canonical_filenames.html @@ -104,9 +104,9 @@ used as the parent to create child entries to reduce the number of expensive stat and case canonicalization calls to the OS.

The comparison operation provides that the APR can postpone correction -of case by simply relying upon the device and inode for equivilance. The +of case by simply relying upon the device and inode for equivalence. The stat implementation provides that two files are the same, while their -strings are not equivilant, and eliminates the need for the operating +strings are not equivalent, and eliminates the need for the operating system to return the proper form of the name.

In any case, returning the char* path, with a flag to request the proper @@ -153,4 +153,4 @@ For each of this path Segments - \ No newline at end of file + diff --git a/contrib/apr/encoding/apr_escape.c b/contrib/apr/encoding/apr_escape.c new file mode 100644 index 000000000..2bcfec418 --- /dev/null +++ b/contrib/apr/encoding/apr_escape.c @@ -0,0 +1,1181 @@ +/* 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. + */ + +/* escape/unescape functions. + * + * These functions perform various escaping operations, and are provided in + * pairs, a function to query the length of and escape existing buffers, as + * well as companion functions to perform the same process to memory + * allocated from a pool. + * + * The API is designed to have the smallest possible RAM footprint, and so + * will only allocate the exact amount of RAM needed for each conversion. + */ + +#include "apr_escape.h" +#include "apr_escape_test_char.h" +#include "apr_lib.h" +#include "apr_strings.h" + +#if APR_CHARSET_EBCDIC +static int convert_a2e[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F, 0x16, 0x05, 0x15, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, + 0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26, 0x18, 0x19, 0x3F, 0x27, 0x1C, 0x1D, 0x1E, 0x1F, + 0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D, 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61, + 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F, + 0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, + 0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xAD, 0xE0, 0xBD, 0x5F, 0x6D, + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, + 0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xC0, 0x4F, 0xD0, 0xA1, 0x07, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x06, 0x17, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x09, 0x0A, 0x1B, + 0x30, 0x31, 0x1A, 0x33, 0x34, 0x35, 0x36, 0x08, 0x38, 0x39, 0x3A, 0x3B, 0x04, 0x14, 0x3E, 0xFF, + 0x41, 0xAA, 0x4A, 0xB1, 0x9F, 0xB2, 0x6A, 0xB5, 0xBB, 0xB4, 0x9A, 0x8A, 0xB0, 0xCA, 0xAF, 0xBC, + 0x90, 0x8F, 0xEA, 0xFA, 0xBE, 0xA0, 0xB6, 0xB3, 0x9D, 0xDA, 0x9B, 0x8B, 0xB7, 0xB8, 0xB9, 0xAB, + 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9E, 0x68, 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, + 0xAC, 0x69, 0xED, 0xEE, 0xEB, 0xEF, 0xEC, 0xBF, 0x80, 0xFD, 0xFE, 0xFB, 0xFC, 0xBA, 0xAE, 0x59, + 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9C, 0x48, 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, + 0x8C, 0x49, 0xCD, 0xCE, 0xCB, 0xCF, 0xCC, 0xE1, 0x70, 0xDD, 0xDE, 0xDB, 0xDC, 0x8D, 0x8E, 0xDF }; + +static int convert_e2a[256] = { + 0x00, 0x01, 0x02, 0x03, 0x9C, 0x09, 0x86, 0x7F, 0x97, 0x8D, 0x8E, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, + 0x10, 0x11, 0x12, 0x13, 0x9D, 0x0A, 0x08, 0x87, 0x18, 0x19, 0x92, 0x8F, 0x1C, 0x1D, 0x1E, 0x1F, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x17, 0x1B, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x05, 0x06, 0x07, + 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, 0x98, 0x99, 0x9A, 0x9B, 0x14, 0x15, 0x9E, 0x1A, + 0x20, 0xA0, 0xE2, 0xE4, 0xE0, 0xE1, 0xE3, 0xE5, 0xE7, 0xF1, 0xA2, 0x2E, 0x3C, 0x28, 0x2B, 0x7C, + 0x26, 0xE9, 0xEA, 0xEB, 0xE8, 0xED, 0xEE, 0xEF, 0xEC, 0xDF, 0x21, 0x24, 0x2A, 0x29, 0x3B, 0x5E, + 0x2D, 0x2F, 0xC2, 0xC4, 0xC0, 0xC1, 0xC3, 0xC5, 0xC7, 0xD1, 0xA6, 0x2C, 0x25, 0x5F, 0x3E, 0x3F, + 0xF8, 0xC9, 0xCA, 0xCB, 0xC8, 0xCD, 0xCE, 0xCF, 0xCC, 0x60, 0x3A, 0x23, 0x40, 0x27, 0x3D, 0x22, + 0xD8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xAB, 0xBB, 0xF0, 0xFD, 0xFE, 0xB1, + 0xB0, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0xAA, 0xBA, 0xE6, 0xB8, 0xC6, 0xA4, + 0xB5, 0x7E, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0xA1, 0xBF, 0xD0, 0x5B, 0xDE, 0xAE, + 0xAC, 0xA3, 0xA5, 0xB7, 0xA9, 0xA7, 0xB6, 0xBC, 0xBD, 0xBE, 0xDD, 0xA8, 0xAF, 0x5D, 0xB4, 0xD7, + 0x7B, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0xAD, 0xF4, 0xF6, 0xF2, 0xF3, 0xF5, + 0x7D, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0xB9, 0xFB, 0xFC, 0xF9, 0xFA, 0xFF, + 0x5C, 0xF7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0xB2, 0xD4, 0xD6, 0xD2, 0xD3, 0xD5, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0xB3, 0xDB, 0xDC, 0xD9, 0xDA, 0x9F }; +#define RAW_ASCII_CHAR(ch) convert_e2a[(unsigned char)ch] +#else /* APR_CHARSET_EBCDIC */ +#define RAW_ASCII_CHAR(ch) (ch) +#endif /* !APR_CHARSET_EBCDIC */ + +/* we assume the folks using this ensure 0 <= c < 256... which means + * you need a cast to (unsigned char) first, you can't just plug a + * char in here and get it to work, because if char is signed then it + * will first be sign extended. + */ +#define TEST_CHAR(c, f) (test_char_table[(unsigned)(c)] & (f)) + +APR_DECLARE(apr_status_t) apr_escape_shell(char *escaped, const char *str, + apr_ssize_t slen, apr_size_t *len) +{ + unsigned char *d; + const unsigned char *s; + apr_size_t size = 1; + int found = 0; + + d = (unsigned char *) escaped; + s = (const unsigned char *) str; + + if (s) { + if (d) { + for (; *s && slen; ++s, slen--) { +#if defined(OS2) || defined(WIN32) + /* + * Newlines to Win32/OS2 CreateProcess() are ill advised. + * Convert them to spaces since they are effectively white + * space to most applications + */ + if (*s == '\r' || *s == '\n') { + if (d) { + *d++ = ' '; + found = 1; + } + continue; + } +#endif + if (TEST_CHAR(*s, T_ESCAPE_SHELL_CMD)) { + *d++ = '\\'; + size++; + found = 1; + } + *d++ = *s; + size++; + } + *d = '\0'; + } + else { + for (; *s && slen; ++s, slen--) { + if (TEST_CHAR(*s, T_ESCAPE_SHELL_CMD)) { + size++; + found = 1; + } + size++; + } + } + } + + if (len) { + *len = size; + } + if (!found) { + return APR_NOTFOUND; + } + + return APR_SUCCESS; +} + +APR_DECLARE(const char *) apr_pescape_shell(apr_pool_t *p, const char *str) +{ + apr_size_t len; + + switch (apr_escape_shell(NULL, str, APR_ESCAPE_STRING, &len)) { + case APR_SUCCESS: { + char *cmd = apr_palloc(p, len); + apr_escape_shell(cmd, str, APR_ESCAPE_STRING, NULL); + return cmd; + } + case APR_NOTFOUND: { + break; + } + } + + return str; +} + +static char x2c(const char *what) +{ + register char digit; + +#if !APR_CHARSET_EBCDIC + digit = + ((what[0] >= 'A') ? ((what[0] & 0xdf) - 'A') + 10 : (what[0] - '0')); + digit *= 16; + digit += (what[1] >= 'A' ? ((what[1] & 0xdf) - 'A') + 10 : (what[1] - '0')); +#else /*APR_CHARSET_EBCDIC*/ + char xstr[5]; + xstr[0]='0'; + xstr[1]='x'; + xstr[2]=what[0]; + xstr[3]=what[1]; + xstr[4]='\0'; + digit = convert_a2e[0xFF & strtol(xstr, NULL, 16)]; +#endif /*APR_CHARSET_EBCDIC*/ + return (digit); +} + +APR_DECLARE(apr_status_t) apr_unescape_url(char *escaped, const char *url, + apr_ssize_t slen, const char *forbid, const char *reserved, int plus, + apr_size_t *len) +{ + apr_size_t size = 1; + int found = 0; + const char *s = (const char *) url; + char *d = (char *) escaped; + register int badesc, badpath; + + if (!url) { + return APR_NOTFOUND; + } + + badesc = 0; + badpath = 0; + if (s) { + if (d) { + for (; *s && slen; ++s, d++, slen--) { + if (plus && *s == '+') { + *d = ' '; + found = 1; + } + else if (*s != '%') { + *d = *s; + } + else { + if (!apr_isxdigit(*(s + 1)) || !apr_isxdigit(*(s + 2))) { + badesc = 1; + *d = '%'; + } + else { + char decoded; + decoded = x2c(s + 1); + if ((decoded == '\0') + || (forbid && strchr(forbid, decoded))) { + badpath = 1; + *d = decoded; + s += 2; + slen -= 2; + } + else if (reserved && strchr(reserved, decoded)) { + *d++ = *s++; + *d++ = *s++; + *d = *s; + size += 2; + } + else { + *d = decoded; + s += 2; + slen -= 2; + found = 1; + } + } + } + size++; + } + *d = '\0'; + } + else { + for (; *s && slen; ++s, slen--) { + if (plus && *s == '+') { + found = 1; + } + else if (*s != '%') { + /* character unchanged */ + } + else { + if (!apr_isxdigit(*(s + 1)) || !apr_isxdigit(*(s + 2))) { + badesc = 1; + } + else { + char decoded; + decoded = x2c(s + 1); + if ((decoded == '\0') + || (forbid && strchr(forbid, decoded))) { + badpath = 1; + s += 2; + slen -= 2; + } + else if (reserved && strchr(reserved, decoded)) { + s += 2; + slen -= 2; + size += 2; + } + else { + s += 2; + slen -= 2; + found = 1; + } + } + } + size++; + } + } + } + + if (len) { + *len = size; + } + if (badesc) { + return APR_EINVAL; + } + else if (badpath) { + return APR_BADCH; + } + else if (!found) { + return APR_NOTFOUND; + } + + return APR_SUCCESS; +} + +APR_DECLARE(const char *) apr_punescape_url(apr_pool_t *p, const char *url, + const char *forbid, const char *reserved, int plus) +{ + apr_size_t len; + + switch (apr_unescape_url(NULL, url, APR_ESCAPE_STRING, forbid, reserved, + plus, &len)) { + case APR_SUCCESS: { + char *buf = apr_palloc(p, len); + apr_unescape_url(buf, url, APR_ESCAPE_STRING, forbid, reserved, plus, + NULL); + return buf; + } + case APR_EINVAL: + case APR_BADCH: { + return NULL; + } + case APR_NOTFOUND: { + break; + } + } + + return url; +} + +/* c2x takes an unsigned, and expects the caller has guaranteed that + * 0 <= what < 256... which usually means that you have to cast to + * unsigned char first, because (unsigned)(char)(x) first goes through + * signed extension to an int before the unsigned cast. + * + * The reason for this assumption is to assist gcc code generation -- + * the unsigned char -> unsigned extension is already done earlier in + * both uses of this code, so there's no need to waste time doing it + * again. + */ +static const char c2x_table[] = "0123456789abcdef"; + +static APR_INLINE unsigned char *c2x(unsigned what, unsigned char prefix, + unsigned char *where) +{ +#if APR_CHARSET_EBCDIC + what = convert_e2a[(unsigned char)what]; +#endif /*APR_CHARSET_EBCDIC*/ + *where++ = prefix; + *where++ = c2x_table[what >> 4]; + *where++ = c2x_table[what & 0xf]; + return where; +} + +APR_DECLARE(apr_status_t) apr_escape_path_segment(char *escaped, + const char *str, apr_ssize_t slen, apr_size_t *len) +{ + apr_size_t size = 1; + int found = 0; + const unsigned char *s = (const unsigned char *) str; + unsigned char *d = (unsigned char *) escaped; + unsigned c; + + if (s) { + if (d) { + while ((c = *s) && slen) { + if (TEST_CHAR(c, T_ESCAPE_PATH_SEGMENT)) { + d = c2x(c, '%', d); + size += 2; + found = 1; + } + else { + *d++ = c; + } + ++s; + size++; + slen--; + } + *d = '\0'; + } + else { + while ((c = *s) && slen) { + if (TEST_CHAR(c, T_ESCAPE_PATH_SEGMENT)) { + size += 2; + found = 1; + } + ++s; + size++; + slen--; + } + } + } + + if (len) { + *len = size; + } + if (!found) { + return APR_NOTFOUND; + } + + return APR_SUCCESS; +} + +APR_DECLARE(const char *) apr_pescape_path_segment(apr_pool_t *p, + const char *str) +{ + apr_size_t len; + + switch (apr_escape_path_segment(NULL, str, APR_ESCAPE_STRING, &len)) { + case APR_SUCCESS: { + char *cmd = apr_palloc(p, len); + apr_escape_path_segment(cmd, str, APR_ESCAPE_STRING, NULL); + return cmd; + } + case APR_NOTFOUND: { + break; + } + } + + return str; +} + +APR_DECLARE(apr_status_t) apr_escape_path(char *escaped, const char *path, + apr_ssize_t slen, int partial, apr_size_t *len) +{ + apr_size_t size = 1; + int found = 0; + const unsigned char *s = (const unsigned char *) path; + unsigned char *d = (unsigned char *) escaped; + unsigned c; + + if (!path) { + return APR_NOTFOUND; + } + + if (!partial) { + const char *colon = strchr(path, ':'); + const char *slash = strchr(path, '/'); + + if (colon && (!slash || colon < slash)) { + if (d) { + *d++ = '.'; + *d++ = '/'; + } + size += 2; + found = 1; + } + } + if (d) { + while ((c = *s) && slen) { + if (TEST_CHAR(c, T_OS_ESCAPE_PATH)) { + d = c2x(c, '%', d); + } + else { + *d++ = c; + } + ++s; + size++; + slen--; + } + *d = '\0'; + } + else { + while ((c = *s) && slen) { + if (TEST_CHAR(c, T_OS_ESCAPE_PATH)) { + size += 2; + found = 1; + } + ++s; + size++; + slen--; + } + } + + if (len) { + *len = size; + } + if (!found) { + return APR_NOTFOUND; + } + + return APR_SUCCESS; +} + +APR_DECLARE(const char *) apr_pescape_path(apr_pool_t *p, const char *str, + int partial) +{ + apr_size_t len; + + switch (apr_escape_path(NULL, str, APR_ESCAPE_STRING, partial, &len)) { + case APR_SUCCESS: { + char *path = apr_palloc(p, len); + apr_escape_path(path, str, APR_ESCAPE_STRING, partial, NULL); + return path; + } + case APR_NOTFOUND: { + break; + } + } + + return str; +} + +APR_DECLARE(apr_status_t) apr_escape_urlencoded(char *escaped, const char *str, + apr_ssize_t slen, apr_size_t *len) +{ + apr_size_t size = 1; + int found = 0; + const unsigned char *s = (const unsigned char *) str; + unsigned char *d = (unsigned char *) escaped; + unsigned c; + + if (s) { + if (d) { + while ((c = *s) && slen) { + if (TEST_CHAR(c, T_ESCAPE_URLENCODED)) { + d = c2x(c, '%', d); + size += 2; + found = 1; + } + else if (c == ' ') { + *d++ = '+'; + found = 1; + } + else { + *d++ = c; + } + ++s; + size++; + slen--; + } + *d = '\0'; + } + else { + while ((c = *s) && slen) { + if (TEST_CHAR(c, T_ESCAPE_URLENCODED)) { + size += 2; + found = 1; + } + else if (c == ' ') { + found = 1; + } + ++s; + size++; + slen--; + } + } + } + + if (len) { + *len = size; + } + if (!found) { + return APR_NOTFOUND; + } + + return APR_SUCCESS; +} + +APR_DECLARE(const char *) apr_pescape_urlencoded(apr_pool_t *p, const char *str) +{ + apr_size_t len; + + switch (apr_escape_urlencoded(NULL, str, APR_ESCAPE_STRING, &len)) { + case APR_SUCCESS: { + char *encoded = apr_palloc(p, len); + apr_escape_urlencoded(encoded, str, APR_ESCAPE_STRING, NULL); + return encoded; + } + case APR_NOTFOUND: { + break; + } + } + + return str; +} + +APR_DECLARE(apr_status_t) apr_escape_entity(char *escaped, const char *str, + apr_ssize_t slen, int toasc, apr_size_t *len) +{ + apr_size_t size = 1; + int found = 0; + const unsigned char *s = (const unsigned char *) str; + unsigned char *d = (unsigned char *) escaped; + unsigned c; + + if (s) { + if (d) { + while ((c = *s) && slen) { + if (TEST_CHAR(c, T_ESCAPE_XML)) { + switch (c) { + case '>': { + memcpy(d, ">", 4); + size += 4; + d += 4; + break; + } + case '<': { + memcpy(d, "<", 4); + size += 4; + d += 4; + break; + } + case '&': { + memcpy(d, "&", 5); + size += 5; + d += 5; + break; + } + case '\"': { + memcpy(d, """, 6); + size += 6; + d += 6; + break; + } + case '\'': { + memcpy(d, "'", 6); + size += 6; + d += 6; + break; + } + } + found = 1; + } + else if (toasc && !apr_isascii(c)) { + int offset = apr_snprintf((char *) d, 6, "&#%3.3d;", c); + size += offset; + d += offset; + found = 1; + } + else { + *d++ = c; + size++; + } + ++s; + slen--; + } + *d = '\0'; + } + else { + while ((c = *s) && slen) { + if (TEST_CHAR(c, T_ESCAPE_XML)) { + switch (c) { + case '>': { + size += 4; + break; + } + case '<': { + size += 4; + break; + } + case '&': { + size += 5; + break; + } + case '\"': { + size += 6; + break; + } + case '\'': { + size += 6; + break; + } + } + found = 1; + } + else if (toasc && !apr_isascii(c)) { + char buf[8]; + size += apr_snprintf(buf, 6, "&#%3.3d;", c); + found = 1; + } + else { + size++; + } + ++s; + slen--; + } + } + } + + if (len) { + *len = size; + } + if (!found) { + return APR_NOTFOUND; + } + + return APR_SUCCESS; +} + +APR_DECLARE(const char *) apr_pescape_entity(apr_pool_t *p, const char *str, + int toasc) +{ + apr_size_t len; + + switch (apr_escape_entity(NULL, str, APR_ESCAPE_STRING, toasc, &len)) { + case APR_SUCCESS: { + char *cmd = apr_palloc(p, len); + apr_escape_entity(cmd, str, APR_ESCAPE_STRING, toasc, NULL); + return cmd; + } + case APR_NOTFOUND: { + break; + } + } + + return str; +} + +/* maximum length of any ISO-LATIN-1 HTML entity name. */ +#define MAXENTLEN (6) + +APR_DECLARE(apr_status_t) apr_unescape_entity(char *unescaped, const char *str, + apr_ssize_t slen, apr_size_t *len) +{ + int found = 0; + apr_size_t size = 1; + int val, i, j; + char *d = unescaped; + const char *s = str; + const char *ents; + static const char * const entlist[MAXENTLEN + 1] = + { + NULL, /* 0 */ + NULL, /* 1 */ + "lt\074gt\076", /* 2 */ + "amp\046ETH\320eth\360", /* 3 */ + "quot\042Auml\304Euml\313Iuml\317Ouml\326Uuml\334auml\344euml" + "\353iuml\357ouml\366uuml\374yuml\377", /* 4 */ + "Acirc\302Aring\305AElig\306Ecirc\312Icirc\316Ocirc\324Ucirc" + "\333THORN\336szlig\337acirc\342aring\345aelig\346ecirc\352" + "icirc\356ocirc\364ucirc\373thorn\376", /* 5 */ + "Agrave\300Aacute\301Atilde\303Ccedil\307Egrave\310Eacute\311" + "Igrave\314Iacute\315Ntilde\321Ograve\322Oacute\323Otilde" + "\325Oslash\330Ugrave\331Uacute\332Yacute\335agrave\340" + "aacute\341atilde\343ccedil\347egrave\350eacute\351igrave" + "\354iacute\355ntilde\361ograve\362oacute\363otilde\365" + "oslash\370ugrave\371uacute\372yacute\375" /* 6 */ + }; + + if (s) { + if (d) { + for (; *s != '\0' && slen; s++, d++, size++, slen--) { + if (*s != '&') { + *d = *s; + continue; + } + /* find end of entity */ + for (i = 1; s[i] != ';' && s[i] != '\0' && (slen - i) != 0; + i++) { + continue; + } + + if (s[i] == '\0' || (slen - i) == 0) { /* treat as normal data */ + *d = *s; + continue; + } + + /* is it numeric ? */ + if (s[1] == '#') { + for (j = 2, val = 0; j < i && apr_isdigit(s[j]); j++) { + val = val * 10 + s[j] - '0'; + } + s += i; + if (j < i || val <= 8 || (val >= 11 && val <= 31) + || (val >= 127 && val <= 160) || val >= 256) { + d--; /* no data to output */ + size--; + } + else { + *d = RAW_ASCII_CHAR(val); + found = 1; + } + } + else { + j = i - 1; + if (j > MAXENTLEN || entlist[j] == NULL) { + /* wrong length */ + *d = '&'; + continue; /* skip it */ + } + for (ents = entlist[j]; *ents != '\0'; ents += i) { + if (strncmp(s + 1, ents, j) == 0) { + break; + } + } + + if (*ents == '\0') { + *d = '&'; /* unknown */ + } + else { + *d = RAW_ASCII_CHAR(((const unsigned char *) ents)[j]); + s += i; + slen -= i; + found = 1; + } + } + } + *d = '\0'; + } + else { + for (; *s != '\0' && slen; s++, size++, slen--) { + if (*s != '&') { + continue; + } + /* find end of entity */ + for (i = 1; s[i] != ';' && s[i] != '\0' && (slen - i) != 0; + i++) { + continue; + } + + if (s[i] == '\0' || (slen - i) == 0) { /* treat as normal data */ + continue; + } + + /* is it numeric ? */ + if (s[1] == '#') { + for (j = 2, val = 0; j < i && apr_isdigit(s[j]); j++) { + val = val * 10 + s[j] - '0'; + } + s += i; + if (j < i || val <= 8 || (val >= 11 && val <= 31) + || (val >= 127 && val <= 160) || val >= 256) { + /* no data to output */ + size--; + } + else { + found = 1; + } + } + else { + j = i - 1; + if (j > MAXENTLEN || entlist[j] == NULL) { + /* wrong length */ + continue; /* skip it */ + } + for (ents = entlist[j]; *ents != '\0'; ents += i) { + if (strncmp(s + 1, ents, j) == 0) { + break; + } + } + + if (*ents == '\0') { + /* unknown */ + } + else { + s += i; + slen -= i; + found = 1; + } + } + } + } + } + + if (len) { + *len = size; + } + if (!found) { + return APR_NOTFOUND; + } + + return APR_SUCCESS; +} + +APR_DECLARE(const char *) apr_punescape_entity(apr_pool_t *p, const char *str) +{ + apr_size_t len; + + switch (apr_unescape_entity(NULL, str, APR_ESCAPE_STRING, &len)) { + case APR_SUCCESS: { + char *cmd = apr_palloc(p, len); + apr_unescape_entity(cmd, str, APR_ESCAPE_STRING, NULL); + return cmd; + } + case APR_NOTFOUND: { + break; + } + } + + return str; +} + +APR_DECLARE(apr_status_t) apr_escape_echo(char *escaped, const char *str, + apr_ssize_t slen, int quote, apr_size_t *len) +{ + apr_size_t size = 1; + int found = 0; + const unsigned char *s = (const unsigned char *) str; + unsigned char *d = (unsigned char *) escaped; + unsigned c; + + if (s) { + if (d) { + while ((c = *s) && slen) { + if (TEST_CHAR(c, T_ESCAPE_ECHO)) { + *d++ = '\\'; + size++; + switch (c) { + case '\a': + *d++ = 'a'; + size++; + found = 1; + break; + case '\b': + *d++ = 'b'; + size++; + found = 1; + break; + case '\f': + *d++ = 'f'; + size++; + found = 1; + break; + case '\n': + *d++ = 'n'; + size++; + found = 1; + break; + case '\r': + *d++ = 'r'; + size++; + found = 1; + break; + case '\t': + *d++ = 't'; + size++; + found = 1; + break; + case '\v': + *d++ = 'v'; + size++; + found = 1; + break; + case '\\': + *d++ = '\\'; + size++; + found = 1; + break; + case '"': + if (quote) { + *d++ = c; + size++; + found = 1; + } + else { + d[-1] = c; + } + break; + default: + c2x(c, 'x', d); + d += 3; + size += 3; + found = 1; + break; + } + } + else { + *d++ = c; + size++; + } + ++s; + slen--; + } + *d = '\0'; + } + else { + while ((c = *s) && slen) { + if (TEST_CHAR(c, T_ESCAPE_ECHO)) { + size++; + switch (c) { + case '\a': + case '\b': + case '\f': + case '\n': + case '\r': + case '\t': + case '\v': + case '\\': + size++; + found = 1; + break; + case '"': + if (quote) { + size++; + found = 1; + } + break; + default: + size += 3; + found = 1; + break; + } + } + else { + size++; + } + ++s; + slen--; + } + } + } + + if (len) { + *len = size; + } + if (!found) { + return APR_NOTFOUND; + } + + return APR_SUCCESS; +} + +APR_DECLARE(const char *) apr_pescape_echo(apr_pool_t *p, const char *str, + int quote) +{ + apr_size_t len; + + switch (apr_escape_echo(NULL, str, APR_ESCAPE_STRING, quote, &len)) { + case APR_SUCCESS: { + char *cmd = apr_palloc(p, len); + apr_escape_echo(cmd, str, APR_ESCAPE_STRING, quote, NULL); + return cmd; + } + case APR_NOTFOUND: { + break; + } + } + + return str; +} + +APR_DECLARE(apr_status_t) apr_escape_hex(char *dest, const void *src, + apr_size_t srclen, int colon, apr_size_t *len) +{ + const unsigned char *in = src; + apr_size_t size; + + if (!src) { + return APR_NOTFOUND; + } + + if (dest) { + for (size = 0; size < srclen; size++) { + if (colon && size) { + *dest++ = ':'; + } + *dest++ = c2x_table[in[size] >> 4]; + *dest++ = c2x_table[in[size] & 0xf]; + } + *dest = '\0'; + } + + if (len) { + if (colon && srclen) { + *len = srclen * 3; + } + else { + *len = srclen * 2 + 1; + } + } + + return APR_SUCCESS; +} + +APR_DECLARE(const char *) apr_pescape_hex(apr_pool_t *p, const void *src, + apr_size_t srclen, int colon) +{ + apr_size_t len; + + switch (apr_escape_hex(NULL, src, srclen, colon, &len)) { + case APR_SUCCESS: { + char *cmd = apr_palloc(p, len); + apr_escape_hex(cmd, src, srclen, colon, NULL); + return cmd; + } + case APR_NOTFOUND: { + break; + } + } + + return src; +} + +APR_DECLARE(apr_status_t) apr_unescape_hex(void *dest, const char *str, + apr_ssize_t slen, int colon, apr_size_t *len) +{ + apr_size_t size = 0; + int flip = 0; + const unsigned char *s = (const unsigned char *) str; + unsigned char *d = (unsigned char *) dest; + unsigned c; + unsigned char u = 0; + + if (s) { + if (d) { + while ((c = *s) && slen) { + + if (!flip) { + u = 0; + } + + if (colon && c == ':' && !flip) { + ++s; + slen--; + continue; + } + else if (apr_isdigit(c)) { + u |= c - '0'; + } + else if (apr_isupper(c) && c <= 'F') { + u |= c - ('A' - 10); + } + else if (apr_islower(c) && c <= 'f') { + u |= c - ('a' - 10); + } + else { + return APR_BADCH; + } + + if (flip) { + *d++ = u; + size++; + } + else { + u <<= 4; + *d = u; + } + flip = !flip; + + ++s; + slen--; + } + } + else { + while ((c = *s) && slen) { + + if (colon && c == ':' && !flip) { + ++s; + slen--; + continue; + } + else if (apr_isdigit(c)) { + /* valid */ + } + else if (apr_isupper(c) && c <= 'F') { + /* valid */ + } + else if (apr_islower(c) && c <= 'f') { + /* valid */ + } + else { + return APR_BADCH; + } + + if (flip) { + size++; + } + flip = !flip; + + ++s; + slen--; + } + } + } + + if (len) { + *len = size; + } + if (!s) { + return APR_NOTFOUND; + } + + return APR_SUCCESS; +} + +APR_DECLARE(const void *) apr_punescape_hex(apr_pool_t *p, const char *str, + int colon, apr_size_t *len) +{ + apr_size_t size; + + switch (apr_unescape_hex(NULL, str, APR_ESCAPE_STRING, colon, &size)) { + case APR_SUCCESS: { + void *cmd = apr_palloc(p, size); + apr_unescape_hex(cmd, str, APR_ESCAPE_STRING, colon, len); + return cmd; + } + case APR_BADCH: + case APR_NOTFOUND: { + break; + } + } + + return NULL; +} diff --git a/contrib/apr/file_io/unix/filedup.c b/contrib/apr/file_io/unix/filedup.c index eb4fbdc6b..41cfec568 100644 --- a/contrib/apr/file_io/unix/filedup.c +++ b/contrib/apr/file_io/unix/filedup.c @@ -141,8 +141,7 @@ APR_DECLARE(apr_status_t) apr_file_setaside(apr_file_t **new_file, apr_file_t *old_file, apr_pool_t *p) { - *new_file = (apr_file_t *)apr_palloc(p, sizeof(apr_file_t)); - memcpy(*new_file, old_file, sizeof(apr_file_t)); + *new_file = (apr_file_t *)apr_pmemdup(p, old_file, sizeof(apr_file_t)); (*new_file)->pool = p; if (old_file->buffered) { (*new_file)->buffer = apr_palloc(p, old_file->bufsize); diff --git a/contrib/apr/file_io/unix/filestat.c b/contrib/apr/file_io/unix/filestat.c index 9bee65112..220efd086 100644 --- a/contrib/apr/file_io/unix/filestat.c +++ b/contrib/apr/file_io/unix/filestat.c @@ -95,7 +95,7 @@ static void fill_out_finfo(apr_finfo_t *finfo, struct_stat *info, #elif defined(HAVE_STRUCT_STAT_ST_ATIMENSEC) finfo->atime += info->st_atimensec / APR_TIME_C(1000); #elif defined(HAVE_STRUCT_STAT_ST_ATIME_N) - finfo->ctime += info->st_atime_n / APR_TIME_C(1000); + finfo->atime += info->st_atime_n / APR_TIME_C(1000); #endif apr_time_ansi_put(&finfo->mtime, info->st_mtime); @@ -104,7 +104,7 @@ static void fill_out_finfo(apr_finfo_t *finfo, struct_stat *info, #elif defined(HAVE_STRUCT_STAT_ST_MTIMENSEC) finfo->mtime += info->st_mtimensec / APR_TIME_C(1000); #elif defined(HAVE_STRUCT_STAT_ST_MTIME_N) - finfo->ctime += info->st_mtime_n / APR_TIME_C(1000); + finfo->mtime += info->st_mtime_n / APR_TIME_C(1000); #endif apr_time_ansi_put(&finfo->ctime, info->st_ctime); diff --git a/contrib/apr/file_io/unix/mktemp.c b/contrib/apr/file_io/unix/mktemp.c index 28aaf90e2..7530a2510 100644 --- a/contrib/apr/file_io/unix/mktemp.c +++ b/contrib/apr/file_io/unix/mktemp.c @@ -74,7 +74,7 @@ #if APR_HAVE_SYS_TYPES_H #include #endif -#if APR_HAVE_SYS_STAT_H +#ifdef HAVE_SYS_STAT_H #include #endif #if APR_HAVE_FCNTL_H diff --git a/contrib/apr/file_io/unix/open.c b/contrib/apr/file_io/unix/open.c index 6373ee5ba..49eb72741 100644 --- a/contrib/apr/file_io/unix/open.c +++ b/contrib/apr/file_io/unix/open.c @@ -135,6 +135,14 @@ APR_DECLARE(apr_status_t) apr_file_open(apr_file_t **new, } #endif + if (flag & APR_FOPEN_NONBLOCK) { +#ifdef O_NONBLOCK + oflags |= O_NONBLOCK; +#else + return APR_ENOTIMPL; +#endif + } + #ifdef O_CLOEXEC /* Introduced in Linux 2.6.23. Silently ignored on earlier Linux kernels. */ diff --git a/contrib/apr/file_io/unix/pipe.c b/contrib/apr/file_io/unix/pipe.c index 7b8f01fb9..571d9bcb8 100644 --- a/contrib/apr/file_io/unix/pipe.c +++ b/contrib/apr/file_io/unix/pipe.c @@ -25,8 +25,8 @@ * but now fcntl does, hence we need to do this extra checking. * The joys of beta programs. :-) */ -#if BEOS -#if !BONE7 +#if defined(BEOS) +#if !defined(BONE7) # define BEOS_BLOCKING 1 #else # define BEOS_BLOCKING 0 @@ -35,7 +35,7 @@ static apr_status_t pipeblock(apr_file_t *thepipe) { -#if !BEOS_BLOCKING +#if !defined(BEOS) || !BEOS_BLOCKING int fd_flags; fd_flags = fcntl(thepipe->filedes, F_GETFL, 0); @@ -71,7 +71,7 @@ static apr_status_t pipeblock(apr_file_t *thepipe) static apr_status_t pipenonblock(apr_file_t *thepipe) { -#if !BEOS_BLOCKING +#if !defined(BEOS) || !BEOS_BLOCKING int fd_flags = fcntl(thepipe->filedes, F_GETFL, 0); # if defined(O_NONBLOCK) diff --git a/contrib/apr/file_io/unix/readwrite.c b/contrib/apr/file_io/unix/readwrite.c index 4b3e7368c..7044300c1 100644 --- a/contrib/apr/file_io/unix/readwrite.c +++ b/contrib/apr/file_io/unix/readwrite.c @@ -21,7 +21,7 @@ /* The only case where we don't use wait_for_io_or_timeout is on * pre-BONE BeOS, so this check should be sufficient and simpler */ -#if !BEOS_R5 +#if !defined(BEOS_R5) #define USE_WAIT_FOR_IO #endif diff --git a/contrib/apr/include/apr.h.in b/contrib/apr/include/apr.h.in index a411dd029..0ad7a91af 100644 --- a/contrib/apr/include/apr.h.in +++ b/contrib/apr/include/apr.h.in @@ -116,7 +116,7 @@ * or the extern "C" namespace */ -#if APR_HAVE_WINDOWS_H +#if APR_HAVE_WINDOWS_H && defined(WIN32) /* If windows.h was already included, our preferences don't matter. * If not, include a restricted set of windows headers to our tastes. */ @@ -453,6 +453,8 @@ typedef apr_uint32_t apr_uintptr_t; */ #define APR_THREAD_FUNC @apr_thread_func@ +#if defined(DOXYGEN) || !defined(WIN32) + /** * The public APR functions are declared with APR_DECLARE(), so they may * use the most appropriate calling convention. Public APR functions with @@ -505,6 +507,20 @@ typedef apr_uint32_t apr_uintptr_t; */ #define APR_DECLARE_DATA +#elif defined(APR_DECLARE_STATIC) +#define APR_DECLARE(type) type __stdcall +#define APR_DECLARE_NONSTD(type) type __cdecl +#define APR_DECLARE_DATA +#elif defined(APR_DECLARE_EXPORT) +#define APR_DECLARE(type) __declspec(dllexport) type __stdcall +#define APR_DECLARE_NONSTD(type) __declspec(dllexport) type __cdecl +#define APR_DECLARE_DATA __declspec(dllexport) +#else +#define APR_DECLARE(type) __declspec(dllimport) type __stdcall +#define APR_DECLARE_NONSTD(type) __declspec(dllimport) type __cdecl +#define APR_DECLARE_DATA __declspec(dllimport) +#endif + /* Define APR_SSIZE_T_FMT. * If ssize_t is an integer we define it to be "d", * if ssize_t is a long int we define it to be "ld", diff --git a/contrib/apr/include/apr.hwc b/contrib/apr/include/apr.hwc new file mode 100644 index 000000000..057996295 --- /dev/null +++ b/contrib/apr/include/apr.hwc @@ -0,0 +1,641 @@ +/* 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_H +#define APR_H + +/* GENERATED FILE WARNING! DO NOT EDIT apr.h + * + * You must modify apr.hwc instead. + * + * And please, make an effort to stub apr.hnw and apr.h.in in the process. + * + * This is the Win32 specific version of apr.h. It is copied from + * apr.hw by the apr.dsp and libapr.dsp projects. + */ + +/** + * @file apr.h + * @brief APR Platform Definitions + * @remark This is a generated header generated from include/apr.h.in by + * ./configure, or copied from include/apr.hw or include/apr.hnw + * for Win32 or Netware by those build environments, respectively. + */ + +/* Make sure we have our platform identifier macro defined we ask for later. + */ +#if defined(_WIN32) && !defined(WIN32) +#define WIN32 1 +#endif + +#if defined(WIN32) || defined(DOXYGEN) + +/* Ignore most warnings (back down to /W3) for poorly constructed headers + */ +#if defined(_MSC_VER) && _MSC_VER >= 1200 +#pragma warning(push, 3) +#endif + +/* disable or reduce the frequency of... + * C4057: indirection to slightly different base types + * C4075: slight indirection changes (unsigned short* vs short[]) + * C4100: unreferenced formal parameter + * C4127: conditional expression is constant + * C4163: '_rotl64' : not available as an intrinsic function + * C4201: nonstandard extension nameless struct/unions + * C4244: int to char/short - precision loss + * C4514: unreferenced inline function removed + */ +#pragma warning(disable: 4100 4127 4163 4201 4514; once: 4057 4075 4244) + +/* Ignore Microsoft's interpretation of secure development + * and the POSIX string handling API + */ +#if defined(_MSC_VER) && _MSC_VER >= 1400 +#ifndef _CRT_SECURE_NO_DEPRECATE +#define _CRT_SECURE_NO_DEPRECATE +#endif +#pragma warning(disable: 4996) +#endif + +/* Has windows.h already been included? If so, our preferences don't matter, + * but we will still need the winsock things no matter what was included. + * If not, include a restricted set of windows headers to our tastes. + */ +#ifndef _WINDOWS_ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#ifndef _WIN32_WINNT +#define _WIN32_WINNT @win32_winnt_str@ +#endif +#ifndef NOUSER +#define NOUSER +#endif +#ifndef NOMCX +#define NOMCX +#endif +#ifndef NOIME +#define NOIME +#endif +#include +/* + * Add a _very_few_ declarations missing from the restricted set of headers + * (If this list becomes extensive, re-enable the required headers above!) + * winsock headers were excluded by WIN32_LEAN_AND_MEAN, so include them now + */ +#define SW_HIDE 0 +#ifndef _WIN32_WCE +#include +#include +#include +#else +#include +#endif +#endif /* !_WINDOWS_ */ + +/** + * @defgroup APR Apache Portability Runtime library + * @{ + */ +/** + * @defgroup apr_platform Platform Definitions + * @{ + * @warning + * The actual values of macros and typedefs on this page
+ * are platform specific and should NOT be relied upon!
+ */ + +#define APR_INLINE __inline +#define APR_HAS_INLINE 1 +#if !defined(__GNUC__) && !defined(__attribute__) +#define __attribute__(__x) +#endif + +#ifndef _WIN32_WCE +#define APR_HAVE_ARPA_INET_H 0 +#define APR_HAVE_CONIO_H 1 +#define APR_HAVE_CRYPT_H 0 +#define APR_HAVE_CTYPE_H 1 +#define APR_HAVE_DIRENT_H 0 +#define APR_HAVE_ERRNO_H 1 +#define APR_HAVE_FCNTL_H 1 +#define APR_HAVE_IO_H 1 +#define APR_HAVE_LIMITS_H 1 +#define APR_HAVE_NETDB_H 0 +#define APR_HAVE_NETINET_IN_H 0 +#define APR_HAVE_NETINET_SCTP_H 0 +#define APR_HAVE_NETINET_SCTP_UIO_H 0 +#define APR_HAVE_NETINET_TCP_H 0 +#define APR_HAVE_PTHREAD_H 0 +#define APR_HAVE_SEMAPHORE_H 0 +#define APR_HAVE_SIGNAL_H 1 +#define APR_HAVE_STDARG_H 1 +#define APR_HAVE_STDINT_H 0 +#define APR_HAVE_STDIO_H 1 +#define APR_HAVE_STDLIB_H 1 +#define APR_HAVE_STRING_H 1 +#define APR_HAVE_STRINGS_H 0 +#define APR_HAVE_SYS_IOCTL_H 0 +#define APR_HAVE_SYS_SENDFILE_H 0 +#define APR_HAVE_SYS_SIGNAL_H 0 +#define APR_HAVE_SYS_SOCKET_H 0 +#define APR_HAVE_SYS_SOCKIO_H 0 +#define APR_HAVE_SYS_SYSLIMITS_H 0 +#define APR_HAVE_SYS_TIME_H 0 +#define APR_HAVE_SYS_TYPES_H 1 +#define APR_HAVE_SYS_UIO_H 0 +#define APR_HAVE_SYS_UN_H 0 +#define APR_HAVE_SYS_WAIT_H 0 +#define APR_HAVE_TIME_H 1 +#define APR_HAVE_UNISTD_H 0 +#define APR_HAVE_STDDEF_H 1 +#define APR_HAVE_PROCESS_H 1 +#else +#define APR_HAVE_ARPA_INET_H 0 +#define APR_HAVE_CONIO_H 0 +#define APR_HAVE_CRYPT_H 0 +#define APR_HAVE_CTYPE_H 0 +#define APR_HAVE_DIRENT_H 0 +#define APR_HAVE_ERRNO_H 0 +#define APR_HAVE_FCNTL_H 0 +#define APR_HAVE_IO_H 0 +#define APR_HAVE_LIMITS_H 0 +#define APR_HAVE_NETDB_H 0 +#define APR_HAVE_NETINET_IN_H 0 +#define APR_HAVE_NETINET_SCTP_H 0 +#define APR_HAVE_NETINET_SCTP_UIO_H 0 +#define APR_HAVE_NETINET_TCP_H 0 +#define APR_HAVE_PTHREAD_H 0 +#define APR_HAVE_SEMAPHORE_H 0 +#define APR_HAVE_SIGNAL_H 0 +#define APR_HAVE_STDARG_H 0 +#define APR_HAVE_STDINT_H 0 +#define APR_HAVE_STDIO_H 1 +#define APR_HAVE_STDLIB_H 1 +#define APR_HAVE_STRING_H 1 +#define APR_HAVE_STRINGS_H 0 +#define APR_HAVE_SYS_IOCTL_H 0 +#define APR_HAVE_SYS_SENDFILE_H 0 +#define APR_HAVE_SYS_SIGNAL_H 0 +#define APR_HAVE_SYS_SOCKET_H 0 +#define APR_HAVE_SYS_SOCKIO_H 0 +#define APR_HAVE_SYS_SYSLIMITS_H 0 +#define APR_HAVE_SYS_TIME_H 0 +#define APR_HAVE_SYS_TYPES_H 0 +#define APR_HAVE_SYS_UIO_H 0 +#define APR_HAVE_SYS_UN_H 0 +#define APR_HAVE_SYS_WAIT_H 0 +#define APR_HAVE_TIME_H 0 +#define APR_HAVE_UNISTD_H 0 +#define APR_HAVE_STDDEF_H 0 +#define APR_HAVE_PROCESS_H 0 +#endif + +/** @} */ +/** @} */ + +/* We don't include our conditional headers within the doxyblocks + * or the extern "C" namespace + */ + +#if APR_HAVE_STDLIB_H +#include +#endif +#if APR_HAVE_STDIO_H +#include +#endif +#if APR_HAVE_SYS_TYPES_H +#include +#endif +#if APR_HAVE_STDDEF_H +#include +#endif +#if APR_HAVE_TIME_H +#include +#endif +#if APR_HAVE_PROCESS_H +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @addtogroup apr_platform + * @ingroup APR + * @{ + */ + +#define APR_HAVE_SHMEM_MMAP_TMP 0 +#define APR_HAVE_SHMEM_MMAP_SHM 0 +#define APR_HAVE_SHMEM_MMAP_ZERO 0 +#define APR_HAVE_SHMEM_SHMGET_ANON 0 +#define APR_HAVE_SHMEM_SHMGET 0 +#define APR_HAVE_SHMEM_MMAP_ANON 0 +#define APR_HAVE_SHMEM_BEOS 0 + +#define APR_USE_SHMEM_MMAP_TMP 0 +#define APR_USE_SHMEM_MMAP_SHM 0 +#define APR_USE_SHMEM_MMAP_ZERO 0 +#define APR_USE_SHMEM_SHMGET_ANON 0 +#define APR_USE_SHMEM_SHMGET 0 +#define APR_USE_SHMEM_MMAP_ANON 0 +#define APR_USE_SHMEM_BEOS 0 + +#define APR_USE_FLOCK_SERIALIZE 0 +#define APR_USE_POSIXSEM_SERIALIZE 0 +#define APR_USE_SYSVSEM_SERIALIZE 0 +#define APR_USE_FCNTL_SERIALIZE 0 +#define APR_USE_PROC_PTHREAD_SERIALIZE 0 +#define APR_USE_PTHREAD_SERIALIZE 0 + +#define APR_HAS_FLOCK_SERIALIZE 0 +#define APR_HAS_SYSVSEM_SERIALIZE 0 +#define APR_HAS_POSIXSEM_SERIALIZE 0 +#define APR_HAS_FCNTL_SERIALIZE 0 +#define APR_HAS_PROC_PTHREAD_SERIALIZE 0 + +#define APR_PROCESS_LOCK_IS_GLOBAL 0 + +#define APR_HAVE_CORKABLE_TCP 0 +#define APR_HAVE_GETRLIMIT 0 +#define APR_HAVE_ICONV 0 +#define APR_HAVE_IN_ADDR 1 +#define APR_HAVE_INET_ADDR 1 +#define APR_HAVE_INET_NETWORK 0 +#define APR_HAVE_IPV6 @apr_have_ipv6_10@ +#define APR_HAVE_MEMMOVE 1 +#define APR_HAVE_SETRLIMIT 0 +#define APR_HAVE_SIGACTION 0 +#define APR_HAVE_SIGSUSPEND 0 +#define APR_HAVE_SIGWAIT 0 +#define APR_HAVE_SA_STORAGE 0 +#define APR_HAVE_STRCASECMP 0 +#define APR_HAVE_STRDUP 1 +#define APR_HAVE_STRNCASECMP 0 +#define APR_HAVE_STRSTR 1 +#define APR_HAVE_MEMCHR 1 +#define APR_HAVE_STRUCT_RLIMIT 0 +#define APR_HAVE_UNION_SEMUN 0 +#define APR_HAVE_SCTP 0 +#define APR_HAVE_IOVEC 0 + +#ifndef _WIN32_WCE +#define APR_HAVE_STRICMP 1 +#define APR_HAVE_STRNICMP 1 +#else +#define APR_HAVE_STRICMP 0 +#define APR_HAVE_STRNICMP 0 +#endif + +/* APR Feature Macros */ +#define APR_HAS_SHARED_MEMORY 1 +#define APR_HAS_THREADS 1 +#define APR_HAS_MMAP 1 +#define APR_HAS_FORK 0 +#define APR_HAS_RANDOM 1 +#define APR_HAS_OTHER_CHILD 1 +#define APR_HAS_DSO 1 +#define APR_HAS_SO_ACCEPTFILTER 0 +#define APR_HAS_UNICODE_FS 1 +#define APR_HAS_PROC_INVOKED 1 +#define APR_HAS_OS_UUID 1 + +#ifndef _WIN32_WCE +#define APR_HAS_SENDFILE 1 +#define APR_HAS_USER 1 +#define APR_HAS_LARGE_FILES 1 +#define APR_HAS_XTHREAD_FILES 1 +#define APR_PROCATTR_USER_SET_REQUIRES_PASSWORD 1 +#else +#define APR_HAS_SENDFILE 0 +#define APR_HAS_USER 0 +#define APR_HAS_LARGE_FILES 0 +#define APR_HAS_XTHREAD_FILES 0 +#define APR_PROCATTR_USER_SET_REQUIRES_PASSWORD 0 +#endif + +/* APR sets APR_FILES_AS_SOCKETS to 1 on systems where it is possible + * to poll on files/pipes. + */ +#define APR_FILES_AS_SOCKETS 0 + +/* This macro indicates whether or not EBCDIC is the native character set. + */ +#define APR_CHARSET_EBCDIC 0 + +/* If we have a TCP implementation that can be "corked", what flag + * do we use? + */ +#define APR_TCP_NOPUSH_FLAG @apr_tcp_nopush_flag@ + +/* Is the TCP_NODELAY socket option inherited from listening sockets? + */ +#define APR_TCP_NODELAY_INHERITED 1 + +/* Is the O_NONBLOCK flag inherited from listening sockets? + */ +#define APR_O_NONBLOCK_INHERITED 1 + +/* Typedefs that APR needs. */ + +typedef unsigned char apr_byte_t; + +typedef short apr_int16_t; +typedef unsigned short apr_uint16_t; + +typedef int apr_int32_t; +typedef unsigned int apr_uint32_t; + +typedef __int64 apr_int64_t; +typedef unsigned __int64 apr_uint64_t; + +typedef size_t apr_size_t; +#if APR_HAVE_STDDEF_H +typedef ptrdiff_t apr_ssize_t; +#else +typedef int apr_ssize_t; +#endif +#if APR_HAS_LARGE_FILES +typedef __int64 apr_off_t; +#else +typedef int apr_off_t; +#endif +typedef int apr_socklen_t; +typedef apr_uint64_t apr_ino_t; + +#ifdef _WIN64 +#define APR_SIZEOF_VOIDP 8 +#else +#define APR_SIZEOF_VOIDP 4 +#endif + +#if APR_SIZEOF_VOIDP == 8 +typedef apr_uint64_t apr_uintptr_t; +#else +typedef apr_uint32_t apr_uintptr_t; +#endif + +/* Are we big endian? */ +/* XXX: Fatal assumption on Alpha platforms */ +#define APR_IS_BIGENDIAN 0 + +/* Mechanisms to properly type numeric literals */ + +#ifndef __GNUC__ +#define APR_INT64_C(val) (val##i64) +#define APR_UINT64_C(val) (val##Ui64) +#else +#define APR_INT64_C(val) (val##LL) +#define APR_UINT64_C(val) (val##ULL) +#endif + +#ifdef INT16_MIN +#define APR_INT16_MIN INT16_MIN +#else +#define APR_INT16_MIN (-0x7fff - 1) +#endif + +#ifdef INT16_MAX +#define APR_INT16_MAX INT16_MAX +#else +#define APR_INT16_MAX (0x7fff) +#endif + +#ifdef UINT16_MAX +#define APR_UINT16_MAX UINT16_MAX +#else +#define APR_UINT16_MAX (0xffff) +#endif + +#ifdef INT32_MIN +#define APR_INT32_MIN INT32_MIN +#else +#define APR_INT32_MIN (-0x7fffffff - 1) +#endif + +#ifdef INT32_MAX +#define APR_INT32_MAX INT32_MAX +#else +#define APR_INT32_MAX 0x7fffffff +#endif + +#ifdef UINT32_MAX +#define APR_UINT32_MAX UINT32_MAX +#else +#define APR_UINT32_MAX (0xffffffffU) +#endif + +#ifdef INT64_MIN +#define APR_INT64_MIN INT64_MIN +#else +#define APR_INT64_MIN (APR_INT64_C(-0x7fffffffffffffff) - 1) +#endif + +#ifdef INT64_MAX +#define APR_INT64_MAX INT64_MAX +#else +#define APR_INT64_MAX APR_INT64_C(0x7fffffffffffffff) +#endif + +#ifdef UINT64_MAX +#define APR_UINT64_MAX UINT64_MAX +#else +#define APR_UINT64_MAX APR_UINT64_C(0xffffffffffffffff) +#endif + +#define APR_SIZE_MAX (~((apr_size_t)0)) + +/* Definitions that APR programs need to work properly. */ + +/** + * APR public API wrap for C++ compilers. + */ +#ifdef __cplusplus +#define APR_BEGIN_DECLS extern "C" { +#define APR_END_DECLS } +#else +#define APR_BEGIN_DECLS +#define APR_END_DECLS +#endif + +/** + * Thread callbacks from APR functions must be declared with APR_THREAD_FUNC, + * so that they follow the platform's calling convention. + *

+ *
+ * void* APR_THREAD_FUNC my_thread_entry_fn(apr_thread_t *thd, void *data);
+ *
+ * 
+ */ +#define APR_THREAD_FUNC __stdcall + + +#if defined(DOXYGEN) || !defined(WIN32) + +/** + * The public APR functions are declared with APR_DECLARE(), so they may + * use the most appropriate calling convention. Public APR functions with + * variable arguments must use APR_DECLARE_NONSTD(). + * + * @remark Both the declaration and implementations must use the same macro. + * + *
+ * APR_DECLARE(rettype) apr_func(args)
+ * 
+ * @see APR_DECLARE_NONSTD @see APR_DECLARE_DATA + * @remark Note that when APR compiles the library itself, it passes the + * symbol -DAPR_DECLARE_EXPORT to the compiler on some platforms (e.g. Win32) + * to export public symbols from the dynamic library build.\n + * The user must define the APR_DECLARE_STATIC when compiling to target + * the static APR library on some platforms (e.g. Win32.) The public symbols + * are neither exported nor imported when APR_DECLARE_STATIC is defined.\n + * By default, compiling an application and including the APR public + * headers, without defining APR_DECLARE_STATIC, will prepare the code to be + * linked to the dynamic library. + */ +#define APR_DECLARE(type) type + +/** + * The public APR functions using variable arguments are declared with + * APR_DECLARE_NONSTD(), as they must follow the C language calling convention. + * @see APR_DECLARE @see APR_DECLARE_DATA + * @remark Both the declaration and implementations must use the same macro. + *
+ *
+ * APR_DECLARE_NONSTD(rettype) apr_func(args, ...);
+ *
+ * 
+ */ +#define APR_DECLARE_NONSTD(type) type + +/** + * The public APR variables are declared with AP_MODULE_DECLARE_DATA. + * This assures the appropriate indirection is invoked at compile time. + * @see APR_DECLARE @see APR_DECLARE_NONSTD + * @remark Note that the declaration and implementations use different forms, + * but both must include the macro. + * + *
+ *
+ * extern APR_DECLARE_DATA type apr_variable;\n
+ * APR_DECLARE_DATA type apr_variable = value;
+ *
+ * 
+ */ +#define APR_DECLARE_DATA + +#elif defined(APR_DECLARE_STATIC) +#define APR_DECLARE(type) type __stdcall +#define APR_DECLARE_NONSTD(type) type __cdecl +#define APR_DECLARE_DATA +#elif defined(APR_DECLARE_EXPORT) +#define APR_DECLARE(type) __declspec(dllexport) type __stdcall +#define APR_DECLARE_NONSTD(type) __declspec(dllexport) type __cdecl +#define APR_DECLARE_DATA __declspec(dllexport) +#else +#define APR_DECLARE(type) __declspec(dllimport) type __stdcall +#define APR_DECLARE_NONSTD(type) __declspec(dllimport) type __cdecl +#define APR_DECLARE_DATA __declspec(dllimport) +#endif + +#ifdef _WIN64 +#define APR_SSIZE_T_FMT "I64d" +#define APR_SIZE_T_FMT "I64u" +#else +#define APR_SSIZE_T_FMT "d" +#define APR_SIZE_T_FMT "u" +#endif + +#if APR_HAS_LARGE_FILES +#define APR_OFF_T_FMT "I64d" +#else +#define APR_OFF_T_FMT "d" +#endif + +#define APR_PID_T_FMT "d" + +#define APR_INT64_T_FMT "I64d" +#define APR_UINT64_T_FMT "I64u" +#define APR_UINT64_T_HEX_FMT "I64x" + +/* No difference between PROC and GLOBAL mutex */ +#define APR_PROC_MUTEX_IS_GLOBAL 1 + +/* Local machine definition for console and log output. */ +#define APR_EOL_STR "\r\n" + +typedef int apr_wait_t; + +#if APR_HAS_UNICODE_FS +/* An arbitrary size that is digestable. True max is a bit less than 32000 */ +#define APR_PATH_MAX 8192 +#else /* !APR_HAS_UNICODE_FS */ +#define APR_PATH_MAX MAX_PATH +#endif + +#define APR_DSOPATH "PATH" + +/** @} */ + +/* Definitions that only Win32 programs need to compile properly. */ + +/* XXX These simply don't belong here, perhaps in apr_portable.h + * based on some APR_HAVE_PID/GID/UID? + */ +#ifndef __GNUC__ +typedef int pid_t; +#endif +typedef int uid_t; +typedef int gid_t; + +/* Win32 .h ommissions we really need */ +#define STDIN_FILENO 0 +#define STDOUT_FILENO 1 +#define STDERR_FILENO 2 + +#if APR_HAVE_IPV6 + +/* Appears in later flavors, not the originals. */ +#ifndef in_addr6 +#define in6_addr in_addr6 +#endif + +#ifndef WS2TCPIP_INLINE +#define IN6_IS_ADDR_V4MAPPED(a) \ + ( (*(const apr_uint64_t *)(const void *)(&(a)->s6_addr[0]) == 0) \ + && (*(const apr_uint32_t *)(const void *)(&(a)->s6_addr[8]) == ntohl(0x0000ffff))) +#endif + +#endif /* APR_HAS_IPV6 */ + +#ifdef __cplusplus +} +#endif + +/* Done with badly written headers + */ +#if defined(_MSC_VER) && _MSC_VER >= 1200 +#pragma warning(pop) +#pragma warning(disable: 4996) +#endif + +#endif /* WIN32 */ + +#endif /* APR_H */ diff --git a/contrib/apr/include/apr_allocator.h b/contrib/apr/include/apr_allocator.h index 5d6677645..70d31efa0 100644 --- a/contrib/apr/include/apr_allocator.h +++ b/contrib/apr/include/apr_allocator.h @@ -131,7 +131,7 @@ APR_DECLARE(apr_pool_t *) apr_allocator_owner_get(apr_allocator_t *allocator) /** * Set the current threshold at which the allocator should start * giving blocks back to the system. - * @param allocator The allocator the set the threshold on + * @param allocator The allocator to set the threshold on * @param size The threshold. 0 == unlimited. */ APR_DECLARE(void) apr_allocator_max_free_set(apr_allocator_t *allocator, diff --git a/contrib/apr/include/apr_errno.h b/contrib/apr/include/apr_errno.h index d4d44cb1a..58eaf73cc 100644 --- a/contrib/apr/include/apr_errno.h +++ b/contrib/apr/include/apr_errno.h @@ -45,7 +45,7 @@ typedef int apr_status_t; /** * Return a human readable string describing the specified error. - * @param statcode The error code the get a string for. + * @param statcode The error code to get a string for. * @param buf A buffer to hold the error string. * @param bufsize Size of the buffer to hold the string. */ @@ -126,7 +126,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, * use within apr-util. This space is reserved above that used by APR * internally. * @note This number MUST be smaller than APR_OS_ERRSPACE_SIZE by a - * large enough amount that APR has sufficient room for it's + * large enough amount that APR has sufficient room for its * codes. */ #define APR_UTIL_ERRSPACE_SIZE 20000 @@ -135,7 +135,7 @@ APR_DECLARE(char *) apr_strerror(apr_status_t statcode, char *buf, */ #define APR_OS_START_STATUS (APR_OS_START_ERROR + APR_OS_ERRSPACE_SIZE) /** - * APR_UTIL_START_STATUS is where APR-Util starts defining it's + * APR_UTIL_START_STATUS is where APR-Util starts defining its * status codes. */ #define APR_UTIL_START_STATUS (APR_OS_START_STATUS + \ diff --git a/contrib/apr/include/apr_escape.h b/contrib/apr/include/apr_escape.h new file mode 100644 index 000000000..5b60ac6ee --- /dev/null +++ b/contrib/apr/include/apr_escape.h @@ -0,0 +1,374 @@ +/* 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_escape.h + * @brief APR-UTIL Escaping + */ +#ifndef APR_ESCAPE_H +#define APR_ESCAPE_H +#include "apr.h" +#include "apr_general.h" +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @defgroup APR_Util_Escaping Escape functions + * @ingroup APR + * @{ + */ + +/* Simple escape/unescape functions. + * + */ + +/** + * When passing a string to one of the escape functions, this value can be + * passed to indicate a string-valued key, and have the length computed + * automatically. + */ +#define APR_ESCAPE_STRING (-1) + +/** + * Perform shell escaping on the provided string. + * + * Shell escaping causes characters to be prefixed with a '\' character. + * @param escaped Optional buffer to write the encoded string, can be + * NULL + * @param str The original string + * @param slen The length of the original string, or APR_ESCAPE_STRING + * @param len If present, returns the length of the string + * @return APR_SUCCESS, or APR_NOTFOUND if no changes to the string were + * detected or the string was NULL + */ +APR_DECLARE(apr_status_t) apr_escape_shell(char *escaped, const char *str, + apr_ssize_t slen, apr_size_t *len); + +/** + * Perform shell escaping on the provided string, returning the result + * from the pool. + * + * Shell escaping causes characters to be prefixed with a '\' character. + * + * If no characters were escaped, the original string is returned. + * @param p Pool to allocate from + * @param str The original string + * @return the encoded string, allocated from the pool, or the original + * string if no escaping took place or the string was NULL. + */ +APR_DECLARE(const char *) apr_pescape_shell(apr_pool_t *p, const char *str) + __attribute__((nonnull(1))); + +/** + * Unescapes a URL, leaving reserved characters intact. + * @param escaped Optional buffer to write the encoded string, can be + * NULL + * @param url String to be unescaped + * @param slen The length of the original url, or APR_ESCAPE_STRING + * @param forbid Optional list of forbidden characters, in addition to + * 0x00 + * @param reserved Optional list of reserved characters that will be + * left unescaped + * @param plus If non zero, '+' is converted to ' ' as per + * application/x-www-form-urlencoded encoding + * @param len If set, the length of the escaped string will be returned + * @return APR_SUCCESS on success, APR_NOTFOUND if no characters are + * decoded or the string is NULL, APR_EINVAL if a bad escape sequence is + * found, APR_BADCH if a character on the forbid list is found. + */ +APR_DECLARE(apr_status_t) apr_unescape_url(char *escaped, const char *url, + apr_ssize_t slen, const char *forbid, const char *reserved, int plus, + apr_size_t *len); + +/** + * Unescapes a URL, leaving reserved characters intact, returning the + * result from a pool. + * @param p Pool to allocate from + * @param url String to be unescaped in place + * @param forbid Optional list of forbidden characters, in addition to + * 0x00 + * @param reserved Optional list of reserved characters that will be + * left unescaped + * @param plus If non zero, '+' is converted to ' ' as per + * application/x-www-form-urlencoded encoding + * @return A string allocated from the pool on success, the original string + * if no characters are decoded, or NULL if a bad escape sequence is found + * or if a character on the forbid list is found, or if the original string + * was NULL. + */ +APR_DECLARE(const char *) apr_punescape_url(apr_pool_t *p, const char *url, + const char *forbid, const char *reserved, int plus) + __attribute__((nonnull(1))); + +/** + * Escape a path segment, as defined in RFC1808. + * @param escaped Optional buffer to write the encoded string, can be + * NULL + * @param str The original string + * @param slen The length of the original string, or APR_ESCAPE_STRING + * @param len If present, returns the length of the string + * @return APR_SUCCESS, or APR_NOTFOUND if no changes to the string were + * detected or the string was NULL + */ +APR_DECLARE(apr_status_t) apr_escape_path_segment(char *escaped, + const char *str, apr_ssize_t slen, apr_size_t *len); + +/** + * Escape a path segment, as defined in RFC1808, returning the result from a + * pool. + * @param p Pool to allocate from + * @param str String to be escaped + * @return A string allocated from the pool on success, the original string + * if no characters are encoded or the string is NULL. + */ +APR_DECLARE(const char *) apr_pescape_path_segment(apr_pool_t *p, + const char *str) __attribute__((nonnull(1))); + +/** + * Converts an OS path to a URL, in an OS dependent way, as defined in RFC1808. + * In all cases if a ':' occurs before the first '/' in the URL, the URL should + * be prefixed with "./" (or the ':' escaped). In the case of Unix, this means + * leaving '/' alone, but otherwise doing what escape_path_segment() does. For + * efficiency reasons, we don't use escape_path_segment(), which is provided for + * reference. Again, RFC 1808 is where this stuff is defined. + * + * If partial is set, os_escape_path() assumes that the path will be appended to + * something with a '/' in it (and thus does not prefix "./"). + * @param escaped Optional buffer to write the encoded string, can be + * NULL + * @param path The original string + * @param slen The length of the original string, or APR_ESCAPE_STRING + * @param partial If non zero, suppresses the prepending of "./" + * @param len If present, returns the length of the string + * @return APR_SUCCESS, or APR_NOTFOUND if no changes to the string were + * detected or if the string was NULL + */ +APR_DECLARE(apr_status_t) apr_escape_path(char *escaped, const char *path, + apr_ssize_t slen, int partial, apr_size_t *len); + +/** + * Converts an OS path to a URL, in an OS dependent way, as defined in RFC1808, + * returning the result from a pool. + * + * In all cases if a ':' occurs before the first '/' in the URL, the URL should + * be prefixed with "./" (or the ':' escaped). In the case of Unix, this means + * leaving '/' alone, but otherwise doing what escape_path_segment() does. For + * efficiency reasons, we don't use escape_path_segment(), which is provided for + * reference. Again, RFC 1808 is where this stuff is defined. + * + * If partial is set, os_escape_path() assumes that the path will be appended to + * something with a '/' in it (and thus does not prefix "./"). + * @param p Pool to allocate from + * @param str The original string + * @param partial If non zero, suppresses the prepending of "./" + * @return A string allocated from the pool on success, the original string + * if no characters are encoded or if the string was NULL. + */ +APR_DECLARE(const char *) apr_pescape_path(apr_pool_t *p, const char *str, + int partial) __attribute__((nonnull(1))); + +/** + * Urlencode a string, as defined in + * http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1. + * @param escaped Optional buffer to write the encoded string, can be + * NULL + * @param str The original string + * @param slen The length of the original string, or APR_ESCAPE_STRING + * @param len If present, returns the length of the string + * @return APR_SUCCESS, or APR_NOTFOUND if no changes to the string were + * detected or if the stirng was NULL + */ +APR_DECLARE(apr_status_t) apr_escape_urlencoded(char *escaped, const char *str, + apr_ssize_t slen, apr_size_t *len); + +/** + * Urlencode a string, as defined in + * http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1, returning + * the result from a pool. + * @param p Pool to allocate from + * @param str String to be escaped + * @return A string allocated from the pool on success, the original string + * if no characters are encoded or if the string was NULL. + */ +APR_DECLARE(const char *) apr_pescape_urlencoded(apr_pool_t *p, + const char *str) __attribute__((nonnull(1))); + +/** + * Apply entity encoding to a string. Characters are replaced as follows: + * '<' becomes '<', '>' becomes '>', '&' becomes '&', the + * double quote becomes '"" and the single quote becomes '''. + * + * If toasc is not zero, any non ascii character will be encoded as + * '%\#ddd;', where ddd is the decimal code of the character. + * @param escaped Optional buffer to write the encoded string, can be + * NULL + * @param str The original string + * @param slen The length of the original string, or APR_ESCAPE_STRING + * @param toasc If non zero, encode non ascii characters + * @param len If present, returns the length of the string + * @return APR_SUCCESS, or APR_NOTFOUND if no changes to the string were + * detected or the string was NULL + */ +APR_DECLARE(apr_status_t) apr_escape_entity(char *escaped, const char *str, + apr_ssize_t slen, int toasc, apr_size_t *len); + +/** + * Apply entity encoding to a string, returning the result from a pool. + * Characters are replaced as follows: '<' becomes '<', '>' becomes + * '>', '&' becomes '&', the double quote becomes '"" and the + * single quote becomes '''. + * @param p Pool to allocate from + * @param str The original string + * @param toasc If non zero, encode non ascii characters + * @return A string allocated from the pool on success, the original string + * if no characters are encoded or the string is NULL. + */ +APR_DECLARE(const char *) apr_pescape_entity(apr_pool_t *p, const char *str, + int toasc) __attribute__((nonnull(1))); + +/** + * Decodes html entities or numeric character references in a string. If + * the string to be unescaped is syntactically incorrect, then the + * following fixups will be made: + * unknown entities will be left undecoded; + * references to unused numeric characters will be deleted. + * In particular, � will not be decoded, but will be deleted. + * @param unescaped Optional buffer to write the encoded string, can be + * NULL + * @param str The original string + * @param slen The length of the original string, or APR_ESCAPE_STRING + * @param len If present, returns the length of the string + * @return APR_SUCCESS, or APR_NOTFOUND if no changes to the string were + * detected or the string was NULL + */ +APR_DECLARE(apr_status_t) apr_unescape_entity(char *unescaped, const char *str, + apr_ssize_t slen, apr_size_t *len); + +/** + * Decodes html entities or numeric character references in a string. If + * the string to be unescaped is syntactically incorrect, then the + * following fixups will be made: + * unknown entities will be left undecoded; + * references to unused numeric characters will be deleted. + * In particular, � will not be decoded, but will be deleted. + * @param p Pool to allocate from + * @param str The original string + * @return A string allocated from the pool on success, the original string + * if no characters are encoded or the string is NULL. + */ +APR_DECLARE(const char *) apr_punescape_entity(apr_pool_t *p, const char *str) + __attribute__((nonnull(1))); + +/** + * Escape control characters in a string, as performed by the shell's + * 'echo' command. Characters are replaced as follows: + * \\a alert (bell), \\b backspace, \\f form feed, \\n new line, \\r carriage + * return, \\t horizontal tab, \\v vertical tab, \\ backslash. + * + * Any non ascii character will be encoded as '\\xHH', where HH is the hex + * code of the character. + * + * If quote is not zero, the double quote character will also be escaped. + * @param escaped Optional buffer to write the encoded string, can be + * NULL + * @param str The original string + * @param slen The length of the original string, or APR_ESCAPE_STRING + * @param quote If non zero, encode double quotes + * @param len If present, returns the length of the string + * @return APR_SUCCESS, or APR_NOTFOUND if no changes to the string were + * detected or the string was NULL + */ +APR_DECLARE(apr_status_t) apr_escape_echo(char *escaped, const char *str, + apr_ssize_t slen, int quote, apr_size_t *len); + +/** + * Escape control characters in a string, as performed by the shell's + * 'echo' command, and return the results from a pool. Characters are + * replaced as follows: \\a alert (bell), \\b backspace, \\f form feed, + * \\n new line, \\r carriage return, \\t horizontal tab, \\v vertical tab, + * \\ backslash. + * + * Any non ascii character will be encoded as '\\xHH', where HH is the hex + * code of the character. + * + * If quote is not zero, the double quote character will also be escaped. + * @param p Pool to allocate from + * @param str The original string + * @param quote If non zero, encode double quotes + * @return A string allocated from the pool on success, the original string + * if no characters are encoded or the string is NULL. + */ +APR_DECLARE(const char *) apr_pescape_echo(apr_pool_t *p, const char *str, + int quote); + +/** + * Convert binary data to a hex encoding. + * @param dest The destination buffer, can be NULL + * @param src The original buffer + * @param srclen The length of the original buffer + * @param colon If not zero, insert colon characters between hex digits. + * @param len If present, returns the length of the string + * @return APR_SUCCESS, or APR_NOTFOUND if the string was NULL + */ +APR_DECLARE(apr_status_t) apr_escape_hex(char *dest, const void *src, + apr_size_t srclen, int colon, apr_size_t *len); + +/** + * Convert binary data to a hex encoding, and return the results from a + * pool. + * @param p Pool to allocate from + * @param src The original buffer + * @param slen The length of the original buffer + * @param colon If not zero, insert colon characters between hex digits. + * @return A zero padded buffer allocated from the pool on success, or + * NULL if src was NULL. + */ +APR_DECLARE(const char *) apr_pescape_hex(apr_pool_t *p, const void *src, + apr_size_t slen, int colon) __attribute__((nonnull(1))); + +/** + * Convert hex encoded string to binary data. + * @param dest The destination buffer, can be NULL + * @param str The original buffer + * @param slen The length of the original buffer + * @param colon If not zero, ignore colon characters between hex digits. + * @param len If present, returns the length of the string + * @return APR_SUCCESS, or APR_NOTFOUND if the string was NULL, or APR_BADCH + * if a non hex character is present. + */ +APR_DECLARE(apr_status_t) apr_unescape_hex(void *dest, const char *str, + apr_ssize_t slen, int colon, apr_size_t *len); + +/** + * Convert hex encoding to binary data, and return the results from a pool. + * If the colon character appears between pairs of hex digits, it will be + * ignored. + * @param p Pool to allocate from + * @param str The original string + * @param colon If not zero, ignore colon characters between hex digits. + * @param len If present, returns the length of the final buffer + * @return A buffer allocated from the pool on success, or NULL if src was + * NULL, or a bad character was present. + */ +APR_DECLARE(const void *) apr_punescape_hex(apr_pool_t *p, const char *str, + int colon, apr_size_t *len); + +/** @} */ +#ifdef __cplusplus +} +#endif + +#endif /* !APR_ESCAPE_H */ diff --git a/contrib/apr/include/apr_file_info.h b/contrib/apr/include/apr_file_info.h index 94e84e876..1d19eb6a3 100644 --- a/contrib/apr/include/apr_file_info.h +++ b/contrib/apr/include/apr_file_info.h @@ -208,7 +208,7 @@ struct apr_finfo_t { const char *fname; /** The file's name (no path) in filesystem case */ const char *name; - /** The file's handle, if accessed (can be submitted to apr_duphandle) */ + /** Unused */ struct apr_file_t *filehand; }; @@ -316,7 +316,7 @@ APR_DECLARE(apr_status_t) apr_dir_rewind(apr_dir_t *thedir); * @param filepath the pathname to parse for its root component * @param flags the desired rules to apply, from *
- *      APR_FILEPATH_NATIVE    Use native path seperators (e.g. '\' on Win32)
+ *      APR_FILEPATH_NATIVE    Use native path separators (e.g. '\' on Win32)
  *      APR_FILEPATH_TRUENAME  Tests that the root exists, and makes it proper
  * 
* @param p the pool to allocate the new path string from @@ -328,7 +328,7 @@ APR_DECLARE(apr_status_t) apr_dir_rewind(apr_dir_t *thedir); * test for the validity of that root (e.g., that a drive d:/ or network * share //machine/foovol/). * The function returns APR_ERELATIVE if filepath isn't rooted (an - * error), APR_EINCOMPLETE if the root path is ambigious (but potentially + * error), APR_EINCOMPLETE if the root path is ambiguous (but potentially * legitimate, e.g. "/" on Windows is incomplete because it doesn't specify * the drive letter), or APR_EBADPATH if the root is simply invalid. * APR_SUCCESS is returned if filepath is an absolute path. @@ -362,7 +362,7 @@ APR_DECLARE(apr_status_t) apr_filepath_merge(char **newpath, * @param pathelts the returned components of the search path * @param liststr the search path (e.g., getenv("PATH")) * @param p the pool to allocate the array and path components from - * @remark empty path componenta do not become part of @a pathelts. + * @remark empty path components do not become part of @a pathelts. * @remark the path separator in @a liststr is system specific; * e.g., ':' on Unix, ';' on Windows, etc. */ diff --git a/contrib/apr/include/apr_file_io.h b/contrib/apr/include/apr_file_io.h index ca9975146..eb683afa7 100644 --- a/contrib/apr/include/apr_file_io.h +++ b/contrib/apr/include/apr_file_io.h @@ -57,8 +57,10 @@ extern "C" { #define APR_FOPEN_APPEND 0x00008 /**< Append to the end of the file */ #define APR_FOPEN_TRUNCATE 0x00010 /**< Open the file and truncate to 0 length */ -#define APR_FOPEN_BINARY 0x00020 /**< Open the file in binary mode */ -#define APR_FOPEN_EXCL 0x00040 /**< Open should fail if APR_CREATE +#define APR_FOPEN_BINARY 0x00020 /**< Open the file in binary mode + (This flag is ignored on UNIX + because it has no meaning)*/ +#define APR_FOPEN_EXCL 0x00040 /**< Open should fail if #APR_FOPEN_CREATE and file exists. */ #define APR_FOPEN_BUFFERED 0x00080 /**< Open the file for buffered I/O */ #define APR_FOPEN_DELONCLOSE 0x00100 /**< Delete the file after close */ @@ -70,7 +72,10 @@ extern "C" { access to support writes across process/machines */ #define APR_FOPEN_NOCLEANUP 0x00800 /**< Do not register a cleanup - when the file is opened */ + when the file is opened. The + apr_os_file_t handle in apr_file_t + will not be closed when the pool + is destroyed. */ #define APR_FOPEN_SENDFILE_ENABLED 0x01000 /**< Advisory flag that this file should support apr_socket_sendfile operation */ @@ -80,6 +85,9 @@ extern "C" { #define APR_FOPEN_SPARSE 0x08000 /**< Platform dependent flag to enable * sparse file support, see WARNING below */ +#define APR_FOPEN_NONBLOCK 0x40000 /**< Platform dependent flag to enable + * non blocking file io */ + /* backcompat */ #define APR_READ APR_FOPEN_READ /**< @deprecated @see APR_FOPEN_READ */ @@ -97,17 +105,19 @@ extern "C" { #define APR_SENDFILE_ENABLED APR_FOPEN_SENDFILE_ENABLED /**< @deprecated @see APR_FOPEN_SENDFILE_ENABLED */ #define APR_LARGEFILE APR_FOPEN_LARGEFILE /**< @deprecated @see APR_FOPEN_LARGEFILE */ -/** @warning APR_FOPEN_LARGEFILE flag only has effect on some +/** @def APR_FOPEN_LARGEFILE + * @warning APR_FOPEN_LARGEFILE flag only has effect on some * platforms where sizeof(apr_off_t) == 4. Where implemented, it * allows opening and writing to a file which exceeds the size which * can be represented by apr_off_t (2 gigabytes). When a file's size * does exceed 2Gb, apr_file_info_get() will fail with an error on the * descriptor, likewise apr_stat()/apr_lstat() will fail on the - * filename. apr_dir_read() will fail with APR_INCOMPLETE on a + * filename. apr_dir_read() will fail with #APR_INCOMPLETE on a * directory entry for a large file depending on the particular * APR_FINFO_* flags. Generally, it is not recommended to use this * flag. * + * @def APR_FOPEN_SPARSE * @warning APR_FOPEN_SPARSE may, depending on platform, convert a * normal file to a sparse file. Some applications may be unable * to decipher a sparse file, so it's critical that the sparse file @@ -117,6 +127,10 @@ extern "C" { * if it was previously created and written without the sparse flag. * On platforms which do not understand, or on file systems which * cannot handle sparse files, the flag is ignored by apr_file_open(). + * + * @def APR_FOPEN_NONBLOCK + * @warning APR_FOPEN_NONBLOCK is not implemented on all platforms. + * Callers should be prepared for it to fail with #APR_ENOTIMPL. */ /** @} */ @@ -200,33 +214,34 @@ typedef struct apr_file_t apr_file_t; * @param newf The opened file descriptor. * @param fname The full path to the file (using / on all systems) * @param flag Or'ed value of: - *
- *         APR_READ              open for reading
- *         APR_WRITE             open for writing
- *         APR_CREATE            create the file if not there
- *         APR_APPEND            file ptr is set to end prior to all writes
- *         APR_TRUNCATE          set length to zero if file exists
- *         APR_BINARY            not a text file (This flag is ignored on 
- *                               UNIX because it has no meaning)
- *         APR_BUFFERED          buffer the data.  Default is non-buffered
- *         APR_EXCL              return error if APR_CREATE and file exists
- *         APR_DELONCLOSE        delete the file after closing.
- *         APR_XTHREAD           Platform dependent tag to open the file
+ * @li #APR_FOPEN_READ           open for reading
+ * @li #APR_FOPEN_WRITE          open for writing
+ * @li #APR_FOPEN_CREATE         create the file if not there
+ * @li #APR_FOPEN_APPEND         file ptr is set to end prior to all writes
+ * @li #APR_FOPEN_TRUNCATE       set length to zero if file exists
+ * @li #APR_FOPEN_BINARY         not a text file
+ * @li #APR_FOPEN_BUFFERED       buffer the data.  Default is non-buffered
+ * @li #APR_FOPEN_EXCL           return error if #APR_FOPEN_CREATE and file exists
+ * @li #APR_FOPEN_DELONCLOSE     delete the file after closing
+ * @li #APR_FOPEN_XTHREAD        Platform dependent tag to open the file
  *                               for use across multiple threads
- *         APR_SHARELOCK         Platform dependent support for higher
+ * @li #APR_FOPEN_SHARELOCK      Platform dependent support for higher
  *                               level locked read/write access to support
  *                               writes across process/machines
- *         APR_FILE_NOCLEANUP    Do not register a cleanup with the pool 
- *                               passed in on the pool argument (see below).
- *                               The apr_os_file_t handle in apr_file_t will not
- *                               be closed when the pool is destroyed.
- *         APR_SENDFILE_ENABLED  Open with appropriate platform semantics
+ * @li #APR_FOPEN_NOCLEANUP      Do not register a cleanup with the pool 
+ *                               passed in on the @a pool argument (see below)
+ * @li #APR_FOPEN_SENDFILE_ENABLED  Open with appropriate platform semantics
  *                               for sendfile operations.  Advisory only,
- *                               apr_socket_sendfile does not check this flag.
- * 
+ * apr_socket_sendfile does not check this flag + * @li #APR_FOPEN_LARGEFILE Platform dependent flag to enable large file + * support, see WARNING below + * @li #APR_FOPEN_SPARSE Platform dependent flag to enable sparse file + * support, see WARNING below + * @li #APR_FOPEN_NONBLOCK Platform dependent flag to enable + * non blocking file io * @param perm Access permissions for file. * @param pool The pool to use. - * @remark If perm is APR_OS_DEFAULT and the file is being created, + * @remark If perm is #APR_FPROT_OS_DEFAULT and the file is being created, * appropriate default permissions will be used. * @remark By default, the returned file descriptor will not be * inherited by child processes created by apr_proc_create(). This @@ -279,7 +294,7 @@ APR_DECLARE(apr_status_t) apr_file_link(const char *from_path, * @param to_path The full path to the new file (using / on all systems) * @param perms Access permissions for the new file if it is created. * In place of the usual or'd combination of file permissions, the - * value APR_FILE_SOURCE_PERMS may be given, in which case the source + * value #APR_FPROT_FILE_SOURCE_PERMS may be given, in which case the source * file's permissions are copied. * @param pool The pool to use. * @remark The new file does not need to exist, it will be created if required. @@ -296,7 +311,7 @@ APR_DECLARE(apr_status_t) apr_file_copy(const char *from_path, * @param to_path The full path to the destination file (use / on all systems) * @param perms Access permissions for the destination file if it is created. * In place of the usual or'd combination of file permissions, the - * value APR_FILE_SOURCE_PERMS may be given, in which case the source + * value #APR_FPROT_FILE_SOURCE_PERMS may be given, in which case the source * file's permissions are copied. * @param pool The pool to use. * @remark The new file does not need to exist, it will be created if required. @@ -309,7 +324,7 @@ APR_DECLARE(apr_status_t) apr_file_append(const char *from_path, /** * Are we at the end of the file * @param fptr The apr file we are testing. - * @remark Returns APR_EOF if we are at the end of file, APR_SUCCESS otherwise. + * @remark Returns #APR_EOF if we are at the end of file, #APR_SUCCESS otherwise. */ APR_DECLARE(apr_status_t) apr_file_eof(apr_file_t *fptr); @@ -336,7 +351,7 @@ APR_DECLARE(apr_status_t) apr_file_open_stderr(apr_file_t **thefile, * @param thefile The apr file to use as stdout. * @param pool The pool to allocate the file out of. * - * @remark See remarks for apr_file_open_stderr. + * @remark See remarks for apr_file_open_stderr(). */ APR_DECLARE(apr_status_t) apr_file_open_stdout(apr_file_t **thefile, apr_pool_t *pool); @@ -346,7 +361,7 @@ APR_DECLARE(apr_status_t) apr_file_open_stdout(apr_file_t **thefile, * @param thefile The apr file to use as stdin. * @param pool The pool to allocate the file out of. * - * @remark See remarks for apr_file_open_stderr. + * @remark See remarks for apr_file_open_stderr(). */ APR_DECLARE(apr_status_t) apr_file_open_stdin(apr_file_t **thefile, apr_pool_t *pool); @@ -354,13 +369,19 @@ APR_DECLARE(apr_status_t) apr_file_open_stdin(apr_file_t **thefile, /** * open standard error as an apr file pointer, with flags. * @param thefile The apr file to use as stderr. - * @param flags The flags to open the file with. Only the APR_EXCL, - * APR_BUFFERED, APR_XTHREAD, APR_SHARELOCK, - * APR_SENDFILE_ENABLED and APR_LARGEFILE flags should - * be used. The APR_WRITE flag will be set unconditionally. + * @param flags The flags to open the file with. Only the + * @li #APR_FOPEN_EXCL + * @li #APR_FOPEN_BUFFERED + * @li #APR_FOPEN_XTHREAD + * @li #APR_FOPEN_SHARELOCK + * @li #APR_FOPEN_SENDFILE_ENABLED + * @li #APR_FOPEN_LARGEFILE + * + * flags should be used. The #APR_FOPEN_WRITE flag will + * be set unconditionally. * @param pool The pool to allocate the file out of. * - * @remark See remarks for apr_file_open_stderr. + * @remark See remarks for apr_file_open_stderr(). */ APR_DECLARE(apr_status_t) apr_file_open_flags_stderr(apr_file_t **thefile, apr_int32_t flags, @@ -369,13 +390,19 @@ APR_DECLARE(apr_status_t) apr_file_open_flags_stderr(apr_file_t **thefile, /** * open standard output as an apr file pointer, with flags. * @param thefile The apr file to use as stdout. - * @param flags The flags to open the file with. Only the APR_EXCL, - * APR_BUFFERED, APR_XTHREAD, APR_SHARELOCK, - * APR_SENDFILE_ENABLED and APR_LARGEFILE flags should - * be used. The APR_WRITE flag will be set unconditionally. + * @param flags The flags to open the file with. Only the + * @li #APR_FOPEN_EXCL + * @li #APR_FOPEN_BUFFERED + * @li #APR_FOPEN_XTHREAD + * @li #APR_FOPEN_SHARELOCK + * @li #APR_FOPEN_SENDFILE_ENABLED + * @li #APR_FOPEN_LARGEFILE + * + * flags should be used. The #APR_FOPEN_WRITE flag will + * be set unconditionally. * @param pool The pool to allocate the file out of. * - * @remark See remarks for apr_file_open_stderr. + * @remark See remarks for apr_file_open_stderr(). */ APR_DECLARE(apr_status_t) apr_file_open_flags_stdout(apr_file_t **thefile, apr_int32_t flags, @@ -384,13 +411,19 @@ APR_DECLARE(apr_status_t) apr_file_open_flags_stdout(apr_file_t **thefile, /** * open standard input as an apr file pointer, with flags. * @param thefile The apr file to use as stdin. - * @param flags The flags to open the file with. Only the APR_EXCL, - * APR_BUFFERED, APR_XTHREAD, APR_SHARELOCK, - * APR_SENDFILE_ENABLED and APR_LARGEFILE flags should - * be used. The APR_READ flag will be set unconditionally. + * @param flags The flags to open the file with. Only the + * @li #APR_FOPEN_EXCL + * @li #APR_FOPEN_BUFFERED + * @li #APR_FOPEN_XTHREAD + * @li #APR_FOPEN_SHARELOCK + * @li #APR_FOPEN_SENDFILE_ENABLED + * @li #APR_FOPEN_LARGEFILE + * + * flags should be used. The #APR_FOPEN_WRITE flag will + * be set unconditionally. * @param pool The pool to allocate the file out of. * - * @remark See remarks for apr_file_open_stderr. + * @remark See remarks for apr_file_open_stderr(). */ APR_DECLARE(apr_status_t) apr_file_open_flags_stdin(apr_file_t **thefile, apr_int32_t flags, @@ -403,15 +436,15 @@ APR_DECLARE(apr_status_t) apr_file_open_flags_stdin(apr_file_t **thefile, * @param nbytes On entry, the number of bytes to read; on exit, the number * of bytes read. * - * @remark apr_file_read will read up to the specified number of + * @remark apr_file_read() will read up to the specified number of * bytes, but never more. If there isn't enough data to fill that * number of bytes, all of the available data is read. The third * argument is modified to reflect the number of bytes read. If a * char was put back into the stream via ungetc, it will be the first * character returned. * - * @remark It is not possible for both bytes to be read and an APR_EOF - * or other error to be returned. APR_EINTR is never returned. + * @remark It is not possible for both bytes to be read and an #APR_EOF + * or other error to be returned. #APR_EINTR is never returned. */ APR_DECLARE(apr_status_t) apr_file_read(apr_file_t *thefile, void *buf, apr_size_t *nbytes); @@ -423,13 +456,13 @@ APR_DECLARE(apr_status_t) apr_file_read(apr_file_t *thefile, void *buf, * @param nbytes On entry, the number of bytes to write; on exit, the number * of bytes written. * - * @remark apr_file_write will write up to the specified number of + * @remark apr_file_write() will write up to the specified number of * bytes, but never more. If the OS cannot write that many bytes, it * will write as many as it can. The third argument is modified to * reflect the * number of bytes written. * * @remark It is possible for both bytes to be written and an error to - * be returned. APR_EINTR is never returned. + * be returned. #APR_EINTR is never returned. */ APR_DECLARE(apr_status_t) apr_file_write(apr_file_t *thefile, const void *buf, apr_size_t *nbytes); @@ -439,14 +472,14 @@ APR_DECLARE(apr_status_t) apr_file_write(apr_file_t *thefile, const void *buf, * @param thefile The file descriptor to write to. * @param vec The array from which to get the data to write to the file. * @param nvec The number of elements in the struct iovec array. This must - * be smaller than APR_MAX_IOVEC_SIZE. If it isn't, the function - * will fail with APR_EINVAL. + * be smaller than #APR_MAX_IOVEC_SIZE. If it isn't, the function + * will fail with #APR_EINVAL. * @param nbytes The number of bytes written. * * @remark It is possible for both bytes to be written and an error to - * be returned. APR_EINTR is never returned. + * be returned. #APR_EINTR is never returned. * - * @remark apr_file_writev is available even if the underlying + * @remark apr_file_writev() is available even if the underlying * operating system doesn't provide writev(). */ APR_DECLARE(apr_status_t) apr_file_writev(apr_file_t *thefile, @@ -461,7 +494,7 @@ APR_DECLARE(apr_status_t) apr_file_writev(apr_file_t *thefile, * @param nbytes The number of bytes to read. * @param bytes_read If non-NULL, this will contain the number of bytes read. * - * @remark apr_file_read will read up to the specified number of + * @remark apr_file_read_full() will read up to the specified number of * bytes, but never more. If there isn't enough data to fill that * number of bytes, then the process/thread will block until it is * available or EOF is reached. If a char was put back into the @@ -471,7 +504,7 @@ APR_DECLARE(apr_status_t) apr_file_writev(apr_file_t *thefile, * returned. And if *bytes_read is less than nbytes, an accompanying * error is _always_ returned. * - * @remark APR_EINTR is never returned. + * @remark #APR_EINTR is never returned. */ APR_DECLARE(apr_status_t) apr_file_read_full(apr_file_t *thefile, void *buf, apr_size_t nbytes, @@ -485,7 +518,7 @@ APR_DECLARE(apr_status_t) apr_file_read_full(apr_file_t *thefile, void *buf, * @param nbytes The number of bytes to write. * @param bytes_written If non-NULL, set to the number of bytes written. * - * @remark apr_file_write will write up to the specified number of + * @remark apr_file_write_full() will write up to the specified number of * bytes, but never more. If the OS cannot write that many bytes, the * process/thread will block until they can be written. Exceptional * error such as "out of space" or "pipe closed" will terminate with @@ -495,7 +528,7 @@ APR_DECLARE(apr_status_t) apr_file_read_full(apr_file_t *thefile, void *buf, * be returned. And if *bytes_written is less than nbytes, an * accompanying error is _always_ returned. * - * @remark APR_EINTR is never returned. + * @remark #APR_EINTR is never returned. */ APR_DECLARE(apr_status_t) apr_file_write_full(apr_file_t *thefile, const void *buf, @@ -509,11 +542,11 @@ APR_DECLARE(apr_status_t) apr_file_write_full(apr_file_t *thefile, * @param thefile The file descriptor to write to. * @param vec The array from which to get the data to write to the file. * @param nvec The number of elements in the struct iovec array. This must - * be smaller than APR_MAX_IOVEC_SIZE. If it isn't, the function - * will fail with APR_EINVAL. + * be smaller than #APR_MAX_IOVEC_SIZE. If it isn't, the function + * will fail with #APR_EINVAL. * @param nbytes The number of bytes written. * - * @remark apr_file_writev_full is available even if the underlying + * @remark apr_file_writev_full() is available even if the underlying * operating system doesn't provide writev(). */ APR_DECLARE(apr_status_t) apr_file_writev_full(apr_file_t *thefile, @@ -621,7 +654,7 @@ APR_DECLARE(apr_status_t) apr_file_setaside(apr_file_t **new_file, * @param buffer The buffer * @param bufsize The size of the buffer * @remark It is possible to add a buffer to previously unbuffered - * file handles, the APR_BUFFERED flag will be added to + * file handles, the #APR_FOPEN_BUFFERED flag will be added to * the file handle's flags. Likewise, with buffer=NULL and * bufsize=0 arguments it is possible to make a previously * buffered file handle unbuffered. @@ -640,11 +673,9 @@ APR_DECLARE(apr_size_t) apr_file_buffer_size_get(apr_file_t *thefile); * Move the read/write file offset to a specified byte within a file. * @param thefile The file descriptor * @param where How to move the pointer, one of: - *
- *            APR_SET  --  set the offset to offset
- *            APR_CUR  --  add the offset to the current position 
- *            APR_END  --  add the offset to the current file size 
- * 
+ * @li #APR_SET -- set the offset to offset + * @li #APR_CUR -- add the offset to the current position + * @li #APR_END -- add the offset to the current file size * @param offset The offset to move the pointer to. * @remark The third argument is modified to be the offset the pointer was actually moved to. @@ -664,7 +695,7 @@ APR_DECLARE(apr_status_t) apr_file_seek(apr_file_t *thefile, * @bug Some platforms cannot toggle between blocking and nonblocking, * and when passing a pipe as a standard handle to an application which * does not expect it, a non-blocking stream will fluxor the client app. - * @deprecated @see apr_file_pipe_create_ex + * @deprecated @see apr_file_pipe_create_ex() */ APR_DECLARE(apr_status_t) apr_file_pipe_create(apr_file_t **in, apr_file_t **out, @@ -675,20 +706,18 @@ APR_DECLARE(apr_status_t) apr_file_pipe_create(apr_file_t **in, * @param in The newly created pipe's file for reading. * @param out The newly created pipe's file for writing. * @param blocking one of these values defined in apr_thread_proc.h; + * @li #APR_FULL_BLOCK + * @li #APR_READ_BLOCK + * @li #APR_WRITE_BLOCK + * @li #APR_FULL_NONBLOCK * @param pool The pool to operate on. - *
- *       APR_FULL_BLOCK
- *       APR_READ_BLOCK
- *       APR_WRITE_BLOCK
- *       APR_FULL_NONBLOCK
- * 
* @remark By default, the returned file descriptors will be inherited * by child processes created using apr_proc_create(). This can be * changed using apr_file_inherit_unset(). * @remark Some platforms cannot toggle between blocking and nonblocking, * and when passing a pipe as a standard handle to an application which * does not expect it, a non-blocking stream will fluxor the client app. - * Use this function rather than apr_file_pipe_create to create pipes + * Use this function rather than apr_file_pipe_create() to create pipes * where one or both ends require non-blocking semantics. */ APR_DECLARE(apr_status_t) apr_file_pipe_create_ex(apr_file_t **in, @@ -789,11 +818,11 @@ APR_DECLARE_NONSTD(int) apr_file_printf(apr_file_t *fptr, * @param perms The permission bits to apply to the file. * * @warning Some platforms may not be able to apply all of the - * available permission bits; APR_INCOMPLETE will be returned if some + * available permission bits; #APR_INCOMPLETE will be returned if some * permissions are specified which could not be set. * * @warning Platforms which do not implement this feature will return - * APR_ENOTIMPL. + * #APR_ENOTIMPL. */ APR_DECLARE(apr_status_t) apr_file_perms_set(const char *fname, apr_fileperms_t perms); @@ -802,11 +831,9 @@ APR_DECLARE(apr_status_t) apr_file_perms_set(const char *fname, * Set attributes of the specified file. * @param fname The full path to the file (using / on all systems) * @param attributes Or'd combination of - *
- *            APR_FILE_ATTR_READONLY   - make the file readonly
- *            APR_FILE_ATTR_EXECUTABLE - make the file executable
- *            APR_FILE_ATTR_HIDDEN     - make the file hidden
- * 
+ * @li #APR_FILE_ATTR_READONLY - make the file readonly + * @li #APR_FILE_ATTR_EXECUTABLE - make the file executable + * @li #APR_FILE_ATTR_HIDDEN - make the file hidden * @param attr_mask Mask of valid bits in attributes. * @param pool the pool to use. * @remark This function should be used in preference to explicit manipulation @@ -814,7 +841,7 @@ APR_DECLARE(apr_status_t) apr_file_perms_set(const char *fname, * attributes are platform specific and may involve more than simply * setting permission bits. * @warning Platforms which do not implement this feature will return - * APR_ENOTIMPL. + * #APR_ENOTIMPL. */ APR_DECLARE(apr_status_t) apr_file_attrs_set(const char *fname, apr_fileattrs_t attributes, @@ -827,7 +854,7 @@ APR_DECLARE(apr_status_t) apr_file_attrs_set(const char *fname, * @param mtime The mtime to apply to the file. * @param pool The pool to use. * @warning Platforms which do not implement this feature will return - * APR_ENOTIMPL. + * #APR_ENOTIMPL. */ APR_DECLARE(apr_status_t) apr_file_mtime_set(const char *fname, apr_time_t mtime, @@ -865,7 +892,7 @@ APR_DECLARE(apr_status_t) apr_dir_remove(const char *path, apr_pool_t *pool); /** * get the specified file's stats. * @param finfo Where to store the information about the file. - * @param wanted The desired apr_finfo_t fields, as a bit flag of APR_FINFO_ values + * @param wanted The desired apr_finfo_t fields, as a bit flag of APR_FINFO_* values * @param thefile The file to get information about. */ APR_DECLARE(apr_status_t) apr_file_info_get(apr_finfo_t *finfo, @@ -910,7 +937,8 @@ APR_DECLARE_INHERIT_UNSET(file); * @param templ The template to use when creating a temp file. * @param flags The flags to open the file with. If this is zero, * the file is opened with - * APR_CREATE | APR_READ | APR_WRITE | APR_EXCL | APR_DELONCLOSE + * #APR_FOPEN_CREATE | #APR_FOPEN_READ | #APR_FOPEN_WRITE | + * #APR_FOPEN_EXCL | #APR_FOPEN_DELONCLOSE * @param p The pool to allocate the file out of. * @remark * This function generates a unique temporary file name from template. diff --git a/contrib/apr/include/apr_fnmatch.h b/contrib/apr/include/apr_fnmatch.h index ef6d0b250..e8f6b03cf 100644 --- a/contrib/apr/include/apr_fnmatch.h +++ b/contrib/apr/include/apr_fnmatch.h @@ -60,9 +60,7 @@ extern "C" { #define APR_FNM_NOESCAPE 0x01 /**< Disable backslash escaping. */ #define APR_FNM_PATHNAME 0x02 /**< Slash must be matched by slash. */ #define APR_FNM_PERIOD 0x04 /**< Period must be matched by period. */ -#define APR_FNM_CASE_BLIND 0x08 /**< Compare characters case-insensitively. - * @remark This flag is an Apache addition - */ +#define APR_FNM_CASE_BLIND 0x08 /**< Compare characters case-insensitively. */ /** * Try to match the string to the given pattern, return APR_SUCCESS if @@ -130,13 +128,19 @@ APR_DECLARE(apr_status_t) apr_fnmatch(const char *pattern, APR_DECLARE(int) apr_fnmatch_test(const char *pattern); /** - * Find all files that match a specified pattern. - * @param pattern The pattern to use for finding files. + * Find all files that match a specified pattern in a directory. + * @param dir_pattern The pattern to use for finding files, appended + * to the search directory. The pattern is anything following the + * final forward or backward slash in the parameter. If no slash + * is found, the current directory is searched. * @param result Array to use when storing the results * @param p The pool to use. - * @return non-zero if pattern has any glob characters in it + * @return APR_SUCCESS if no processing errors occurred, APR error + * code otherwise + * @remark The returned array may be empty even if APR_SUCCESS was + * returned. */ -APR_DECLARE(apr_status_t) apr_match_glob(const char *pattern, +APR_DECLARE(apr_status_t) apr_match_glob(const char *dir_pattern, apr_array_header_t **result, apr_pool_t *p); diff --git a/contrib/apr/include/apr_hash.h b/contrib/apr/include/apr_hash.h index 8e48c7ecf..37d972f9d 100644 --- a/contrib/apr/include/apr_hash.h +++ b/contrib/apr/include/apr_hash.h @@ -166,6 +166,27 @@ APR_DECLARE(apr_hash_index_t *) apr_hash_next(apr_hash_index_t *hi); APR_DECLARE(void) apr_hash_this(apr_hash_index_t *hi, const void **key, apr_ssize_t *klen, void **val); +/** + * Get the current entry's key from the iteration state. + * @param hi The iteration state + * @return The pointer to the key + */ +APR_DECLARE(const void*) apr_hash_this_key(apr_hash_index_t *hi); + +/** + * Get the current entry's key length from the iteration state. + * @param hi The iteration state + * @return The key length + */ +APR_DECLARE(apr_ssize_t) apr_hash_this_key_len(apr_hash_index_t *hi); + +/** + * Get the current entry's value from the iteration state. + * @param hi The iteration state + * @return The pointer to the value + */ +APR_DECLARE(void*) apr_hash_this_val(apr_hash_index_t *hi); + /** * Get the number of key/value pairs in the hash table. * @param ht The hash table diff --git a/contrib/apr/include/apr_inherit.h b/contrib/apr/include/apr_inherit.h index b7f7480f1..b9fe56fe4 100644 --- a/contrib/apr/include/apr_inherit.h +++ b/contrib/apr/include/apr_inherit.h @@ -28,7 +28,7 @@ * Prototype for type-specific declarations of apr_foo_inherit_set * functions. * @remark Doxygen unwraps this macro (via doxygen.conf) to provide - * actual help for each specific occurance of apr_foo_inherit_set. + * actual help for each specific occurrence of apr_foo_inherit_set. * @remark the linkage is specified for APR. It would be possible to expand * the macros to support other linkages. */ @@ -40,7 +40,7 @@ * Prototype for type-specific declarations of apr_foo_inherit_unset * functions. * @remark Doxygen unwraps this macro (via doxygen.conf) to provide - * actual help for each specific occurance of apr_foo_inherit_unset. + * actual help for each specific occurrence of apr_foo_inherit_unset. * @remark the linkage is specified for APR. It would be possible to expand * the macros to support other linkages. */ diff --git a/contrib/apr/include/apr_lib.h b/contrib/apr/include/apr_lib.h index 8c0fea74b..466e81857 100644 --- a/contrib/apr/include/apr_lib.h +++ b/contrib/apr/include/apr_lib.h @@ -111,19 +111,19 @@ APR_DECLARE(const char *) apr_filepath_name_get(const char *pathname); *
  * The extensions are:
  *
- * %%pA	takes a struct in_addr *, and prints it as a.b.c.d
- * %%pI	takes an apr_sockaddr_t * and prints it as a.b.c.d:port or
- *      [ipv6-address]:port
- * %%pT takes an apr_os_thread_t * and prints it in decimal
- *      ('0' is printed if !APR_HAS_THREADS)
- * %%pt takes an apr_os_thread_t * and prints it in hexadecimal
- *      ('0' is printed if !APR_HAS_THREADS)
- * %%pm takes an apr_status_t * and prints the appropriate error
- *      string (from apr_strerror) corresponding to that error code.
- * %%pp takes a void * and outputs it in hex
- * %%pB takes a apr_uint32_t * as bytes and outputs it's apr_strfsize
- * %%pF same as above, but takes a apr_off_t *
- * %%pS same as above, but takes a apr_size_t *
+ * - %%pA takes a struct in_addr *, and prints it as a.b.c.d
+ * - %%pI takes an apr_sockaddr_t * and prints it as a.b.c.d:port or
+ * \[ipv6-address\]:port
+ * - %%pT takes an apr_os_thread_t * and prints it in decimal
+ * ('0' is printed if !APR_HAS_THREADS)
+ * - %%pt takes an apr_os_thread_t * and prints it in hexadecimal
+ * ('0' is printed if !APR_HAS_THREADS)
+ * - %%pm takes an apr_status_t * and prints the appropriate error
+ * string (from apr_strerror) corresponding to that error code.
+ * - %%pp takes a void * and outputs it in hex
+ * - %%pB takes a apr_uint32_t * as bytes and outputs it's apr_strfsize
+ * - %%pF same as above, but takes a apr_off_t *
+ * - %%pS same as above, but takes a apr_size_t *
  *
  * %%pA, %%pI, %%pT, %%pp are available from APR 1.0.0 onwards (and in 0.9.x).
  * %%pt is only available from APR 1.2.0 onwards.
diff --git a/contrib/apr/include/apr_mmap.h b/contrib/apr/include/apr_mmap.h
index 77d697f5b..c14de1928 100644
--- a/contrib/apr/include/apr_mmap.h
+++ b/contrib/apr/include/apr_mmap.h
@@ -120,7 +120,7 @@ struct apr_mmap_t {
 /** 
  * Create a new mmap'ed file out of an existing APR file.
  * @param newmmap The newly created mmap'ed file.
- * @param file The file turn into an mmap.
+ * @param file The file to turn into an mmap.
  * @param offset The offset into the file to start the data pointer at.
  * @param size The size of the file
  * @param flag bit-wise or of:
diff --git a/contrib/apr/include/apr_network_io.h b/contrib/apr/include/apr_network_io.h
index 8b9209efd..0d34a8458 100644
--- a/contrib/apr/include/apr_network_io.h
+++ b/contrib/apr/include/apr_network_io.h
@@ -99,6 +99,8 @@ extern "C" {
                                     * until data is available.
                                     * @see apr_socket_accept_filter
                                     */
+#define APR_SO_BROADCAST     65536 /**< Allow broadcast
+                                    */
 
 /** @} */
 
@@ -278,6 +280,9 @@ struct apr_hdtr_t {
  * @param type The type of the socket (e.g., SOCK_STREAM).
  * @param protocol The protocol of the socket (e.g., APR_PROTO_TCP).
  * @param cont The pool for the apr_socket_t and associated storage.
+ * @note The pool will be used by various functions that operate on the
+ *       socket. The caller must ensure that it is not used by other threads
+ *       at the same time.
  */
 APR_DECLARE(apr_status_t) apr_socket_create(apr_socket_t **new_sock, 
                                             int family, int type,
@@ -333,6 +338,9 @@ APR_DECLARE(apr_status_t) apr_socket_listen(apr_socket_t *sock,
  *                 be used for all future communication.
  * @param sock The socket we are listening on.
  * @param connection_pool The pool for the new socket.
+ * @note The pool will be used by various functions that operate on the
+ *       socket. The caller must ensure that it is not used by other threads
+ *       at the same time.
  */
 APR_DECLARE(apr_status_t) apr_socket_accept(apr_socket_t **new_sock, 
                                             apr_socket_t *sock,
@@ -397,6 +405,8 @@ APR_DECLARE(apr_status_t) apr_sockaddr_info_get(apr_sockaddr_t **sa,
  * @param hostname The hostname.
  * @param sa The apr_sockaddr_t.
  * @param flags Special processing flags.
+ * @remark Results can vary significantly between platforms
+ * when processing wildcard socket addresses.
  */
 APR_DECLARE(apr_status_t) apr_getnameinfo(char **hostname,
                                           apr_sockaddr_t *sa,
@@ -489,7 +499,7 @@ APR_DECLARE(apr_status_t) apr_socket_send(apr_socket_t *sock, const char *buf,
                                           apr_size_t *len);
 
 /**
- * Send multiple packets of data over a network.
+ * Send multiple buffers over a network.
  * @param sock The socket to send the data over.
  * @param vec The array of iovec structs containing the data to send 
  * @param nvec The number of iovec structs in the array
@@ -499,7 +509,7 @@ APR_DECLARE(apr_status_t) apr_socket_send(apr_socket_t *sock, const char *buf,
  * This functions acts like a blocking write by default.  To change 
  * this behavior, use apr_socket_timeout_set() or the APR_SO_NONBLOCK
  * socket option.
- * The number of bytes actually sent is stored in argument 3.
+ * The number of bytes actually sent is stored in argument 4.
  *
  * It is possible for both bytes to be sent and an error to be returned.
  *
@@ -671,7 +681,7 @@ APR_DECLARE(apr_status_t) apr_socket_atmark(apr_socket_t *sock,
 
 /**
  * Return an address associated with a socket; either the address to
- * which the socket is bound locally or the the address of the peer
+ * which the socket is bound locally or the address of the peer
  * to which the socket is connected.
  * @param sa The returned apr_sockaddr_t.
  * @param which Whether to retrieve the local or remote address
@@ -712,6 +722,16 @@ APR_DECLARE(apr_status_t) apr_sockaddr_ip_getbuf(char *buf, apr_size_t buflen,
 APR_DECLARE(int) apr_sockaddr_equal(const apr_sockaddr_t *addr1,
                                     const apr_sockaddr_t *addr2);
 
+/**
+ * See if the IP address in an APR socket address refers to the wildcard
+ * address for the protocol family (e.g., INADDR_ANY for IPv4).
+ *
+ * @param addr The APR socket address to examine.
+ * @remark The return value will be non-zero if the address is
+ * initialized and is the wildcard address.
+ */
+APR_DECLARE(int) apr_sockaddr_is_wildcard(const apr_sockaddr_t *addr);
+
 /**
 * Return the type of the socket.
 * @param sock The socket to query.
diff --git a/contrib/apr/include/apr_poll.h b/contrib/apr/include/apr_poll.h
index 3e8d092b6..1381ddd13 100644
--- a/contrib/apr/include/apr_poll.h
+++ b/contrib/apr/include/apr_poll.h
@@ -42,7 +42,9 @@ extern "C" {
  */
 
 /**
- * Poll options
+ * @defgroup pollopts Poll options
+ * @ingroup apr_poll
+ * @{
  */
 #define APR_POLLIN    0x001     /**< Can read without blocking */
 #define APR_POLLPRI   0x002     /**< Priority data available */
@@ -50,9 +52,12 @@ extern "C" {
 #define APR_POLLERR   0x010     /**< Pending error */
 #define APR_POLLHUP   0x020     /**< Hangup occurred */
 #define APR_POLLNVAL  0x040     /**< Descriptor invalid */
+/** @} */
 
 /**
- * Pollset Flags
+ * @defgroup pollflags Pollset Flags
+ * @ingroup apr_poll
+ * @{
  */
 #define APR_POLLSET_THREADSAFE 0x001 /**< Adding or removing a descriptor is
                                       * thread-safe
@@ -67,6 +72,7 @@ extern "C" {
                                       * the specified non-default method cannot be
                                       * used
                                       */
+/** @} */
 
 /**
  * Pollset Methods
@@ -77,7 +83,8 @@ typedef enum {
     APR_POLLSET_KQUEUE,         /**< Poll uses kqueue method */
     APR_POLLSET_PORT,           /**< Poll uses Solaris event port method */
     APR_POLLSET_EPOLL,          /**< Poll uses epoll method */
-    APR_POLLSET_POLL            /**< Poll uses poll method */
+    APR_POLLSET_POLL,           /**< Poll uses poll method */
+    APR_POLLSET_AIO_MSGQ        /**< Poll uses z/OS asio method */
 } apr_pollset_method_e;
 
 /** Used in apr_pollfd_t to determine what the apr_descriptor is */
@@ -131,7 +138,7 @@ typedef struct apr_pollset_t apr_pollset_t;
  * @remark If flags contains APR_POLLSET_WAKEABLE, then a pollset is
  *         created with an additional internal pipe object used for the
  *         apr_pollset_wakeup() call. The actual size of pollset is
- *         in that case size + 1. This feature is only supported on some
+ *         in that case @a size + 1. This feature is only supported on some
  *         platforms; the apr_pollset_create() call will fail with
  *         APR_ENOTIMPL on platforms where it is not supported.
  * @remark If flags contains APR_POLLSET_NOCOPY, then the apr_pollfd_t
@@ -226,6 +233,7 @@ APR_DECLARE(apr_status_t) apr_pollset_add(apr_pollset_t *pollset,
  * Remove a descriptor from a pollset
  * @param pollset The pollset from which to remove the descriptor
  * @param descriptor The descriptor to remove
+ * @remark If the descriptor is not found, APR_NOTFOUND is returned.
  * @remark If the pollset has been created with APR_POLLSET_THREADSAFE
  *         and thread T1 is blocked in a call to apr_pollset_poll() for
  *         this same pollset that is being modified via apr_pollset_remove()
@@ -259,8 +267,6 @@ APR_DECLARE(apr_status_t) apr_pollset_remove(apr_pollset_t *pollset,
  * @remark Multiple signalled conditions for the same descriptor may be reported
  *         in one or more returned apr_pollfd_t structures, depending on the
  *         implementation.
- * @bug With versions 1.4.2 and prior on Windows, a call with no descriptors
- *      and timeout will return immediately with the wrong error code.
  */
 APR_DECLARE(apr_status_t) apr_pollset_poll(apr_pollset_t *pollset,
                                            apr_interval_time_t timeout,
@@ -290,8 +296,6 @@ APR_DECLARE(apr_status_t) apr_pollset_wakeup(apr_pollset_t *pollset);
  *         descriptor has been signalled or the timeout has expired. 
  * @remark The rtnevents field in the apr_pollfd_t array will only be filled-
  *         in if the return value is APR_SUCCESS.
- * @bug With versions 1.4.2 and prior on Windows, a call with no descriptors
- *      and timeout will return immediately with the wrong error code.
  */
 APR_DECLARE(apr_status_t) apr_poll(apr_pollfd_t *aprset, apr_int32_t numsock,
                                    apr_int32_t *nsds, 
@@ -309,7 +313,7 @@ APR_DECLARE(const char *) apr_pollset_method_name(apr_pollset_t *pollset);
  */
 APR_DECLARE(const char *) apr_poll_method_defname(void);
 
-/** Opaque structure used for pollset API */
+/** Opaque structure used for pollcb API */
 typedef struct apr_pollcb_t apr_pollcb_t;
 
 /**
@@ -397,8 +401,6 @@ typedef apr_status_t (*apr_pollcb_cb_t)(void *baton, apr_pollfd_t *descriptor);
  * @remark Multiple signalled conditions for the same descriptor may be reported
  *         in one or more calls to the callback function, depending on the
  *         implementation.
- * @bug With versions 1.4.2 and prior on Windows, a call with no descriptors
- *      and timeout will return immediately with the wrong error code.
  */
 APR_DECLARE(apr_status_t) apr_pollcb_poll(apr_pollcb_t *pollcb,
                                           apr_interval_time_t timeout,
diff --git a/contrib/apr/include/apr_pools.h b/contrib/apr/include/apr_pools.h
index 0f0b95e56..783c9c422 100644
--- a/contrib/apr/include/apr_pools.h
+++ b/contrib/apr/include/apr_pools.h
@@ -71,10 +71,10 @@ typedef struct apr_pool_t apr_pool_t;
  * 
  *    APR_POOL_DECLARE_ACCESSOR(file);
  * becomes:
- *    APR_DECLARE(apr_pool_t *) apr_file_pool_get(apr_file_t *ob);
+ *    APR_DECLARE(apr_pool_t *) apr_file_pool_get(const apr_file_t *thefile);
  * 
* @remark Doxygen unwraps this macro (via doxygen.conf) to provide - * actual help for each specific occurance of apr_foo_pool_get. + * actual help for each specific occurrence of apr_foo_pool_get. * @remark the linkage is specified for APR. It would be possible to expand * the macros to support other linkages. */ @@ -118,15 +118,15 @@ typedef struct apr_pool_t apr_pool_t; * * | | | | | x | | | | Pool owner checking. On each use of a * pool, check if the current thread is the - * pools owner. If not, abort(). In + * pool's owner. If not, abort(). In * combination with the verbose flag above, * it will output OWNER in such an event * prior to aborting. Use the debug * function apr_pool_owner_set() to switch - * a pools ownership. + * a pool's ownership. * * When no debug level was specified, assume general debug mode. - * If level 0 was specified, debugging is switched off + * If level 0 was specified, debugging is switched off. *
*/ #if defined(APR_POOL_DEBUG) @@ -212,12 +212,16 @@ APR_DECLARE(apr_status_t) apr_pool_create_core_ex(apr_pool_t **newpool, * @param newpool The pool we have just created. * @param abort_fn A function to use if the pool cannot allocate more memory. * @param allocator The allocator to use with the new pool. If NULL a - * new allocator will be crated with newpool as owner. + * new allocator will be created with the new pool as owner. * @remark An unmanaged pool is a special pool without a parent; it will * NOT be destroyed upon apr_terminate. It must be explicitly * destroyed by calling apr_pool_destroy, to prevent memory leaks. * Use of this function is discouraged, think twice about whether * you really really need it. + * @warning Any child cleanups registered against the new pool, or + * against sub-pools thereof, will not be executed during an + * invocation of apr_proc_create(), so resources created in an + * "unmanaged" pool hierarchy will leak to child processes. */ APR_DECLARE(apr_status_t) apr_pool_create_unmanaged_ex(apr_pool_t **newpool, apr_abortfunc_t abort_fn, @@ -233,7 +237,7 @@ APR_DECLARE(apr_status_t) apr_pool_create_unmanaged_ex(apr_pool_t **newpool, * @param file_line Where the function is called from. * This is usually APR_POOL__FILE_LINE__. * @remark Only available when APR_POOL_DEBUG is defined. - * Call this directly if you have you apr_pool_create_ex + * Call this directly if you have your apr_pool_create_ex * calls in a wrapper function and wish to override * the file_line argument to reflect the caller of * your wrapper function. If you do not have @@ -270,7 +274,7 @@ APR_DECLARE(apr_status_t) apr_pool_create_core_ex_debug(apr_pool_t **newpool, * @param file_line Where the function is called from. * This is usually APR_POOL__FILE_LINE__. * @remark Only available when APR_POOL_DEBUG is defined. - * Call this directly if you have you apr_pool_create_unmanaged_ex + * Call this directly if you have your apr_pool_create_unmanaged_ex * calls in a wrapper function and wish to override * the file_line argument to reflect the caller of * your wrapper function. If you do not have @@ -321,7 +325,7 @@ APR_DECLARE(apr_status_t) apr_pool_create(apr_pool_t **newpool, #endif /** - * Create a new pool. + * Create a new unmanaged pool. * @param newpool The pool we have just created. */ #if defined(DOXYGEN) @@ -366,7 +370,7 @@ APR_DECLARE(void) apr_pool_clear(apr_pool_t *p) __attribute__((nonnull(1))); * @param file_line Where the function is called from. * This is usually APR_POOL__FILE_LINE__. * @remark Only available when APR_POOL_DEBUG is defined. - * Call this directly if you have you apr_pool_clear + * Call this directly if you have your apr_pool_clear * calls in a wrapper function and wish to override * the file_line argument to reflect the caller of * your wrapper function. If you do not have @@ -396,7 +400,7 @@ APR_DECLARE(void) apr_pool_destroy(apr_pool_t *p) __attribute__((nonnull(1))); * @param file_line Where the function is called from. * This is usually APR_POOL__FILE_LINE__. * @remark Only available when APR_POOL_DEBUG is defined. - * Call this directly if you have you apr_pool_destroy + * Call this directly if you have your apr_pool_destroy * calls in a wrapper function and wish to override * the file_line argument to reflect the caller of * your wrapper function. If you do not have @@ -614,7 +618,7 @@ APR_DECLARE(apr_status_t) apr_pool_userdata_get(void **data, const char *key, /** * Register a function to be called when a pool is cleared or destroyed - * @param p The pool register the cleanup with + * @param p The pool to register the cleanup with * @param data The data to pass to the cleanup function. * @param plain_cleanup The function to call when the pool is cleared * or destroyed @@ -630,11 +634,11 @@ APR_DECLARE(void) apr_pool_cleanup_register( /** * Register a function to be called when a pool is cleared or destroyed. * - * Unlike apr_pool_cleanup_register which register a cleanup - * that is called AFTER all subpools are destroyed this function register - * a function that will be called before any of the subpool is destoryed. + * Unlike apr_pool_cleanup_register which registers a cleanup + * that is called AFTER all subpools are destroyed, this function registers + * a function that will be called before any of the subpools are destroyed. * - * @param p The pool register the cleanup with + * @param p The pool to register the cleanup with * @param data The data to pass to the cleanup function. * @param plain_cleanup The function to call when the pool is cleared * or destroyed diff --git a/contrib/apr/include/apr_shm.h b/contrib/apr/include/apr_shm.h index 2b1d50f6d..49543bb01 100644 --- a/contrib/apr/include/apr_shm.h +++ b/contrib/apr/include/apr_shm.h @@ -43,7 +43,8 @@ extern "C" { typedef struct apr_shm_t apr_shm_t; /** - * Create and make accessable a shared memory segment. + * Create and make accessible a shared memory segment with default + * properties. * @param m The shared memory structure to create. * @param reqsize The desired size of the segment. * @param filename The file to use for shared memory on platforms that @@ -70,6 +71,52 @@ APR_DECLARE(apr_status_t) apr_shm_create(apr_shm_t **m, const char *filename, apr_pool_t *pool); +/** + * Special processing flags for apr_shm_create_ex() and apr_shm_attach_ex(). + */ +#define APR_SHM_NS_LOCAL 1 /* Create or attach to named shared memory + * segment in the "Local" namespace on + * Windows. (Ignored on other platforms.) + * By default, the "Global" namespace is + * used for privileged processes and the + * "Local" namespace is used otherwise. + */ +#define APR_SHM_NS_GLOBAL 2 /* Create or attach to named shared memory + * segment in the "Global" namespace on + * Windows. (Ignored on other platforms.) + */ + +/** + * Create and make accessible a shared memory segment with platform- + * specific processing. + * @param m The shared memory structure to create. + * @param reqsize The desired size of the segment. + * @param filename The file to use for shared memory on platforms that + * require it. + * @param pool the pool from which to allocate the shared memory + * structure. + * @param flags mask of APR_SHM_* (defined above) + * @remark A note about Anonymous vs. Named shared memory segments: + * Not all plaforms support anonymous shared memory segments, but in + * some cases it is prefered over other types of shared memory + * implementations. Passing a NULL 'file' parameter to this function + * will cause the subsystem to use anonymous shared memory segments. + * If such a system is not available, APR_ENOTIMPL is returned. + * @remark A note about allocation sizes: + * On some platforms it is necessary to store some metainformation + * about the segment within the actual segment. In order to supply + * the caller with the requested size it may be necessary for the + * implementation to request a slightly greater segment length + * from the subsystem. In all cases, the apr_shm_baseaddr_get() + * function will return the first usable byte of memory. + * + */ +APR_DECLARE(apr_status_t) apr_shm_create_ex(apr_shm_t **m, + apr_size_t reqsize, + const char *filename, + apr_pool_t *pool, + apr_int32_t flags); + /** * Remove named resource associated with a shared memory segment, * preventing attachments to the resource, but not destroying it. @@ -80,7 +127,7 @@ APR_DECLARE(apr_status_t) apr_shm_create(apr_shm_t **m, * name-based shared memory segments, and will return APR_ENOTIMPL on * platforms without such support. Removing the file while the shm * is in use is not entirely portable, caller may use this to enhance - * obscurity of the resource, but be prepared for the the call to fail, + * obscurity of the resource, but be prepared for the call to fail, * and for concurrent attempts to create a resource of the same name * to also fail. The pool cleanup of apr_shm_create (apr_shm_destroy) * also removes the named resource. @@ -107,6 +154,21 @@ APR_DECLARE(apr_status_t) apr_shm_attach(apr_shm_t **m, const char *filename, apr_pool_t *pool); +/** + * Attach to a shared memory segment that was created + * by another process, with platform-specific processing. + * @param m The shared memory structure to create. + * @param filename The file used to create the original segment. + * (This MUST match the original filename.) + * @param pool the pool from which to allocate the shared memory + * structure for this process. + * @param flags mask of APR_SHM_* (defined above) + */ +APR_DECLARE(apr_status_t) apr_shm_attach_ex(apr_shm_t **m, + const char *filename, + apr_pool_t *pool, + apr_int32_t flags); + /** * Detach from a shared memory segment without destroying it. * @param m The shared memory structure representing the segment diff --git a/contrib/apr/include/apr_skiplist.h b/contrib/apr/include/apr_skiplist.h new file mode 100644 index 000000000..bc17efd95 --- /dev/null +++ b/contrib/apr/include/apr_skiplist.h @@ -0,0 +1,259 @@ +/* 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_SKIPLIST_H +#define APR_SKIPLIST_H +/** + * @file apr_skiplist.h + * @brief APR skip list implementation + */ + +#include "apr.h" +#include "apr_portable.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * @defgroup apr_skiplist Skip list implementation + * Refer to http://en.wikipedia.org/wiki/Skip_list for information + * about the purpose of and ideas behind skip lists. + * @ingroup APR + * @{ + */ + +/** + * apr_skiplist_compare is the function type that must be implemented + * per object type that is used in a skip list for comparisons to maintain + * order + * */ +typedef int (*apr_skiplist_compare) (void *, void *); + +/** + * apr_skiplist_freefunc is the function type that must be implemented + * to handle elements as they are removed from a skip list. + */ +typedef void (*apr_skiplist_freefunc) (void *); + +/** Opaque structure used to represent the skip list */ +struct apr_skiplist; +/** Opaque structure used to represent the skip list */ +typedef struct apr_skiplist apr_skiplist; + +/** + * Opaque structure used to represent abstract nodes in the skip list + * (an abstraction above the raw elements which are collected in the + * skip list). + */ +struct apr_skiplistnode; +/** Opaque structure */ +typedef struct apr_skiplistnode apr_skiplistnode; + +/** + * Allocate memory using the same mechanism as the skip list. + * @param sl The skip list + * @param size The amount to allocate + * @remark If a pool was provided to apr_skiplist_init(), memory will + * be allocated from the pool or from a free list maintained with + * the skip list. Otherwise, memory will be allocated using the + * C standard library heap functions. + */ +APR_DECLARE(void *) apr_skiplist_alloc(apr_skiplist *sl, size_t size); + +/** + * Free memory using the same mechanism as the skip list. + * @param sl The skip list + * @param mem The object to free + * @remark If a pool was provided to apr_skiplist_init(), memory will + * be added to a free list maintained with the skip list and be available + * to operations on the skip list or to other calls to apr_skiplist_alloc(). + * Otherwise, memory will be freed using the C standard library heap + * functions. + */ +APR_DECLARE(void) apr_skiplist_free(apr_skiplist *sl, void *mem); + +/** + * Allocate a new skip list + * @param sl The pointer in which to return the newly created skip list + * @param p The pool from which to allocate the skip list (optional). + * @remark Unlike most APR functions, a pool is optional. If no pool + * is provided, the C standard library heap functions will be used instead. + */ +APR_DECLARE(apr_status_t) apr_skiplist_init(apr_skiplist **sl, apr_pool_t *p); + +/** + * Set the comparison functions to be used for searching the skip list. + * @param sl The skip list + * @param XXX1 FIXME + * @param XXX2 FIXME + * + * @remark If existing comparison functions are being replaced, the index + * will be replaced during this call. That is a potentially expensive + * operation. + */ +APR_DECLARE(void) apr_skiplist_set_compare(apr_skiplist *sl, apr_skiplist_compare XXX1, + apr_skiplist_compare XXX2); + +/** + * Set the indexing functions to the specified comparison functions and + * rebuild the index. + * @param sl The skip list + * @param XXX1 FIXME + * @param XXX2 FIXME + * + * @remark If an index already exists, it will not be replaced and the + * comparison functions will not be changed. + */ +APR_DECLARE(void) apr_skiplist_add_index(apr_skiplist *sl, apr_skiplist_compare XXX1, + apr_skiplist_compare XXX2); + +/** + * Return the list maintained by the skip list abstraction. + * @param sl The skip list + */ +APR_DECLARE(apr_skiplistnode *) apr_skiplist_getlist(apr_skiplist *sl); + +/** + * Return the next matching element in the skip list using the specified + * comparison function. + * @param sl The skip list + * @param data The value to search for + * @param iter A pointer to the returned skip list node representing the element + * found + * @param func The comparison function to use + */ +APR_DECLARE(void *) apr_skiplist_find_compare(apr_skiplist *sl, + void *data, + apr_skiplistnode **iter, + apr_skiplist_compare func); + +/** + * Return the next matching element in the skip list using the current comparison + * function. + * @param sl The skip list + * @param data The value to search for + * @param iter A pointer to the returned skip list node representing the element + * found + */ +APR_DECLARE(void *) apr_skiplist_find(apr_skiplist *sl, void *data, apr_skiplistnode **iter); + +/** + * Return the next element in the skip list. + * @param sl The skip list + * @param iter On entry, a pointer to the skip list node to start with; on return, + * a pointer to the skip list node representing the element returned + * @remark If iter points to a NULL value on entry, NULL will be returned. + */ +APR_DECLARE(void *) apr_skiplist_next(apr_skiplist *sl, apr_skiplistnode **iter); + +/** + * Return the previous element in the skip list. + * @param sl The skip list + * @param iter On entry, a pointer to the skip list node to start with; on return, + * a pointer to the skip list node representing the element returned + * @remark If iter points to a NULL value on entry, NULL will be returned. + */ +APR_DECLARE(void *) apr_skiplist_previous(apr_skiplist *sl, apr_skiplistnode **iter); + +/** + * Insert an element into the skip list using the specified comparison function. + * @param sl The skip list + * @param data The element to insert + * @param comp The comparison function to use for placement into the skip list + */ +APR_DECLARE(apr_skiplistnode *) apr_skiplist_insert_compare(apr_skiplist *sl, + void *data, apr_skiplist_compare comp); + +/** + * Insert an element into the skip list using the existing comparison function. + * @param sl The skip list + * @param data The element to insert + * @remark If no comparison function has been set for the skip list, the element + * will not be inserted and NULL will be returned. + */ +APR_DECLARE(apr_skiplistnode *) apr_skiplist_insert(apr_skiplist* sl, void *data); + +/** + * Remove an element from the skip list using the specified comparison function for + * locating the element. + * @param sl The skip list + * @param data The element to remove + * @param myfree A function to be called for each removed element + * @param comp The comparison function to use for placement into the skip list + * @remark If the element is not found, 0 will be returned. Otherwise, the heightXXX + * will be returned. + */ +APR_DECLARE(int) apr_skiplist_remove_compare(apr_skiplist *sl, void *data, + apr_skiplist_freefunc myfree, apr_skiplist_compare comp); + +/** + * Remove an element from the skip list using the existing comparison function for + * locating the element. + * @param sl The skip list + * @param data The element to remove + * @param myfree A function to be called for each removed element + * @remark If the element is not found, 0 will be returned. Otherwise, the heightXXX + * will be returned. + * @remark If no comparison function has been set for the skip list, the element + * will not be removed and 0 will be returned. + */ +APR_DECLARE(int) apr_skiplist_remove(apr_skiplist *sl, void *data, apr_skiplist_freefunc myfree); + +/** + * Remove all elements from the skip list. + * @param sl The skip list + * @param myfree A function to be called for each removed element + */ +APR_DECLARE(void) apr_skiplist_remove_all(apr_skiplist *sl, apr_skiplist_freefunc myfree); + +/** + * Remove each element from the skip list. + * @param sl The skip list + * @param myfree A function to be called for each removed element + */ +APR_DECLARE(void) apr_skiplist_destroy(apr_skiplist *sl, apr_skiplist_freefunc myfree); + +/** + * Return the first element in the skip list, leaving the element in the skip list. + * @param sl The skip list + * @param myfree A function to be called for the removed element + * @remark NULL will be returned if there are no elements + */ +APR_DECLARE(void *) apr_skiplist_pop(apr_skiplist *sl, apr_skiplist_freefunc myfree); + +/** + * Return the first element in the skip list, leaving the element in the skip list. + * @param sl The skip list + * @remark NULL will be returned if there are no elements + */ +APR_DECLARE(void *) apr_skiplist_peek(apr_skiplist *sl); + +/** + * Merge two skip lists. XXX SEMANTICS + * @param sl1 One of two skip lists to be merged + * @param sl2 The other of two skip lists to be merged + */ +APR_DECLARE(apr_skiplist *) apr_skiplist_merge(apr_skiplist *sl1, apr_skiplist *sl2); + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif /* ! APR_SKIPLIST_H */ diff --git a/contrib/apr/include/apr_strings.h b/contrib/apr/include/apr_strings.h index 457217358..c0642adb2 100644 --- a/contrib/apr/include/apr_strings.h +++ b/contrib/apr/include/apr_strings.h @@ -90,7 +90,7 @@ APR_DECLARE(int) apr_strnatcasecmp(char const *a, char const *b); * duplicate a string into memory allocated out of a pool * @param p The pool to allocate out of * @param s The string to duplicate - * @return The new string + * @return The new string or NULL if s == NULL */ APR_DECLARE(char *) apr_pstrdup(apr_pool_t *p, const char *s); @@ -100,7 +100,7 @@ APR_DECLARE(char *) apr_pstrdup(apr_pool_t *p, const char *s); * @param p The pool to allocate out of * @param s The block of characters to duplicate * @param n The number of characters to duplicate - * @return The new string + * @return The new string or NULL if s == NULL * @remark This is a faster alternative to apr_pstrndup, for use * when you know that the string being duplicated really * has 'n' or more characters. If the string might contain @@ -118,7 +118,7 @@ APR_DECLARE(char *) apr_pstrmemdup(apr_pool_t *p, const char *s, apr_size_t n) * @param p The pool to allocate out of * @param s The string to duplicate * @param n The maximum number of characters to duplicate - * @return The new string + * @return The new string or NULL if s == NULL * @remark The amount of memory allocated from the pool is the length * of the returned string including the NUL terminator */ @@ -130,7 +130,7 @@ APR_DECLARE(char *) apr_pstrndup(apr_pool_t *p, const char *s, apr_size_t n); * @param p The pool to allocate from * @param m The memory to duplicate * @param n The number of bytes to duplicate - * @return The new block of memory + * @return The new block of memory or NULL if m == NULL */ APR_DECLARE(void *) apr_pmemdup(apr_pool_t *p, const void *m, apr_size_t n) #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) @@ -235,8 +235,14 @@ APR_DECLARE(apr_status_t) apr_tokenize_to_argv(const char *arg_str, * first call to apr_strtok() for a given string, and NULL * on subsequent calls. * @param sep The set of delimiters - * @param last Internal state saved by apr_strtok() between calls. + * @param last State saved by apr_strtok() between calls. * @return The next token from the string + * @note the 'last' state points to the trailing NUL char of the final + * token, otherwise it points to the character following the current + * token (all successive or empty occurances of sep are skiped on the + * subsequent call to apr_strtok). Therefore it is possible to avoid + * a strlen() determination, with the following logic; + * toklen = last - retval; if (*last) --toklen; */ APR_DECLARE(char *) apr_strtok(char *str, const char *sep, char **last); diff --git a/contrib/apr/include/apr_tables.h b/contrib/apr/include/apr_tables.h index 1e7a57d16..194af02f2 100644 --- a/contrib/apr/include/apr_tables.h +++ b/contrib/apr/include/apr_tables.h @@ -267,6 +267,18 @@ APR_DECLARE(void) apr_table_clear(apr_table_t *t); */ APR_DECLARE(const char *) apr_table_get(const apr_table_t *t, const char *key); +/** + * Get values associated with a given key from the table. If more than one + * value exists, return a comma separated list of values. After this call, the + * data is still in the table. + * @param p The pool to allocate the combined value from, if necessary + * @param t The table to search for the key + * @param key The key to search for (case does not matter) + * @return The value associated with the key, or NULL if the key does not exist. + */ +APR_DECLARE(const char *) apr_table_getm(apr_pool_t *p, const apr_table_t *t, + const char *key); + /** * Add a key/value pair to a table. If another element already exists with the * same key, this will overwrite the old data. diff --git a/contrib/apr/include/apr_thread_mutex.h b/contrib/apr/include/apr_thread_mutex.h index 4596dce5d..193a70a38 100644 --- a/contrib/apr/include/apr_thread_mutex.h +++ b/contrib/apr/include/apr_thread_mutex.h @@ -59,7 +59,7 @@ typedef struct apr_thread_mutex_t apr_thread_mutex_t; * * @param pool the pool from which to allocate the mutex. * @warning Be cautious in using APR_THREAD_MUTEX_DEFAULT. While this is the - * most optimial mutex based on a given platform's performance charateristics, + * most optimal mutex based on a given platform's performance characteristics, * it will behave as either a nested or an unnested lock. */ APR_DECLARE(apr_status_t) apr_thread_mutex_create(apr_thread_mutex_t **mutex, diff --git a/contrib/apr/include/apr_thread_proc.h b/contrib/apr/include/apr_thread_proc.h index 0a97c955c..e721ede9e 100644 --- a/contrib/apr/include/apr_thread_proc.h +++ b/contrib/apr/include/apr_thread_proc.h @@ -114,7 +114,7 @@ typedef enum { #define APR_OC_REASON_DEATH 0 /**< child has died, caller must call * unregister still */ #define APR_OC_REASON_UNWRITABLE 1 /**< write_fd is unwritable */ -#define APR_OC_REASON_RESTART 2 /**< a restart is occuring, perform +#define APR_OC_REASON_RESTART 2 /**< a restart is occurring, perform * any necessary cleanup (including * sending a special signal to child) */ @@ -123,7 +123,7 @@ typedef enum { * kill the child) */ #define APR_OC_REASON_LOST 4 /**< somehow the child exited without * us knowing ... buggy os? */ -#define APR_OC_REASON_RUNNING 5 /**< a health check is occuring, +#define APR_OC_REASON_RUNNING 5 /**< a health check is occurring, * for most maintainence functions * this is a no-op. */ @@ -197,7 +197,9 @@ typedef struct apr_other_child_rec_t apr_other_child_rec_t; typedef void *(APR_THREAD_FUNC *apr_thread_start_t)(apr_thread_t*, void*); typedef enum { - APR_KILL_NEVER, /**< process is never sent any signals */ + APR_KILL_NEVER, /**< process is never killed (i.e., never sent + * any signals), but it will be reaped if it exits + * before the pool is cleaned up */ APR_KILL_ALWAYS, /**< process is sent SIGKILL on apr_pool_t cleanup */ APR_KILL_AFTER_TIMEOUT, /**< SIGTERM, wait 3 seconds, SIGKILL */ APR_JUST_WAIT, /**< wait forever for the process to complete */ @@ -632,7 +634,7 @@ APR_DECLARE(apr_status_t) apr_proc_create(apr_proc_t *new_proc, * APR_NOWAIT -- return immediately regardless of if the * child is dead or not. * - * @remark The childs status is in the return code to this process. It is one of: + * @remark The child's status is in the return code to this process. It is one of: *
  *            APR_CHILD_DONE     -- child is no longer running.
  *            APR_CHILD_NOTDONE  -- child is still running.
diff --git a/contrib/apr/include/apr_time.h b/contrib/apr/include/apr_time.h
index 6dd70cc8d..15e0b9611 100644
--- a/contrib/apr/include/apr_time.h
+++ b/contrib/apr/include/apr_time.h
@@ -42,7 +42,7 @@ APR_DECLARE_DATA extern const char apr_month_snames[12][4];
 APR_DECLARE_DATA extern const char apr_day_snames[7][4];
 
 
-/** number of microseconds since 00:00:00 january 1, 1970 UTC */
+/** number of microseconds since 00:00:00 January 1, 1970 UTC */
 typedef apr_int64_t apr_time_t;
 
 
@@ -93,7 +93,7 @@ typedef struct apr_time_exp_t apr_time_exp_t;
 /**
  * a structure similar to ANSI struct tm with the following differences:
  *  - tm_usec isn't an ANSI field
- *  - tm_gmtoff isn't an ANSI field (it's a bsdism)
+ *  - tm_gmtoff isn't an ANSI field (it's a BSDism)
  */
 struct apr_time_exp_t {
     /** microseconds past tm_sec */
@@ -110,9 +110,9 @@ struct apr_time_exp_t {
     apr_int32_t tm_mon;
     /** year since 1900 */
     apr_int32_t tm_year;
-    /** (0-6) days since sunday */
+    /** (0-6) days since Sunday */
     apr_int32_t tm_wday;
-    /** (0-365) days since jan 1 */
+    /** (0-365) days since January 1 */
     apr_int32_t tm_yday;
     /** daylight saving time */
     apr_int32_t tm_isdst;
@@ -121,7 +121,7 @@ struct apr_time_exp_t {
 };
 
 /**
- * convert an ansi time_t to an apr_time_t
+ * Convert an ansi time_t to an apr_time_t
  * @param result the resulting apr_time_t
  * @param input the time_t to convert
  */
@@ -129,8 +129,8 @@ APR_DECLARE(apr_status_t) apr_time_ansi_put(apr_time_t *result,
                                                     time_t input);
 
 /**
- * convert a time to its human readable components using an offset
- * from GMT
+ * Convert a time to its human readable components using an offset
+ * from GMT.
  * @param result the exploded time
  * @param input the time to explode
  * @param offs the number of seconds offset to apply
@@ -140,7 +140,7 @@ APR_DECLARE(apr_status_t) apr_time_exp_tz(apr_time_exp_t *result,
                                           apr_int32_t offs);
 
 /**
- * convert a time to its human readable components in GMT timezone
+ * Convert a time to its human readable components (GMT).
  * @param result the exploded time
  * @param input the time to explode
  */
@@ -148,7 +148,7 @@ APR_DECLARE(apr_status_t) apr_time_exp_gmt(apr_time_exp_t *result,
                                            apr_time_t input);
 
 /**
- * convert a time to its human readable components in local timezone
+ * Convert a time to its human readable components in the local timezone.
  * @param result the exploded time
  * @param input the time to explode
  */
@@ -156,8 +156,8 @@ APR_DECLARE(apr_status_t) apr_time_exp_lt(apr_time_exp_t *result,
                                           apr_time_t input);
 
 /**
- * Convert time value from human readable format to a numeric apr_time_t 
- * e.g. elapsed usec since epoch
+ * Convert time value from human readable format to a numeric apr_time_t
+ * (elapsed microseconds since the epoch).
  * @param result the resulting imploded time
  * @param input the input exploded time
  */
@@ -166,7 +166,7 @@ APR_DECLARE(apr_status_t) apr_time_exp_get(apr_time_t *result,
 
 /**
  * Convert time value from human readable format to a numeric apr_time_t that
- * always represents GMT
+ * always represents GMT.
  * @param result the resulting imploded time
  * @param input the input exploded time
  */
@@ -185,7 +185,7 @@ APR_DECLARE(void) apr_sleep(apr_interval_time_t t);
 /**
  * apr_rfc822_date formats dates in the RFC822
  * format in an efficient manner.  It is a fixed length
- * format which requires the indicated amount of storage,
+ * format which requires APR_RFC822_DATA_LEN bytes of storage,
  * including the trailing NUL terminator.
  * @param date_str String to write to.
  * @param t the time to convert 
@@ -196,18 +196,18 @@ APR_DECLARE(apr_status_t) apr_rfc822_date(char *date_str, apr_time_t t);
 #define APR_CTIME_LEN (25)
 /**
  * apr_ctime formats dates in the ctime() format
- * in an efficient manner.  it is a fixed length format
- * and requires the indicated amount of storage including
+ * in an efficient manner.  It is a fixed length format
+ * and requires APR_CTIME_LEN bytes of storage including
  * the trailing NUL terminator.
  * Unlike ANSI/ISO C ctime(), apr_ctime() does not include
- * a \n at the end of the string.
+ * a \\n at the end of the string.
  * @param date_str String to write to.
  * @param t the time to convert 
  */
 APR_DECLARE(apr_status_t) apr_ctime(char *date_str, apr_time_t t);
 
 /**
- * formats the exploded time according to the format specified
+ * Formats the exploded time according to the format specified
  * @param s string to write to
  * @param retsize The length of the returned string
  * @param max The maximum length of the string
@@ -220,7 +220,7 @@ APR_DECLARE(apr_status_t) apr_strftime(char *s, apr_size_t *retsize,
 
 /**
  * Improve the clock resolution for the lifetime of the given pool.
- * Generally this is only desireable on benchmarking and other very
+ * Generally this is only desirable on benchmarking and other very
  * time-sensitive applications, and has no impact on most platforms.
  * @param p The pool to associate the finer clock resolution 
  */
diff --git a/contrib/apr/include/apr_user.h b/contrib/apr/include/apr_user.h
index 0179e2264..0e0a3ac5a 100644
--- a/contrib/apr/include/apr_user.h
+++ b/contrib/apr/include/apr_user.h
@@ -81,7 +81,7 @@ APR_DECLARE(apr_status_t) apr_uid_name_get(char **username, apr_uid_t userid,
  * Get the userid (and groupid) for the specified username
  * @param userid   Returns the user id
  * @param groupid  Returns the user's group id
- * @param username The username to lookup
+ * @param username The username to look up
  * @param p The pool from which to allocate working space
  * @remark This function is available only if APR_HAS_USER is defined.
  */
@@ -103,7 +103,7 @@ APR_DECLARE(apr_status_t) apr_uid_homepath_get(char **dirname,
  * Compare two user identifiers for equality.
  * @param left One uid to test
  * @param right Another uid to test
- * @return APR_SUCCESS if the apr_uid_t strutures identify the same user,
+ * @return APR_SUCCESS if the apr_uid_t structures identify the same user,
  * APR_EMISMATCH if not, APR_BADARG if an apr_uid_t is invalid.
  * @remark This function is available only if APR_HAS_USER is defined.
  */
@@ -137,7 +137,7 @@ APR_DECLARE(apr_status_t) apr_gid_get(apr_gid_t *groupid,
  * Compare two group identifiers for equality.
  * @param left One gid to test
  * @param right Another gid to test
- * @return APR_SUCCESS if the apr_gid_t strutures identify the same group,
+ * @return APR_SUCCESS if the apr_gid_t structures identify the same group,
  * APR_EMISMATCH if not, APR_BADARG if an apr_gid_t is invalid.
  * @remark This function is available only if APR_HAS_USER is defined.
  */
diff --git a/contrib/apr/include/apr_version.h b/contrib/apr/include/apr_version.h
index 4b06508ee..21110538b 100644
--- a/contrib/apr/include/apr_version.h
+++ b/contrib/apr/include/apr_version.h
@@ -38,7 +38,7 @@
  */
 
 
-#define APR_COPYRIGHT "Copyright (c) 2013 The Apache Software " \
+#define APR_COPYRIGHT "Copyright (c) 2000-2014 The Apache Software " \
                       "Foundation or its licensors, as applicable."
 
 /* The numeric compile-time version constants. These constants are the
@@ -56,13 +56,13 @@
  * Minor API changes that do not cause binary compatibility problems.
  * Reset to 0 when upgrading APR_MAJOR_VERSION
  */
-#define APR_MINOR_VERSION       4
+#define APR_MINOR_VERSION       5
 
 /** patch level 
  * The Patch Level never includes API changes, simply bug fixes.
  * Reset to 0 when upgrading APR_MINOR_VERSION
  */
-#define APR_PATCH_VERSION       8
+#define APR_PATCH_VERSION       1
 
 /** 
  * The symbol APR_IS_DEV_VERSION is only defined for internal,
diff --git a/contrib/apr/include/arch/unix/apr_arch_poll_private.h b/contrib/apr/include/arch/unix/apr_arch_poll_private.h
index 1d31f96c6..2dd7b1fd6 100644
--- a/contrib/apr/include/arch/unix/apr_arch_poll_private.h
+++ b/contrib/apr/include/arch/unix/apr_arch_poll_private.h
@@ -45,6 +45,11 @@
 #define HAS_PIPES(dt) (dt == APR_POLL_FILE) ? 1 : 0
 #endif
 
+#if defined(HAVE_AIO_H) && defined(HAVE_AIO_MSGQ)
+#define _AIO_OS390	/* enable a bunch of z/OS aio.h definitions */
+#include 	/* aiocb	*/
+#endif
+
 /* Choose the best method platform specific to use in apr_pollset */
 #ifdef HAVE_KQUEUE
 #define POLLSET_USES_KQUEUE
@@ -55,6 +60,9 @@
 #elif defined(HAVE_EPOLL)
 #define POLLSET_USES_EPOLL
 #define POLLSET_DEFAULT_METHOD APR_POLLSET_EPOLL
+#elif defined(HAVE_AIO_MSGQ)
+#define POLLSET_USES_AIO_MSGQ
+#define POLLSET_DEFAULT_METHOD APR_POLLSET_AIO_MSGQ
 #elif defined(HAVE_POLL)
 #define POLLSET_USES_POLL
 #define POLLSET_DEFAULT_METHOD APR_POLLSET_POLL
@@ -75,7 +83,7 @@
 #endif
 #endif
 
-#if defined(POLLSET_USES_KQUEUE) || defined(POLLSET_USES_EPOLL) || defined(POLLSET_USES_PORT)
+#if defined(POLLSET_USES_KQUEUE) || defined(POLLSET_USES_EPOLL) || defined(POLLSET_USES_PORT) || defined(POLLSET_USES_AIO_MSGQ)
 
 #include "apr_ring.h"
 
@@ -107,6 +115,7 @@ struct pfd_elem_t {
 typedef struct apr_pollset_private_t apr_pollset_private_t;
 typedef struct apr_pollset_provider_t apr_pollset_provider_t;
 typedef struct apr_pollcb_provider_t apr_pollcb_provider_t;
+
 struct apr_pollset_t
 {
     apr_pool_t *pool;
diff --git a/contrib/apr/include/arch/unix/apr_arch_threadproc.h b/contrib/apr/include/arch/unix/apr_arch_threadproc.h
index b76dc9be1..a61830f6e 100644
--- a/contrib/apr/include/arch/unix/apr_arch_threadproc.h
+++ b/contrib/apr/include/arch/unix/apr_arch_threadproc.h
@@ -39,7 +39,7 @@
 #if APR_HAVE_STRING_H
 #include 
 #endif
-#if HAVE_SCHED_H
+#ifdef HAVE_SCHED_H
 #include 
 #endif
 /* End System Headers */
diff --git a/contrib/apr/include/arch/unix/apr_private.h.in b/contrib/apr/include/arch/unix/apr_private.h.in
index f7ea7e9fd..12af02747 100644
--- a/contrib/apr/include/arch/unix/apr_private.h.in
+++ b/contrib/apr/include/arch/unix/apr_private.h.in
@@ -83,6 +83,9 @@
 /* Define if accept4 function is supported */
 #undef HAVE_ACCEPT4
 
+/* Define if async i/o supports message q's */
+#undef HAVE_AIO_MSGQ
+
 /* Define to 1 if you have `alloca', as a function or macro. */
 #undef HAVE_ALLOCA
 
@@ -929,7 +932,7 @@
 
 
 /* switch this on if we have a BeOS version below BONE */
-#if BEOS && !HAVE_BONE_VERSION
+#if defined(BEOS) && !defined(HAVE_BONE_VERSION)
 #define BEOS_R5 1
 #else
 #define BEOS_BONE 1
diff --git a/contrib/apr/libapr.dep b/contrib/apr/libapr.dep
index 3efb8ec1d..5155c402e 100644
--- a/contrib/apr/libapr.dep
+++ b/contrib/apr/libapr.dep
@@ -1,561 +1,1920 @@
-# Microsoft Developer Studio Generated Dependency File, included by libapr.mak
-
-.\atomic\win32\apr_atomic.c : \
-	".\include\apr_atomic.h"\
-	
-
-.\dso\win32\dso.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_dso.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\file_io\win32\buffer.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\file_io\unix\copy.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\file_io\win32\dir.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_atime.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\file_io\unix\fileacc.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\file_io\win32\filedup.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_inherit.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\file_io\win32\filepath.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\file_io\unix\filepath_util.c : \
-	".\include\apr_strings.h"\
-	
-
-.\file_io\win32\filestat.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_atime.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\file_io\win32\filesys.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\file_io\win32\flock.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\file_io\unix\fullrw.c : \
-	
-
-.\file_io\unix\mktemp.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_inherit.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\file_io\win32\open.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_inherit.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\file_io\win32\pipe.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\file_io\win32\readwrite.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_atime.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\file_io\win32\seek.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\file_io\unix\tempdir.c : \
-	".\include\apr_env.h"\
-	".\include\apr_strings.h"\
-	
-
-.\locks\win32\proc_mutex.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_proc_mutex.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\locks\win32\thread_cond.c : \
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\apr_thread_cond.h"\
-	".\include\arch\win32\apr_arch_thread_cond.h"\
-	".\include\arch\win32\apr_arch_thread_mutex.h"\
-	
-
-.\locks\win32\thread_mutex.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_thread_mutex.h"\
-	
-
-.\locks\win32\thread_rwlock.c : \
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\apr_thread_rwlock.h"\
-	".\include\arch\win32\apr_arch_thread_rwlock.h"\
-	
-
-.\memory\unix\apr_pools.c : \
-	".\include\apr_atomic.h"\
-	".\include\apr_env.h"\
-	".\include\apr_hash.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	
-
-.\misc\win32\charset.c : \
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	
-
-.\misc\win32\env.c : \
-	".\include\apr_env.h"\
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\misc\unix\errorcodes.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	
-
-.\misc\unix\getopt.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	
-
-.\misc\win32\internal.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\misc\win32\misc.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	".\include\arch\win32\apr_dbg_win32_handles.h"\
-	
-
-.\misc\unix\otherchild.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_threadproc.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\misc\win32\rand.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_portable.h"\
-	
-
-.\misc\win32\start.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_signal.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_threadproc.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\misc\win32\utf8.c : \
-	".\include\apr_lib.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\misc\unix\version.c : \
-	".\include\apr_version.h"\
-	
-
-.\mmap\unix\common.c : \
-	".\include\apr_mmap.h"\
-	
-
-.\mmap\win32\mmap.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_mmap.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\network_io\unix\inet_ntop.c : \
-	".\include\apr_poll.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_networkio.h"\
-	
-
-.\network_io\unix\inet_pton.c : \
-	".\include\apr_poll.h"\
-	".\include\arch\win32\apr_arch_networkio.h"\
-	
-
-.\network_io\unix\multicast.c : \
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_support.h"\
-	".\include\arch\win32\apr_arch_inherit.h"\
-	".\include\arch\win32\apr_arch_networkio.h"\
-	
-
-.\network_io\win32\sendrecv.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_networkio.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\network_io\unix\sockaddr.c : \
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_networkio.h"\
-	
-
-.\network_io\unix\socket_util.c : \
-	".\include\apr_poll.h"\
-	
-
-.\network_io\win32\sockets.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_inherit.h"\
-	".\include\arch\win32\apr_arch_networkio.h"\
-	
-
-.\network_io\win32\sockopt.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_networkio.h"\
-	
-
-.\passwd\apr_getpass.c : \
-	".\include\apr_lib.h"\
-	".\include\apr_strings.h"\
-	
-
-.\poll\unix\poll.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\arch\unix\apr_arch_poll_private.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_networkio.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\poll\unix\pollcb.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\arch\unix\apr_arch_poll_private.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_networkio.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\poll\unix\pollset.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\arch\unix\apr_arch_poll_private.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_inherit.h"\
-	".\include\arch\win32\apr_arch_networkio.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\poll\unix\select.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\arch\unix\apr_arch_poll_private.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_networkio.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\random\unix\apr_random.c : \
-	".\include\apr_random.h"\
-	
-
-.\random\unix\sha2.c : \
-	".\random\unix\sha2.h"\
-	
-
-.\random\unix\sha2_glue.c : \
-	".\include\apr_random.h"\
-	".\random\unix\sha2.h"\
-	
-
-.\shmem\win32\shm.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\strings\apr_cpystrn.c : \
-	".\include\apr_lib.h"\
-	".\include\apr_strings.h"\
-	
-
-.\strings\apr_fnmatch.c : \
-	".\include\apr_fnmatch.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_strings.h"\
-	
-
-.\strings\apr_snprintf.c : \
-	".\include\apr_lib.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	
-
-.\strings\apr_strings.c : \
-	".\include\apr_lib.h"\
-	".\include\apr_strings.h"\
-	
-
-.\strings\apr_strnatcmp.c : \
-	".\include\apr_lib.h"\
-	".\include\apr_strings.h"\
-	
-
-.\strings\apr_strtok.c : \
-	".\include\apr_strings.h"\
-	
-
-.\tables\apr_hash.c : \
-	".\include\apr_hash.h"\
-	
-
-.\tables\apr_tables.c : \
-	".\include\apr_lib.h"\
-	".\include\apr_strings.h"\
-	
-
-.\threadproc\win32\proc.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_threadproc.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\threadproc\win32\signals.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_signal.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_threadproc.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-.\threadproc\win32\thread.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_portable.h"\
-	".\include\arch\win32\apr_arch_threadproc.h"\
-	
-
-.\threadproc\win32\threadpriv.c : \
-	".\include\apr_lib.h"\
-	".\include\apr_portable.h"\
-	".\include\arch\win32\apr_arch_threadproc.h"\
-	
-
-.\time\win32\time.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_portable.h"\
-	".\include\arch\win32\apr_arch_atime.h"\
-	
-
-.\time\win32\timestr.c : \
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_atime.h"\
-	
-
-.\user\win32\groupinfo.c : \
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	
-
-.\user\win32\userinfo.c : \
-	".\include\apr_getopt.h"\
-	".\include\apr_lib.h"\
-	".\include\apr_poll.h"\
-	".\include\apr_portable.h"\
-	".\include\apr_strings.h"\
-	".\include\arch\win32\apr_arch_file_io.h"\
-	".\include\arch\win32\apr_arch_utf8.h"\
-	
-
-!IF  "$(CFG)" == "libapr - Win32 Release"
-
-!ELSEIF  "$(CFG)" == "libapr - Win32 Debug"
-
-!ELSEIF  "$(CFG)" == "libapr - Win32 Release9x"
-
-!ELSEIF  "$(CFG)" == "libapr - Win32 Debug9x"
-
-!ELSEIF  "$(CFG)" == "libapr - x64 Release"
-
-!ELSEIF  "$(CFG)" == "libapr - x64 Debug"
-
-!ENDIF 
-
-.\libapr.rc : \
-	".\include\apr_version.h"\
-	
+# Microsoft Developer Studio Generated Dependency File, included by libapr.mak
+
+.\atomic\win32\apr_atomic.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_atomic.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_general.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_want.h"\
+	
+
+.\dso\win32\dso.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_dso.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\encoding\apr_escape.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_escape.h"\
+	".\include\apr_escape_test_char.h"\
+	".\include\apr_general.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_want.h"\
+	
+
+.\file_io\win32\buffer.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\file_io\unix\copy.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\file_io\win32\dir.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_atime.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\file_io\unix\fileacc.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\file_io\win32\filedup.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_inherit.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\file_io\win32\filepath.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\file_io\unix\filepath_util.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_general.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\file_io\win32\filestat.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_atime.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\file_io\win32\filesys.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\file_io\win32\flock.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\file_io\unix\fullrw.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	
+
+.\file_io\unix\mktemp.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_inherit.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\file_io\win32\open.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_inherit.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\file_io\win32\pipe.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\file_io\win32\readwrite.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_atime.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\file_io\win32\seek.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\file_io\unix\tempdir.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_env.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\locks\win32\proc_mutex.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_proc_mutex.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\locks\win32\thread_cond.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_cond.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_thread_cond.h"\
+	".\include\arch\win32\apr_arch_thread_mutex.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\locks\win32\thread_mutex.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_thread_mutex.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\locks\win32\thread_rwlock.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_thread_rwlock.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_thread_rwlock.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\memory\unix\apr_pools.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_atomic.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_env.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_hash.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\misc\win32\charset.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	
+
+.\misc\win32\env.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_env.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\misc\unix\errorcodes.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\misc\unix\getopt.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\misc\win32\internal.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\misc\win32\misc.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\misc\unix\otherchild.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_threadproc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\misc\win32\rand.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\misc\win32\start.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_signal.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_threadproc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\misc\win32\utf8.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_general.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\misc\unix\version.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_general.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_version.h"\
+	".\include\apr_want.h"\
+	
+
+.\mmap\unix\common.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_mmap.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_ring.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\mmap\win32\mmap.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_mmap.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_ring.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\network_io\unix\inet_ntop.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_networkio.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\network_io\unix\inet_pton.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_networkio.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\network_io\unix\multicast.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_support.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\win32\apr_arch_inherit.h"\
+	".\include\arch\win32\apr_arch_networkio.h"\
+	
+
+.\network_io\win32\sendrecv.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_networkio.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\network_io\unix\sockaddr.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_networkio.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\network_io\unix\socket_util.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	
+
+.\network_io\win32\sockets.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_inherit.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_networkio.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\network_io\win32\sockopt.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_networkio.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\passwd\apr_getpass.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_general.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\poll\unix\poll.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_ring.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\unix\apr_arch_poll_private.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_networkio.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\poll\unix\pollcb.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_ring.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\unix\apr_arch_poll_private.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_networkio.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\poll\unix\pollset.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_ring.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\unix\apr_arch_poll_private.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_inherit.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_networkio.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\poll\unix\select.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_ring.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\unix\apr_arch_poll_private.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_networkio.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\random\unix\apr_random.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_random.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	
+
+.\random\unix\sha2.c : \
+	".\include\apr.h"\
+	".\random\unix\sha2.h"\
+	
+
+.\random\unix\sha2_glue.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_random.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\random\unix\sha2.h"\
+	
+
+.\shmem\win32\shm.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\strings\apr_cpystrn.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_general.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\strings\apr_fnmatch.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_fnmatch.h"\
+	".\include\apr_general.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	
+
+.\strings\apr_snprintf.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\strings\apr_strings.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_general.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\strings\apr_strnatcmp.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_general.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_want.h"\
+	
+
+.\strings\apr_strtok.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_general.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_want.h"\
+	
+
+.\tables\apr_hash.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_general.h"\
+	".\include\apr_hash.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_time.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\tables\apr_skiplist.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_skiplist.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	
+
+.\tables\apr_tables.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_general.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\threadproc\win32\proc.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_threadproc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\threadproc\win32\signals.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_signal.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_threadproc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\threadproc\win32\thread.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_threadproc.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\threadproc\win32\threadpriv.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_threadproc.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\time\win32\time.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_atime.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\time\win32\timestr.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_atime.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\user\win32\groupinfo.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+.\user\win32\userinfo.c : \
+	".\include\apr.h"\
+	".\include\apr_allocator.h"\
+	".\include\apr_dso.h"\
+	".\include\apr_errno.h"\
+	".\include\apr_file_info.h"\
+	".\include\apr_file_io.h"\
+	".\include\apr_general.h"\
+	".\include\apr_getopt.h"\
+	".\include\apr_global_mutex.h"\
+	".\include\apr_inherit.h"\
+	".\include\apr_lib.h"\
+	".\include\apr_network_io.h"\
+	".\include\apr_poll.h"\
+	".\include\apr_pools.h"\
+	".\include\apr_portable.h"\
+	".\include\apr_proc_mutex.h"\
+	".\include\apr_shm.h"\
+	".\include\apr_strings.h"\
+	".\include\apr_tables.h"\
+	".\include\apr_thread_mutex.h"\
+	".\include\apr_thread_proc.h"\
+	".\include\apr_time.h"\
+	".\include\apr_user.h"\
+	".\include\apr_want.h"\
+	".\include\arch\apr_private_common.h"\
+	".\include\arch\win32\apr_arch_file_io.h"\
+	".\include\arch\win32\apr_arch_misc.h"\
+	".\include\arch\win32\apr_arch_utf8.h"\
+	".\include\arch\win32\apr_private.h"\
+	
+
+!IF  "$(CFG)" == "libapr - Win32 Release"
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Debug"
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Release9x"
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Debug9x"
+
+!ELSEIF  "$(CFG)" == "libapr - x64 Release"
+
+!ELSEIF  "$(CFG)" == "libapr - x64 Debug"
+
+!ENDIF 
+
+!IF  "$(CFG)" == "libapr - Win32 Release"
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Debug"
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Release9x"
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Debug9x"
+
+!ELSEIF  "$(CFG)" == "libapr - x64 Release"
+
+!ELSEIF  "$(CFG)" == "libapr - x64 Debug"
+
+!ENDIF 
+
+!IF  "$(CFG)" == "libapr - Win32 Release"
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Debug"
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Release9x"
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Debug9x"
+
+!ELSEIF  "$(CFG)" == "libapr - x64 Release"
+
+!ELSEIF  "$(CFG)" == "libapr - x64 Debug"
+
+!ENDIF 
+
+.\libapr.rc : \
+	".\include\apr.h"\
+	".\include\apr_version.h"\
+	
diff --git a/contrib/apr/libapr.dsp b/contrib/apr/libapr.dsp
index b1783bf3f..f121ef9ff 100644
--- a/contrib/apr/libapr.dsp
+++ b/contrib/apr/libapr.dsp
@@ -254,6 +254,14 @@ SOURCE=.\atomic\win32\apr_atomic.c
 SOURCE=.\dso\win32\dso.c
 # End Source File
 # End Group
+# Begin Group "encoding"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\encoding\apr_escape.c
+# End Source File
+# End Group
 # Begin Group "file_io"
 
 # PROP Default_Filter ""
@@ -546,6 +554,10 @@ SOURCE=.\tables\apr_hash.c
 
 SOURCE=.\tables\apr_tables.c
 # End Source File
+# Begin Source File
+
+SOURCE=.\tables\apr_skiplist.c
+# End Source File
 # End Group
 # Begin Group "threadproc"
 
@@ -746,6 +758,79 @@ SOURCE=.\include\apr_errno.h
 # End Source File
 # Begin Source File
 
+SOURCE=.\include\apr_escape.h
+
+!IF  "$(CFG)" == "libapr - Win32 Release"
+
+# Begin Custom Build - Creating gen_test_char.exe and apr_escape_test_char.h
+InputPath=.\include\apr_escape.h
+
+".\Release\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	cl.exe /nologo /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /I ".\include" /Fo.\Release\gen_test_char /Fe.\Release\gen_test_char.exe .\tools\gen_test_char.c 
+	.\Release\gen_test_char.exe > .\include\apr_escape_test_char.h
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Debug"
+
+# Begin Custom Build - Creating gen_test_char.exe and apr_escape_test_char.h
+InputPath=.\include\apr_escape.h
+
+".\Debug\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	cl.exe /nologo /W3 /EHsc /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /I ".\include" /Fo.\Debug\gen_test_char /Fe.\Debug\gen_test_char.exe .\tools\gen_test_char.c  
+	.\Debug\gen_test_char.exe > .\include\apr_escape_test_char.h
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Release9x"
+
+# Begin Custom Build - Creating gen_test_char.exe and apr_escape_test_char.h
+InputPath=.\include\apr_escape.h
+
+".\9x\Release\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	cl.exe /nologo /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /I ".\include" /Fo.\9x\Release\gen_test_char /Fe.\9x\Release\gen_test_char.exe .\tools\gen_test_char.c 
+	.\9x\Release\gen_test_char.exe > .\include\apr_escape_test_char.h
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Debug9x"
+
+# Begin Custom Build - Creating gen_test_char.exe and apr_escape_test_char.h
+InputPath=.\include\apr_escape.h
+
+".\9x\Debug\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	cl.exe /nologo /W3 /EHsc /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /I ".\include" /Fo.\9x\Debug\gen_test_char /Fe.\9x\Debug\gen_test_char.exe .\tools\gen_test_char.c  
+	.\9x\Debug\gen_test_char.exe > .\include\apr_escape_test_char.h
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "libapr - x64 Release"
+
+# Begin Custom Build - Creating gen_test_char.exe and apr_escape_test_char.h
+InputPath=.\include\apr_escape.h
+
+".\x64\Release\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	cl.exe /nologo /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /I ".\include" /Fo.\x64\Release\gen_test_char /Fe.\x64\Release\gen_test_char.exe .\tools\gen_test_char.c 
+	.\x64\Release\gen_test_char.exe > .\include\apr_escape_test_char.h
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "libapr - x64 Debug"
+
+# Begin Custom Build - Creating gen_test_char.exe and apr_escape_test_char.h
+InputPath=.\include\apr_escape.h
+
+".\x64\Debug\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	cl.exe /nologo /W3 /EHsc /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /I ".\include" /Fo.\x64\Debug\gen_test_char /Fe.\x64\Debug\gen_test_char.exe .\tools\gen_test_char.c 
+	.\x64\Debug\gen_test_char.exe > .\include\apr_escape_test_char.h
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
 SOURCE=.\include\apr_file_info.h
 # End Source File
 # Begin Source File
@@ -822,6 +907,10 @@ SOURCE=.\include\apr_signal.h
 # End Source File
 # Begin Source File
 
+SOURCE=.\include\apr_skiplist.h
+# End Source File
+# Begin Source File
+
 SOURCE=.\include\apr_strings.h
 # End Source File
 # Begin Source File
@@ -863,6 +952,69 @@ SOURCE=.\include\apr_version.h
 # Begin Source File
 
 SOURCE=.\include\apr_want.h
+
+!IF  "$(CFG)" == "libapr - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\include\apr_want.h
+
+".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	type .\include\apr.hw > .\include\apr.h
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\include\apr_want.h
+
+".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	type .\include\apr.hw > .\include\apr.h
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Release9x"
+
+# Begin Custom Build
+InputPath=.\include\apr_want.h
+
+".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	type .\include\apr.hw > .\include\apr.h
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Debug9x"
+
+# Begin Custom Build
+InputPath=.\include\apr_want.h
+
+".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	type .\include\apr.hw > .\include\apr.h
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "libapr - x64 Release"
+
+# Begin Custom Build
+InputPath=.\include\apr_want.h
+
+".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	type .\include\apr.hw > .\include\apr.h
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "libapr - x64 Debug"
+
+# Begin Custom Build
+InputPath=.\include\apr_want.h
+
+".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	type .\include\apr.hw > .\include\apr.h
+
+# End Custom Build
+
+!ENDIF 
+
 # End Source File
 # End Group
 # Begin Source File
diff --git a/contrib/apr/libapr.mak b/contrib/apr/libapr.mak
index fef3a4820..8966d18f8 100644
--- a/contrib/apr/libapr.mak
+++ b/contrib/apr/libapr.mak
@@ -1,1917 +1,2118 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on libapr.dsp
-!IF "$(CFG)" == ""
-CFG=libapr - Win32 Release
-!MESSAGE No configuration specified. Defaulting to libapr - Win32 Release.
-!ENDIF 
-
-!IF "$(CFG)" != "libapr - Win32 Release" && "$(CFG)" != "libapr - Win32 Debug" && "$(CFG)" != "libapr - Win32 Release9x" && "$(CFG)" != "libapr - Win32 Debug9x" && "$(CFG)" != "libapr - x64 Release" && "$(CFG)" != "libapr - 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 "libapr.mak" CFG="libapr - Win32 Release"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "libapr - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "libapr - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "libapr - Win32 Release9x" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "libapr - Win32 Debug9x" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "libapr - x64 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "libapr - 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)" == "libapr - Win32 Release"
-
-OUTDIR=.\Release
-INTDIR=.\Release
-DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
-# Begin Custom Macros
-OutDir=.\Release
-# End Custom Macros
-
-ALL : "$(OUTDIR)\libapr-1.dll" "$(DS_POSTBUILD_DEP)"
-
-
-CLEAN :
-	-@erase "$(INTDIR)\apr_atomic.obj"
-	-@erase "$(INTDIR)\apr_cpystrn.obj"
-	-@erase "$(INTDIR)\apr_fnmatch.obj"
-	-@erase "$(INTDIR)\apr_getpass.obj"
-	-@erase "$(INTDIR)\apr_hash.obj"
-	-@erase "$(INTDIR)\apr_pools.obj"
-	-@erase "$(INTDIR)\apr_random.obj"
-	-@erase "$(INTDIR)\apr_snprintf.obj"
-	-@erase "$(INTDIR)\apr_strings.obj"
-	-@erase "$(INTDIR)\apr_strnatcmp.obj"
-	-@erase "$(INTDIR)\apr_strtok.obj"
-	-@erase "$(INTDIR)\apr_tables.obj"
-	-@erase "$(INTDIR)\buffer.obj"
-	-@erase "$(INTDIR)\charset.obj"
-	-@erase "$(INTDIR)\common.obj"
-	-@erase "$(INTDIR)\copy.obj"
-	-@erase "$(INTDIR)\dir.obj"
-	-@erase "$(INTDIR)\dso.obj"
-	-@erase "$(INTDIR)\env.obj"
-	-@erase "$(INTDIR)\errorcodes.obj"
-	-@erase "$(INTDIR)\fileacc.obj"
-	-@erase "$(INTDIR)\filedup.obj"
-	-@erase "$(INTDIR)\filepath.obj"
-	-@erase "$(INTDIR)\filepath_util.obj"
-	-@erase "$(INTDIR)\filestat.obj"
-	-@erase "$(INTDIR)\filesys.obj"
-	-@erase "$(INTDIR)\flock.obj"
-	-@erase "$(INTDIR)\fullrw.obj"
-	-@erase "$(INTDIR)\getopt.obj"
-	-@erase "$(INTDIR)\groupinfo.obj"
-	-@erase "$(INTDIR)\inet_ntop.obj"
-	-@erase "$(INTDIR)\inet_pton.obj"
-	-@erase "$(INTDIR)\internal.obj"
-	-@erase "$(INTDIR)\libapr.res"
-	-@erase "$(INTDIR)\libapr_src.idb"
-	-@erase "$(INTDIR)\libapr_src.pdb"
-	-@erase "$(INTDIR)\misc.obj"
-	-@erase "$(INTDIR)\mktemp.obj"
-	-@erase "$(INTDIR)\mmap.obj"
-	-@erase "$(INTDIR)\multicast.obj"
-	-@erase "$(INTDIR)\open.obj"
-	-@erase "$(INTDIR)\otherchild.obj"
-	-@erase "$(INTDIR)\pipe.obj"
-	-@erase "$(INTDIR)\poll.obj"
-	-@erase "$(INTDIR)\pollcb.obj"
-	-@erase "$(INTDIR)\pollset.obj"
-	-@erase "$(INTDIR)\proc.obj"
-	-@erase "$(INTDIR)\proc_mutex.obj"
-	-@erase "$(INTDIR)\rand.obj"
-	-@erase "$(INTDIR)\readwrite.obj"
-	-@erase "$(INTDIR)\seek.obj"
-	-@erase "$(INTDIR)\select.obj"
-	-@erase "$(INTDIR)\sendrecv.obj"
-	-@erase "$(INTDIR)\sha2.obj"
-	-@erase "$(INTDIR)\sha2_glue.obj"
-	-@erase "$(INTDIR)\shm.obj"
-	-@erase "$(INTDIR)\signals.obj"
-	-@erase "$(INTDIR)\sockaddr.obj"
-	-@erase "$(INTDIR)\socket_util.obj"
-	-@erase "$(INTDIR)\sockets.obj"
-	-@erase "$(INTDIR)\sockopt.obj"
-	-@erase "$(INTDIR)\start.obj"
-	-@erase "$(INTDIR)\tempdir.obj"
-	-@erase "$(INTDIR)\thread.obj"
-	-@erase "$(INTDIR)\thread_cond.obj"
-	-@erase "$(INTDIR)\thread_mutex.obj"
-	-@erase "$(INTDIR)\thread_rwlock.obj"
-	-@erase "$(INTDIR)\threadpriv.obj"
-	-@erase "$(INTDIR)\time.obj"
-	-@erase "$(INTDIR)\timestr.obj"
-	-@erase "$(INTDIR)\userinfo.obj"
-	-@erase "$(INTDIR)\utf8.obj"
-	-@erase "$(INTDIR)\version.obj"
-	-@erase "$(OUTDIR)\libapr-1.dll"
-	-@erase "$(OUTDIR)\libapr-1.exp"
-	-@erase "$(OUTDIR)\libapr-1.lib"
-	-@erase "$(OUTDIR)\libapr-1.pdb"
-
-"$(OUTDIR)" :
-    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "NDEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libapr_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)\libapr.res" /i "./include" /d "NDEBUG" /d "APR_VERSION_ONLY" 
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\libapr.bsc" 
-BSC32_SBRS= \
-	
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib shell32.lib rpcrt4.lib /nologo /base:"0x6EEC0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libapr-1.pdb" /debug /out:"$(OUTDIR)\libapr-1.dll" /implib:"$(OUTDIR)\libapr-1.lib" /MACHINE:X86 /opt:ref 
-LINK32_OBJS= \
-	"$(INTDIR)\apr_atomic.obj" \
-	"$(INTDIR)\dso.obj" \
-	"$(INTDIR)\buffer.obj" \
-	"$(INTDIR)\copy.obj" \
-	"$(INTDIR)\dir.obj" \
-	"$(INTDIR)\fileacc.obj" \
-	"$(INTDIR)\filedup.obj" \
-	"$(INTDIR)\filepath.obj" \
-	"$(INTDIR)\filepath_util.obj" \
-	"$(INTDIR)\filestat.obj" \
-	"$(INTDIR)\filesys.obj" \
-	"$(INTDIR)\flock.obj" \
-	"$(INTDIR)\fullrw.obj" \
-	"$(INTDIR)\mktemp.obj" \
-	"$(INTDIR)\open.obj" \
-	"$(INTDIR)\pipe.obj" \
-	"$(INTDIR)\readwrite.obj" \
-	"$(INTDIR)\seek.obj" \
-	"$(INTDIR)\tempdir.obj" \
-	"$(INTDIR)\proc_mutex.obj" \
-	"$(INTDIR)\thread_cond.obj" \
-	"$(INTDIR)\thread_mutex.obj" \
-	"$(INTDIR)\thread_rwlock.obj" \
-	"$(INTDIR)\apr_pools.obj" \
-	"$(INTDIR)\charset.obj" \
-	"$(INTDIR)\env.obj" \
-	"$(INTDIR)\errorcodes.obj" \
-	"$(INTDIR)\getopt.obj" \
-	"$(INTDIR)\internal.obj" \
-	"$(INTDIR)\misc.obj" \
-	"$(INTDIR)\otherchild.obj" \
-	"$(INTDIR)\rand.obj" \
-	"$(INTDIR)\start.obj" \
-	"$(INTDIR)\utf8.obj" \
-	"$(INTDIR)\version.obj" \
-	"$(INTDIR)\common.obj" \
-	"$(INTDIR)\mmap.obj" \
-	"$(INTDIR)\inet_ntop.obj" \
-	"$(INTDIR)\inet_pton.obj" \
-	"$(INTDIR)\multicast.obj" \
-	"$(INTDIR)\sendrecv.obj" \
-	"$(INTDIR)\sockaddr.obj" \
-	"$(INTDIR)\sockets.obj" \
-	"$(INTDIR)\socket_util.obj" \
-	"$(INTDIR)\sockopt.obj" \
-	"$(INTDIR)\apr_getpass.obj" \
-	"$(INTDIR)\poll.obj" \
-	"$(INTDIR)\pollcb.obj" \
-	"$(INTDIR)\pollset.obj" \
-	"$(INTDIR)\select.obj" \
-	"$(INTDIR)\apr_random.obj" \
-	"$(INTDIR)\sha2.obj" \
-	"$(INTDIR)\sha2_glue.obj" \
-	"$(INTDIR)\shm.obj" \
-	"$(INTDIR)\apr_cpystrn.obj" \
-	"$(INTDIR)\apr_fnmatch.obj" \
-	"$(INTDIR)\apr_snprintf.obj" \
-	"$(INTDIR)\apr_strings.obj" \
-	"$(INTDIR)\apr_strnatcmp.obj" \
-	"$(INTDIR)\apr_strtok.obj" \
-	"$(INTDIR)\apr_hash.obj" \
-	"$(INTDIR)\apr_tables.obj" \
-	"$(INTDIR)\proc.obj" \
-	"$(INTDIR)\signals.obj" \
-	"$(INTDIR)\thread.obj" \
-	"$(INTDIR)\threadpriv.obj" \
-	"$(INTDIR)\time.obj" \
-	"$(INTDIR)\timestr.obj" \
-	"$(INTDIR)\groupinfo.obj" \
-	"$(INTDIR)\userinfo.obj" \
-	"$(INTDIR)\libapr.res"
-
-"$(OUTDIR)\libapr-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
-    $(LINK32) @<<
-  $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-TargetPath=.\Release\libapr-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)\libapr-1.dll"
-   if exist .\Release\libapr-1.dll.manifest mt.exe -manifest .\Release\libapr-1.dll.manifest -outputresource:.\Release\libapr-1.dll;2
-	echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
-
-!ELSEIF  "$(CFG)" == "libapr - Win32 Debug"
-
-OUTDIR=.\Debug
-INTDIR=.\Debug
-DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
-# Begin Custom Macros
-OutDir=.\Debug
-# End Custom Macros
-
-ALL : ".\include\apr.h" "$(OUTDIR)\libapr-1.dll" "$(DS_POSTBUILD_DEP)"
-
-
-CLEAN :
-	-@erase "$(INTDIR)\apr_atomic.obj"
-	-@erase "$(INTDIR)\apr_cpystrn.obj"
-	-@erase "$(INTDIR)\apr_fnmatch.obj"
-	-@erase "$(INTDIR)\apr_getpass.obj"
-	-@erase "$(INTDIR)\apr_hash.obj"
-	-@erase "$(INTDIR)\apr_pools.obj"
-	-@erase "$(INTDIR)\apr_random.obj"
-	-@erase "$(INTDIR)\apr_snprintf.obj"
-	-@erase "$(INTDIR)\apr_strings.obj"
-	-@erase "$(INTDIR)\apr_strnatcmp.obj"
-	-@erase "$(INTDIR)\apr_strtok.obj"
-	-@erase "$(INTDIR)\apr_tables.obj"
-	-@erase "$(INTDIR)\buffer.obj"
-	-@erase "$(INTDIR)\charset.obj"
-	-@erase "$(INTDIR)\common.obj"
-	-@erase "$(INTDIR)\copy.obj"
-	-@erase "$(INTDIR)\dir.obj"
-	-@erase "$(INTDIR)\dso.obj"
-	-@erase "$(INTDIR)\env.obj"
-	-@erase "$(INTDIR)\errorcodes.obj"
-	-@erase "$(INTDIR)\fileacc.obj"
-	-@erase "$(INTDIR)\filedup.obj"
-	-@erase "$(INTDIR)\filepath.obj"
-	-@erase "$(INTDIR)\filepath_util.obj"
-	-@erase "$(INTDIR)\filestat.obj"
-	-@erase "$(INTDIR)\filesys.obj"
-	-@erase "$(INTDIR)\flock.obj"
-	-@erase "$(INTDIR)\fullrw.obj"
-	-@erase "$(INTDIR)\getopt.obj"
-	-@erase "$(INTDIR)\groupinfo.obj"
-	-@erase "$(INTDIR)\inet_ntop.obj"
-	-@erase "$(INTDIR)\inet_pton.obj"
-	-@erase "$(INTDIR)\internal.obj"
-	-@erase "$(INTDIR)\libapr.res"
-	-@erase "$(INTDIR)\libapr_src.idb"
-	-@erase "$(INTDIR)\libapr_src.pdb"
-	-@erase "$(INTDIR)\misc.obj"
-	-@erase "$(INTDIR)\mktemp.obj"
-	-@erase "$(INTDIR)\mmap.obj"
-	-@erase "$(INTDIR)\multicast.obj"
-	-@erase "$(INTDIR)\open.obj"
-	-@erase "$(INTDIR)\otherchild.obj"
-	-@erase "$(INTDIR)\pipe.obj"
-	-@erase "$(INTDIR)\poll.obj"
-	-@erase "$(INTDIR)\pollcb.obj"
-	-@erase "$(INTDIR)\pollset.obj"
-	-@erase "$(INTDIR)\proc.obj"
-	-@erase "$(INTDIR)\proc_mutex.obj"
-	-@erase "$(INTDIR)\rand.obj"
-	-@erase "$(INTDIR)\readwrite.obj"
-	-@erase "$(INTDIR)\seek.obj"
-	-@erase "$(INTDIR)\select.obj"
-	-@erase "$(INTDIR)\sendrecv.obj"
-	-@erase "$(INTDIR)\sha2.obj"
-	-@erase "$(INTDIR)\sha2_glue.obj"
-	-@erase "$(INTDIR)\shm.obj"
-	-@erase "$(INTDIR)\signals.obj"
-	-@erase "$(INTDIR)\sockaddr.obj"
-	-@erase "$(INTDIR)\socket_util.obj"
-	-@erase "$(INTDIR)\sockets.obj"
-	-@erase "$(INTDIR)\sockopt.obj"
-	-@erase "$(INTDIR)\start.obj"
-	-@erase "$(INTDIR)\tempdir.obj"
-	-@erase "$(INTDIR)\thread.obj"
-	-@erase "$(INTDIR)\thread_cond.obj"
-	-@erase "$(INTDIR)\thread_mutex.obj"
-	-@erase "$(INTDIR)\thread_rwlock.obj"
-	-@erase "$(INTDIR)\threadpriv.obj"
-	-@erase "$(INTDIR)\time.obj"
-	-@erase "$(INTDIR)\timestr.obj"
-	-@erase "$(INTDIR)\userinfo.obj"
-	-@erase "$(INTDIR)\utf8.obj"
-	-@erase "$(INTDIR)\version.obj"
-	-@erase "$(OUTDIR)\libapr-1.dll"
-	-@erase "$(OUTDIR)\libapr-1.exp"
-	-@erase "$(OUTDIR)\libapr-1.lib"
-	-@erase "$(OUTDIR)\libapr-1.pdb"
-	-@erase ".\include\apr.h"
-
-"$(OUTDIR)" :
-    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "_DEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libapr_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)\libapr.res" /i "./include" /d "_DEBUG" /d "APR_VERSION_ONLY" 
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\libapr.bsc" 
-BSC32_SBRS= \
-	
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib shell32.lib rpcrt4.lib /nologo /base:"0x6EEC0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libapr-1.pdb" /debug /out:"$(OUTDIR)\libapr-1.dll" /implib:"$(OUTDIR)\libapr-1.lib" /MACHINE:X86 
-LINK32_OBJS= \
-	"$(INTDIR)\apr_atomic.obj" \
-	"$(INTDIR)\dso.obj" \
-	"$(INTDIR)\buffer.obj" \
-	"$(INTDIR)\copy.obj" \
-	"$(INTDIR)\dir.obj" \
-	"$(INTDIR)\fileacc.obj" \
-	"$(INTDIR)\filedup.obj" \
-	"$(INTDIR)\filepath.obj" \
-	"$(INTDIR)\filepath_util.obj" \
-	"$(INTDIR)\filestat.obj" \
-	"$(INTDIR)\filesys.obj" \
-	"$(INTDIR)\flock.obj" \
-	"$(INTDIR)\fullrw.obj" \
-	"$(INTDIR)\mktemp.obj" \
-	"$(INTDIR)\open.obj" \
-	"$(INTDIR)\pipe.obj" \
-	"$(INTDIR)\readwrite.obj" \
-	"$(INTDIR)\seek.obj" \
-	"$(INTDIR)\tempdir.obj" \
-	"$(INTDIR)\proc_mutex.obj" \
-	"$(INTDIR)\thread_cond.obj" \
-	"$(INTDIR)\thread_mutex.obj" \
-	"$(INTDIR)\thread_rwlock.obj" \
-	"$(INTDIR)\apr_pools.obj" \
-	"$(INTDIR)\charset.obj" \
-	"$(INTDIR)\env.obj" \
-	"$(INTDIR)\errorcodes.obj" \
-	"$(INTDIR)\getopt.obj" \
-	"$(INTDIR)\internal.obj" \
-	"$(INTDIR)\misc.obj" \
-	"$(INTDIR)\otherchild.obj" \
-	"$(INTDIR)\rand.obj" \
-	"$(INTDIR)\start.obj" \
-	"$(INTDIR)\utf8.obj" \
-	"$(INTDIR)\version.obj" \
-	"$(INTDIR)\common.obj" \
-	"$(INTDIR)\mmap.obj" \
-	"$(INTDIR)\inet_ntop.obj" \
-	"$(INTDIR)\inet_pton.obj" \
-	"$(INTDIR)\multicast.obj" \
-	"$(INTDIR)\sendrecv.obj" \
-	"$(INTDIR)\sockaddr.obj" \
-	"$(INTDIR)\sockets.obj" \
-	"$(INTDIR)\socket_util.obj" \
-	"$(INTDIR)\sockopt.obj" \
-	"$(INTDIR)\apr_getpass.obj" \
-	"$(INTDIR)\poll.obj" \
-	"$(INTDIR)\pollcb.obj" \
-	"$(INTDIR)\pollset.obj" \
-	"$(INTDIR)\select.obj" \
-	"$(INTDIR)\apr_random.obj" \
-	"$(INTDIR)\sha2.obj" \
-	"$(INTDIR)\sha2_glue.obj" \
-	"$(INTDIR)\shm.obj" \
-	"$(INTDIR)\apr_cpystrn.obj" \
-	"$(INTDIR)\apr_fnmatch.obj" \
-	"$(INTDIR)\apr_snprintf.obj" \
-	"$(INTDIR)\apr_strings.obj" \
-	"$(INTDIR)\apr_strnatcmp.obj" \
-	"$(INTDIR)\apr_strtok.obj" \
-	"$(INTDIR)\apr_hash.obj" \
-	"$(INTDIR)\apr_tables.obj" \
-	"$(INTDIR)\proc.obj" \
-	"$(INTDIR)\signals.obj" \
-	"$(INTDIR)\thread.obj" \
-	"$(INTDIR)\threadpriv.obj" \
-	"$(INTDIR)\time.obj" \
-	"$(INTDIR)\timestr.obj" \
-	"$(INTDIR)\groupinfo.obj" \
-	"$(INTDIR)\userinfo.obj" \
-	"$(INTDIR)\libapr.res"
-
-"$(OUTDIR)\libapr-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
-    $(LINK32) @<<
-  $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-TargetPath=.\Debug\libapr-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)\libapr-1.dll"
-   if exist .\Debug\libapr-1.dll.manifest mt.exe -manifest .\Debug\libapr-1.dll.manifest -outputresource:.\Debug\libapr-1.dll;2
-	echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
-
-!ELSEIF  "$(CFG)" == "libapr - Win32 Release9x"
-
-OUTDIR=.\9x\Release
-INTDIR=.\9x\Release
-DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
-# Begin Custom Macros
-OutDir=.\9x\Release
-# End Custom Macros
-
-ALL : ".\include\apr.h" "$(OUTDIR)\libapr-1.dll" "$(DS_POSTBUILD_DEP)"
-
-
-CLEAN :
-	-@erase "$(INTDIR)\apr_atomic.obj"
-	-@erase "$(INTDIR)\apr_cpystrn.obj"
-	-@erase "$(INTDIR)\apr_fnmatch.obj"
-	-@erase "$(INTDIR)\apr_getpass.obj"
-	-@erase "$(INTDIR)\apr_hash.obj"
-	-@erase "$(INTDIR)\apr_pools.obj"
-	-@erase "$(INTDIR)\apr_random.obj"
-	-@erase "$(INTDIR)\apr_snprintf.obj"
-	-@erase "$(INTDIR)\apr_strings.obj"
-	-@erase "$(INTDIR)\apr_strnatcmp.obj"
-	-@erase "$(INTDIR)\apr_strtok.obj"
-	-@erase "$(INTDIR)\apr_tables.obj"
-	-@erase "$(INTDIR)\buffer.obj"
-	-@erase "$(INTDIR)\charset.obj"
-	-@erase "$(INTDIR)\common.obj"
-	-@erase "$(INTDIR)\copy.obj"
-	-@erase "$(INTDIR)\dir.obj"
-	-@erase "$(INTDIR)\dso.obj"
-	-@erase "$(INTDIR)\env.obj"
-	-@erase "$(INTDIR)\errorcodes.obj"
-	-@erase "$(INTDIR)\fileacc.obj"
-	-@erase "$(INTDIR)\filedup.obj"
-	-@erase "$(INTDIR)\filepath.obj"
-	-@erase "$(INTDIR)\filepath_util.obj"
-	-@erase "$(INTDIR)\filestat.obj"
-	-@erase "$(INTDIR)\filesys.obj"
-	-@erase "$(INTDIR)\flock.obj"
-	-@erase "$(INTDIR)\fullrw.obj"
-	-@erase "$(INTDIR)\getopt.obj"
-	-@erase "$(INTDIR)\groupinfo.obj"
-	-@erase "$(INTDIR)\inet_ntop.obj"
-	-@erase "$(INTDIR)\inet_pton.obj"
-	-@erase "$(INTDIR)\internal.obj"
-	-@erase "$(INTDIR)\libapr.res"
-	-@erase "$(INTDIR)\libapr_src.idb"
-	-@erase "$(INTDIR)\libapr_src.pdb"
-	-@erase "$(INTDIR)\misc.obj"
-	-@erase "$(INTDIR)\mktemp.obj"
-	-@erase "$(INTDIR)\mmap.obj"
-	-@erase "$(INTDIR)\multicast.obj"
-	-@erase "$(INTDIR)\open.obj"
-	-@erase "$(INTDIR)\otherchild.obj"
-	-@erase "$(INTDIR)\pipe.obj"
-	-@erase "$(INTDIR)\poll.obj"
-	-@erase "$(INTDIR)\pollcb.obj"
-	-@erase "$(INTDIR)\pollset.obj"
-	-@erase "$(INTDIR)\proc.obj"
-	-@erase "$(INTDIR)\proc_mutex.obj"
-	-@erase "$(INTDIR)\rand.obj"
-	-@erase "$(INTDIR)\readwrite.obj"
-	-@erase "$(INTDIR)\seek.obj"
-	-@erase "$(INTDIR)\select.obj"
-	-@erase "$(INTDIR)\sendrecv.obj"
-	-@erase "$(INTDIR)\sha2.obj"
-	-@erase "$(INTDIR)\sha2_glue.obj"
-	-@erase "$(INTDIR)\shm.obj"
-	-@erase "$(INTDIR)\signals.obj"
-	-@erase "$(INTDIR)\sockaddr.obj"
-	-@erase "$(INTDIR)\socket_util.obj"
-	-@erase "$(INTDIR)\sockets.obj"
-	-@erase "$(INTDIR)\sockopt.obj"
-	-@erase "$(INTDIR)\start.obj"
-	-@erase "$(INTDIR)\tempdir.obj"
-	-@erase "$(INTDIR)\thread.obj"
-	-@erase "$(INTDIR)\thread_cond.obj"
-	-@erase "$(INTDIR)\thread_mutex.obj"
-	-@erase "$(INTDIR)\thread_rwlock.obj"
-	-@erase "$(INTDIR)\threadpriv.obj"
-	-@erase "$(INTDIR)\time.obj"
-	-@erase "$(INTDIR)\timestr.obj"
-	-@erase "$(INTDIR)\userinfo.obj"
-	-@erase "$(INTDIR)\utf8.obj"
-	-@erase "$(INTDIR)\version.obj"
-	-@erase "$(OUTDIR)\libapr-1.dll"
-	-@erase "$(OUTDIR)\libapr-1.exp"
-	-@erase "$(OUTDIR)\libapr-1.lib"
-	-@erase "$(OUTDIR)\libapr-1.pdb"
-	-@erase ".\include\apr.h"
-
-"$(OUTDIR)" :
-    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "NDEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libapr_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)\libapr.res" /i "./include" /d "NDEBUG" /d "APR_VERSION_ONLY" 
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\libapr.bsc" 
-BSC32_SBRS= \
-	
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib shell32.lib rpcrt4.lib /nologo /base:"0x6EEC0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libapr-1.pdb" /debug /out:"$(OUTDIR)\libapr-1.dll" /implib:"$(OUTDIR)\libapr-1.lib" /MACHINE:X86 /opt:ref 
-LINK32_OBJS= \
-	"$(INTDIR)\apr_atomic.obj" \
-	"$(INTDIR)\dso.obj" \
-	"$(INTDIR)\buffer.obj" \
-	"$(INTDIR)\copy.obj" \
-	"$(INTDIR)\dir.obj" \
-	"$(INTDIR)\fileacc.obj" \
-	"$(INTDIR)\filedup.obj" \
-	"$(INTDIR)\filepath.obj" \
-	"$(INTDIR)\filepath_util.obj" \
-	"$(INTDIR)\filestat.obj" \
-	"$(INTDIR)\filesys.obj" \
-	"$(INTDIR)\flock.obj" \
-	"$(INTDIR)\fullrw.obj" \
-	"$(INTDIR)\mktemp.obj" \
-	"$(INTDIR)\open.obj" \
-	"$(INTDIR)\pipe.obj" \
-	"$(INTDIR)\readwrite.obj" \
-	"$(INTDIR)\seek.obj" \
-	"$(INTDIR)\tempdir.obj" \
-	"$(INTDIR)\proc_mutex.obj" \
-	"$(INTDIR)\thread_cond.obj" \
-	"$(INTDIR)\thread_mutex.obj" \
-	"$(INTDIR)\thread_rwlock.obj" \
-	"$(INTDIR)\apr_pools.obj" \
-	"$(INTDIR)\charset.obj" \
-	"$(INTDIR)\env.obj" \
-	"$(INTDIR)\errorcodes.obj" \
-	"$(INTDIR)\getopt.obj" \
-	"$(INTDIR)\internal.obj" \
-	"$(INTDIR)\misc.obj" \
-	"$(INTDIR)\otherchild.obj" \
-	"$(INTDIR)\rand.obj" \
-	"$(INTDIR)\start.obj" \
-	"$(INTDIR)\utf8.obj" \
-	"$(INTDIR)\version.obj" \
-	"$(INTDIR)\common.obj" \
-	"$(INTDIR)\mmap.obj" \
-	"$(INTDIR)\inet_ntop.obj" \
-	"$(INTDIR)\inet_pton.obj" \
-	"$(INTDIR)\multicast.obj" \
-	"$(INTDIR)\sendrecv.obj" \
-	"$(INTDIR)\sockaddr.obj" \
-	"$(INTDIR)\sockets.obj" \
-	"$(INTDIR)\socket_util.obj" \
-	"$(INTDIR)\sockopt.obj" \
-	"$(INTDIR)\apr_getpass.obj" \
-	"$(INTDIR)\poll.obj" \
-	"$(INTDIR)\pollcb.obj" \
-	"$(INTDIR)\pollset.obj" \
-	"$(INTDIR)\select.obj" \
-	"$(INTDIR)\apr_random.obj" \
-	"$(INTDIR)\sha2.obj" \
-	"$(INTDIR)\sha2_glue.obj" \
-	"$(INTDIR)\shm.obj" \
-	"$(INTDIR)\apr_cpystrn.obj" \
-	"$(INTDIR)\apr_fnmatch.obj" \
-	"$(INTDIR)\apr_snprintf.obj" \
-	"$(INTDIR)\apr_strings.obj" \
-	"$(INTDIR)\apr_strnatcmp.obj" \
-	"$(INTDIR)\apr_strtok.obj" \
-	"$(INTDIR)\apr_hash.obj" \
-	"$(INTDIR)\apr_tables.obj" \
-	"$(INTDIR)\proc.obj" \
-	"$(INTDIR)\signals.obj" \
-	"$(INTDIR)\thread.obj" \
-	"$(INTDIR)\threadpriv.obj" \
-	"$(INTDIR)\time.obj" \
-	"$(INTDIR)\timestr.obj" \
-	"$(INTDIR)\groupinfo.obj" \
-	"$(INTDIR)\userinfo.obj" \
-	"$(INTDIR)\libapr.res"
-
-"$(OUTDIR)\libapr-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
-    $(LINK32) @<<
-  $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-TargetPath=.\9x\Release\libapr-1.dll
-SOURCE="$(InputPath)"
-PostBuild_Desc=Embed .manifest
-DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
-
-# Begin Custom Macros
-OutDir=.\9x\Release
-# End Custom Macros
-
-"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libapr-1.dll"
-   if exist .\9x\Release\libapr-1.dll.manifest mt.exe -manifest .\9x\Release\libapr-1.dll.manifest -outputresource:.\9x\Release\libapr-1.dll;2
-	echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
-
-!ELSEIF  "$(CFG)" == "libapr - Win32 Debug9x"
-
-OUTDIR=.\9x\Debug
-INTDIR=.\9x\Debug
-DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
-# Begin Custom Macros
-OutDir=.\9x\Debug
-# End Custom Macros
-
-ALL : ".\include\apr.h" "$(OUTDIR)\libapr-1.dll" "$(DS_POSTBUILD_DEP)"
-
-
-CLEAN :
-	-@erase "$(INTDIR)\apr_atomic.obj"
-	-@erase "$(INTDIR)\apr_cpystrn.obj"
-	-@erase "$(INTDIR)\apr_fnmatch.obj"
-	-@erase "$(INTDIR)\apr_getpass.obj"
-	-@erase "$(INTDIR)\apr_hash.obj"
-	-@erase "$(INTDIR)\apr_pools.obj"
-	-@erase "$(INTDIR)\apr_random.obj"
-	-@erase "$(INTDIR)\apr_snprintf.obj"
-	-@erase "$(INTDIR)\apr_strings.obj"
-	-@erase "$(INTDIR)\apr_strnatcmp.obj"
-	-@erase "$(INTDIR)\apr_strtok.obj"
-	-@erase "$(INTDIR)\apr_tables.obj"
-	-@erase "$(INTDIR)\buffer.obj"
-	-@erase "$(INTDIR)\charset.obj"
-	-@erase "$(INTDIR)\common.obj"
-	-@erase "$(INTDIR)\copy.obj"
-	-@erase "$(INTDIR)\dir.obj"
-	-@erase "$(INTDIR)\dso.obj"
-	-@erase "$(INTDIR)\env.obj"
-	-@erase "$(INTDIR)\errorcodes.obj"
-	-@erase "$(INTDIR)\fileacc.obj"
-	-@erase "$(INTDIR)\filedup.obj"
-	-@erase "$(INTDIR)\filepath.obj"
-	-@erase "$(INTDIR)\filepath_util.obj"
-	-@erase "$(INTDIR)\filestat.obj"
-	-@erase "$(INTDIR)\filesys.obj"
-	-@erase "$(INTDIR)\flock.obj"
-	-@erase "$(INTDIR)\fullrw.obj"
-	-@erase "$(INTDIR)\getopt.obj"
-	-@erase "$(INTDIR)\groupinfo.obj"
-	-@erase "$(INTDIR)\inet_ntop.obj"
-	-@erase "$(INTDIR)\inet_pton.obj"
-	-@erase "$(INTDIR)\internal.obj"
-	-@erase "$(INTDIR)\libapr.res"
-	-@erase "$(INTDIR)\libapr_src.idb"
-	-@erase "$(INTDIR)\libapr_src.pdb"
-	-@erase "$(INTDIR)\misc.obj"
-	-@erase "$(INTDIR)\mktemp.obj"
-	-@erase "$(INTDIR)\mmap.obj"
-	-@erase "$(INTDIR)\multicast.obj"
-	-@erase "$(INTDIR)\open.obj"
-	-@erase "$(INTDIR)\otherchild.obj"
-	-@erase "$(INTDIR)\pipe.obj"
-	-@erase "$(INTDIR)\poll.obj"
-	-@erase "$(INTDIR)\pollcb.obj"
-	-@erase "$(INTDIR)\pollset.obj"
-	-@erase "$(INTDIR)\proc.obj"
-	-@erase "$(INTDIR)\proc_mutex.obj"
-	-@erase "$(INTDIR)\rand.obj"
-	-@erase "$(INTDIR)\readwrite.obj"
-	-@erase "$(INTDIR)\seek.obj"
-	-@erase "$(INTDIR)\select.obj"
-	-@erase "$(INTDIR)\sendrecv.obj"
-	-@erase "$(INTDIR)\sha2.obj"
-	-@erase "$(INTDIR)\sha2_glue.obj"
-	-@erase "$(INTDIR)\shm.obj"
-	-@erase "$(INTDIR)\signals.obj"
-	-@erase "$(INTDIR)\sockaddr.obj"
-	-@erase "$(INTDIR)\socket_util.obj"
-	-@erase "$(INTDIR)\sockets.obj"
-	-@erase "$(INTDIR)\sockopt.obj"
-	-@erase "$(INTDIR)\start.obj"
-	-@erase "$(INTDIR)\tempdir.obj"
-	-@erase "$(INTDIR)\thread.obj"
-	-@erase "$(INTDIR)\thread_cond.obj"
-	-@erase "$(INTDIR)\thread_mutex.obj"
-	-@erase "$(INTDIR)\thread_rwlock.obj"
-	-@erase "$(INTDIR)\threadpriv.obj"
-	-@erase "$(INTDIR)\time.obj"
-	-@erase "$(INTDIR)\timestr.obj"
-	-@erase "$(INTDIR)\userinfo.obj"
-	-@erase "$(INTDIR)\utf8.obj"
-	-@erase "$(INTDIR)\version.obj"
-	-@erase "$(OUTDIR)\libapr-1.dll"
-	-@erase "$(OUTDIR)\libapr-1.exp"
-	-@erase "$(OUTDIR)\libapr-1.lib"
-	-@erase "$(OUTDIR)\libapr-1.pdb"
-	-@erase ".\include\apr.h"
-
-"$(OUTDIR)" :
-    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "_DEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libapr_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)\libapr.res" /i "./include" /d "_DEBUG" /d "APR_VERSION_ONLY" 
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\libapr.bsc" 
-BSC32_SBRS= \
-	
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib shell32.lib rpcrt4.lib /nologo /base:"0x6EEC0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libapr-1.pdb" /debug /out:"$(OUTDIR)\libapr-1.dll" /implib:"$(OUTDIR)\libapr-1.lib" /MACHINE:X86 
-LINK32_OBJS= \
-	"$(INTDIR)\apr_atomic.obj" \
-	"$(INTDIR)\dso.obj" \
-	"$(INTDIR)\buffer.obj" \
-	"$(INTDIR)\copy.obj" \
-	"$(INTDIR)\dir.obj" \
-	"$(INTDIR)\fileacc.obj" \
-	"$(INTDIR)\filedup.obj" \
-	"$(INTDIR)\filepath.obj" \
-	"$(INTDIR)\filepath_util.obj" \
-	"$(INTDIR)\filestat.obj" \
-	"$(INTDIR)\filesys.obj" \
-	"$(INTDIR)\flock.obj" \
-	"$(INTDIR)\fullrw.obj" \
-	"$(INTDIR)\mktemp.obj" \
-	"$(INTDIR)\open.obj" \
-	"$(INTDIR)\pipe.obj" \
-	"$(INTDIR)\readwrite.obj" \
-	"$(INTDIR)\seek.obj" \
-	"$(INTDIR)\tempdir.obj" \
-	"$(INTDIR)\proc_mutex.obj" \
-	"$(INTDIR)\thread_cond.obj" \
-	"$(INTDIR)\thread_mutex.obj" \
-	"$(INTDIR)\thread_rwlock.obj" \
-	"$(INTDIR)\apr_pools.obj" \
-	"$(INTDIR)\charset.obj" \
-	"$(INTDIR)\env.obj" \
-	"$(INTDIR)\errorcodes.obj" \
-	"$(INTDIR)\getopt.obj" \
-	"$(INTDIR)\internal.obj" \
-	"$(INTDIR)\misc.obj" \
-	"$(INTDIR)\otherchild.obj" \
-	"$(INTDIR)\rand.obj" \
-	"$(INTDIR)\start.obj" \
-	"$(INTDIR)\utf8.obj" \
-	"$(INTDIR)\version.obj" \
-	"$(INTDIR)\common.obj" \
-	"$(INTDIR)\mmap.obj" \
-	"$(INTDIR)\inet_ntop.obj" \
-	"$(INTDIR)\inet_pton.obj" \
-	"$(INTDIR)\multicast.obj" \
-	"$(INTDIR)\sendrecv.obj" \
-	"$(INTDIR)\sockaddr.obj" \
-	"$(INTDIR)\sockets.obj" \
-	"$(INTDIR)\socket_util.obj" \
-	"$(INTDIR)\sockopt.obj" \
-	"$(INTDIR)\apr_getpass.obj" \
-	"$(INTDIR)\poll.obj" \
-	"$(INTDIR)\pollcb.obj" \
-	"$(INTDIR)\pollset.obj" \
-	"$(INTDIR)\select.obj" \
-	"$(INTDIR)\apr_random.obj" \
-	"$(INTDIR)\sha2.obj" \
-	"$(INTDIR)\sha2_glue.obj" \
-	"$(INTDIR)\shm.obj" \
-	"$(INTDIR)\apr_cpystrn.obj" \
-	"$(INTDIR)\apr_fnmatch.obj" \
-	"$(INTDIR)\apr_snprintf.obj" \
-	"$(INTDIR)\apr_strings.obj" \
-	"$(INTDIR)\apr_strnatcmp.obj" \
-	"$(INTDIR)\apr_strtok.obj" \
-	"$(INTDIR)\apr_hash.obj" \
-	"$(INTDIR)\apr_tables.obj" \
-	"$(INTDIR)\proc.obj" \
-	"$(INTDIR)\signals.obj" \
-	"$(INTDIR)\thread.obj" \
-	"$(INTDIR)\threadpriv.obj" \
-	"$(INTDIR)\time.obj" \
-	"$(INTDIR)\timestr.obj" \
-	"$(INTDIR)\groupinfo.obj" \
-	"$(INTDIR)\userinfo.obj" \
-	"$(INTDIR)\libapr.res"
-
-"$(OUTDIR)\libapr-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
-    $(LINK32) @<<
-  $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-TargetPath=.\9x\Debug\libapr-1.dll
-SOURCE="$(InputPath)"
-PostBuild_Desc=Embed .manifest
-DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
-
-# Begin Custom Macros
-OutDir=.\9x\Debug
-# End Custom Macros
-
-"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libapr-1.dll"
-   if exist .\9x\Debug\libapr-1.dll.manifest mt.exe -manifest .\9x\Debug\libapr-1.dll.manifest -outputresource:.\9x\Debug\libapr-1.dll;2
-	echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
-
-!ELSEIF  "$(CFG)" == "libapr - x64 Release"
-
-OUTDIR=.\x64\Release
-INTDIR=.\x64\Release
-DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
-# Begin Custom Macros
-OutDir=.\x64\Release
-# End Custom Macros
-
-ALL : ".\include\apr.h" "$(OUTDIR)\libapr-1.dll" "$(DS_POSTBUILD_DEP)"
-
-
-CLEAN :
-	-@erase "$(INTDIR)\apr_atomic.obj"
-	-@erase "$(INTDIR)\apr_cpystrn.obj"
-	-@erase "$(INTDIR)\apr_fnmatch.obj"
-	-@erase "$(INTDIR)\apr_getpass.obj"
-	-@erase "$(INTDIR)\apr_hash.obj"
-	-@erase "$(INTDIR)\apr_pools.obj"
-	-@erase "$(INTDIR)\apr_random.obj"
-	-@erase "$(INTDIR)\apr_snprintf.obj"
-	-@erase "$(INTDIR)\apr_strings.obj"
-	-@erase "$(INTDIR)\apr_strnatcmp.obj"
-	-@erase "$(INTDIR)\apr_strtok.obj"
-	-@erase "$(INTDIR)\apr_tables.obj"
-	-@erase "$(INTDIR)\buffer.obj"
-	-@erase "$(INTDIR)\charset.obj"
-	-@erase "$(INTDIR)\common.obj"
-	-@erase "$(INTDIR)\copy.obj"
-	-@erase "$(INTDIR)\dir.obj"
-	-@erase "$(INTDIR)\dso.obj"
-	-@erase "$(INTDIR)\env.obj"
-	-@erase "$(INTDIR)\errorcodes.obj"
-	-@erase "$(INTDIR)\fileacc.obj"
-	-@erase "$(INTDIR)\filedup.obj"
-	-@erase "$(INTDIR)\filepath.obj"
-	-@erase "$(INTDIR)\filepath_util.obj"
-	-@erase "$(INTDIR)\filestat.obj"
-	-@erase "$(INTDIR)\filesys.obj"
-	-@erase "$(INTDIR)\flock.obj"
-	-@erase "$(INTDIR)\fullrw.obj"
-	-@erase "$(INTDIR)\getopt.obj"
-	-@erase "$(INTDIR)\groupinfo.obj"
-	-@erase "$(INTDIR)\inet_ntop.obj"
-	-@erase "$(INTDIR)\inet_pton.obj"
-	-@erase "$(INTDIR)\internal.obj"
-	-@erase "$(INTDIR)\libapr.res"
-	-@erase "$(INTDIR)\libapr_src.idb"
-	-@erase "$(INTDIR)\libapr_src.pdb"
-	-@erase "$(INTDIR)\misc.obj"
-	-@erase "$(INTDIR)\mktemp.obj"
-	-@erase "$(INTDIR)\mmap.obj"
-	-@erase "$(INTDIR)\multicast.obj"
-	-@erase "$(INTDIR)\open.obj"
-	-@erase "$(INTDIR)\otherchild.obj"
-	-@erase "$(INTDIR)\pipe.obj"
-	-@erase "$(INTDIR)\poll.obj"
-	-@erase "$(INTDIR)\pollcb.obj"
-	-@erase "$(INTDIR)\pollset.obj"
-	-@erase "$(INTDIR)\proc.obj"
-	-@erase "$(INTDIR)\proc_mutex.obj"
-	-@erase "$(INTDIR)\rand.obj"
-	-@erase "$(INTDIR)\readwrite.obj"
-	-@erase "$(INTDIR)\seek.obj"
-	-@erase "$(INTDIR)\select.obj"
-	-@erase "$(INTDIR)\sendrecv.obj"
-	-@erase "$(INTDIR)\sha2.obj"
-	-@erase "$(INTDIR)\sha2_glue.obj"
-	-@erase "$(INTDIR)\shm.obj"
-	-@erase "$(INTDIR)\signals.obj"
-	-@erase "$(INTDIR)\sockaddr.obj"
-	-@erase "$(INTDIR)\socket_util.obj"
-	-@erase "$(INTDIR)\sockets.obj"
-	-@erase "$(INTDIR)\sockopt.obj"
-	-@erase "$(INTDIR)\start.obj"
-	-@erase "$(INTDIR)\tempdir.obj"
-	-@erase "$(INTDIR)\thread.obj"
-	-@erase "$(INTDIR)\thread_cond.obj"
-	-@erase "$(INTDIR)\thread_mutex.obj"
-	-@erase "$(INTDIR)\thread_rwlock.obj"
-	-@erase "$(INTDIR)\threadpriv.obj"
-	-@erase "$(INTDIR)\time.obj"
-	-@erase "$(INTDIR)\timestr.obj"
-	-@erase "$(INTDIR)\userinfo.obj"
-	-@erase "$(INTDIR)\utf8.obj"
-	-@erase "$(INTDIR)\version.obj"
-	-@erase "$(OUTDIR)\libapr-1.dll"
-	-@erase "$(OUTDIR)\libapr-1.exp"
-	-@erase "$(OUTDIR)\libapr-1.lib"
-	-@erase "$(OUTDIR)\libapr-1.pdb"
-	-@erase ".\include\apr.h"
-
-"$(OUTDIR)" :
-    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "NDEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libapr_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)\libapr.res" /i "./include" /d "NDEBUG" /d "APR_VERSION_ONLY" 
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\libapr.bsc" 
-BSC32_SBRS= \
-	
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib shell32.lib rpcrt4.lib /nologo /base:"0x6EEC0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libapr-1.pdb" /debug /out:"$(OUTDIR)\libapr-1.dll" /implib:"$(OUTDIR)\libapr-1.lib" /MACHINE:X64 /opt:ref 
-LINK32_OBJS= \
-	"$(INTDIR)\apr_atomic.obj" \
-	"$(INTDIR)\dso.obj" \
-	"$(INTDIR)\buffer.obj" \
-	"$(INTDIR)\copy.obj" \
-	"$(INTDIR)\dir.obj" \
-	"$(INTDIR)\fileacc.obj" \
-	"$(INTDIR)\filedup.obj" \
-	"$(INTDIR)\filepath.obj" \
-	"$(INTDIR)\filepath_util.obj" \
-	"$(INTDIR)\filestat.obj" \
-	"$(INTDIR)\filesys.obj" \
-	"$(INTDIR)\flock.obj" \
-	"$(INTDIR)\fullrw.obj" \
-	"$(INTDIR)\mktemp.obj" \
-	"$(INTDIR)\open.obj" \
-	"$(INTDIR)\pipe.obj" \
-	"$(INTDIR)\readwrite.obj" \
-	"$(INTDIR)\seek.obj" \
-	"$(INTDIR)\tempdir.obj" \
-	"$(INTDIR)\proc_mutex.obj" \
-	"$(INTDIR)\thread_cond.obj" \
-	"$(INTDIR)\thread_mutex.obj" \
-	"$(INTDIR)\thread_rwlock.obj" \
-	"$(INTDIR)\apr_pools.obj" \
-	"$(INTDIR)\charset.obj" \
-	"$(INTDIR)\env.obj" \
-	"$(INTDIR)\errorcodes.obj" \
-	"$(INTDIR)\getopt.obj" \
-	"$(INTDIR)\internal.obj" \
-	"$(INTDIR)\misc.obj" \
-	"$(INTDIR)\otherchild.obj" \
-	"$(INTDIR)\rand.obj" \
-	"$(INTDIR)\start.obj" \
-	"$(INTDIR)\utf8.obj" \
-	"$(INTDIR)\version.obj" \
-	"$(INTDIR)\common.obj" \
-	"$(INTDIR)\mmap.obj" \
-	"$(INTDIR)\inet_ntop.obj" \
-	"$(INTDIR)\inet_pton.obj" \
-	"$(INTDIR)\multicast.obj" \
-	"$(INTDIR)\sendrecv.obj" \
-	"$(INTDIR)\sockaddr.obj" \
-	"$(INTDIR)\sockets.obj" \
-	"$(INTDIR)\socket_util.obj" \
-	"$(INTDIR)\sockopt.obj" \
-	"$(INTDIR)\apr_getpass.obj" \
-	"$(INTDIR)\poll.obj" \
-	"$(INTDIR)\pollcb.obj" \
-	"$(INTDIR)\pollset.obj" \
-	"$(INTDIR)\select.obj" \
-	"$(INTDIR)\apr_random.obj" \
-	"$(INTDIR)\sha2.obj" \
-	"$(INTDIR)\sha2_glue.obj" \
-	"$(INTDIR)\shm.obj" \
-	"$(INTDIR)\apr_cpystrn.obj" \
-	"$(INTDIR)\apr_fnmatch.obj" \
-	"$(INTDIR)\apr_snprintf.obj" \
-	"$(INTDIR)\apr_strings.obj" \
-	"$(INTDIR)\apr_strnatcmp.obj" \
-	"$(INTDIR)\apr_strtok.obj" \
-	"$(INTDIR)\apr_hash.obj" \
-	"$(INTDIR)\apr_tables.obj" \
-	"$(INTDIR)\proc.obj" \
-	"$(INTDIR)\signals.obj" \
-	"$(INTDIR)\thread.obj" \
-	"$(INTDIR)\threadpriv.obj" \
-	"$(INTDIR)\time.obj" \
-	"$(INTDIR)\timestr.obj" \
-	"$(INTDIR)\groupinfo.obj" \
-	"$(INTDIR)\userinfo.obj" \
-	"$(INTDIR)\libapr.res"
-
-"$(OUTDIR)\libapr-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
-    $(LINK32) @<<
-  $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-TargetPath=.\x64\Release\libapr-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)\libapr-1.dll"
-   if exist .\x64\Release\libapr-1.dll.manifest mt.exe -manifest .\x64\Release\libapr-1.dll.manifest -outputresource:.\x64\Release\libapr-1.dll;2
-	echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
-
-!ELSEIF  "$(CFG)" == "libapr - x64 Debug"
-
-OUTDIR=.\x64\Debug
-INTDIR=.\x64\Debug
-DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
-# Begin Custom Macros
-OutDir=.\x64\Debug
-# End Custom Macros
-
-ALL : ".\include\apr.h" "$(OUTDIR)\libapr-1.dll" "$(DS_POSTBUILD_DEP)"
-
-
-CLEAN :
-	-@erase "$(INTDIR)\apr_atomic.obj"
-	-@erase "$(INTDIR)\apr_cpystrn.obj"
-	-@erase "$(INTDIR)\apr_fnmatch.obj"
-	-@erase "$(INTDIR)\apr_getpass.obj"
-	-@erase "$(INTDIR)\apr_hash.obj"
-	-@erase "$(INTDIR)\apr_pools.obj"
-	-@erase "$(INTDIR)\apr_random.obj"
-	-@erase "$(INTDIR)\apr_snprintf.obj"
-	-@erase "$(INTDIR)\apr_strings.obj"
-	-@erase "$(INTDIR)\apr_strnatcmp.obj"
-	-@erase "$(INTDIR)\apr_strtok.obj"
-	-@erase "$(INTDIR)\apr_tables.obj"
-	-@erase "$(INTDIR)\buffer.obj"
-	-@erase "$(INTDIR)\charset.obj"
-	-@erase "$(INTDIR)\common.obj"
-	-@erase "$(INTDIR)\copy.obj"
-	-@erase "$(INTDIR)\dir.obj"
-	-@erase "$(INTDIR)\dso.obj"
-	-@erase "$(INTDIR)\env.obj"
-	-@erase "$(INTDIR)\errorcodes.obj"
-	-@erase "$(INTDIR)\fileacc.obj"
-	-@erase "$(INTDIR)\filedup.obj"
-	-@erase "$(INTDIR)\filepath.obj"
-	-@erase "$(INTDIR)\filepath_util.obj"
-	-@erase "$(INTDIR)\filestat.obj"
-	-@erase "$(INTDIR)\filesys.obj"
-	-@erase "$(INTDIR)\flock.obj"
-	-@erase "$(INTDIR)\fullrw.obj"
-	-@erase "$(INTDIR)\getopt.obj"
-	-@erase "$(INTDIR)\groupinfo.obj"
-	-@erase "$(INTDIR)\inet_ntop.obj"
-	-@erase "$(INTDIR)\inet_pton.obj"
-	-@erase "$(INTDIR)\internal.obj"
-	-@erase "$(INTDIR)\libapr.res"
-	-@erase "$(INTDIR)\libapr_src.idb"
-	-@erase "$(INTDIR)\libapr_src.pdb"
-	-@erase "$(INTDIR)\misc.obj"
-	-@erase "$(INTDIR)\mktemp.obj"
-	-@erase "$(INTDIR)\mmap.obj"
-	-@erase "$(INTDIR)\multicast.obj"
-	-@erase "$(INTDIR)\open.obj"
-	-@erase "$(INTDIR)\otherchild.obj"
-	-@erase "$(INTDIR)\pipe.obj"
-	-@erase "$(INTDIR)\poll.obj"
-	-@erase "$(INTDIR)\pollcb.obj"
-	-@erase "$(INTDIR)\pollset.obj"
-	-@erase "$(INTDIR)\proc.obj"
-	-@erase "$(INTDIR)\proc_mutex.obj"
-	-@erase "$(INTDIR)\rand.obj"
-	-@erase "$(INTDIR)\readwrite.obj"
-	-@erase "$(INTDIR)\seek.obj"
-	-@erase "$(INTDIR)\select.obj"
-	-@erase "$(INTDIR)\sendrecv.obj"
-	-@erase "$(INTDIR)\sha2.obj"
-	-@erase "$(INTDIR)\sha2_glue.obj"
-	-@erase "$(INTDIR)\shm.obj"
-	-@erase "$(INTDIR)\signals.obj"
-	-@erase "$(INTDIR)\sockaddr.obj"
-	-@erase "$(INTDIR)\socket_util.obj"
-	-@erase "$(INTDIR)\sockets.obj"
-	-@erase "$(INTDIR)\sockopt.obj"
-	-@erase "$(INTDIR)\start.obj"
-	-@erase "$(INTDIR)\tempdir.obj"
-	-@erase "$(INTDIR)\thread.obj"
-	-@erase "$(INTDIR)\thread_cond.obj"
-	-@erase "$(INTDIR)\thread_mutex.obj"
-	-@erase "$(INTDIR)\thread_rwlock.obj"
-	-@erase "$(INTDIR)\threadpriv.obj"
-	-@erase "$(INTDIR)\time.obj"
-	-@erase "$(INTDIR)\timestr.obj"
-	-@erase "$(INTDIR)\userinfo.obj"
-	-@erase "$(INTDIR)\utf8.obj"
-	-@erase "$(INTDIR)\version.obj"
-	-@erase "$(OUTDIR)\libapr-1.dll"
-	-@erase "$(OUTDIR)\libapr-1.exp"
-	-@erase "$(OUTDIR)\libapr-1.lib"
-	-@erase "$(OUTDIR)\libapr-1.pdb"
-	-@erase ".\include\apr.h"
-
-"$(OUTDIR)" :
-    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "_DEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libapr_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)\libapr.res" /i "./include" /d "_DEBUG" /d "APR_VERSION_ONLY" 
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\libapr.bsc" 
-BSC32_SBRS= \
-	
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib shell32.lib rpcrt4.lib /nologo /base:"0x6EEC0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libapr-1.pdb" /debug /out:"$(OUTDIR)\libapr-1.dll" /implib:"$(OUTDIR)\libapr-1.lib" /MACHINE:X64 
-LINK32_OBJS= \
-	"$(INTDIR)\apr_atomic.obj" \
-	"$(INTDIR)\dso.obj" \
-	"$(INTDIR)\buffer.obj" \
-	"$(INTDIR)\copy.obj" \
-	"$(INTDIR)\dir.obj" \
-	"$(INTDIR)\fileacc.obj" \
-	"$(INTDIR)\filedup.obj" \
-	"$(INTDIR)\filepath.obj" \
-	"$(INTDIR)\filepath_util.obj" \
-	"$(INTDIR)\filestat.obj" \
-	"$(INTDIR)\filesys.obj" \
-	"$(INTDIR)\flock.obj" \
-	"$(INTDIR)\fullrw.obj" \
-	"$(INTDIR)\mktemp.obj" \
-	"$(INTDIR)\open.obj" \
-	"$(INTDIR)\pipe.obj" \
-	"$(INTDIR)\readwrite.obj" \
-	"$(INTDIR)\seek.obj" \
-	"$(INTDIR)\tempdir.obj" \
-	"$(INTDIR)\proc_mutex.obj" \
-	"$(INTDIR)\thread_cond.obj" \
-	"$(INTDIR)\thread_mutex.obj" \
-	"$(INTDIR)\thread_rwlock.obj" \
-	"$(INTDIR)\apr_pools.obj" \
-	"$(INTDIR)\charset.obj" \
-	"$(INTDIR)\env.obj" \
-	"$(INTDIR)\errorcodes.obj" \
-	"$(INTDIR)\getopt.obj" \
-	"$(INTDIR)\internal.obj" \
-	"$(INTDIR)\misc.obj" \
-	"$(INTDIR)\otherchild.obj" \
-	"$(INTDIR)\rand.obj" \
-	"$(INTDIR)\start.obj" \
-	"$(INTDIR)\utf8.obj" \
-	"$(INTDIR)\version.obj" \
-	"$(INTDIR)\common.obj" \
-	"$(INTDIR)\mmap.obj" \
-	"$(INTDIR)\inet_ntop.obj" \
-	"$(INTDIR)\inet_pton.obj" \
-	"$(INTDIR)\multicast.obj" \
-	"$(INTDIR)\sendrecv.obj" \
-	"$(INTDIR)\sockaddr.obj" \
-	"$(INTDIR)\sockets.obj" \
-	"$(INTDIR)\socket_util.obj" \
-	"$(INTDIR)\sockopt.obj" \
-	"$(INTDIR)\apr_getpass.obj" \
-	"$(INTDIR)\poll.obj" \
-	"$(INTDIR)\pollcb.obj" \
-	"$(INTDIR)\pollset.obj" \
-	"$(INTDIR)\select.obj" \
-	"$(INTDIR)\apr_random.obj" \
-	"$(INTDIR)\sha2.obj" \
-	"$(INTDIR)\sha2_glue.obj" \
-	"$(INTDIR)\shm.obj" \
-	"$(INTDIR)\apr_cpystrn.obj" \
-	"$(INTDIR)\apr_fnmatch.obj" \
-	"$(INTDIR)\apr_snprintf.obj" \
-	"$(INTDIR)\apr_strings.obj" \
-	"$(INTDIR)\apr_strnatcmp.obj" \
-	"$(INTDIR)\apr_strtok.obj" \
-	"$(INTDIR)\apr_hash.obj" \
-	"$(INTDIR)\apr_tables.obj" \
-	"$(INTDIR)\proc.obj" \
-	"$(INTDIR)\signals.obj" \
-	"$(INTDIR)\thread.obj" \
-	"$(INTDIR)\threadpriv.obj" \
-	"$(INTDIR)\time.obj" \
-	"$(INTDIR)\timestr.obj" \
-	"$(INTDIR)\groupinfo.obj" \
-	"$(INTDIR)\userinfo.obj" \
-	"$(INTDIR)\libapr.res"
-
-"$(OUTDIR)\libapr-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
-    $(LINK32) @<<
-  $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-TargetPath=.\x64\Debug\libapr-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)\libapr-1.dll"
-   if exist .\x64\Debug\libapr-1.dll.manifest mt.exe -manifest .\x64\Debug\libapr-1.dll.manifest -outputresource:.\x64\Debug\libapr-1.dll;2
-	echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
-
-!ENDIF 
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("libapr.dep")
-!INCLUDE "libapr.dep"
-!ELSE 
-!MESSAGE Warning: cannot find "libapr.dep"
-!ENDIF 
-!ENDIF 
-
-
-!IF "$(CFG)" == "libapr - Win32 Release" || "$(CFG)" == "libapr - Win32 Debug" || "$(CFG)" == "libapr - Win32 Release9x" || "$(CFG)" == "libapr - Win32 Debug9x" || "$(CFG)" == "libapr - x64 Release" || "$(CFG)" == "libapr - x64 Debug"
-SOURCE=.\atomic\win32\apr_atomic.c
-
-"$(INTDIR)\apr_atomic.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\dso\win32\dso.c
-
-"$(INTDIR)\dso.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\file_io\win32\buffer.c
-
-"$(INTDIR)\buffer.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\file_io\unix\copy.c
-
-"$(INTDIR)\copy.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\file_io\win32\dir.c
-
-"$(INTDIR)\dir.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\file_io\unix\fileacc.c
-
-"$(INTDIR)\fileacc.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\file_io\win32\filedup.c
-
-"$(INTDIR)\filedup.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\file_io\win32\filepath.c
-
-"$(INTDIR)\filepath.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\file_io\unix\filepath_util.c
-
-"$(INTDIR)\filepath_util.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\file_io\win32\filestat.c
-
-"$(INTDIR)\filestat.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\file_io\win32\filesys.c
-
-"$(INTDIR)\filesys.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\file_io\win32\flock.c
-
-"$(INTDIR)\flock.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\file_io\unix\fullrw.c
-
-"$(INTDIR)\fullrw.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\file_io\unix\mktemp.c
-
-"$(INTDIR)\mktemp.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\file_io\win32\open.c
-
-"$(INTDIR)\open.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\file_io\win32\pipe.c
-
-"$(INTDIR)\pipe.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\file_io\win32\readwrite.c
-
-"$(INTDIR)\readwrite.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\file_io\win32\seek.c
-
-"$(INTDIR)\seek.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\file_io\unix\tempdir.c
-
-"$(INTDIR)\tempdir.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\locks\win32\proc_mutex.c
-
-"$(INTDIR)\proc_mutex.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\locks\win32\thread_cond.c
-
-"$(INTDIR)\thread_cond.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\locks\win32\thread_mutex.c
-
-"$(INTDIR)\thread_mutex.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\locks\win32\thread_rwlock.c
-
-"$(INTDIR)\thread_rwlock.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\memory\unix\apr_pools.c
-
-"$(INTDIR)\apr_pools.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\misc\win32\apr_app.c
-SOURCE=.\misc\win32\charset.c
-
-"$(INTDIR)\charset.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\misc\win32\env.c
-
-"$(INTDIR)\env.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\misc\unix\errorcodes.c
-
-"$(INTDIR)\errorcodes.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\misc\unix\getopt.c
-
-"$(INTDIR)\getopt.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\misc\win32\internal.c
-
-"$(INTDIR)\internal.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\misc\win32\misc.c
-
-"$(INTDIR)\misc.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\misc\unix\otherchild.c
-
-"$(INTDIR)\otherchild.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\misc\win32\rand.c
-
-"$(INTDIR)\rand.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\misc\win32\start.c
-
-"$(INTDIR)\start.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\misc\win32\utf8.c
-
-"$(INTDIR)\utf8.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\misc\unix\version.c
-
-"$(INTDIR)\version.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\mmap\unix\common.c
-
-"$(INTDIR)\common.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\mmap\win32\mmap.c
-
-"$(INTDIR)\mmap.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\network_io\unix\inet_ntop.c
-
-"$(INTDIR)\inet_ntop.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\network_io\unix\inet_pton.c
-
-"$(INTDIR)\inet_pton.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\network_io\unix\multicast.c
-
-"$(INTDIR)\multicast.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\network_io\win32\sendrecv.c
-
-"$(INTDIR)\sendrecv.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\network_io\unix\sockaddr.c
-
-"$(INTDIR)\sockaddr.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\network_io\unix\socket_util.c
-
-"$(INTDIR)\socket_util.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\network_io\win32\sockets.c
-
-"$(INTDIR)\sockets.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\network_io\win32\sockopt.c
-
-"$(INTDIR)\sockopt.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\passwd\apr_getpass.c
-
-"$(INTDIR)\apr_getpass.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\poll\unix\poll.c
-
-"$(INTDIR)\poll.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\poll\unix\pollcb.c
-
-"$(INTDIR)\pollcb.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\poll\unix\pollset.c
-
-"$(INTDIR)\pollset.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\poll\unix\select.c
-
-"$(INTDIR)\select.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\random\unix\apr_random.c
-
-"$(INTDIR)\apr_random.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\random\unix\sha2.c
-
-"$(INTDIR)\sha2.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\random\unix\sha2_glue.c
-
-"$(INTDIR)\sha2_glue.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\shmem\win32\shm.c
-
-"$(INTDIR)\shm.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\strings\apr_cpystrn.c
-
-"$(INTDIR)\apr_cpystrn.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\strings\apr_fnmatch.c
-
-"$(INTDIR)\apr_fnmatch.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\strings\apr_snprintf.c
-
-"$(INTDIR)\apr_snprintf.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\strings\apr_strings.c
-
-"$(INTDIR)\apr_strings.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\strings\apr_strnatcmp.c
-
-"$(INTDIR)\apr_strnatcmp.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\strings\apr_strtok.c
-
-"$(INTDIR)\apr_strtok.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\tables\apr_hash.c
-
-"$(INTDIR)\apr_hash.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\tables\apr_tables.c
-
-"$(INTDIR)\apr_tables.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\threadproc\win32\proc.c
-
-"$(INTDIR)\proc.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\threadproc\win32\signals.c
-
-"$(INTDIR)\signals.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\threadproc\win32\thread.c
-
-"$(INTDIR)\thread.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\threadproc\win32\threadpriv.c
-
-"$(INTDIR)\threadpriv.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\time\win32\time.c
-
-"$(INTDIR)\time.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\time\win32\timestr.c
-
-"$(INTDIR)\timestr.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\user\win32\groupinfo.c
-
-"$(INTDIR)\groupinfo.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\user\win32\userinfo.c
-
-"$(INTDIR)\userinfo.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\include\apr.hw
-
-!IF  "$(CFG)" == "libapr - Win32 Release"
-
-InputPath=.\include\apr.hw
-
-".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	< .\include\apr.h
-<< 
-	
-
-!ELSEIF  "$(CFG)" == "libapr - Win32 Debug"
-
-InputPath=.\include\apr.hw
-
-".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	< .\include\apr.h
-<< 
-	
-
-!ELSEIF  "$(CFG)" == "libapr - Win32 Release9x"
-
-InputPath=.\include\apr.hw
-
-".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	< .\include\apr.h
-<< 
-	
-
-!ELSEIF  "$(CFG)" == "libapr - Win32 Debug9x"
-
-InputPath=.\include\apr.hw
-
-".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	< .\include\apr.h
-<< 
-	
-
-!ELSEIF  "$(CFG)" == "libapr - x64 Release"
-
-InputPath=.\include\apr.hw
-
-".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	< .\include\apr.h
-<< 
-	
-
-!ELSEIF  "$(CFG)" == "libapr - x64 Debug"
-
-InputPath=.\include\apr.hw
-
-".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
-	< .\include\apr.h
-<< 
-	
-
-!ENDIF 
-
-SOURCE=.\libapr.rc
-
-"$(INTDIR)\libapr.res" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
-	$(RSC) $(RSC_PROJ) $(SOURCE)
-
-
-
-!ENDIF 
-
+# Microsoft Developer Studio Generated NMAKE File, Based on libapr.dsp
+!IF "$(CFG)" == ""
+CFG=libapr - Win32 Release
+!MESSAGE No configuration specified. Defaulting to libapr - Win32 Release.
+!ENDIF 
+
+!IF "$(CFG)" != "libapr - Win32 Release" && "$(CFG)" != "libapr - Win32 Debug" && "$(CFG)" != "libapr - Win32 Release9x" && "$(CFG)" != "libapr - Win32 Debug9x" && "$(CFG)" != "libapr - x64 Release" && "$(CFG)" != "libapr - 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 "libapr.mak" CFG="libapr - Win32 Release"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "libapr - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "libapr - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "libapr - Win32 Release9x" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "libapr - Win32 Debug9x" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "libapr - x64 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "libapr - 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)" == "libapr - Win32 Release"
+
+OUTDIR=.\Release
+INTDIR=.\Release
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+# Begin Custom Macros
+OutDir=.\Release
+# End Custom Macros
+
+ALL : ".\Release\gen_test_char.exe" "$(OUTDIR)\libapr-1.dll" "$(DS_POSTBUILD_DEP)"
+
+
+CLEAN :
+	-@erase "$(INTDIR)\apr_atomic.obj"
+	-@erase "$(INTDIR)\apr_cpystrn.obj"
+	-@erase "$(INTDIR)\apr_escape.obj"
+	-@erase "$(INTDIR)\apr_fnmatch.obj"
+	-@erase "$(INTDIR)\apr_getpass.obj"
+	-@erase "$(INTDIR)\apr_hash.obj"
+	-@erase "$(INTDIR)\apr_pools.obj"
+	-@erase "$(INTDIR)\apr_random.obj"
+	-@erase "$(INTDIR)\apr_skiplist.obj"
+	-@erase "$(INTDIR)\apr_snprintf.obj"
+	-@erase "$(INTDIR)\apr_strings.obj"
+	-@erase "$(INTDIR)\apr_strnatcmp.obj"
+	-@erase "$(INTDIR)\apr_strtok.obj"
+	-@erase "$(INTDIR)\apr_tables.obj"
+	-@erase "$(INTDIR)\buffer.obj"
+	-@erase "$(INTDIR)\charset.obj"
+	-@erase "$(INTDIR)\common.obj"
+	-@erase "$(INTDIR)\copy.obj"
+	-@erase "$(INTDIR)\dir.obj"
+	-@erase "$(INTDIR)\dso.obj"
+	-@erase "$(INTDIR)\env.obj"
+	-@erase "$(INTDIR)\errorcodes.obj"
+	-@erase "$(INTDIR)\fileacc.obj"
+	-@erase "$(INTDIR)\filedup.obj"
+	-@erase "$(INTDIR)\filepath.obj"
+	-@erase "$(INTDIR)\filepath_util.obj"
+	-@erase "$(INTDIR)\filestat.obj"
+	-@erase "$(INTDIR)\filesys.obj"
+	-@erase "$(INTDIR)\flock.obj"
+	-@erase "$(INTDIR)\fullrw.obj"
+	-@erase "$(INTDIR)\getopt.obj"
+	-@erase "$(INTDIR)\groupinfo.obj"
+	-@erase "$(INTDIR)\inet_ntop.obj"
+	-@erase "$(INTDIR)\inet_pton.obj"
+	-@erase "$(INTDIR)\internal.obj"
+	-@erase "$(INTDIR)\libapr.res"
+	-@erase "$(INTDIR)\libapr_src.idb"
+	-@erase "$(INTDIR)\libapr_src.pdb"
+	-@erase "$(INTDIR)\misc.obj"
+	-@erase "$(INTDIR)\mktemp.obj"
+	-@erase "$(INTDIR)\mmap.obj"
+	-@erase "$(INTDIR)\multicast.obj"
+	-@erase "$(INTDIR)\open.obj"
+	-@erase "$(INTDIR)\otherchild.obj"
+	-@erase "$(INTDIR)\pipe.obj"
+	-@erase "$(INTDIR)\poll.obj"
+	-@erase "$(INTDIR)\pollcb.obj"
+	-@erase "$(INTDIR)\pollset.obj"
+	-@erase "$(INTDIR)\proc.obj"
+	-@erase "$(INTDIR)\proc_mutex.obj"
+	-@erase "$(INTDIR)\rand.obj"
+	-@erase "$(INTDIR)\readwrite.obj"
+	-@erase "$(INTDIR)\seek.obj"
+	-@erase "$(INTDIR)\select.obj"
+	-@erase "$(INTDIR)\sendrecv.obj"
+	-@erase "$(INTDIR)\sha2.obj"
+	-@erase "$(INTDIR)\sha2_glue.obj"
+	-@erase "$(INTDIR)\shm.obj"
+	-@erase "$(INTDIR)\signals.obj"
+	-@erase "$(INTDIR)\sockaddr.obj"
+	-@erase "$(INTDIR)\socket_util.obj"
+	-@erase "$(INTDIR)\sockets.obj"
+	-@erase "$(INTDIR)\sockopt.obj"
+	-@erase "$(INTDIR)\start.obj"
+	-@erase "$(INTDIR)\tempdir.obj"
+	-@erase "$(INTDIR)\thread.obj"
+	-@erase "$(INTDIR)\thread_cond.obj"
+	-@erase "$(INTDIR)\thread_mutex.obj"
+	-@erase "$(INTDIR)\thread_rwlock.obj"
+	-@erase "$(INTDIR)\threadpriv.obj"
+	-@erase "$(INTDIR)\time.obj"
+	-@erase "$(INTDIR)\timestr.obj"
+	-@erase "$(INTDIR)\userinfo.obj"
+	-@erase "$(INTDIR)\utf8.obj"
+	-@erase "$(INTDIR)\version.obj"
+	-@erase "$(OUTDIR)\libapr-1.dll"
+	-@erase "$(OUTDIR)\libapr-1.exp"
+	-@erase "$(OUTDIR)\libapr-1.lib"
+	-@erase "$(OUTDIR)\libapr-1.pdb"
+	-@erase ".\include\apr.h"
+	-@erase ".\include\apr_gen_test_char.h"
+	-@erase "$(OUTDIR)\gen_test_char.exe"
+	-@erase "$(OUTDIR)\gen_test_char.obj"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "NDEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libapr_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)\libapr.res" /i "./include" /d "NDEBUG" /d "APR_VERSION_ONLY" 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\libapr.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib shell32.lib rpcrt4.lib /nologo /base:"0x6EEC0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libapr-1.pdb" /debug /out:"$(OUTDIR)\libapr-1.dll" /implib:"$(OUTDIR)\libapr-1.lib" /MACHINE:X86 /opt:ref 
+LINK32_OBJS= \
+	"$(INTDIR)\apr_atomic.obj" \
+	"$(INTDIR)\dso.obj" \
+	"$(INTDIR)\apr_escape.obj" \
+	"$(INTDIR)\buffer.obj" \
+	"$(INTDIR)\copy.obj" \
+	"$(INTDIR)\dir.obj" \
+	"$(INTDIR)\fileacc.obj" \
+	"$(INTDIR)\filedup.obj" \
+	"$(INTDIR)\filepath.obj" \
+	"$(INTDIR)\filepath_util.obj" \
+	"$(INTDIR)\filestat.obj" \
+	"$(INTDIR)\filesys.obj" \
+	"$(INTDIR)\flock.obj" \
+	"$(INTDIR)\fullrw.obj" \
+	"$(INTDIR)\mktemp.obj" \
+	"$(INTDIR)\open.obj" \
+	"$(INTDIR)\pipe.obj" \
+	"$(INTDIR)\readwrite.obj" \
+	"$(INTDIR)\seek.obj" \
+	"$(INTDIR)\tempdir.obj" \
+	"$(INTDIR)\proc_mutex.obj" \
+	"$(INTDIR)\thread_cond.obj" \
+	"$(INTDIR)\thread_mutex.obj" \
+	"$(INTDIR)\thread_rwlock.obj" \
+	"$(INTDIR)\apr_pools.obj" \
+	"$(INTDIR)\charset.obj" \
+	"$(INTDIR)\env.obj" \
+	"$(INTDIR)\errorcodes.obj" \
+	"$(INTDIR)\getopt.obj" \
+	"$(INTDIR)\internal.obj" \
+	"$(INTDIR)\misc.obj" \
+	"$(INTDIR)\otherchild.obj" \
+	"$(INTDIR)\rand.obj" \
+	"$(INTDIR)\start.obj" \
+	"$(INTDIR)\utf8.obj" \
+	"$(INTDIR)\version.obj" \
+	"$(INTDIR)\common.obj" \
+	"$(INTDIR)\mmap.obj" \
+	"$(INTDIR)\inet_ntop.obj" \
+	"$(INTDIR)\inet_pton.obj" \
+	"$(INTDIR)\multicast.obj" \
+	"$(INTDIR)\sendrecv.obj" \
+	"$(INTDIR)\sockaddr.obj" \
+	"$(INTDIR)\sockets.obj" \
+	"$(INTDIR)\socket_util.obj" \
+	"$(INTDIR)\sockopt.obj" \
+	"$(INTDIR)\apr_getpass.obj" \
+	"$(INTDIR)\poll.obj" \
+	"$(INTDIR)\pollcb.obj" \
+	"$(INTDIR)\pollset.obj" \
+	"$(INTDIR)\select.obj" \
+	"$(INTDIR)\apr_random.obj" \
+	"$(INTDIR)\sha2.obj" \
+	"$(INTDIR)\sha2_glue.obj" \
+	"$(INTDIR)\shm.obj" \
+	"$(INTDIR)\apr_cpystrn.obj" \
+	"$(INTDIR)\apr_fnmatch.obj" \
+	"$(INTDIR)\apr_snprintf.obj" \
+	"$(INTDIR)\apr_strings.obj" \
+	"$(INTDIR)\apr_strnatcmp.obj" \
+	"$(INTDIR)\apr_strtok.obj" \
+	"$(INTDIR)\apr_hash.obj" \
+	"$(INTDIR)\apr_tables.obj" \
+	"$(INTDIR)\apr_skiplist.obj" \
+	"$(INTDIR)\proc.obj" \
+	"$(INTDIR)\signals.obj" \
+	"$(INTDIR)\thread.obj" \
+	"$(INTDIR)\threadpriv.obj" \
+	"$(INTDIR)\time.obj" \
+	"$(INTDIR)\timestr.obj" \
+	"$(INTDIR)\groupinfo.obj" \
+	"$(INTDIR)\userinfo.obj" \
+	"$(INTDIR)\libapr.res"
+
+"$(OUTDIR)\libapr-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+TargetPath=.\Release\libapr-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)\libapr-1.dll"
+   if exist .\Release\libapr-1.dll.manifest mt.exe -manifest .\Release\libapr-1.dll.manifest -outputresource:.\Release\libapr-1.dll;2
+	echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Debug"
+
+OUTDIR=.\Debug
+INTDIR=.\Debug
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+# Begin Custom Macros
+OutDir=.\Debug
+# End Custom Macros
+
+ALL : ".\include\apr_escape_test_char.h" ".\Debug\gen_test_char.exe" "$(OUTDIR)\libapr-1.dll" "$(DS_POSTBUILD_DEP)"
+
+
+CLEAN :
+	-@erase "$(INTDIR)\apr_atomic.obj"
+	-@erase "$(INTDIR)\apr_cpystrn.obj"
+	-@erase "$(INTDIR)\apr_escape.obj"
+	-@erase "$(INTDIR)\apr_fnmatch.obj"
+	-@erase "$(INTDIR)\apr_getpass.obj"
+	-@erase "$(INTDIR)\apr_hash.obj"
+	-@erase "$(INTDIR)\apr_pools.obj"
+	-@erase "$(INTDIR)\apr_random.obj"
+	-@erase "$(INTDIR)\apr_skiplist.obj"
+	-@erase "$(INTDIR)\apr_snprintf.obj"
+	-@erase "$(INTDIR)\apr_strings.obj"
+	-@erase "$(INTDIR)\apr_strnatcmp.obj"
+	-@erase "$(INTDIR)\apr_strtok.obj"
+	-@erase "$(INTDIR)\apr_tables.obj"
+	-@erase "$(INTDIR)\buffer.obj"
+	-@erase "$(INTDIR)\charset.obj"
+	-@erase "$(INTDIR)\common.obj"
+	-@erase "$(INTDIR)\copy.obj"
+	-@erase "$(INTDIR)\dir.obj"
+	-@erase "$(INTDIR)\dso.obj"
+	-@erase "$(INTDIR)\env.obj"
+	-@erase "$(INTDIR)\errorcodes.obj"
+	-@erase "$(INTDIR)\fileacc.obj"
+	-@erase "$(INTDIR)\filedup.obj"
+	-@erase "$(INTDIR)\filepath.obj"
+	-@erase "$(INTDIR)\filepath_util.obj"
+	-@erase "$(INTDIR)\filestat.obj"
+	-@erase "$(INTDIR)\filesys.obj"
+	-@erase "$(INTDIR)\flock.obj"
+	-@erase "$(INTDIR)\fullrw.obj"
+	-@erase "$(INTDIR)\getopt.obj"
+	-@erase "$(INTDIR)\groupinfo.obj"
+	-@erase "$(INTDIR)\inet_ntop.obj"
+	-@erase "$(INTDIR)\inet_pton.obj"
+	-@erase "$(INTDIR)\internal.obj"
+	-@erase "$(INTDIR)\libapr.res"
+	-@erase "$(INTDIR)\libapr_src.idb"
+	-@erase "$(INTDIR)\libapr_src.pdb"
+	-@erase "$(INTDIR)\misc.obj"
+	-@erase "$(INTDIR)\mktemp.obj"
+	-@erase "$(INTDIR)\mmap.obj"
+	-@erase "$(INTDIR)\multicast.obj"
+	-@erase "$(INTDIR)\open.obj"
+	-@erase "$(INTDIR)\otherchild.obj"
+	-@erase "$(INTDIR)\pipe.obj"
+	-@erase "$(INTDIR)\poll.obj"
+	-@erase "$(INTDIR)\pollcb.obj"
+	-@erase "$(INTDIR)\pollset.obj"
+	-@erase "$(INTDIR)\proc.obj"
+	-@erase "$(INTDIR)\proc_mutex.obj"
+	-@erase "$(INTDIR)\rand.obj"
+	-@erase "$(INTDIR)\readwrite.obj"
+	-@erase "$(INTDIR)\seek.obj"
+	-@erase "$(INTDIR)\select.obj"
+	-@erase "$(INTDIR)\sendrecv.obj"
+	-@erase "$(INTDIR)\sha2.obj"
+	-@erase "$(INTDIR)\sha2_glue.obj"
+	-@erase "$(INTDIR)\shm.obj"
+	-@erase "$(INTDIR)\signals.obj"
+	-@erase "$(INTDIR)\sockaddr.obj"
+	-@erase "$(INTDIR)\socket_util.obj"
+	-@erase "$(INTDIR)\sockets.obj"
+	-@erase "$(INTDIR)\sockopt.obj"
+	-@erase "$(INTDIR)\start.obj"
+	-@erase "$(INTDIR)\tempdir.obj"
+	-@erase "$(INTDIR)\thread.obj"
+	-@erase "$(INTDIR)\thread_cond.obj"
+	-@erase "$(INTDIR)\thread_mutex.obj"
+	-@erase "$(INTDIR)\thread_rwlock.obj"
+	-@erase "$(INTDIR)\threadpriv.obj"
+	-@erase "$(INTDIR)\time.obj"
+	-@erase "$(INTDIR)\timestr.obj"
+	-@erase "$(INTDIR)\userinfo.obj"
+	-@erase "$(INTDIR)\utf8.obj"
+	-@erase "$(INTDIR)\version.obj"
+	-@erase "$(OUTDIR)\libapr-1.dll"
+	-@erase "$(OUTDIR)\libapr-1.exp"
+	-@erase "$(OUTDIR)\libapr-1.lib"
+	-@erase "$(OUTDIR)\libapr-1.pdb"
+	-@erase ".\include\apr.h"
+	-@erase ".\include\apr_gen_test_char.h"
+	-@erase "$(OUTDIR)\gen_test_char.exe"
+	-@erase "$(OUTDIR)\gen_test_char.obj"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "_DEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libapr_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)\libapr.res" /i "./include" /d "_DEBUG" /d "APR_VERSION_ONLY" 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\libapr.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib shell32.lib rpcrt4.lib /nologo /base:"0x6EEC0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libapr-1.pdb" /debug /out:"$(OUTDIR)\libapr-1.dll" /implib:"$(OUTDIR)\libapr-1.lib" /MACHINE:X86 
+LINK32_OBJS= \
+	"$(INTDIR)\apr_atomic.obj" \
+	"$(INTDIR)\dso.obj" \
+	"$(INTDIR)\apr_escape.obj" \
+	"$(INTDIR)\buffer.obj" \
+	"$(INTDIR)\copy.obj" \
+	"$(INTDIR)\dir.obj" \
+	"$(INTDIR)\fileacc.obj" \
+	"$(INTDIR)\filedup.obj" \
+	"$(INTDIR)\filepath.obj" \
+	"$(INTDIR)\filepath_util.obj" \
+	"$(INTDIR)\filestat.obj" \
+	"$(INTDIR)\filesys.obj" \
+	"$(INTDIR)\flock.obj" \
+	"$(INTDIR)\fullrw.obj" \
+	"$(INTDIR)\mktemp.obj" \
+	"$(INTDIR)\open.obj" \
+	"$(INTDIR)\pipe.obj" \
+	"$(INTDIR)\readwrite.obj" \
+	"$(INTDIR)\seek.obj" \
+	"$(INTDIR)\tempdir.obj" \
+	"$(INTDIR)\proc_mutex.obj" \
+	"$(INTDIR)\thread_cond.obj" \
+	"$(INTDIR)\thread_mutex.obj" \
+	"$(INTDIR)\thread_rwlock.obj" \
+	"$(INTDIR)\apr_pools.obj" \
+	"$(INTDIR)\charset.obj" \
+	"$(INTDIR)\env.obj" \
+	"$(INTDIR)\errorcodes.obj" \
+	"$(INTDIR)\getopt.obj" \
+	"$(INTDIR)\internal.obj" \
+	"$(INTDIR)\misc.obj" \
+	"$(INTDIR)\otherchild.obj" \
+	"$(INTDIR)\rand.obj" \
+	"$(INTDIR)\start.obj" \
+	"$(INTDIR)\utf8.obj" \
+	"$(INTDIR)\version.obj" \
+	"$(INTDIR)\common.obj" \
+	"$(INTDIR)\mmap.obj" \
+	"$(INTDIR)\inet_ntop.obj" \
+	"$(INTDIR)\inet_pton.obj" \
+	"$(INTDIR)\multicast.obj" \
+	"$(INTDIR)\sendrecv.obj" \
+	"$(INTDIR)\sockaddr.obj" \
+	"$(INTDIR)\sockets.obj" \
+	"$(INTDIR)\socket_util.obj" \
+	"$(INTDIR)\sockopt.obj" \
+	"$(INTDIR)\apr_getpass.obj" \
+	"$(INTDIR)\poll.obj" \
+	"$(INTDIR)\pollcb.obj" \
+	"$(INTDIR)\pollset.obj" \
+	"$(INTDIR)\select.obj" \
+	"$(INTDIR)\apr_random.obj" \
+	"$(INTDIR)\sha2.obj" \
+	"$(INTDIR)\sha2_glue.obj" \
+	"$(INTDIR)\shm.obj" \
+	"$(INTDIR)\apr_cpystrn.obj" \
+	"$(INTDIR)\apr_fnmatch.obj" \
+	"$(INTDIR)\apr_snprintf.obj" \
+	"$(INTDIR)\apr_strings.obj" \
+	"$(INTDIR)\apr_strnatcmp.obj" \
+	"$(INTDIR)\apr_strtok.obj" \
+	"$(INTDIR)\apr_hash.obj" \
+	"$(INTDIR)\apr_tables.obj" \
+	"$(INTDIR)\apr_skiplist.obj" \
+	"$(INTDIR)\proc.obj" \
+	"$(INTDIR)\signals.obj" \
+	"$(INTDIR)\thread.obj" \
+	"$(INTDIR)\threadpriv.obj" \
+	"$(INTDIR)\time.obj" \
+	"$(INTDIR)\timestr.obj" \
+	"$(INTDIR)\groupinfo.obj" \
+	"$(INTDIR)\userinfo.obj" \
+	"$(INTDIR)\libapr.res"
+
+"$(OUTDIR)\libapr-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+TargetPath=.\Debug\libapr-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)\libapr-1.dll"
+   if exist .\Debug\libapr-1.dll.manifest mt.exe -manifest .\Debug\libapr-1.dll.manifest -outputresource:.\Debug\libapr-1.dll;2
+	echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Release9x"
+
+OUTDIR=.\9x\Release
+INTDIR=.\9x\Release
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+# Begin Custom Macros
+OutDir=.\9x\Release
+# End Custom Macros
+
+ALL : ".\include\apr_escape_test_char.h" ".\9x\Release\gen_test_char.exe" "$(OUTDIR)\libapr-1.dll" "$(DS_POSTBUILD_DEP)"
+
+
+CLEAN :
+	-@erase "$(INTDIR)\apr_atomic.obj"
+	-@erase "$(INTDIR)\apr_cpystrn.obj"
+	-@erase "$(INTDIR)\apr_escape.obj"
+	-@erase "$(INTDIR)\apr_fnmatch.obj"
+	-@erase "$(INTDIR)\apr_getpass.obj"
+	-@erase "$(INTDIR)\apr_hash.obj"
+	-@erase "$(INTDIR)\apr_pools.obj"
+	-@erase "$(INTDIR)\apr_random.obj"
+	-@erase "$(INTDIR)\apr_skiplist.obj"
+	-@erase "$(INTDIR)\apr_snprintf.obj"
+	-@erase "$(INTDIR)\apr_strings.obj"
+	-@erase "$(INTDIR)\apr_strnatcmp.obj"
+	-@erase "$(INTDIR)\apr_strtok.obj"
+	-@erase "$(INTDIR)\apr_tables.obj"
+	-@erase "$(INTDIR)\buffer.obj"
+	-@erase "$(INTDIR)\charset.obj"
+	-@erase "$(INTDIR)\common.obj"
+	-@erase "$(INTDIR)\copy.obj"
+	-@erase "$(INTDIR)\dir.obj"
+	-@erase "$(INTDIR)\dso.obj"
+	-@erase "$(INTDIR)\env.obj"
+	-@erase "$(INTDIR)\errorcodes.obj"
+	-@erase "$(INTDIR)\fileacc.obj"
+	-@erase "$(INTDIR)\filedup.obj"
+	-@erase "$(INTDIR)\filepath.obj"
+	-@erase "$(INTDIR)\filepath_util.obj"
+	-@erase "$(INTDIR)\filestat.obj"
+	-@erase "$(INTDIR)\filesys.obj"
+	-@erase "$(INTDIR)\flock.obj"
+	-@erase "$(INTDIR)\fullrw.obj"
+	-@erase "$(INTDIR)\getopt.obj"
+	-@erase "$(INTDIR)\groupinfo.obj"
+	-@erase "$(INTDIR)\inet_ntop.obj"
+	-@erase "$(INTDIR)\inet_pton.obj"
+	-@erase "$(INTDIR)\internal.obj"
+	-@erase "$(INTDIR)\libapr.res"
+	-@erase "$(INTDIR)\libapr_src.idb"
+	-@erase "$(INTDIR)\libapr_src.pdb"
+	-@erase "$(INTDIR)\misc.obj"
+	-@erase "$(INTDIR)\mktemp.obj"
+	-@erase "$(INTDIR)\mmap.obj"
+	-@erase "$(INTDIR)\multicast.obj"
+	-@erase "$(INTDIR)\open.obj"
+	-@erase "$(INTDIR)\otherchild.obj"
+	-@erase "$(INTDIR)\pipe.obj"
+	-@erase "$(INTDIR)\poll.obj"
+	-@erase "$(INTDIR)\pollcb.obj"
+	-@erase "$(INTDIR)\pollset.obj"
+	-@erase "$(INTDIR)\proc.obj"
+	-@erase "$(INTDIR)\proc_mutex.obj"
+	-@erase "$(INTDIR)\rand.obj"
+	-@erase "$(INTDIR)\readwrite.obj"
+	-@erase "$(INTDIR)\seek.obj"
+	-@erase "$(INTDIR)\select.obj"
+	-@erase "$(INTDIR)\sendrecv.obj"
+	-@erase "$(INTDIR)\sha2.obj"
+	-@erase "$(INTDIR)\sha2_glue.obj"
+	-@erase "$(INTDIR)\shm.obj"
+	-@erase "$(INTDIR)\signals.obj"
+	-@erase "$(INTDIR)\sockaddr.obj"
+	-@erase "$(INTDIR)\socket_util.obj"
+	-@erase "$(INTDIR)\sockets.obj"
+	-@erase "$(INTDIR)\sockopt.obj"
+	-@erase "$(INTDIR)\start.obj"
+	-@erase "$(INTDIR)\tempdir.obj"
+	-@erase "$(INTDIR)\thread.obj"
+	-@erase "$(INTDIR)\thread_cond.obj"
+	-@erase "$(INTDIR)\thread_mutex.obj"
+	-@erase "$(INTDIR)\thread_rwlock.obj"
+	-@erase "$(INTDIR)\threadpriv.obj"
+	-@erase "$(INTDIR)\time.obj"
+	-@erase "$(INTDIR)\timestr.obj"
+	-@erase "$(INTDIR)\userinfo.obj"
+	-@erase "$(INTDIR)\utf8.obj"
+	-@erase "$(INTDIR)\version.obj"
+	-@erase "$(OUTDIR)\libapr-1.dll"
+	-@erase "$(OUTDIR)\libapr-1.exp"
+	-@erase "$(OUTDIR)\libapr-1.lib"
+	-@erase "$(OUTDIR)\libapr-1.pdb"
+	-@erase ".\include\apr.h"
+	-@erase ".\include\apr_gen_test_char.h"
+	-@erase "$(OUTDIR)\gen_test_char.exe"
+	-@erase "$(OUTDIR)\gen_test_char.obj"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "NDEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libapr_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)\libapr.res" /i "./include" /d "NDEBUG" /d "APR_VERSION_ONLY" 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\libapr.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib shell32.lib rpcrt4.lib /nologo /base:"0x6EEC0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libapr-1.pdb" /debug /out:"$(OUTDIR)\libapr-1.dll" /implib:"$(OUTDIR)\libapr-1.lib" /MACHINE:X86 /opt:ref 
+LINK32_OBJS= \
+	"$(INTDIR)\apr_atomic.obj" \
+	"$(INTDIR)\dso.obj" \
+	"$(INTDIR)\apr_escape.obj" \
+	"$(INTDIR)\buffer.obj" \
+	"$(INTDIR)\copy.obj" \
+	"$(INTDIR)\dir.obj" \
+	"$(INTDIR)\fileacc.obj" \
+	"$(INTDIR)\filedup.obj" \
+	"$(INTDIR)\filepath.obj" \
+	"$(INTDIR)\filepath_util.obj" \
+	"$(INTDIR)\filestat.obj" \
+	"$(INTDIR)\filesys.obj" \
+	"$(INTDIR)\flock.obj" \
+	"$(INTDIR)\fullrw.obj" \
+	"$(INTDIR)\mktemp.obj" \
+	"$(INTDIR)\open.obj" \
+	"$(INTDIR)\pipe.obj" \
+	"$(INTDIR)\readwrite.obj" \
+	"$(INTDIR)\seek.obj" \
+	"$(INTDIR)\tempdir.obj" \
+	"$(INTDIR)\proc_mutex.obj" \
+	"$(INTDIR)\thread_cond.obj" \
+	"$(INTDIR)\thread_mutex.obj" \
+	"$(INTDIR)\thread_rwlock.obj" \
+	"$(INTDIR)\apr_pools.obj" \
+	"$(INTDIR)\charset.obj" \
+	"$(INTDIR)\env.obj" \
+	"$(INTDIR)\errorcodes.obj" \
+	"$(INTDIR)\getopt.obj" \
+	"$(INTDIR)\internal.obj" \
+	"$(INTDIR)\misc.obj" \
+	"$(INTDIR)\otherchild.obj" \
+	"$(INTDIR)\rand.obj" \
+	"$(INTDIR)\start.obj" \
+	"$(INTDIR)\utf8.obj" \
+	"$(INTDIR)\version.obj" \
+	"$(INTDIR)\common.obj" \
+	"$(INTDIR)\mmap.obj" \
+	"$(INTDIR)\inet_ntop.obj" \
+	"$(INTDIR)\inet_pton.obj" \
+	"$(INTDIR)\multicast.obj" \
+	"$(INTDIR)\sendrecv.obj" \
+	"$(INTDIR)\sockaddr.obj" \
+	"$(INTDIR)\sockets.obj" \
+	"$(INTDIR)\socket_util.obj" \
+	"$(INTDIR)\sockopt.obj" \
+	"$(INTDIR)\apr_getpass.obj" \
+	"$(INTDIR)\poll.obj" \
+	"$(INTDIR)\pollcb.obj" \
+	"$(INTDIR)\pollset.obj" \
+	"$(INTDIR)\select.obj" \
+	"$(INTDIR)\apr_random.obj" \
+	"$(INTDIR)\sha2.obj" \
+	"$(INTDIR)\sha2_glue.obj" \
+	"$(INTDIR)\shm.obj" \
+	"$(INTDIR)\apr_cpystrn.obj" \
+	"$(INTDIR)\apr_fnmatch.obj" \
+	"$(INTDIR)\apr_snprintf.obj" \
+	"$(INTDIR)\apr_strings.obj" \
+	"$(INTDIR)\apr_strnatcmp.obj" \
+	"$(INTDIR)\apr_strtok.obj" \
+	"$(INTDIR)\apr_hash.obj" \
+	"$(INTDIR)\apr_tables.obj" \
+	"$(INTDIR)\apr_skiplist.obj" \
+	"$(INTDIR)\proc.obj" \
+	"$(INTDIR)\signals.obj" \
+	"$(INTDIR)\thread.obj" \
+	"$(INTDIR)\threadpriv.obj" \
+	"$(INTDIR)\time.obj" \
+	"$(INTDIR)\timestr.obj" \
+	"$(INTDIR)\groupinfo.obj" \
+	"$(INTDIR)\userinfo.obj" \
+	"$(INTDIR)\libapr.res"
+
+"$(OUTDIR)\libapr-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+TargetPath=.\9x\Release\libapr-1.dll
+SOURCE="$(InputPath)"
+PostBuild_Desc=Embed .manifest
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+
+# Begin Custom Macros
+OutDir=.\9x\Release
+# End Custom Macros
+
+"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libapr-1.dll"
+   if exist .\9x\Release\libapr-1.dll.manifest mt.exe -manifest .\9x\Release\libapr-1.dll.manifest -outputresource:.\9x\Release\libapr-1.dll;2
+	echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Debug9x"
+
+OUTDIR=.\9x\Debug
+INTDIR=.\9x\Debug
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+# Begin Custom Macros
+OutDir=.\9x\Debug
+# End Custom Macros
+
+ALL : ".\include\apr_escape_test_char.h" ".\include\apr.h" ".\9x\Debug\gen_test_char.exe" "$(OUTDIR)\libapr-1.dll" "$(DS_POSTBUILD_DEP)"
+
+
+CLEAN :
+	-@erase "$(INTDIR)\apr_atomic.obj"
+	-@erase "$(INTDIR)\apr_cpystrn.obj"
+	-@erase "$(INTDIR)\apr_escape.obj"
+	-@erase "$(INTDIR)\apr_fnmatch.obj"
+	-@erase "$(INTDIR)\apr_getpass.obj"
+	-@erase "$(INTDIR)\apr_hash.obj"
+	-@erase "$(INTDIR)\apr_pools.obj"
+	-@erase "$(INTDIR)\apr_random.obj"
+	-@erase "$(INTDIR)\apr_skiplist.obj"
+	-@erase "$(INTDIR)\apr_snprintf.obj"
+	-@erase "$(INTDIR)\apr_strings.obj"
+	-@erase "$(INTDIR)\apr_strnatcmp.obj"
+	-@erase "$(INTDIR)\apr_strtok.obj"
+	-@erase "$(INTDIR)\apr_tables.obj"
+	-@erase "$(INTDIR)\buffer.obj"
+	-@erase "$(INTDIR)\charset.obj"
+	-@erase "$(INTDIR)\common.obj"
+	-@erase "$(INTDIR)\copy.obj"
+	-@erase "$(INTDIR)\dir.obj"
+	-@erase "$(INTDIR)\dso.obj"
+	-@erase "$(INTDIR)\env.obj"
+	-@erase "$(INTDIR)\errorcodes.obj"
+	-@erase "$(INTDIR)\fileacc.obj"
+	-@erase "$(INTDIR)\filedup.obj"
+	-@erase "$(INTDIR)\filepath.obj"
+	-@erase "$(INTDIR)\filepath_util.obj"
+	-@erase "$(INTDIR)\filestat.obj"
+	-@erase "$(INTDIR)\filesys.obj"
+	-@erase "$(INTDIR)\flock.obj"
+	-@erase "$(INTDIR)\fullrw.obj"
+	-@erase "$(INTDIR)\getopt.obj"
+	-@erase "$(INTDIR)\groupinfo.obj"
+	-@erase "$(INTDIR)\inet_ntop.obj"
+	-@erase "$(INTDIR)\inet_pton.obj"
+	-@erase "$(INTDIR)\internal.obj"
+	-@erase "$(INTDIR)\libapr.res"
+	-@erase "$(INTDIR)\libapr_src.idb"
+	-@erase "$(INTDIR)\libapr_src.pdb"
+	-@erase "$(INTDIR)\misc.obj"
+	-@erase "$(INTDIR)\mktemp.obj"
+	-@erase "$(INTDIR)\mmap.obj"
+	-@erase "$(INTDIR)\multicast.obj"
+	-@erase "$(INTDIR)\open.obj"
+	-@erase "$(INTDIR)\otherchild.obj"
+	-@erase "$(INTDIR)\pipe.obj"
+	-@erase "$(INTDIR)\poll.obj"
+	-@erase "$(INTDIR)\pollcb.obj"
+	-@erase "$(INTDIR)\pollset.obj"
+	-@erase "$(INTDIR)\proc.obj"
+	-@erase "$(INTDIR)\proc_mutex.obj"
+	-@erase "$(INTDIR)\rand.obj"
+	-@erase "$(INTDIR)\readwrite.obj"
+	-@erase "$(INTDIR)\seek.obj"
+	-@erase "$(INTDIR)\select.obj"
+	-@erase "$(INTDIR)\sendrecv.obj"
+	-@erase "$(INTDIR)\sha2.obj"
+	-@erase "$(INTDIR)\sha2_glue.obj"
+	-@erase "$(INTDIR)\shm.obj"
+	-@erase "$(INTDIR)\signals.obj"
+	-@erase "$(INTDIR)\sockaddr.obj"
+	-@erase "$(INTDIR)\socket_util.obj"
+	-@erase "$(INTDIR)\sockets.obj"
+	-@erase "$(INTDIR)\sockopt.obj"
+	-@erase "$(INTDIR)\start.obj"
+	-@erase "$(INTDIR)\tempdir.obj"
+	-@erase "$(INTDIR)\thread.obj"
+	-@erase "$(INTDIR)\thread_cond.obj"
+	-@erase "$(INTDIR)\thread_mutex.obj"
+	-@erase "$(INTDIR)\thread_rwlock.obj"
+	-@erase "$(INTDIR)\threadpriv.obj"
+	-@erase "$(INTDIR)\time.obj"
+	-@erase "$(INTDIR)\timestr.obj"
+	-@erase "$(INTDIR)\userinfo.obj"
+	-@erase "$(INTDIR)\utf8.obj"
+	-@erase "$(INTDIR)\version.obj"
+	-@erase "$(OUTDIR)\libapr-1.dll"
+	-@erase "$(OUTDIR)\libapr-1.exp"
+	-@erase "$(OUTDIR)\libapr-1.lib"
+	-@erase "$(OUTDIR)\libapr-1.pdb"
+	-@erase ".\include\apr.h"
+	-@erase ".\include\apr_gen_test_char.h"
+	-@erase "$(OUTDIR)\gen_test_char.exe"
+	-@erase "$(OUTDIR)\gen_test_char.obj"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "_DEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libapr_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)\libapr.res" /i "./include" /d "_DEBUG" /d "APR_VERSION_ONLY" 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\libapr.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib shell32.lib rpcrt4.lib /nologo /base:"0x6EEC0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libapr-1.pdb" /debug /out:"$(OUTDIR)\libapr-1.dll" /implib:"$(OUTDIR)\libapr-1.lib" /MACHINE:X86 
+LINK32_OBJS= \
+	"$(INTDIR)\apr_atomic.obj" \
+	"$(INTDIR)\dso.obj" \
+	"$(INTDIR)\apr_escape.obj" \
+	"$(INTDIR)\buffer.obj" \
+	"$(INTDIR)\copy.obj" \
+	"$(INTDIR)\dir.obj" \
+	"$(INTDIR)\fileacc.obj" \
+	"$(INTDIR)\filedup.obj" \
+	"$(INTDIR)\filepath.obj" \
+	"$(INTDIR)\filepath_util.obj" \
+	"$(INTDIR)\filestat.obj" \
+	"$(INTDIR)\filesys.obj" \
+	"$(INTDIR)\flock.obj" \
+	"$(INTDIR)\fullrw.obj" \
+	"$(INTDIR)\mktemp.obj" \
+	"$(INTDIR)\open.obj" \
+	"$(INTDIR)\pipe.obj" \
+	"$(INTDIR)\readwrite.obj" \
+	"$(INTDIR)\seek.obj" \
+	"$(INTDIR)\tempdir.obj" \
+	"$(INTDIR)\proc_mutex.obj" \
+	"$(INTDIR)\thread_cond.obj" \
+	"$(INTDIR)\thread_mutex.obj" \
+	"$(INTDIR)\thread_rwlock.obj" \
+	"$(INTDIR)\apr_pools.obj" \
+	"$(INTDIR)\charset.obj" \
+	"$(INTDIR)\env.obj" \
+	"$(INTDIR)\errorcodes.obj" \
+	"$(INTDIR)\getopt.obj" \
+	"$(INTDIR)\internal.obj" \
+	"$(INTDIR)\misc.obj" \
+	"$(INTDIR)\otherchild.obj" \
+	"$(INTDIR)\rand.obj" \
+	"$(INTDIR)\start.obj" \
+	"$(INTDIR)\utf8.obj" \
+	"$(INTDIR)\version.obj" \
+	"$(INTDIR)\common.obj" \
+	"$(INTDIR)\mmap.obj" \
+	"$(INTDIR)\inet_ntop.obj" \
+	"$(INTDIR)\inet_pton.obj" \
+	"$(INTDIR)\multicast.obj" \
+	"$(INTDIR)\sendrecv.obj" \
+	"$(INTDIR)\sockaddr.obj" \
+	"$(INTDIR)\sockets.obj" \
+	"$(INTDIR)\socket_util.obj" \
+	"$(INTDIR)\sockopt.obj" \
+	"$(INTDIR)\apr_getpass.obj" \
+	"$(INTDIR)\poll.obj" \
+	"$(INTDIR)\pollcb.obj" \
+	"$(INTDIR)\pollset.obj" \
+	"$(INTDIR)\select.obj" \
+	"$(INTDIR)\apr_random.obj" \
+	"$(INTDIR)\sha2.obj" \
+	"$(INTDIR)\sha2_glue.obj" \
+	"$(INTDIR)\shm.obj" \
+	"$(INTDIR)\apr_cpystrn.obj" \
+	"$(INTDIR)\apr_fnmatch.obj" \
+	"$(INTDIR)\apr_snprintf.obj" \
+	"$(INTDIR)\apr_strings.obj" \
+	"$(INTDIR)\apr_strnatcmp.obj" \
+	"$(INTDIR)\apr_strtok.obj" \
+	"$(INTDIR)\apr_hash.obj" \
+	"$(INTDIR)\apr_tables.obj" \
+	"$(INTDIR)\apr_skiplist.obj" \
+	"$(INTDIR)\proc.obj" \
+	"$(INTDIR)\signals.obj" \
+	"$(INTDIR)\thread.obj" \
+	"$(INTDIR)\threadpriv.obj" \
+	"$(INTDIR)\time.obj" \
+	"$(INTDIR)\timestr.obj" \
+	"$(INTDIR)\groupinfo.obj" \
+	"$(INTDIR)\userinfo.obj" \
+	"$(INTDIR)\libapr.res"
+
+"$(OUTDIR)\libapr-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+TargetPath=.\9x\Debug\libapr-1.dll
+SOURCE="$(InputPath)"
+PostBuild_Desc=Embed .manifest
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+
+# Begin Custom Macros
+OutDir=.\9x\Debug
+# End Custom Macros
+
+"$(DS_POSTBUILD_DEP)" : "$(OUTDIR)\libapr-1.dll"
+   if exist .\9x\Debug\libapr-1.dll.manifest mt.exe -manifest .\9x\Debug\libapr-1.dll.manifest -outputresource:.\9x\Debug\libapr-1.dll;2
+	echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
+
+!ELSEIF  "$(CFG)" == "libapr - x64 Release"
+
+OUTDIR=.\x64\Release
+INTDIR=.\x64\Release
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+# Begin Custom Macros
+OutDir=.\x64\Release
+# End Custom Macros
+
+ALL : ".\x64\Release\gen_test_char.exe" ".\include\apr_escape_test_char.h" "$(OUTDIR)\libapr-1.dll" "$(DS_POSTBUILD_DEP)"
+
+
+CLEAN :
+	-@erase "$(INTDIR)\apr_atomic.obj"
+	-@erase "$(INTDIR)\apr_cpystrn.obj"
+	-@erase "$(INTDIR)\apr_escape.obj"
+	-@erase "$(INTDIR)\apr_fnmatch.obj"
+	-@erase "$(INTDIR)\apr_getpass.obj"
+	-@erase "$(INTDIR)\apr_hash.obj"
+	-@erase "$(INTDIR)\apr_pools.obj"
+	-@erase "$(INTDIR)\apr_random.obj"
+	-@erase "$(INTDIR)\apr_skiplist.obj"
+	-@erase "$(INTDIR)\apr_snprintf.obj"
+	-@erase "$(INTDIR)\apr_strings.obj"
+	-@erase "$(INTDIR)\apr_strnatcmp.obj"
+	-@erase "$(INTDIR)\apr_strtok.obj"
+	-@erase "$(INTDIR)\apr_tables.obj"
+	-@erase "$(INTDIR)\buffer.obj"
+	-@erase "$(INTDIR)\charset.obj"
+	-@erase "$(INTDIR)\common.obj"
+	-@erase "$(INTDIR)\copy.obj"
+	-@erase "$(INTDIR)\dir.obj"
+	-@erase "$(INTDIR)\dso.obj"
+	-@erase "$(INTDIR)\env.obj"
+	-@erase "$(INTDIR)\errorcodes.obj"
+	-@erase "$(INTDIR)\fileacc.obj"
+	-@erase "$(INTDIR)\filedup.obj"
+	-@erase "$(INTDIR)\filepath.obj"
+	-@erase "$(INTDIR)\filepath_util.obj"
+	-@erase "$(INTDIR)\filestat.obj"
+	-@erase "$(INTDIR)\filesys.obj"
+	-@erase "$(INTDIR)\flock.obj"
+	-@erase "$(INTDIR)\fullrw.obj"
+	-@erase "$(INTDIR)\getopt.obj"
+	-@erase "$(INTDIR)\groupinfo.obj"
+	-@erase "$(INTDIR)\inet_ntop.obj"
+	-@erase "$(INTDIR)\inet_pton.obj"
+	-@erase "$(INTDIR)\internal.obj"
+	-@erase "$(INTDIR)\libapr.res"
+	-@erase "$(INTDIR)\libapr_src.idb"
+	-@erase "$(INTDIR)\libapr_src.pdb"
+	-@erase "$(INTDIR)\misc.obj"
+	-@erase "$(INTDIR)\mktemp.obj"
+	-@erase "$(INTDIR)\mmap.obj"
+	-@erase "$(INTDIR)\multicast.obj"
+	-@erase "$(INTDIR)\open.obj"
+	-@erase "$(INTDIR)\otherchild.obj"
+	-@erase "$(INTDIR)\pipe.obj"
+	-@erase "$(INTDIR)\poll.obj"
+	-@erase "$(INTDIR)\pollcb.obj"
+	-@erase "$(INTDIR)\pollset.obj"
+	-@erase "$(INTDIR)\proc.obj"
+	-@erase "$(INTDIR)\proc_mutex.obj"
+	-@erase "$(INTDIR)\rand.obj"
+	-@erase "$(INTDIR)\readwrite.obj"
+	-@erase "$(INTDIR)\seek.obj"
+	-@erase "$(INTDIR)\select.obj"
+	-@erase "$(INTDIR)\sendrecv.obj"
+	-@erase "$(INTDIR)\sha2.obj"
+	-@erase "$(INTDIR)\sha2_glue.obj"
+	-@erase "$(INTDIR)\shm.obj"
+	-@erase "$(INTDIR)\signals.obj"
+	-@erase "$(INTDIR)\sockaddr.obj"
+	-@erase "$(INTDIR)\socket_util.obj"
+	-@erase "$(INTDIR)\sockets.obj"
+	-@erase "$(INTDIR)\sockopt.obj"
+	-@erase "$(INTDIR)\start.obj"
+	-@erase "$(INTDIR)\tempdir.obj"
+	-@erase "$(INTDIR)\thread.obj"
+	-@erase "$(INTDIR)\thread_cond.obj"
+	-@erase "$(INTDIR)\thread_mutex.obj"
+	-@erase "$(INTDIR)\thread_rwlock.obj"
+	-@erase "$(INTDIR)\threadpriv.obj"
+	-@erase "$(INTDIR)\time.obj"
+	-@erase "$(INTDIR)\timestr.obj"
+	-@erase "$(INTDIR)\userinfo.obj"
+	-@erase "$(INTDIR)\utf8.obj"
+	-@erase "$(INTDIR)\version.obj"
+	-@erase "$(OUTDIR)\libapr-1.dll"
+	-@erase "$(OUTDIR)\libapr-1.exp"
+	-@erase "$(OUTDIR)\libapr-1.lib"
+	-@erase "$(OUTDIR)\libapr-1.pdb"
+	-@erase ".\include\apr.h"
+	-@erase ".\include\apr_gen_test_char.h"
+	-@erase "$(OUTDIR)\gen_test_char.exe"
+	-@erase "$(OUTDIR)\gen_test_char.obj"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "NDEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libapr_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)\libapr.res" /i "./include" /d "NDEBUG" /d "APR_VERSION_ONLY" 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\libapr.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib shell32.lib rpcrt4.lib /nologo /base:"0x6EEC0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libapr-1.pdb" /debug /out:"$(OUTDIR)\libapr-1.dll" /implib:"$(OUTDIR)\libapr-1.lib" /MACHINE:X64 /opt:ref 
+LINK32_OBJS= \
+	"$(INTDIR)\apr_atomic.obj" \
+	"$(INTDIR)\dso.obj" \
+	"$(INTDIR)\apr_escape.obj" \
+	"$(INTDIR)\buffer.obj" \
+	"$(INTDIR)\copy.obj" \
+	"$(INTDIR)\dir.obj" \
+	"$(INTDIR)\fileacc.obj" \
+	"$(INTDIR)\filedup.obj" \
+	"$(INTDIR)\filepath.obj" \
+	"$(INTDIR)\filepath_util.obj" \
+	"$(INTDIR)\filestat.obj" \
+	"$(INTDIR)\filesys.obj" \
+	"$(INTDIR)\flock.obj" \
+	"$(INTDIR)\fullrw.obj" \
+	"$(INTDIR)\mktemp.obj" \
+	"$(INTDIR)\open.obj" \
+	"$(INTDIR)\pipe.obj" \
+	"$(INTDIR)\readwrite.obj" \
+	"$(INTDIR)\seek.obj" \
+	"$(INTDIR)\tempdir.obj" \
+	"$(INTDIR)\proc_mutex.obj" \
+	"$(INTDIR)\thread_cond.obj" \
+	"$(INTDIR)\thread_mutex.obj" \
+	"$(INTDIR)\thread_rwlock.obj" \
+	"$(INTDIR)\apr_pools.obj" \
+	"$(INTDIR)\charset.obj" \
+	"$(INTDIR)\env.obj" \
+	"$(INTDIR)\errorcodes.obj" \
+	"$(INTDIR)\getopt.obj" \
+	"$(INTDIR)\internal.obj" \
+	"$(INTDIR)\misc.obj" \
+	"$(INTDIR)\otherchild.obj" \
+	"$(INTDIR)\rand.obj" \
+	"$(INTDIR)\start.obj" \
+	"$(INTDIR)\utf8.obj" \
+	"$(INTDIR)\version.obj" \
+	"$(INTDIR)\common.obj" \
+	"$(INTDIR)\mmap.obj" \
+	"$(INTDIR)\inet_ntop.obj" \
+	"$(INTDIR)\inet_pton.obj" \
+	"$(INTDIR)\multicast.obj" \
+	"$(INTDIR)\sendrecv.obj" \
+	"$(INTDIR)\sockaddr.obj" \
+	"$(INTDIR)\sockets.obj" \
+	"$(INTDIR)\socket_util.obj" \
+	"$(INTDIR)\sockopt.obj" \
+	"$(INTDIR)\apr_getpass.obj" \
+	"$(INTDIR)\poll.obj" \
+	"$(INTDIR)\pollcb.obj" \
+	"$(INTDIR)\pollset.obj" \
+	"$(INTDIR)\select.obj" \
+	"$(INTDIR)\apr_random.obj" \
+	"$(INTDIR)\sha2.obj" \
+	"$(INTDIR)\sha2_glue.obj" \
+	"$(INTDIR)\shm.obj" \
+	"$(INTDIR)\apr_cpystrn.obj" \
+	"$(INTDIR)\apr_fnmatch.obj" \
+	"$(INTDIR)\apr_snprintf.obj" \
+	"$(INTDIR)\apr_strings.obj" \
+	"$(INTDIR)\apr_strnatcmp.obj" \
+	"$(INTDIR)\apr_strtok.obj" \
+	"$(INTDIR)\apr_hash.obj" \
+	"$(INTDIR)\apr_tables.obj" \
+	"$(INTDIR)\apr_skiplist.obj" \
+	"$(INTDIR)\proc.obj" \
+	"$(INTDIR)\signals.obj" \
+	"$(INTDIR)\thread.obj" \
+	"$(INTDIR)\threadpriv.obj" \
+	"$(INTDIR)\time.obj" \
+	"$(INTDIR)\timestr.obj" \
+	"$(INTDIR)\groupinfo.obj" \
+	"$(INTDIR)\userinfo.obj" \
+	"$(INTDIR)\libapr.res"
+
+"$(OUTDIR)\libapr-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+TargetPath=.\x64\Release\libapr-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)\libapr-1.dll"
+   if exist .\x64\Release\libapr-1.dll.manifest mt.exe -manifest .\x64\Release\libapr-1.dll.manifest -outputresource:.\x64\Release\libapr-1.dll;2
+	echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
+
+!ELSEIF  "$(CFG)" == "libapr - x64 Debug"
+
+OUTDIR=.\x64\Debug
+INTDIR=.\x64\Debug
+DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
+# Begin Custom Macros
+OutDir=.\x64\Debug
+# End Custom Macros
+
+ALL : ".\x64\Debug\gen_test_char.exe" ".\include\apr_escape_test_char.h" "$(OUTDIR)\libapr-1.dll" "$(DS_POSTBUILD_DEP)"
+
+
+CLEAN :
+	-@erase "$(INTDIR)\apr_atomic.obj"
+	-@erase "$(INTDIR)\apr_cpystrn.obj"
+	-@erase "$(INTDIR)\apr_escape.obj"
+	-@erase "$(INTDIR)\apr_fnmatch.obj"
+	-@erase "$(INTDIR)\apr_getpass.obj"
+	-@erase "$(INTDIR)\apr_hash.obj"
+	-@erase "$(INTDIR)\apr_pools.obj"
+	-@erase "$(INTDIR)\apr_random.obj"
+	-@erase "$(INTDIR)\apr_skiplist.obj"
+	-@erase "$(INTDIR)\apr_snprintf.obj"
+	-@erase "$(INTDIR)\apr_strings.obj"
+	-@erase "$(INTDIR)\apr_strnatcmp.obj"
+	-@erase "$(INTDIR)\apr_strtok.obj"
+	-@erase "$(INTDIR)\apr_tables.obj"
+	-@erase "$(INTDIR)\buffer.obj"
+	-@erase "$(INTDIR)\charset.obj"
+	-@erase "$(INTDIR)\common.obj"
+	-@erase "$(INTDIR)\copy.obj"
+	-@erase "$(INTDIR)\dir.obj"
+	-@erase "$(INTDIR)\dso.obj"
+	-@erase "$(INTDIR)\env.obj"
+	-@erase "$(INTDIR)\errorcodes.obj"
+	-@erase "$(INTDIR)\fileacc.obj"
+	-@erase "$(INTDIR)\filedup.obj"
+	-@erase "$(INTDIR)\filepath.obj"
+	-@erase "$(INTDIR)\filepath_util.obj"
+	-@erase "$(INTDIR)\filestat.obj"
+	-@erase "$(INTDIR)\filesys.obj"
+	-@erase "$(INTDIR)\flock.obj"
+	-@erase "$(INTDIR)\fullrw.obj"
+	-@erase "$(INTDIR)\getopt.obj"
+	-@erase "$(INTDIR)\groupinfo.obj"
+	-@erase "$(INTDIR)\inet_ntop.obj"
+	-@erase "$(INTDIR)\inet_pton.obj"
+	-@erase "$(INTDIR)\internal.obj"
+	-@erase "$(INTDIR)\libapr.res"
+	-@erase "$(INTDIR)\libapr_src.idb"
+	-@erase "$(INTDIR)\libapr_src.pdb"
+	-@erase "$(INTDIR)\misc.obj"
+	-@erase "$(INTDIR)\mktemp.obj"
+	-@erase "$(INTDIR)\mmap.obj"
+	-@erase "$(INTDIR)\multicast.obj"
+	-@erase "$(INTDIR)\open.obj"
+	-@erase "$(INTDIR)\otherchild.obj"
+	-@erase "$(INTDIR)\pipe.obj"
+	-@erase "$(INTDIR)\poll.obj"
+	-@erase "$(INTDIR)\pollcb.obj"
+	-@erase "$(INTDIR)\pollset.obj"
+	-@erase "$(INTDIR)\proc.obj"
+	-@erase "$(INTDIR)\proc_mutex.obj"
+	-@erase "$(INTDIR)\rand.obj"
+	-@erase "$(INTDIR)\readwrite.obj"
+	-@erase "$(INTDIR)\seek.obj"
+	-@erase "$(INTDIR)\select.obj"
+	-@erase "$(INTDIR)\sendrecv.obj"
+	-@erase "$(INTDIR)\sha2.obj"
+	-@erase "$(INTDIR)\sha2_glue.obj"
+	-@erase "$(INTDIR)\shm.obj"
+	-@erase "$(INTDIR)\signals.obj"
+	-@erase "$(INTDIR)\sockaddr.obj"
+	-@erase "$(INTDIR)\socket_util.obj"
+	-@erase "$(INTDIR)\sockets.obj"
+	-@erase "$(INTDIR)\sockopt.obj"
+	-@erase "$(INTDIR)\start.obj"
+	-@erase "$(INTDIR)\tempdir.obj"
+	-@erase "$(INTDIR)\thread.obj"
+	-@erase "$(INTDIR)\thread_cond.obj"
+	-@erase "$(INTDIR)\thread_mutex.obj"
+	-@erase "$(INTDIR)\thread_rwlock.obj"
+	-@erase "$(INTDIR)\threadpriv.obj"
+	-@erase "$(INTDIR)\time.obj"
+	-@erase "$(INTDIR)\timestr.obj"
+	-@erase "$(INTDIR)\userinfo.obj"
+	-@erase "$(INTDIR)\utf8.obj"
+	-@erase "$(INTDIR)\version.obj"
+	-@erase "$(OUTDIR)\libapr-1.dll"
+	-@erase "$(OUTDIR)\libapr-1.exp"
+	-@erase "$(OUTDIR)\libapr-1.lib"
+	-@erase "$(OUTDIR)\libapr-1.pdb"
+	-@erase ".\include\apr.h"
+	-@erase ".\include\apr_gen_test_char.h"
+	-@erase "$(OUTDIR)\gen_test_char.exe"
+	-@erase "$(OUTDIR)\gen_test_char.obj"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /D "_DEBUG" /D "APR_DECLARE_EXPORT" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\libapr_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)\libapr.res" /i "./include" /d "_DEBUG" /d "APR_VERSION_ONLY" 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\libapr.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib advapi32.lib ws2_32.lib mswsock.lib ole32.lib shell32.lib rpcrt4.lib /nologo /base:"0x6EEC0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\libapr-1.pdb" /debug /out:"$(OUTDIR)\libapr-1.dll" /implib:"$(OUTDIR)\libapr-1.lib" /MACHINE:X64 
+LINK32_OBJS= \
+	"$(INTDIR)\apr_atomic.obj" \
+	"$(INTDIR)\dso.obj" \
+	"$(INTDIR)\apr_escape.obj" \
+	"$(INTDIR)\buffer.obj" \
+	"$(INTDIR)\copy.obj" \
+	"$(INTDIR)\dir.obj" \
+	"$(INTDIR)\fileacc.obj" \
+	"$(INTDIR)\filedup.obj" \
+	"$(INTDIR)\filepath.obj" \
+	"$(INTDIR)\filepath_util.obj" \
+	"$(INTDIR)\filestat.obj" \
+	"$(INTDIR)\filesys.obj" \
+	"$(INTDIR)\flock.obj" \
+	"$(INTDIR)\fullrw.obj" \
+	"$(INTDIR)\mktemp.obj" \
+	"$(INTDIR)\open.obj" \
+	"$(INTDIR)\pipe.obj" \
+	"$(INTDIR)\readwrite.obj" \
+	"$(INTDIR)\seek.obj" \
+	"$(INTDIR)\tempdir.obj" \
+	"$(INTDIR)\proc_mutex.obj" \
+	"$(INTDIR)\thread_cond.obj" \
+	"$(INTDIR)\thread_mutex.obj" \
+	"$(INTDIR)\thread_rwlock.obj" \
+	"$(INTDIR)\apr_pools.obj" \
+	"$(INTDIR)\charset.obj" \
+	"$(INTDIR)\env.obj" \
+	"$(INTDIR)\errorcodes.obj" \
+	"$(INTDIR)\getopt.obj" \
+	"$(INTDIR)\internal.obj" \
+	"$(INTDIR)\misc.obj" \
+	"$(INTDIR)\otherchild.obj" \
+	"$(INTDIR)\rand.obj" \
+	"$(INTDIR)\start.obj" \
+	"$(INTDIR)\utf8.obj" \
+	"$(INTDIR)\version.obj" \
+	"$(INTDIR)\common.obj" \
+	"$(INTDIR)\mmap.obj" \
+	"$(INTDIR)\inet_ntop.obj" \
+	"$(INTDIR)\inet_pton.obj" \
+	"$(INTDIR)\multicast.obj" \
+	"$(INTDIR)\sendrecv.obj" \
+	"$(INTDIR)\sockaddr.obj" \
+	"$(INTDIR)\sockets.obj" \
+	"$(INTDIR)\socket_util.obj" \
+	"$(INTDIR)\sockopt.obj" \
+	"$(INTDIR)\apr_getpass.obj" \
+	"$(INTDIR)\poll.obj" \
+	"$(INTDIR)\pollcb.obj" \
+	"$(INTDIR)\pollset.obj" \
+	"$(INTDIR)\select.obj" \
+	"$(INTDIR)\apr_random.obj" \
+	"$(INTDIR)\sha2.obj" \
+	"$(INTDIR)\sha2_glue.obj" \
+	"$(INTDIR)\shm.obj" \
+	"$(INTDIR)\apr_cpystrn.obj" \
+	"$(INTDIR)\apr_fnmatch.obj" \
+	"$(INTDIR)\apr_snprintf.obj" \
+	"$(INTDIR)\apr_strings.obj" \
+	"$(INTDIR)\apr_strnatcmp.obj" \
+	"$(INTDIR)\apr_strtok.obj" \
+	"$(INTDIR)\apr_hash.obj" \
+	"$(INTDIR)\apr_tables.obj" \
+	"$(INTDIR)\apr_skiplist.obj" \
+	"$(INTDIR)\proc.obj" \
+	"$(INTDIR)\signals.obj" \
+	"$(INTDIR)\thread.obj" \
+	"$(INTDIR)\threadpriv.obj" \
+	"$(INTDIR)\time.obj" \
+	"$(INTDIR)\timestr.obj" \
+	"$(INTDIR)\groupinfo.obj" \
+	"$(INTDIR)\userinfo.obj" \
+	"$(INTDIR)\libapr.res"
+
+"$(OUTDIR)\libapr-1.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+TargetPath=.\x64\Debug\libapr-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)\libapr-1.dll"
+   if exist .\x64\Debug\libapr-1.dll.manifest mt.exe -manifest .\x64\Debug\libapr-1.dll.manifest -outputresource:.\x64\Debug\libapr-1.dll;2
+	echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
+
+!ENDIF 
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("libapr.dep")
+!INCLUDE "libapr.dep"
+!ELSE 
+!MESSAGE Warning: cannot find "libapr.dep"
+!ENDIF 
+!ENDIF 
+
+
+!IF "$(CFG)" == "libapr - Win32 Release" || "$(CFG)" == "libapr - Win32 Debug" || "$(CFG)" == "libapr - Win32 Release9x" || "$(CFG)" == "libapr - Win32 Debug9x" || "$(CFG)" == "libapr - x64 Release" || "$(CFG)" == "libapr - x64 Debug"
+SOURCE=.\atomic\win32\apr_atomic.c
+
+"$(INTDIR)\apr_atomic.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dso\win32\dso.c
+
+"$(INTDIR)\dso.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\encoding\apr_escape.c
+
+"$(INTDIR)\apr_escape.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr_escape.h" ".\include\apr_escape_test_char.h" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\buffer.c
+
+"$(INTDIR)\buffer.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\unix\copy.c
+
+"$(INTDIR)\copy.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\dir.c
+
+"$(INTDIR)\dir.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\unix\fileacc.c
+
+"$(INTDIR)\fileacc.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\filedup.c
+
+"$(INTDIR)\filedup.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\filepath.c
+
+"$(INTDIR)\filepath.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\unix\filepath_util.c
+
+"$(INTDIR)\filepath_util.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\filestat.c
+
+"$(INTDIR)\filestat.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\filesys.c
+
+"$(INTDIR)\filesys.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\flock.c
+
+"$(INTDIR)\flock.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\unix\fullrw.c
+
+"$(INTDIR)\fullrw.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\unix\mktemp.c
+
+"$(INTDIR)\mktemp.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\open.c
+
+"$(INTDIR)\open.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\pipe.c
+
+"$(INTDIR)\pipe.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\readwrite.c
+
+"$(INTDIR)\readwrite.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\seek.c
+
+"$(INTDIR)\seek.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\unix\tempdir.c
+
+"$(INTDIR)\tempdir.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\locks\win32\proc_mutex.c
+
+"$(INTDIR)\proc_mutex.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\locks\win32\thread_cond.c
+
+"$(INTDIR)\thread_cond.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\locks\win32\thread_mutex.c
+
+"$(INTDIR)\thread_mutex.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\locks\win32\thread_rwlock.c
+
+"$(INTDIR)\thread_rwlock.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\memory\unix\apr_pools.c
+
+"$(INTDIR)\apr_pools.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\win32\apr_app.c
+SOURCE=.\misc\win32\charset.c
+
+"$(INTDIR)\charset.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\win32\env.c
+
+"$(INTDIR)\env.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\unix\errorcodes.c
+
+"$(INTDIR)\errorcodes.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\unix\getopt.c
+
+"$(INTDIR)\getopt.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\win32\internal.c
+
+"$(INTDIR)\internal.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\win32\misc.c
+
+"$(INTDIR)\misc.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\unix\otherchild.c
+
+"$(INTDIR)\otherchild.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\win32\rand.c
+
+"$(INTDIR)\rand.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\win32\start.c
+
+"$(INTDIR)\start.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\win32\utf8.c
+
+"$(INTDIR)\utf8.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\unix\version.c
+
+"$(INTDIR)\version.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\mmap\unix\common.c
+
+"$(INTDIR)\common.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\mmap\win32\mmap.c
+
+"$(INTDIR)\mmap.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\network_io\unix\inet_ntop.c
+
+"$(INTDIR)\inet_ntop.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\network_io\unix\inet_pton.c
+
+"$(INTDIR)\inet_pton.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\network_io\unix\multicast.c
+
+"$(INTDIR)\multicast.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\network_io\win32\sendrecv.c
+
+"$(INTDIR)\sendrecv.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\network_io\unix\sockaddr.c
+
+"$(INTDIR)\sockaddr.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\network_io\unix\socket_util.c
+
+"$(INTDIR)\socket_util.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\network_io\win32\sockets.c
+
+"$(INTDIR)\sockets.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\network_io\win32\sockopt.c
+
+"$(INTDIR)\sockopt.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\passwd\apr_getpass.c
+
+"$(INTDIR)\apr_getpass.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\poll\unix\poll.c
+
+"$(INTDIR)\poll.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\poll\unix\pollcb.c
+
+"$(INTDIR)\pollcb.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\poll\unix\pollset.c
+
+"$(INTDIR)\pollset.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\poll\unix\select.c
+
+"$(INTDIR)\select.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\random\unix\apr_random.c
+
+"$(INTDIR)\apr_random.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\random\unix\sha2.c
+
+"$(INTDIR)\sha2.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\random\unix\sha2_glue.c
+
+"$(INTDIR)\sha2_glue.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\shmem\win32\shm.c
+
+"$(INTDIR)\shm.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\strings\apr_cpystrn.c
+
+"$(INTDIR)\apr_cpystrn.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\strings\apr_fnmatch.c
+
+"$(INTDIR)\apr_fnmatch.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\strings\apr_snprintf.c
+
+"$(INTDIR)\apr_snprintf.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\strings\apr_strings.c
+
+"$(INTDIR)\apr_strings.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\strings\apr_strnatcmp.c
+
+"$(INTDIR)\apr_strnatcmp.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\strings\apr_strtok.c
+
+"$(INTDIR)\apr_strtok.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\tables\apr_hash.c
+
+"$(INTDIR)\apr_hash.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\tables\apr_skiplist.c
+
+"$(INTDIR)\apr_skiplist.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\tables\apr_tables.c
+
+"$(INTDIR)\apr_tables.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\threadproc\win32\proc.c
+
+"$(INTDIR)\proc.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\threadproc\win32\signals.c
+
+"$(INTDIR)\signals.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\threadproc\win32\thread.c
+
+"$(INTDIR)\thread.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\threadproc\win32\threadpriv.c
+
+"$(INTDIR)\threadpriv.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\time\win32\time.c
+
+"$(INTDIR)\time.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\time\win32\timestr.c
+
+"$(INTDIR)\timestr.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\user\win32\groupinfo.c
+
+"$(INTDIR)\groupinfo.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\user\win32\userinfo.c
+
+"$(INTDIR)\userinfo.obj" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\include\apr.hw
+
+!IF  "$(CFG)" == "libapr - Win32 Release"
+
+InputPath=.\include\apr.hw
+
+".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	< .\include\apr.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Debug"
+
+InputPath=.\include\apr.hw
+
+".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	< .\include\apr.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Release9x"
+
+InputPath=.\include\apr.hw
+
+".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	< .\include\apr.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Debug9x"
+
+InputPath=.\include\apr.hw
+
+".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	< .\include\apr.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libapr - x64 Release"
+
+InputPath=.\include\apr.hw
+
+".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	< .\include\apr.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libapr - x64 Debug"
+
+InputPath=.\include\apr.hw
+
+".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	< .\include\apr.h
+<< 
+	
+
+!ENDIF 
+
+SOURCE=.\include\apr_escape.h
+
+!IF  "$(CFG)" == "libapr - Win32 Release"
+
+InputPath=.\include\apr_escape.h
+
+"$(INTDIR)\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	< .\include\apr_escape_test_char.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Debug"
+
+InputPath=.\include\apr_escape.h
+
+"$(INTDIR)\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	< .\include\apr_escape_test_char.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Release9x"
+
+InputPath=.\include\apr_escape.h
+
+"$(INTDIR)\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	< .\include\apr_escape_test_char.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Debug9x"
+
+InputPath=.\include\apr_escape.h
+
+"$(INTDIR)\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	< .\include\apr_escape_test_char.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libapr - x64 Release"
+
+InputPath=.\include\apr_escape.h
+
+"$(INTDIR)\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	< .\include\apr_escape_test_char.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libapr - x64 Debug"
+
+InputPath=.\include\apr_escape.h
+
+"$(INTDIR)\gen_test_char.exe" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	< .\include\apr_escape_test_char.h
+<< 
+	
+
+!ENDIF 
+
+SOURCE=.\include\apr_want.h
+
+!IF  "$(CFG)" == "libapr - Win32 Release"
+
+InputPath=.\include\apr_want.h
+
+".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	< .\include\apr.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Debug"
+
+InputPath=.\include\apr_want.h
+
+".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	< .\include\apr.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Release9x"
+
+InputPath=.\include\apr_want.h
+
+".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	< .\include\apr.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libapr - Win32 Debug9x"
+
+InputPath=.\include\apr_want.h
+
+".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	< .\include\apr.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libapr - x64 Release"
+
+InputPath=.\include\apr_want.h
+
+".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	< .\include\apr.h
+<< 
+	
+
+!ELSEIF  "$(CFG)" == "libapr - x64 Debug"
+
+InputPath=.\include\apr_want.h
+
+".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	< .\include\apr.h
+<< 
+	
+
+!ENDIF 
+
+SOURCE=.\libapr.rc
+
+"$(INTDIR)\libapr.res" : $(SOURCE) "$(INTDIR)" ".\include\apr.h"
+	$(RSC) $(RSC_PROJ) $(SOURCE)
+
+
+
+!ENDIF 
+
diff --git a/contrib/apr/locks/unix/proc_mutex.c b/contrib/apr/locks/unix/proc_mutex.c
index f9637e03f..fa8a872f1 100644
--- a/contrib/apr/locks/unix/proc_mutex.c
+++ b/contrib/apr/locks/unix/proc_mutex.c
@@ -102,8 +102,8 @@ static apr_status_t proc_mutex_posix_create(apr_proc_mutex_t *new_mutex,
         apr_ssize_t flen = strlen(fname);
         char *p = apr_pstrndup(new_mutex->pool, fname, strlen(fname));
         unsigned int h1, h2;
-        h1 = apr_hashfunc_default((const char *)p, &flen);
-        h2 = rshash(p);
+        h1 = (apr_hashfunc_default((const char *)p, &flen) & 0xffffffff);
+        h2 = (rshash(p) & 0xffffffff);
         apr_snprintf(semname, sizeof(semname), "/ApR.%xH%x", h1, h2);
     } else {
         apr_time_t now;
@@ -951,7 +951,12 @@ APR_DECLARE(apr_status_t) apr_os_proc_mutex_get(apr_os_proc_mutex_t *ospmutex,
                                                 apr_proc_mutex_t *pmutex)
 {
 #if APR_HAS_SYSVSEM_SERIALIZE || APR_HAS_FCNTL_SERIALIZE || APR_HAS_FLOCK_SERIALIZE || APR_HAS_POSIXSEM_SERIALIZE
-    ospmutex->crossproc = pmutex->interproc->filedes;
+    if (pmutex->interproc) {
+        ospmutex->crossproc = pmutex->interproc->filedes;
+    }
+    else {
+        ospmutex->crossproc = -1;
+    }
 #endif
 #if APR_HAS_PROC_PTHREAD_SERIALIZE
     ospmutex->pthread_interproc = pmutex->pthread_interproc;
diff --git a/contrib/apr/network_io/unix/sendrecv.c b/contrib/apr/network_io/unix/sendrecv.c
index 6b14643cd..4c0e0a6fc 100644
--- a/contrib/apr/network_io/unix/sendrecv.c
+++ b/contrib/apr/network_io/unix/sendrecv.c
@@ -552,7 +552,7 @@ apr_status_t apr_socket_sendfile(apr_socket_t * sock, apr_file_t * file,
 
         /* On early versions of FreeBSD sendfile, the number of bytes to send 
          * must include the length of the headers.  Don't look at the man page 
-         * for this :(  Instead, look at the the logic in 
+         * for this :(  Instead, look at the logic in 
          * src/sys/kern/uipc_syscalls::sendfile().
          *
          * This was fixed in the middle of 4.6-STABLE
diff --git a/contrib/apr/network_io/unix/sockaddr.c b/contrib/apr/network_io/unix/sockaddr.c
index 9253a2746..0dd1a2d45 100644
--- a/contrib/apr/network_io/unix/sockaddr.c
+++ b/contrib/apr/network_io/unix/sockaddr.c
@@ -839,6 +839,35 @@ APR_DECLARE(int) apr_sockaddr_equal(const apr_sockaddr_t *addr1,
     return 0; /* not equal */
 }
 
+APR_DECLARE(int) apr_sockaddr_is_wildcard(const apr_sockaddr_t *addr)
+{
+    static const char inaddr_any[
+#if APR_HAVE_IPV6
+        sizeof(struct in6_addr)
+#else
+        sizeof(struct in_addr)
+#endif
+    ] = {0};
+
+    if (addr->ipaddr_ptr /* IP address initialized */
+        && addr->ipaddr_len <= sizeof inaddr_any) { /* else bug elsewhere? */
+        if (!memcmp(inaddr_any, addr->ipaddr_ptr, addr->ipaddr_len)) {
+            return 1;
+        }
+#if APR_HAVE_IPV6
+    if (addr->family == AF_INET6
+        && IN6_IS_ADDR_V4MAPPED((struct in6_addr *)addr->ipaddr_ptr)) {
+        struct in_addr *v4 = (struct in_addr *)&((apr_uint32_t *)addr->ipaddr_ptr)[3];
+
+        if (!memcmp(inaddr_any, v4, sizeof *v4)) {
+            return 1;
+        }
+    }
+#endif
+    }
+    return 0;
+}
+
 static apr_status_t parse_network(apr_ipsubnet_t *ipsub, const char *network)
 {
     /* legacy syntax for ip addrs: a.b.c. ==> a.b.c.0/24 for example */
diff --git a/contrib/apr/network_io/unix/socket_util.c b/contrib/apr/network_io/unix/socket_util.c
index 6cd28a55c..93fe25976 100644
--- a/contrib/apr/network_io/unix/socket_util.c
+++ b/contrib/apr/network_io/unix/socket_util.c
@@ -46,7 +46,8 @@ APR_DECLARE(apr_status_t) apr_socket_atreadeof(apr_socket_t *sock, int *atreadeo
         /* Some other error -> unexpected error. */
         return rv;
     }
-    else if (nfds == 1 && pfds[0].rtnevents == APR_POLLIN) {
+    /* Many platforms return only APR_POLLIN; OS X returns APR_POLLHUP|APR_POLLIN */
+    else if (nfds == 1 && (pfds[0].rtnevents & APR_POLLIN)  == APR_POLLIN) {
         apr_sockaddr_t unused;
         apr_size_t len = 1;
         char buf;
diff --git a/contrib/apr/network_io/unix/sockets.c b/contrib/apr/network_io/unix/sockets.c
index 748dd707d..514edb1a4 100644
--- a/contrib/apr/network_io/unix/sockets.c
+++ b/contrib/apr/network_io/unix/sockets.c
@@ -207,7 +207,20 @@ apr_status_t apr_socket_accept(apr_socket_t **new, apr_socket_t *sock,
     sa.salen = sizeof(sa.sa);
 
 #ifdef HAVE_ACCEPT4
-    s = accept4(sock->socketdes, (struct sockaddr *)&sa.sa, &sa.salen, SOCK_CLOEXEC);
+    {
+        int flags = SOCK_CLOEXEC;
+
+#if defined(SOCK_NONBLOCK) && APR_O_NONBLOCK_INHERITED
+        /* With FreeBSD accept4() (avail in 10+), O_NONBLOCK is not inherited
+         * (unlike Linux).  Mimic the accept() behavior here in a way that
+         * may help other platforms.
+         */
+        if (apr_is_option_set(sock, APR_SO_NONBLOCK) == 1) {
+            flags |= SOCK_NONBLOCK;
+        }
+#endif
+        s = accept4(sock->socketdes, (struct sockaddr *)&sa.sa, &sa.salen, flags);
+    }
 #else
     s = accept(sock->socketdes, (struct sockaddr *)&sa.sa, &sa.salen);
 #endif
diff --git a/contrib/apr/network_io/unix/sockopt.c b/contrib/apr/network_io/unix/sockopt.c
index 7b67c2ec1..6ce4b911e 100644
--- a/contrib/apr/network_io/unix/sockopt.c
+++ b/contrib/apr/network_io/unix/sockopt.c
@@ -141,6 +141,18 @@ apr_status_t apr_socket_opt_set(apr_socket_t *sock,
             apr_set_option(sock, APR_SO_DEBUG, on);
         }
         break;
+    case APR_SO_BROADCAST:
+#ifdef SO_BROADCAST
+        if (on != apr_is_option_set(sock, APR_SO_BROADCAST)) {
+            if (setsockopt(sock->socketdes, SOL_SOCKET, SO_BROADCAST, (void *)&one, sizeof(int)) == -1) {
+                return errno;
+            }
+            apr_set_option(sock, APR_SO_BROADCAST, on);
+        }
+#else
+        return APR_ENOTIMPL;
+#endif
+        break;
     case APR_SO_REUSEADDR:
         if (on != apr_is_option_set(sock, APR_SO_REUSEADDR)) {
             if (setsockopt(sock->socketdes, SOL_SOCKET, SO_REUSEADDR, (void *)&one, sizeof(int)) == -1) {
diff --git a/contrib/apr/passwd/apr_getpass.c b/contrib/apr/passwd/apr_getpass.c
index f31cdafc5..6e4cbef3a 100644
--- a/contrib/apr/passwd/apr_getpass.c
+++ b/contrib/apr/passwd/apr_getpass.c
@@ -51,6 +51,9 @@
 #if APR_HAVE_STRINGS_H
 #include 
 #endif
+#if APR_HAVE_STDIO_H
+#include 
+#endif
 
 /* Disable getpass() support when PASS_MAX is defined and is "small",
  * for an arbitrary definition of "small".
@@ -80,9 +83,9 @@
 
 #if !defined(HAVE_GETPASS) && !defined(HAVE_GETPASSPHRASE) && !defined(HAVE_GETPASS_R)
 
-/* MPE, Win32, NetWare and BeOS all lack a native getpass() */
+/* MPE, Win32, and BeOS all lack a native getpass() */
 
-#if !defined(HAVE_TERMIOS_H) && !defined(WIN32) && !defined(NETWARE)
+#if !defined(HAVE_TERMIOS_H) && !defined(WIN32)
 /*
  * MPE lacks getpass() and a way to suppress stdin echo.  So for now, just
  * issue the prompt and read the results with echo.  (Ugh).
@@ -98,46 +101,7 @@ static char *get_password(const char *prompt)
     return (char *) &password;
 }
 
-#elif defined (HAVE_TERMIOS_H)
-#include 
-
-static char *get_password(const char *prompt)
-{
-    struct termios attr;
-    static char password[MAX_STRING_LEN];
-    int n=0;
-    fputs(prompt, stderr);
-    fflush(stderr);
-
-    if (tcgetattr(STDIN_FILENO, &attr) != 0)
-        return NULL;
-    attr.c_lflag &= ~(ECHO);
-
-    if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &attr) != 0)
-        return NULL;
-    while ((password[n] = getchar()) != '\n') {
-        if (n < sizeof(password) - 1 && password[n] >= ' ' && password[n] <= '~') {
-            n++;
-        } else {
-            fprintf(stderr,"\n");
-            fputs(prompt, stderr);
-            fflush(stderr);
-            n = 0;
-        }
-    }
- 
-    password[n] = '\0';
-    printf("\n");
-    if (n > (MAX_STRING_LEN - 1)) {
-        password[MAX_STRING_LEN - 1] = '\0';
-    }
-
-    attr.c_lflag |= ECHO;
-    tcsetattr(STDIN_FILENO, TCSANOW, &attr);
-    return (char*) &password;
-}
-
-#else
+#elif defined(WIN32)
 
 /*
  * Windows lacks getpass().  So we'll re-implement it here.
@@ -208,6 +172,44 @@ static char *get_password(const char *prompt)
 #endif
 }
 
+#elif defined (HAVE_TERMIOS_H)
+
+static char *get_password(const char *prompt)
+{
+    struct termios attr;
+    static char password[MAX_STRING_LEN];
+    int n=0;
+    fputs(prompt, stderr);
+    fflush(stderr);
+
+    if (tcgetattr(STDIN_FILENO, &attr) != 0)
+        return NULL;
+    attr.c_lflag &= ~(ECHO);
+
+    if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &attr) != 0)
+        return NULL;
+    while ((password[n] = getchar()) != '\n') {
+        if (n < sizeof(password) - 1 && password[n] >= ' ' && password[n] <= '~') {
+            n++;
+        } else {
+            fprintf(stderr,"\n");
+            fputs(prompt, stderr);
+            fflush(stderr);
+            n = 0;
+        }
+    }
+ 
+    password[n] = '\0';
+    printf("\n");
+    if (n > (MAX_STRING_LEN - 1)) {
+        password[MAX_STRING_LEN - 1] = '\0';
+    }
+
+    attr.c_lflag |= ECHO;
+    tcsetattr(STDIN_FILENO, TCSANOW, &attr);
+    return (char*) &password;
+}
+
 #endif /* no getchar or _getch */
 
 #endif /* no getpass or getpassphrase or getpass_r */
diff --git a/contrib/apr/poll/unix/pollcb.c b/contrib/apr/poll/unix/pollcb.c
index 2971b0216..24f80106a 100644
--- a/contrib/apr/poll/unix/pollcb.c
+++ b/contrib/apr/poll/unix/pollcb.c
@@ -66,6 +66,7 @@ static apr_pollcb_provider_t *pollcb_provider(apr_pollset_method_e method)
 #endif
         break;
         case APR_POLLSET_SELECT:
+        case APR_POLLSET_AIO_MSGQ:
         case APR_POLLSET_DEFAULT:
         break;
     }
diff --git a/contrib/apr/poll/unix/pollset.c b/contrib/apr/poll/unix/pollset.c
index 1a7396b4b..852d74597 100644
--- a/contrib/apr/poll/unix/pollset.c
+++ b/contrib/apr/poll/unix/pollset.c
@@ -163,6 +163,9 @@ extern apr_pollset_provider_t *apr_pollset_provider_port;
 #if defined(HAVE_EPOLL)
 extern apr_pollset_provider_t *apr_pollset_provider_epoll;
 #endif
+#if defined(HAVE_AIO_MSGQ)
+extern apr_pollset_provider_t *apr_pollset_provider_aio_msgq;
+#endif
 #if defined(HAVE_POLL)
 extern apr_pollset_provider_t *apr_pollset_provider_poll;
 #endif
@@ -185,6 +188,11 @@ static apr_pollset_provider_t *pollset_provider(apr_pollset_method_e method)
         case APR_POLLSET_EPOLL:
 #if defined(HAVE_EPOLL)
             provider = apr_pollset_provider_epoll;
+#endif
+        break;
+        case APR_POLLSET_AIO_MSGQ:
+#if defined(HAVE_AIO_MSGQ)
+            provider = apr_pollset_provider_aio_msgq;
 #endif
         break;
         case APR_POLLSET_POLL:
diff --git a/contrib/apr/poll/unix/z_asio.c b/contrib/apr/poll/unix/z_asio.c
new file mode 100644
index 000000000..ce158d316
--- /dev/null
+++ b/contrib/apr/poll/unix/z_asio.c
@@ -0,0 +1,772 @@
+/* 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 implementation is based on a design by John Brooks (IBM Pok) which uses
+ * the z/OS sockets async i/o facility.  When a
+ * socket is added to the pollset, an async poll is issued for that individual
+ * socket.  It specifies that the kernel should send an IPC message when the
+ * socket becomes ready.  The IPC messages are sent to a single message queue
+ * that is part of the pollset.  apr_pollset_poll waits on the arrival of IPC
+ * messages or the specified timeout.
+ *
+ * Since z/OS does not support async i/o for pipes or files at present, this
+ * implementation falls back to using ordinary poll() when
+ * APR_POLLSET_THREADSAFE is unset.
+ *
+ * Greg Ames
+ * April 2012
+ */
+
+#include "apr.h"
+#include "apr_hash.h"
+#include "apr_poll.h"
+#include "apr_time.h"
+#include "apr_portable.h"
+#include "apr_arch_inherit.h"
+#include "apr_arch_file_io.h"
+#include "apr_arch_networkio.h"
+#include "apr_arch_poll_private.h"
+
+#ifdef HAVE_AIO_MSGQ
+
+#include   	/* msgget etc   */
+#include      	/* timestruct   */
+#include      	/* pollfd       */
+#include      /* MAX_INT      */
+
+struct apr_pollset_private_t
+{
+    int             msg_q;              /* IPC message queue. The z/OS kernel sends messages
+                                         * to this queue when our async polls on individual
+                                         * file descriptors complete
+                                         */
+    apr_pollfd_t    *result_set;
+    apr_uint32_t    size;
+
+#if APR_HAS_THREADS
+    /* A thread mutex to protect operations on the rings and the hash */
+    apr_thread_mutex_t *ring_lock;
+#endif
+
+    /* A hash of all active elements used for O(1) _remove operations */
+    apr_hash_t      *elems;
+
+    APR_RING_HEAD(ready_ring_t,       asio_elem_t)      ready_ring;
+    APR_RING_HEAD(prior_ready_ring_t, asio_elem_t)      prior_ready_ring;
+    APR_RING_HEAD(free_ring_t,        asio_elem_t)      free_ring;
+
+    /* for pipes etc with no asio */
+    struct pollfd   *pollset;
+    apr_pollfd_t    *query_set;
+};
+
+typedef enum {
+    ASIO_INIT = 0,
+    ASIO_REMOVED,
+    ASIO_COMPLETE
+} asio_state_e;
+
+typedef struct asio_elem_t asio_elem_t;
+
+struct asio_msgbuf_t {
+    long         msg_type;       /* must be > 0 */
+    asio_elem_t *msg_elem;
+};
+
+struct asio_elem_t
+{
+    APR_RING_ENTRY(asio_elem_t) link;
+    apr_pollfd_t                pfd;
+    struct pollfd               os_pfd;
+    struct aiocb                a;
+    asio_state_e                state;
+    struct asio_msgbuf_t        msg;
+};
+
+#define DEBUG 0
+
+/* DEBUG settings: 0 - no debug messages at all,
+ *                 1 - should not occur messages,
+ *                 2 - apr_pollset_* entry and exit messages,
+ *                 3 - state changes, memory usage,
+ *                 4 - z/OS, APR, and internal calls,
+ *                 5 - everything else except the timer pop path,
+ *                 6 - everything, including the Event 1 sec timer pop path
+ *
+ *  each DEBUG level includes all messages produced by lower numbered levels
+ */
+
+#if DEBUG
+
+#include 
+#include 	/* getpid       */
+
+#define DBG_BUFF char dbg_msg_buff[256];
+
+#define DBG_TEST(lvl) if (lvl <= DEBUG) {
+
+#define DBG_CORE(msg)               sprintf(dbg_msg_buff, "% 8d " __FUNCTION__ \
+                                        " "  msg, getpid()),                   \
+                                    fprintf(stderr, "%s", dbg_msg_buff);
+#define DBG_CORE1(msg, var1)        sprintf(dbg_msg_buff, "% 8d " __FUNCTION__ \
+                                        " " msg, getpid(), var1),              \
+                                    fprintf(stderr, "%s", dbg_msg_buff);
+#define DBG_CORE2(msg, var1, var2)  sprintf(dbg_msg_buff, "% 8d " __FUNCTION__ \
+                                        " " msg, getpid(), var1, var2),        \
+                                    fprintf(stderr, "%s", dbg_msg_buff);
+#define DBG_CORE3(msg, var1, var2, var3)                                       \
+                                    sprintf(dbg_msg_buff, "% 8d " __FUNCTION__ \
+                                        " " msg, getpid(), var1, var2, var3),  \
+                                    fprintf(stderr, "%s", dbg_msg_buff);
+#define DBG_CORE4(msg, var1, var2, var3, var4)                                 \
+                                    sprintf(dbg_msg_buff, "% 8d " __FUNCTION__ \
+                                        " " msg, getpid(), var1, var2, var3, var4),\
+                                    fprintf(stderr, "%s", dbg_msg_buff);
+
+#define DBG_END }
+
+#define DBG(lvl, msg)   DBG_TEST(lvl)   \
+                        DBG_CORE(msg)   \
+                        DBG_END
+
+#define DBG1(lvl, msg, var1)    DBG_TEST(lvl)           \
+                                DBG_CORE1(msg, var1)    \
+                                DBG_END
+
+#define DBG2(lvl, msg, var1, var2)      DBG_TEST(lvl)               \
+                                        DBG_CORE2(msg, var1, var2)  \
+                                        DBG_END
+
+#define DBG3(lvl, msg, var1, var2, var3)                        \
+                        DBG_TEST(lvl)                           \
+                        DBG_CORE3(msg, var1, var2, var3)        \
+                        DBG_END
+
+#define DBG4(lvl, msg, var1, var2, var3, var4)                  \
+                        DBG_TEST(lvl)                           \
+                        DBG_CORE4(msg, var1, var2, var3, var4)  \
+                        DBG_END
+
+#else  /* DEBUG is 0 */
+#define DBG_BUFF
+#define DBG(lvl, msg)                            ((void)0)
+#define DBG1(lvl, msg, var1)                     ((void)0)
+#define DBG2(lvl, msg, var1, var2)               ((void)0)
+#define DBG3(lvl, msg, var1, var2, var3)         ((void)0)
+#define DBG4(lvl, msg, var1, var2, var3, var4)   ((void)0)
+
+#endif /* DEBUG */
+
+static int asyncio(struct aiocb *a)
+{
+    DBG_BUFF
+    int rv;
+
+#ifdef _LP64
+#define AIO BPX4AIO
+#else
+#define AIO BPX1AIO
+#endif
+
+    AIO(sizeof(struct aiocb), a, &rv, &errno, __err2ad());
+    DBG2(4, "BPX4AIO aiocb %p rv %d\n",
+             a, rv);
+#ifdef DEBUG
+    if (rv < 0) {
+        DBG2(4, "errno %d errnojr %08x\n",
+                 errno, *__err2ad());
+    }
+#endif
+    return rv;
+}
+
+static apr_int16_t get_event(apr_int16_t event)
+{
+    DBG_BUFF
+    apr_int16_t rv = 0;
+    DBG(4, "entered\n");
+
+    if (event & APR_POLLIN)
+        rv |= POLLIN;
+    if (event & APR_POLLPRI)
+        rv |= POLLPRI;
+    if (event & APR_POLLOUT)
+        rv |= POLLOUT;
+    if (event & APR_POLLERR)
+        rv |= POLLERR;
+    if (event & APR_POLLHUP)
+        rv |= POLLHUP;
+    if (event & APR_POLLNVAL)
+        rv |= POLLNVAL;
+
+    DBG(4, "exiting\n");
+    return rv;
+}
+
+static apr_int16_t get_revent(apr_int16_t event)
+{
+    DBG_BUFF
+    apr_int16_t rv = 0;
+    DBG(4, "entered\n");
+
+    if (event & POLLIN)
+        rv |= APR_POLLIN;
+    if (event & POLLPRI)
+        rv |= APR_POLLPRI;
+    if (event & POLLOUT)
+        rv |= APR_POLLOUT;
+    if (event & POLLERR)
+        rv |= APR_POLLERR;
+    if (event & POLLHUP)
+        rv |= APR_POLLHUP;
+    if (event & POLLNVAL)
+        rv |= APR_POLLNVAL;
+
+    DBG(4, "exiting\n");
+    return rv;
+}
+
+static apr_status_t asio_pollset_cleanup(apr_pollset_t *pollset)
+{
+    DBG_BUFF
+    int rv;
+
+    DBG(4, "entered\n");
+    rv = msgctl(pollset->p->msg_q, IPC_RMID, NULL);
+
+    DBG1(4, "exiting, msgctl(IPC_RMID) returned %d\n", rv);
+    return rv;
+}
+
+static apr_status_t asio_pollset_create(apr_pollset_t *pollset,
+                                        apr_uint32_t size,
+                                        apr_pool_t *p,
+                                        apr_uint32_t flags)
+{
+    DBG_BUFF
+    apr_status_t rv;
+    apr_pollset_private_t *priv;
+
+    DBG1(2, "entered, flags: %x\n", flags);
+
+    priv = pollset->p = apr_palloc(p, sizeof(*priv));
+
+    if (flags & APR_POLLSET_THREADSAFE) {
+#if APR_HAS_THREADS
+        if (rv = apr_thread_mutex_create(&(priv->ring_lock),
+                                           APR_THREAD_MUTEX_DEFAULT,
+                                           p) != APR_SUCCESS) {
+            DBG1(1, "apr_thread_mutex_create returned %d\n", rv);
+            pollset = NULL;
+            return rv;
+        }
+        rv = msgget(IPC_PRIVATE, S_IWUSR+S_IRUSR); /* user r/w perms */
+        if (rv < 0) {
+#if DEBUG
+            perror(__FUNCTION__ " msgget returned < 0 ");
+#endif
+            pollset = NULL;
+            return rv;
+        }
+
+        DBG2(4, "pollset %p msgget was OK, rv=%d\n", pollset, rv);
+        priv->msg_q = rv;
+        priv->elems   = apr_hash_make(p);
+
+        APR_RING_INIT(&priv->free_ring, asio_elem_t, link);
+        APR_RING_INIT(&priv->prior_ready_ring, asio_elem_t, link);
+
+#else  /* APR doesn't have threads but caller wants a threadsafe pollset */
+        pollset = NULL;
+        return APR_ENOTIMPL;
+#endif
+
+    } else {  /* APR_POLLSET_THREADSAFE not set, i.e. no async i/o,
+               * init fields only needed in old style pollset
+               */
+
+        priv->pollset = apr_palloc(p, size * sizeof(struct pollfd));
+        priv->query_set = apr_palloc(p, size * sizeof(apr_pollfd_t));
+
+        if ((!priv->pollset) || (!priv->query_set)) {
+            return APR_ENOMEM;
+        }
+    }
+
+    pollset->nelts   = 0;
+    pollset->flags   = flags;
+    pollset->pool    = p;
+    priv->size    = size;
+    priv->result_set = apr_palloc(p, size * sizeof(apr_pollfd_t));
+    if (!priv->result_set) {
+        return APR_ENOMEM;
+    }
+
+    DBG2(2, "exiting, pollset: %p, type: %s\n",
+             pollset,
+             flags & APR_POLLSET_THREADSAFE ? "async" : "POSIX");
+
+
+    return APR_SUCCESS;
+
+} /* end of asio_pollset_create */
+
+static apr_status_t posix_add(apr_pollset_t      *pollset,
+                              const apr_pollfd_t *descriptor)
+{
+    DBG_BUFF
+    int fd;
+    apr_pool_t  *p = pollset->pool;
+    apr_pollset_private_t *priv = pollset->p;
+
+    DBG(4, "entered\n");
+
+    if (pollset->nelts == priv->size) {
+        return APR_ENOMEM;
+    }
+
+    priv->query_set[pollset->nelts] = *descriptor;
+    if (descriptor->desc_type == APR_POLL_SOCKET) {
+        fd = descriptor->desc.s->socketdes;
+    }
+    else {
+        fd = descriptor->desc.f->filedes;
+    }
+
+    priv->pollset[pollset->nelts].fd = fd;
+
+    priv->pollset[pollset->nelts].events =
+        get_event(descriptor->reqevents);
+
+    pollset->nelts++;
+
+    DBG2(4, "exiting, fd %d added to pollset %p\n", fd, pollset);
+
+    return APR_SUCCESS;
+}   /* end of posix_add */
+
+
+static apr_status_t asio_pollset_add(apr_pollset_t *pollset,
+                                     const apr_pollfd_t *descriptor)
+{
+    DBG_BUFF
+    asio_elem_t *elem;
+    apr_status_t rv = APR_SUCCESS;
+    apr_pollset_private_t *priv = pollset->p;
+
+    pollset_lock_rings();
+    DBG(2, "entered\n");
+
+    if (pollset->flags & APR_POLLSET_THREADSAFE) {
+
+        if (!APR_RING_EMPTY(&(priv->free_ring), asio_elem_t, link)) {
+            elem = APR_RING_FIRST(&(priv->free_ring));
+            APR_RING_REMOVE(elem, link);
+            DBG1(3, "used recycled memory at %08p\n", elem);
+            elem->state = ASIO_INIT;
+        }
+        else {
+            elem = (asio_elem_t *) apr_pcalloc(pollset->pool, sizeof(asio_elem_t));
+            DBG1(3, "alloced new memory at %08p\n", elem);
+
+            elem->a.aio_notifytype = AIO_MSGQ;
+            elem->a.aio_msgev_qid  = priv->msg_q;
+            DBG1(5, "aio_msgev_quid = %d \n", elem->a.aio_msgev_qid);
+            elem->a.aio_msgev_size = sizeof(asio_elem_t *);
+            elem->a.aio_msgev_flag = 0;     /* wait if queue is full */
+            elem->a.aio_msgev_addr = &(elem->msg);
+            elem->a.aio_buf        = &(elem->os_pfd);
+            elem->a.aio_nbytes     = 1;     /* number of pfds to poll */
+            elem->msg.msg_type     = 1;
+            elem->msg.msg_elem     = elem;
+        }
+
+        /* z/OS only supports async I/O for sockets for now */
+        elem->os_pfd.fd = descriptor->desc.s->socketdes;
+
+        APR_RING_ELEM_INIT(elem, link);
+        elem->a.aio_cmd       = AIO_SELPOLL;
+        elem->a.aio_cflags    &= ~AIO_OK2COMPIMD; /* not OK to complete inline*/
+        elem->pfd             = *descriptor;
+        elem->os_pfd.events   = get_event(descriptor->reqevents);
+
+        if (0 != asyncio(&elem->a)) {
+            rv = errno;
+            DBG3(4, "pollset %p asio failed fd %d, errno %p\n",
+                     pollset, elem->os_pfd.fd, rv);
+#if DEBUG
+            perror(__FUNCTION__ " asio failure");
+#endif
+        }
+        else {
+            DBG2(4, "good asio call, adding fd %d to pollset %p\n",
+                     elem->os_pfd.fd, pollset);
+
+            pollset->nelts++;
+            apr_hash_set(priv->elems, &(elem->os_pfd.fd), sizeof(int), elem);
+        }
+    }
+    else {
+        /* APR_POLLSET_THREADSAFE isn't set.  use POSIX poll in case
+         * pipes or files are used with this pollset
+         */
+
+        rv = posix_add(pollset, descriptor);
+    }
+
+    DBG1(2, "exiting, rv = %d\n", rv);
+
+    pollset_unlock_rings();
+    return rv;
+} /* end of asio_pollset_add */
+
+static posix_remove(apr_pollset_t *pollset, const apr_pollfd_t *descriptor)
+{
+    DBG_BUFF
+    apr_uint32_t i;
+    apr_pollset_private_t *priv = pollset->p;
+
+    DBG(4, "entered\n");
+    for (i = 0; i < pollset->nelts; i++) {
+        if (descriptor->desc.s == priv->query_set[i].desc.s) {
+            /* Found an instance of the fd: remove this and any other copies */
+            apr_uint32_t dst = i;
+            apr_uint32_t old_nelts = pollset->nelts;
+            pollset->nelts--;
+            for (i++; i < old_nelts; i++) {
+                if (descriptor->desc.s == priv->query_set[i].desc.s) {
+                    pollset->nelts--;
+                }
+                else {
+                    priv->pollset[dst] = priv->pollset[i];
+                    priv->query_set[dst] = priv->query_set[i];
+                    dst++;
+                }
+            }
+            DBG(4, "returning OK\n");
+            return APR_SUCCESS;
+        }
+    }
+
+    DBG(1, "returning APR_NOTFOUND\n");
+    return APR_NOTFOUND;
+
+}   /* end of posix_remove */
+
+static apr_status_t asio_pollset_remove(apr_pollset_t *pollset,
+                                        const apr_pollfd_t *descriptor)
+{
+    DBG_BUFF
+    asio_elem_t *elem;
+    apr_status_t rv = APR_SUCCESS;
+    apr_pollset_private_t *priv = pollset->p;
+    struct aiocb cancel_a;   /* AIO_CANCEL is synchronous, so autodata works fine */
+
+    int fd;
+
+    DBG(2, "entered\n");
+
+    if (!(pollset->flags & APR_POLLSET_THREADSAFE)) {
+        return posix_remove(pollset, descriptor);
+    }
+
+    pollset_lock_rings();
+
+#if DEBUG
+    assert(descriptor->desc_type == APR_POLL_SOCKET);
+#endif
+    /* zOS 1.12 doesn't support files for async i/o */
+    fd = descriptor->desc.s->socketdes;
+
+    elem = apr_hash_get(priv->elems, &(fd), sizeof(int));
+    if (elem == NULL) {
+        DBG1(1, "couldn't find fd %d\n", fd);
+        rv = APR_NOTFOUND;
+    } else {
+        DBG1(5, "hash found fd %d\n", fd);
+        /* delete this fd from the hash */
+        apr_hash_set(priv->elems, &(fd), sizeof(int), NULL);
+
+        if (elem->state == ASIO_INIT) {
+            /* asyncio call to cancel */
+            cancel_a.aio_cmd = AIO_CANCEL;
+            cancel_a.aio_buf = &elem->a;   /* point to original aiocb */
+
+            cancel_a.aio_cflags  = 0;
+            cancel_a.aio_cflags2 = 0;
+
+            /* we want the original aiocb to show up on the pollset message queue 
+             * before recycling its memory to eliminate race conditions
+             */
+
+            rv = asyncio(&cancel_a);
+            DBG1(4, "asyncio returned %d\n", rv);
+
+#if DEBUG
+            assert(rv == 1);
+#endif
+        }
+        elem->state = ASIO_REMOVED;
+        rv = APR_SUCCESS;
+    }
+
+    DBG1(2, "exiting, rv: %d\n", rv);
+
+    pollset_unlock_rings();
+
+    return rv;
+}   /* end of asio_pollset_remove */
+
+static posix_poll(apr_pollset_t *pollset,
+                  apr_interval_time_t timeout,
+                  apr_int32_t *num,
+                  const apr_pollfd_t **descriptors)
+{
+    DBG_BUFF
+    int rv;
+    apr_uint32_t i, j;
+    apr_pollset_private_t *priv = pollset->p;
+
+    DBG(4, "entered\n");
+
+    if (timeout > 0) {
+        timeout /= 1000;
+    }
+    rv = poll(priv->pollset, pollset->nelts, timeout);
+    (*num) = rv;
+    if (rv < 0) {
+        return apr_get_netos_error();
+    }
+    if (rv == 0) {
+        return APR_TIMEUP;
+    }
+    j = 0;
+    for (i = 0; i < pollset->nelts; i++) {
+        if (priv->pollset[i].revents != 0) {
+            priv->result_set[j] = priv->query_set[i];
+            priv->result_set[j].rtnevents =
+                get_revent(priv->pollset[i].revents);
+            j++;
+        }
+    }
+    if (descriptors)
+        *descriptors = priv->result_set;
+
+    DBG(4, "exiting ok\n");
+    return APR_SUCCESS;
+
+}   /* end of posix_poll */
+
+static process_msg(apr_pollset_t *pollset, struct asio_msgbuf_t *msg)
+{
+    DBG_BUFF
+    asio_elem_t *elem = msg->msg_elem;
+
+    switch(elem->state) {
+    case ASIO_REMOVED:
+        DBG2(5, "for cancelled elem, recycling memory - elem %08p, fd %d\n",
+                elem, elem->os_pfd.fd);
+        APR_RING_INSERT_TAIL(&(pollset->p->free_ring), elem,
+                             asio_elem_t, link);
+        break;
+    case ASIO_INIT:
+        DBG2(4, "adding to ready ring: elem %08p, fd %d\n",
+                elem, elem->os_pfd.fd);
+        elem->state = ASIO_COMPLETE;
+        APR_RING_INSERT_TAIL(&(pollset->p->ready_ring), elem,
+                             asio_elem_t, link);
+        break;
+    default:
+        DBG3(1, "unexpected state: elem %08p, fd %d, state %d\n",
+            elem, elem->os_pfd.fd, elem->state);
+#if DEBUG
+        assert(0);
+#endif
+    }
+}
+
+static apr_status_t asio_pollset_poll(apr_pollset_t *pollset,
+                                      apr_interval_time_t timeout,
+                                      apr_int32_t *num,
+                                      const apr_pollfd_t **descriptors)
+{
+    DBG_BUFF
+    int i, ret;
+    asio_elem_t *elem, *next_elem;
+    struct asio_msgbuf_t msg_buff;
+    struct timespec tv;
+    apr_status_t rv = APR_SUCCESS;
+    apr_pollset_private_t *priv = pollset->p;
+
+    DBG(6, "entered\n"); /* chatty - traces every second w/Event */
+
+    if ((pollset->flags & APR_POLLSET_THREADSAFE) == 0 ) {
+        return posix_poll(pollset, timeout, num, descriptors);
+    }
+
+    pollset_lock_rings();
+    APR_RING_INIT(&(priv->ready_ring), asio_elem_t, link);
+
+    while (!APR_RING_EMPTY(&(priv->prior_ready_ring), asio_elem_t, link)) {
+        elem = APR_RING_FIRST(&(priv->prior_ready_ring));
+        DBG3(5, "pollset %p elem %p fd %d on prior ready ring\n",
+                pollset,
+                elem,
+                elem->os_pfd.fd);
+
+        APR_RING_REMOVE(elem, link);
+
+        /*
+         * since USS does not remember what's in our pollset, we have
+         * to re-add fds which have not been apr_pollset_remove'd
+         *
+         * there may have been too many ready fd's to return in the
+         * result set last time. re-poll inline for both cases
+         */
+
+        if (elem->state == ASIO_REMOVED) {
+
+            /* 
+             * async i/o is done since it was found on prior_ready
+             * the state says the caller is done with it too 
+             * so recycle the elem 
+             */
+             
+            APR_RING_INSERT_TAIL(&(priv->free_ring), elem,
+                                 asio_elem_t, link);
+            continue;  /* do not re-add if it has been _removed */
+        }
+
+        elem->state = ASIO_INIT;
+        elem->a.aio_cflags     = AIO_OK2COMPIMD;
+
+        if (0 != (ret = asyncio(&elem->a))) {
+            if (ret == 1) {
+                DBG(4, "asyncio() completed inline\n");
+                /* it's ready now */
+                APR_RING_INSERT_TAIL(&(priv->ready_ring), elem, asio_elem_t,
+                                     link);
+            }
+            else {
+                DBG2(1, "asyncio() failed, ret: %d, errno: %d\n",
+                        ret, errno);
+                pollset_unlock_rings();
+                return errno;
+            }
+        }
+        DBG1(4, "asyncio() completed rc %d\n", ret);
+    }
+
+    DBG(6, "after prior ready loop\n"); /* chatty w/timeouts, hence 6 */
+
+    /* Gather async poll completions that have occurred since the last call */
+    while (0 < msgrcv(priv->msg_q, &msg_buff, sizeof(asio_elem_t *), 0,
+                      IPC_NOWAIT)) {
+        process_msg(pollset, &msg_buff);
+    }
+
+    /* Suspend if nothing is ready yet. */
+    if (APR_RING_EMPTY(&(priv->ready_ring), asio_elem_t, link)) {
+
+        if (timeout >= 0) {
+            tv.tv_sec  = apr_time_sec(timeout);
+            tv.tv_nsec = apr_time_usec(timeout) * 1000;
+        } else {
+            tv.tv_sec = INT_MAX;  /* block until something is ready */
+        }
+
+        DBG2(6, "nothing on the ready ring "
+                "- blocking for %d seconds %d ns\n",
+                tv.tv_sec, tv.tv_nsec);
+
+        pollset_unlock_rings();   /* allow other apr_pollset_* calls while blocked */
+
+        if (0 >= (ret = __msgrcv_timed(priv->msg_q, &msg_buff,
+                                       sizeof(asio_elem_t *), 0, NULL, &tv))) {
+#if DEBUG
+            if (errno == EAGAIN) {
+                DBG(6, "__msgrcv_timed timed out\n"); /* timeout path, so 6 */
+            }
+            else {
+                DBG(1, "__msgrcv_timed failed!\n");
+            }
+#endif
+            return (errno == EAGAIN) ? APR_TIMEUP : errno;
+        }
+
+        pollset_lock_rings();
+
+        process_msg(pollset, &msg_buff);
+    }
+
+    APR_RING_INIT(&priv->prior_ready_ring, asio_elem_t, link);
+
+    (*num) = 0;
+    elem = APR_RING_FIRST(&(priv->ready_ring));
+
+    for (i = 0;
+
+        i < priv->size
+                && elem != APR_RING_SENTINEL(&(priv->ready_ring), asio_elem_t, link);
+        i++) {
+             DBG2(5, "ready ring: elem %08p, fd %d\n", elem, elem->os_pfd.fd);
+
+             priv->result_set[i] = elem->pfd;
+             priv->result_set[i].rtnevents
+                                    = get_revent(elem->os_pfd.revents);
+             (*num)++;
+
+             elem = APR_RING_NEXT(elem, link);
+
+#if DEBUG
+             if (elem == APR_RING_SENTINEL(&(priv->ready_ring), asio_elem_t, link)) {
+                 DBG(5, "end of ready ring reached\n");
+             }
+#endif
+    }
+
+    if (descriptors) {
+        *descriptors = priv->result_set;
+    }
+
+    /* if the result size is too small, remember which descriptors
+     * haven't had results reported yet.  we will look
+     * at these descriptors on the next apr_pollset_poll call
+     */
+
+    APR_RING_CONCAT(&priv->prior_ready_ring, &(priv->ready_ring), asio_elem_t, link);
+
+    DBG1(2, "exiting, rv = %d\n", rv);
+
+    pollset_unlock_rings();
+
+    return rv;
+}  /* end of asio_pollset_poll */
+
+static apr_pollset_provider_t impl = {
+    asio_pollset_create,
+    asio_pollset_add,
+    asio_pollset_remove,
+    asio_pollset_poll,
+    asio_pollset_cleanup,
+    "asio"
+};
+
+apr_pollset_provider_t *apr_pollset_provider_aio_msgq = &impl;
+
+#endif /* HAVE_AIO_MSGQ */
diff --git a/contrib/apr/shmem/unix/shm.c b/contrib/apr/shmem/unix/shm.c
index 80d56894f..f102b4b35 100644
--- a/contrib/apr/shmem/unix/shm.c
+++ b/contrib/apr/shmem/unix/shm.c
@@ -20,6 +20,62 @@
 #include "apr_errno.h"
 #include "apr_user.h"
 #include "apr_strings.h"
+#include "apr_hash.h"
+
+#if APR_USE_SHMEM_MMAP_SHM
+/* 
+ *   For portable use, a shared memory object should be identified by a name of
+ *   the form /somename; that is, a null-terminated string of up to NAME_MAX
+ *   (i.e., 255) characters consisting of an initial slash, followed by one or
+ *   more characters, none of which are slashes.
+ */
+#ifndef NAME_MAX
+#define NAME_MAX 255
+#endif
+
+/* See proc_mutex.c and sem_open for the reason for all this! */
+static unsigned int rshash (const char *p) {
+    /* hash function from Robert Sedgwicks 'Algorithms in C' book */
+    unsigned int b    = 378551;
+    unsigned int a    = 63689;
+    unsigned int retval = 0;
+
+    for( ; *p; p++) {
+        retval = retval * a + (*p);
+        a *= b;
+    }
+
+    return retval;
+}
+
+static const char *make_shm_open_safe_name(const char *filename,
+                                           apr_pool_t *pool)
+{
+    apr_ssize_t flen;
+    unsigned int h1, h2;
+
+    if (filename == NULL) {
+        return NULL;
+    }
+
+    flen = strlen(filename);
+    h1 = (apr_hashfunc_default(filename, &flen) & 0xffffffff);
+    h2 = (rshash(filename) & 0xffffffff);
+    return apr_psprintf(pool, "/ShM.%xH%x", h1, h2);
+
+}
+#endif
+
+#if APR_USE_SHMEM_SHMGET
+static key_t our_ftok(const char *filename)
+{
+    /* to help avoid collisions while still using
+     * an easily recreated proj_id */
+    apr_ssize_t slen = strlen(filename);
+    return ftok(filename,
+                (int)apr_hashfunc_default(filename, &slen));
+}
+#endif
 
 static apr_status_t shm_cleanup_owner(void *m_)
 {
@@ -58,7 +114,7 @@ static apr_status_t shm_cleanup_owner(void *m_)
         if (munmap(m->base, m->realsize) == -1) {
             return errno;
         }
-        if (shm_unlink(m->filename) == -1) {
+        if (shm_unlink(make_shm_open_safe_name(m->filename, m->pool)) == -1 && errno != ENOENT) {
             return errno;
         }
         return APR_SUCCESS;
@@ -220,7 +276,9 @@ APR_DECLARE(apr_status_t) apr_shm_create(apr_shm_t **m,
         new_m->pool = pool;
         new_m->reqsize = reqsize;
         new_m->filename = apr_pstrdup(pool, filename);
-
+#if APR_USE_SHMEM_MMAP_SHM
+        const char *shm_name = make_shm_open_safe_name(filename, pool);
+#endif
 #if APR_USE_SHMEM_MMAP_TMP || APR_USE_SHMEM_MMAP_SHM
         new_m->realsize = reqsize + 
             APR_ALIGN_DEFAULT(sizeof(apr_size_t)); /* room for metadata */
@@ -245,7 +303,7 @@ APR_DECLARE(apr_status_t) apr_shm_create(apr_shm_t **m,
         }
 
         status = apr_file_trunc(file, new_m->realsize);
-        if (status != APR_SUCCESS) {
+        if (status != APR_SUCCESS && status != APR_ESPIPE) {
             apr_file_close(file); /* ignore errors, we're failing */
             apr_file_remove(new_m->filename, new_m->pool);
             return status;
@@ -261,7 +319,8 @@ APR_DECLARE(apr_status_t) apr_shm_create(apr_shm_t **m,
         }
 #endif /* APR_USE_SHMEM_MMAP_TMP */
 #if APR_USE_SHMEM_MMAP_SHM
-        tmpfd = shm_open(filename, O_RDWR | O_CREAT | O_EXCL, 0644);
+        /* FIXME: SysV uses 0600... should we? */
+        tmpfd = shm_open(shm_name, O_RDWR | O_CREAT | O_EXCL, 0644);
         if (tmpfd == -1) {
             return errno;
         }
@@ -274,11 +333,11 @@ APR_DECLARE(apr_status_t) apr_shm_create(apr_shm_t **m,
         }
 
         status = apr_file_trunc(file, new_m->realsize);
-        if (status != APR_SUCCESS) {
-            shm_unlink(filename); /* we're failing, remove the object */
+        if (status != APR_SUCCESS && status != APR_ESPIPE) {
+            shm_unlink(shm_name); /* we're failing, remove the object */
             return status;
         }
-        new_m->base = mmap(NULL, reqsize, PROT_READ | PROT_WRITE,
+        new_m->base = mmap(NULL, new_m->realsize, PROT_READ | PROT_WRITE,
                            MAP_SHARED, tmpfd, 0);
 
         /* FIXME: check for errors */
@@ -312,28 +371,33 @@ APR_DECLARE(apr_status_t) apr_shm_create(apr_shm_t **m,
 
         /* ftok() (on solaris at least) requires that the file actually
          * exist before calling ftok(). */
-        shmkey = ftok(filename, 1);
+        shmkey = our_ftok(filename);
         if (shmkey == (key_t)-1) {
+            apr_file_close(file);
             return errno;
         }
 
         if ((new_m->shmid = shmget(shmkey, new_m->realsize,
                                    SHM_R | SHM_W | IPC_CREAT | IPC_EXCL)) < 0) {
+            apr_file_close(file);
             return errno;
         }
 
         if ((new_m->base = shmat(new_m->shmid, NULL, 0)) == (void *)-1) {
+            apr_file_close(file);
             return errno;
         }
         new_m->usable = new_m->base;
 
         if (shmctl(new_m->shmid, IPC_STAT, &shmbuf) == -1) {
+            apr_file_close(file);
             return errno;
         }
         apr_uid_current(&uid, &gid, pool);
         shmbuf.shm_perm.uid = uid;
         shmbuf.shm_perm.gid = gid;
         if (shmctl(new_m->shmid, IPC_SET, &shmbuf) == -1) {
+            apr_file_close(file);
             return errno;
         }
 
@@ -341,6 +405,7 @@ APR_DECLARE(apr_status_t) apr_shm_create(apr_shm_t **m,
         status = apr_file_write(file, (const void *)&reqsize,
                                 &nbytes);
         if (status != APR_SUCCESS) {
+            apr_file_close(file);
             return status;
         }
         status = apr_file_close(file);
@@ -359,6 +424,15 @@ APR_DECLARE(apr_status_t) apr_shm_create(apr_shm_t **m,
     }
 }
 
+APR_DECLARE(apr_status_t) apr_shm_create_ex(apr_shm_t **m, 
+                                            apr_size_t reqsize, 
+                                            const char *filename, 
+                                            apr_pool_t *p,
+                                            apr_int32_t flags)
+{
+    return apr_shm_create(m, reqsize, filename, p);
+}
+
 APR_DECLARE(apr_status_t) apr_shm_remove(const char *filename,
                                          apr_pool_t *pool)
 {
@@ -372,7 +446,8 @@ APR_DECLARE(apr_status_t) apr_shm_remove(const char *filename,
 #if APR_USE_SHMEM_MMAP_TMP
     return apr_file_remove(filename, pool);
 #elif APR_USE_SHMEM_MMAP_SHM
-    if (shm_unlink(filename) == -1) {
+    const char *shm_name = make_shm_open_safe_name(filename, pool);
+    if (shm_unlink(shm_name) == -1) {
         return errno;
     }
     return APR_SUCCESS;
@@ -386,7 +461,7 @@ APR_DECLARE(apr_status_t) apr_shm_remove(const char *filename,
 
     /* ftok() (on solaris at least) requires that the file actually
      * exist before calling ftok(). */
-    shmkey = ftok(filename, 1);
+    shmkey = our_ftok(filename);
     if (shmkey == (key_t)-1) {
         goto shm_remove_failed;
     }
@@ -467,7 +542,23 @@ APR_DECLARE(apr_status_t) apr_shm_attach(apr_shm_t **m,
         new_m = apr_palloc(pool, sizeof(apr_shm_t));
         new_m->pool = pool;
         new_m->filename = apr_pstrdup(pool, filename);
+#if APR_USE_SHMEM_MMAP_SHM
+        const char *shm_name = make_shm_open_safe_name(filename, pool);
+
+        /* FIXME: SysV uses 0600... should we? */
+        tmpfd = shm_open(shm_name, O_RDWR, 0644);
+        if (tmpfd == -1) {
+            return errno;
+        }
 
+        status = apr_os_file_put(&file, &tmpfd,
+                                 APR_READ | APR_WRITE,
+                                 pool); 
+        if (status != APR_SUCCESS) {
+            return status;
+        }
+
+#elif APR_USE_SHMEM_MMAP_TMP
         status = apr_file_open(&file, filename, 
                                APR_READ | APR_WRITE,
                                APR_OS_DEFAULT, pool);
@@ -478,6 +569,9 @@ APR_DECLARE(apr_status_t) apr_shm_attach(apr_shm_t **m,
         if (status != APR_SUCCESS) {
             return status;
         }
+#else
+        return APR_ENOTIMPL;
+#endif
 
         nbytes = sizeof(new_m->realsize);
         status = apr_file_read(file, (void *)&(new_m->realsize),
@@ -540,7 +634,7 @@ APR_DECLARE(apr_status_t) apr_shm_attach(apr_shm_t **m,
 
         new_m->filename = apr_pstrdup(pool, filename);
         new_m->pool = pool;
-        shmkey = ftok(filename, 1);
+        shmkey = our_ftok(filename);
         if (shmkey == (key_t)-1) {
             return errno;
         }
@@ -564,6 +658,14 @@ APR_DECLARE(apr_status_t) apr_shm_attach(apr_shm_t **m,
     }
 }
 
+APR_DECLARE(apr_status_t) apr_shm_attach_ex(apr_shm_t **m,
+                                            const char *filename,
+                                            apr_pool_t *pool,
+                                            apr_int32_t flags)
+{
+    return apr_shm_attach(m, filename, pool);
+}
+
 APR_DECLARE(apr_status_t) apr_shm_detach(apr_shm_t *m)
 {
     apr_status_t rv = shm_cleanup_attach(m);
diff --git a/contrib/apr/strings/apr_cpystrn.c b/contrib/apr/strings/apr_cpystrn.c
index 6311c29f3..d222d0814 100644
--- a/contrib/apr/strings/apr_cpystrn.c
+++ b/contrib/apr/strings/apr_cpystrn.c
@@ -38,6 +38,7 @@
  *   (3) Instead of returning the pointer to the beginning of
  *       the destination string, we return a pointer to the
  *       terminating '\0' to allow us to "check" for truncation
+ *   (4) If src is NULL, null terminate dst (empty string copy)
  *
  * apr_cpystrn() follows the same call structure as strncpy().
  */
@@ -45,19 +46,20 @@
 APR_DECLARE(char *) apr_cpystrn(char *dst, const char *src, apr_size_t dst_size)
 {
 
-    char *d, *end;
+    char *d = dst, *end;
 
     if (dst_size == 0) {
         return (dst);
     }
 
-    d = dst;
-    end = dst + dst_size - 1;
+    if (src) {
+        end = dst + dst_size - 1;
 
-    for (; d < end; ++d, ++src) {
-	if (!(*d = *src)) {
-	    return (d);
-	}
+        for (; d < end; ++d, ++src) {
+            if (!(*d = *src)) {
+                return (d);
+            }
+        }
     }
 
     *d = '\0';	/* always null terminate */
diff --git a/contrib/apr/strings/apr_strings.c b/contrib/apr/strings/apr_strings.c
index d20004ead..0ba49c844 100644
--- a/contrib/apr/strings/apr_strings.c
+++ b/contrib/apr/strings/apr_strings.c
@@ -75,8 +75,7 @@ APR_DECLARE(char *) apr_pstrdup(apr_pool_t *a, const char *s)
         return NULL;
     }
     len = strlen(s) + 1;
-    res = apr_palloc(a, len);
-    memcpy(res, s, len);
+    res = apr_pmemdup(a, s, len);
     return res;
 }
 
diff --git a/contrib/apr/support/unix/waitio.c b/contrib/apr/support/unix/waitio.c
index 7232cdd9c..0d762ea6d 100644
--- a/contrib/apr/support/unix/waitio.c
+++ b/contrib/apr/support/unix/waitio.c
@@ -22,7 +22,7 @@
 
 /* The only case where we don't use wait_for_io_or_timeout is on
  * pre-BONE BeOS, so this check should be sufficient and simpler */
-#if !BEOS_R5
+#if !defined(BEOS_R5) && !defined(OS2) && APR_FILES_AS_SOCKETS
 #define USE_WAIT_FOR_IO
 #endif
 
diff --git a/contrib/apr/tables/apr_hash.c b/contrib/apr/tables/apr_hash.c
index a6e8a6497..0bf4d28c2 100644
--- a/contrib/apr/tables/apr_hash.c
+++ b/contrib/apr/tables/apr_hash.c
@@ -162,6 +162,29 @@ APR_DECLARE(void) apr_hash_this(apr_hash_index_t *hi,
     if (val)  *val  = (void *)hi->this->val;
 }
 
+APR_DECLARE(const void *) apr_hash_this_key(apr_hash_index_t *hi)
+{
+    const void *key;
+
+    apr_hash_this(hi, &key, NULL, NULL);
+    return key;
+}
+
+APR_DECLARE(apr_ssize_t) apr_hash_this_key_len(apr_hash_index_t *hi)
+{
+    apr_ssize_t klen;
+
+    apr_hash_this(hi, NULL, &klen, NULL);
+    return klen;
+}
+
+APR_DECLARE(void *) apr_hash_this_val(apr_hash_index_t *hi)
+{
+    void *val;
+
+    apr_hash_this(hi, NULL, NULL, &val);
+    return val;
+}
 
 /*
  * Expanding a hash table
diff --git a/contrib/apr/tables/apr_skiplist.c b/contrib/apr/tables/apr_skiplist.c
new file mode 100644
index 000000000..effcf603b
--- /dev/null
+++ b/contrib/apr/tables/apr_skiplist.c
@@ -0,0 +1,650 @@
+/* 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.
+ */
+
+/*
+ * Modified to use APR and APR pools.
+ *  TODO: Is malloc() better? Will long running skiplists grow too much?
+ *  Keep the skiplist_alloc() and skiplist_free() until we know
+ *  Yeah, if using pools it means some bogus cycles for checks
+ *  (and an useless function call for skiplist_free) which we
+ *  can removed if/when needed.
+ */
+
+#include "apr_skiplist.h"
+
+struct apr_skiplist {
+    apr_skiplist_compare compare;
+    apr_skiplist_compare comparek;
+    int height;
+    int preheight;
+    int size;
+    apr_skiplistnode *top;
+    apr_skiplistnode *bottom;
+    /* These two are needed for appending */
+    apr_skiplistnode *topend;
+    apr_skiplistnode *bottomend;
+    apr_skiplist *index;
+    apr_array_header_t *memlist;
+    apr_pool_t *pool;
+};
+
+struct apr_skiplistnode {
+    void *data;
+    apr_skiplistnode *next;
+    apr_skiplistnode *prev;
+    apr_skiplistnode *down;
+    apr_skiplistnode *up;
+    apr_skiplistnode *previndex;
+    apr_skiplistnode *nextindex;
+    apr_skiplist *sl;
+};
+
+#ifndef MIN
+#define MIN(a,b) ((a 31) {              /* Num bits in return of rand() */
+        ph = 0;
+        randseq = (apr_uint32_t) rand();
+    }
+    ph++;
+    return ((randseq & (1 << (ph - 1))) >> (ph - 1));
+}
+
+typedef struct {
+    size_t size;
+    apr_array_header_t *list;
+} memlist_t;
+
+typedef struct {
+    void *ptr;
+    char inuse;
+} chunk_t;
+
+APR_DECLARE(void *) apr_skiplist_alloc(apr_skiplist *sl, size_t size)
+{
+    if (sl->pool) {
+        void *ptr;
+        int found_size = 0;
+        int i;
+        chunk_t *newchunk;
+        memlist_t *memlist = (memlist_t *)sl->memlist->elts;
+        for (i = 0; i < sl->memlist->nelts; i++) {
+            if (memlist->size == size) {
+                int j;
+                chunk_t *chunk = (chunk_t *)memlist->list->elts;
+                found_size = 1;
+                for (j = 0; j < memlist->list->nelts; j++) {
+                    if (!chunk->inuse) {
+                        chunk->inuse = 1;
+                        return chunk->ptr;
+                    }
+                    chunk++;
+                }
+                break; /* no free of this size; punt */
+            }
+            memlist++;
+        }
+        /* no free chunks */
+        ptr = apr_pcalloc(sl->pool, size);
+        if (!ptr) {
+            return ptr;
+        }
+        /*
+         * is this a new sized chunk? If so, we need to create a new
+         * array of them. Otherwise, re-use what we already have.
+         */
+        if (!found_size) {
+            memlist = apr_array_push(sl->memlist);
+            memlist->size = size;
+            memlist->list = apr_array_make(sl->pool, 20, sizeof(chunk_t));
+        }
+        newchunk = apr_array_push(memlist->list);
+        newchunk->ptr = ptr;
+        newchunk->inuse = 1;
+        return ptr;
+    }
+    else {
+        return calloc(1, size);
+    }
+}
+
+APR_DECLARE(void) apr_skiplist_free(apr_skiplist *sl, void *mem)
+{
+    if (!sl->pool) {
+        free(mem);
+    }
+    else {
+        int i;
+        memlist_t *memlist = (memlist_t *)sl->memlist->elts;
+        for (i = 0; i < sl->memlist->nelts; i++) {
+            int j;
+            chunk_t *chunk = (chunk_t *)memlist->list->elts;
+            for (j = 0; j < memlist->list->nelts; j++) {
+                if (chunk->ptr == mem) {
+                    chunk->inuse = 0;
+                    return;
+                }
+                chunk++;
+            }
+            memlist++;
+        }
+    }
+}
+
+static apr_status_t skiplisti_init(apr_skiplist **s, apr_pool_t *p)
+{
+    apr_skiplist *sl;
+    if (p) {
+        sl = apr_pcalloc(p, sizeof(apr_skiplist));
+        sl->memlist = apr_array_make(p, 20, sizeof(memlist_t));
+    }
+    else {
+        sl = calloc(1, sizeof(apr_skiplist));
+    }
+#if 0
+    sl->compare = (apr_skiplist_compare) NULL;
+    sl->comparek = (apr_skiplist_compare) NULL;
+    sl->height = 0;
+    sl->preheight = 0;
+    sl->size = 0;
+    sl->top = NULL;
+    sl->bottom = NULL;
+    sl->index = NULL;
+#endif
+    sl->pool = p;
+    *s = sl;
+    return APR_SUCCESS;
+}
+
+static int indexing_comp(void *a, void *b)
+{
+    void *ac = (void *) (((apr_skiplist *) a)->compare);
+    void *bc = (void *) (((apr_skiplist *) b)->compare);
+    return ((ac < bc) ? -1 : ((ac > bc) ? 1 : 0));
+}
+
+static int indexing_compk(void *ac, void *b)
+{
+    void *bc = (void *) (((apr_skiplist *) b)->compare);
+    return ((ac < bc) ? -1 : ((ac > bc) ? 1 : 0));
+}
+
+APR_DECLARE(apr_status_t) apr_skiplist_init(apr_skiplist **s, apr_pool_t *p)
+{
+    apr_skiplist *sl;
+    skiplisti_init(s, p);
+    sl = *s;
+    skiplisti_init(&(sl->index), p);
+    apr_skiplist_set_compare(sl->index, indexing_comp, indexing_compk);
+    return APR_SUCCESS;
+}
+
+APR_DECLARE(void) apr_skiplist_set_compare(apr_skiplist *sl,
+                          apr_skiplist_compare comp,
+                          apr_skiplist_compare compk)
+{
+    if (sl->compare && sl->comparek) {
+        apr_skiplist_add_index(sl, comp, compk);
+    }
+    else {
+        sl->compare = comp;
+        sl->comparek = compk;
+    }
+}
+
+APR_DECLARE(void) apr_skiplist_add_index(apr_skiplist *sl,
+                        apr_skiplist_compare comp,
+                        apr_skiplist_compare compk)
+{
+    apr_skiplistnode *m;
+    apr_skiplist *ni;
+    int icount = 0;
+    apr_skiplist_find(sl->index, (void *)comp, &m);
+    if (m) {
+        return;                 /* Index already there! */
+    }
+    skiplisti_init(&ni, sl->pool);
+    apr_skiplist_set_compare(ni, comp, compk);
+    /* Build the new index... This can be expensive! */
+    m = apr_skiplist_insert(sl->index, ni);
+    while (m->prev) {
+        m = m->prev;
+        icount++;
+    }
+    for (m = apr_skiplist_getlist(sl); m; apr_skiplist_next(sl, &m)) {
+        int j = icount - 1;
+        apr_skiplistnode *nsln;
+        nsln = apr_skiplist_insert(ni, m->data);
+        /* skip from main index down list */
+        while (j > 0) {
+            m = m->nextindex;
+            j--;
+        }
+        /* insert this node in the indexlist after m */
+        nsln->nextindex = m->nextindex;
+        if (m->nextindex) {
+            m->nextindex->previndex = nsln;
+        }
+        nsln->previndex = m;
+        m->nextindex = nsln;
+    }
+}
+
+APR_DECLARE(apr_skiplistnode *) apr_skiplist_getlist(apr_skiplist *sl)
+{
+    if (!sl->bottom) {
+        return NULL;
+    }
+    return sl->bottom->next;
+}
+
+APR_DECLARE(void *) apr_skiplist_find(apr_skiplist *sl, void *data, apr_skiplistnode **iter)
+{
+    void *ret;
+    apr_skiplistnode *aiter;
+    if (!sl->compare) {
+        return 0;
+    }
+    if (iter) {
+        ret = apr_skiplist_find_compare(sl, data, iter, sl->compare);
+    }
+    else {
+        ret = apr_skiplist_find_compare(sl, data, &aiter, sl->compare);
+    }
+    return ret;
+}
+
+static int skiplisti_find_compare(apr_skiplist *sl, void *data,
+                           apr_skiplistnode **ret,
+                           apr_skiplist_compare comp)
+{
+    apr_skiplistnode *m = NULL;
+    int count = 0;
+    m = sl->top;
+    while (m) {
+        int compared;
+        compared = (m->next) ? comp(data, m->next->data) : -1;
+        if (compared == 0) {
+            m = m->next;
+            while (m->down) {
+                m = m->down;
+            }
+            *ret = m;
+            return count;
+        }
+        if ((m->next == NULL) || (compared < 0)) {
+            m = m->down;
+            count++;
+        }
+        else {
+            m = m->next;
+            count++;
+        }
+    }
+    *ret = NULL;
+    return count;
+}
+
+APR_DECLARE(void *) apr_skiplist_find_compare(apr_skiplist *sli, void *data,
+                               apr_skiplistnode **iter,
+                               apr_skiplist_compare comp)
+{
+    apr_skiplistnode *m = NULL;
+    apr_skiplist *sl;
+    if (comp == sli->compare || !sli->index) {
+        sl = sli;
+    }
+    else {
+        apr_skiplist_find(sli->index, (void *)comp, &m);
+        sl = (apr_skiplist *) m->data;
+    }
+    skiplisti_find_compare(sl, data, iter, sl->comparek);
+    return (iter && *iter) ? ((*iter)->data) : NULL;
+}
+
+
+APR_DECLARE(void *) apr_skiplist_next(apr_skiplist *sl, apr_skiplistnode **iter)
+{
+    if (!*iter) {
+        return NULL;
+    }
+    *iter = (*iter)->next;
+    return (*iter) ? ((*iter)->data) : NULL;
+}
+
+APR_DECLARE(void *) apr_skiplist_previous(apr_skiplist *sl, apr_skiplistnode **iter)
+{
+    if (!*iter) {
+        return NULL;
+    }
+    *iter = (*iter)->prev;
+    return (*iter) ? ((*iter)->data) : NULL;
+}
+
+APR_DECLARE(apr_skiplistnode *) apr_skiplist_insert(apr_skiplist *sl, void *data)
+{
+    if (!sl->compare) {
+        return 0;
+    }
+    return apr_skiplist_insert_compare(sl, data, sl->compare);
+}
+
+APR_DECLARE(apr_skiplistnode *) apr_skiplist_insert_compare(apr_skiplist *sl, void *data,
+                                      apr_skiplist_compare comp)
+{
+    apr_skiplistnode *m, *p, *tmp, *ret = NULL, **stack;
+    int nh = 1, ch, stacki;
+    if (!sl->top) {
+        sl->height = 1;
+        sl->topend = sl->bottomend = sl->top = sl->bottom =
+            (apr_skiplistnode *)apr_skiplist_alloc(sl, sizeof(apr_skiplistnode));
+#if 0
+        sl->top->next = (apr_skiplistnode *)NULL;
+        sl->top->data = (apr_skiplistnode *)NULL;
+        sl->top->prev = (apr_skiplistnode *)NULL;
+        sl->top->up = (apr_skiplistnode *)NULL;
+        sl->top->down = (apr_skiplistnode *)NULL;
+        sl->top->nextindex = (apr_skiplistnode *)NULL;
+        sl->top->previndex = (apr_skiplistnode *)NULL;
+#endif
+        sl->top->sl = sl;
+    }
+    if (sl->preheight) {
+        while (nh < sl->preheight && get_b_rand()) {
+            nh++;
+        }
+    }
+    else {
+        while (nh <= sl->height && get_b_rand()) {
+            nh++;
+        }
+    }
+    /* Now we have the new height at which we wish to insert our new node */
+    /*
+     * Let us make sure that our tree is a least that tall (grow if
+     * necessary)
+     */
+    for (; sl->height < nh; sl->height++) {
+        sl->top->up =
+            (apr_skiplistnode *)apr_skiplist_alloc(sl, sizeof(apr_skiplistnode));
+        sl->top->up->down = sl->top;
+        sl->top = sl->topend = sl->top->up;
+#if 0
+        sl->top->prev = sl->top->next = sl->top->nextindex =
+            sl->top->previndex = sl->top->up = NULL;
+        sl->top->data = NULL;
+#endif
+        sl->top->sl = sl;
+    }
+    ch = sl->height;
+    /* Find the node (or node after which we would insert) */
+    /* Keep a stack to pop back through for insertion */
+    /* malloc() is OK since we free the temp stack */
+    m = sl->top;
+    stack = (apr_skiplistnode **)malloc(sizeof(apr_skiplistnode *) * (nh));
+    stacki = 0;
+    while (m) {
+        int compared = -1;
+        if (m->next) {
+            compared = comp(data, m->next->data);
+        }
+        if (compared == 0) {
+            free(stack);    /* OK. was malloc'ed */
+            return 0;
+        }
+        if ((m->next == NULL) || (compared < 0)) {
+            if (ch <= nh) {
+                /* push on stack */
+                stack[stacki++] = m;
+            }
+            m = m->down;
+            ch--;
+        }
+        else {
+            m = m->next;
+        }
+    }
+    /* Pop the stack and insert nodes */
+    p = NULL;
+    for (; stacki > 0; stacki--) {
+        m = stack[stacki - 1];
+        tmp = (apr_skiplistnode *)apr_skiplist_alloc(sl, sizeof(apr_skiplistnode));
+        tmp->next = m->next;
+        if (m->next) {
+            m->next->prev = tmp;
+        }
+        tmp->prev = m;
+        tmp->up = NULL;
+        tmp->nextindex = tmp->previndex = NULL;
+        tmp->down = p;
+        if (p) {
+            p->up = tmp;
+        }
+        tmp->data = data;
+        tmp->sl = sl;
+        m->next = tmp;
+        /* This sets ret to the bottom-most node we are inserting */
+        if (!p) {
+            ret = tmp;
+            sl->size++; /* this seems to go here got each element to be counted */
+        }
+        p = tmp;
+    }
+    free(stack); /* OK. was malloc'ed */
+    if (sl->index != NULL) {
+        /*
+         * this is a external insertion, we must insert into each index as
+         * well
+         */
+        apr_skiplistnode *ni, *li;
+        li = ret;
+        for (p = apr_skiplist_getlist(sl->index); p; apr_skiplist_next(sl->index, &p)) {
+            ni = apr_skiplist_insert((apr_skiplist *) p->data, ret->data);
+            li->nextindex = ni;
+            ni->previndex = li;
+            li = ni;
+        }
+    }
+    else {
+        /* sl->size++; */
+    }
+    sl->size++;
+    return ret;
+}
+
+APR_DECLARE(int) apr_skiplist_remove(apr_skiplist *sl, void *data, apr_skiplist_freefunc myfree)
+{
+    if (!sl->compare) {
+        return 0;
+    }
+    return apr_skiplist_remove_compare(sl, data, myfree, sl->comparek);
+}
+
+#if 0
+void skiplist_print_struct(apr_skiplist * sl, char *prefix)
+{
+    apr_skiplistnode *p, *q;
+    fprintf(stderr, "Skiplist Structure (height: %d)\n", sl->height);
+    p = sl->bottom;
+    while (p) {
+        q = p;
+        fprintf(stderr, prefix);
+        while (q) {
+            fprintf(stderr, "%p ", q->data);
+            q = q->up;
+        }
+        fprintf(stderr, "\n");
+        p = p->next;
+    }
+}
+#endif
+
+static int skiplisti_remove(apr_skiplist *sl, apr_skiplistnode *m, apr_skiplist_freefunc myfree)
+{
+    apr_skiplistnode *p;
+    if (!m) {
+        return 0;
+    }
+    if (m->nextindex) {
+        skiplisti_remove(m->nextindex->sl, m->nextindex, NULL);
+    }
+    while (m->up) {
+        m = m->up;
+    }
+    while (m) {
+        p = m;
+        p->prev->next = p->next;/* take me out of the list */
+        if (p->next) {
+            p->next->prev = p->prev;    /* take me out of the list */
+        }
+        m = m->down;
+        /* This only frees the actual data in the bottom one */
+        if (!m && myfree && p->data) {
+            myfree(p->data);
+        }
+        apr_skiplist_free(sl, p);
+    }
+    sl->size--;
+    while (sl->top && sl->top->next == NULL) {
+        /* While the row is empty and we are not on the bottom row */
+        p = sl->top;
+        sl->top = sl->top->down;/* Move top down one */
+        if (sl->top) {
+            sl->top->up = NULL; /* Make it think its the top */
+        }
+        apr_skiplist_free(sl, p);
+        sl->height--;
+    }
+    if (!sl->top) {
+        sl->bottom = NULL;
+    }
+    return sl->height;  /* return 1; ?? */
+}
+
+APR_DECLARE(int) apr_skiplist_remove_compare(apr_skiplist *sli,
+                            void *data,
+                            apr_skiplist_freefunc myfree, apr_skiplist_compare comp)
+{
+    apr_skiplistnode *m;
+    apr_skiplist *sl;
+    if (comp == sli->comparek || !sli->index) {
+        sl = sli;
+    }
+    else {
+        apr_skiplist_find(sli->index, (void *)comp, &m);
+        sl = (apr_skiplist *) m->data;
+    }
+    skiplisti_find_compare(sl, data, &m, comp);
+    if (!m) {
+        return 0;
+    }
+    while (m->previndex) {
+        m = m->previndex;
+    }
+    return skiplisti_remove(sl, m, myfree);
+}
+
+APR_DECLARE(void) apr_skiplist_remove_all(apr_skiplist *sl, apr_skiplist_freefunc myfree)
+{
+    /*
+     * This must remove even the place holder nodes (bottom though top)
+     * because we specify in the API that one can free the Skiplist after
+     * making this call without memory leaks
+     */
+    apr_skiplistnode *m, *p, *u;
+    m = sl->bottom;
+    while (m) {
+        p = m->next;
+        if (p && myfree && p->data)
+            myfree(p->data);
+        while (m) {
+            u = m->up;
+            apr_skiplist_free(sl, p);
+            m = u;
+        }
+        m = p;
+    }
+    sl->top = sl->bottom = NULL;
+    sl->height = 0;
+    sl->size = 0;
+}
+
+APR_DECLARE(void *) apr_skiplist_pop(apr_skiplist *a, apr_skiplist_freefunc myfree)
+{
+    apr_skiplistnode *sln;
+    void *data = NULL;
+    sln = apr_skiplist_getlist(a);
+    if (sln) {
+        data = sln->data;
+        skiplisti_remove(a, sln, myfree);
+    }
+    return data;
+}
+
+APR_DECLARE(void *) apr_skiplist_peek(apr_skiplist *a)
+{
+    apr_skiplistnode *sln;
+    sln = apr_skiplist_getlist(a);
+    if (sln) {
+        return sln->data;
+    }
+    return NULL;
+}
+
+static void skiplisti_destroy(void *vsl)
+{
+    apr_skiplist_destroy((apr_skiplist *) vsl, NULL);
+    apr_skiplist_free((apr_skiplist *) vsl, vsl);
+}
+
+APR_DECLARE(void) apr_skiplist_destroy(apr_skiplist *sl, apr_skiplist_freefunc myfree)
+{
+    while (apr_skiplist_pop(sl->index, skiplisti_destroy) != NULL)
+        ;
+    apr_skiplist_remove_all(sl, myfree);
+}
+
+APR_DECLARE(apr_skiplist *) apr_skiplist_merge(apr_skiplist *sl1, apr_skiplist *sl2)
+{
+    /* Check integrity! */
+    apr_skiplist temp;
+    struct apr_skiplistnode *b2;
+    if (sl1->bottomend == NULL || sl1->bottomend->prev == NULL) {
+        apr_skiplist_remove_all(sl1, NULL);
+        temp = *sl1;
+        *sl1 = *sl2;
+        *sl2 = temp;
+        /* swap them so that sl2 can be freed normally upon return. */
+        return sl1;
+    }
+    if(sl2->bottom == NULL || sl2->bottom->next == NULL) {
+        apr_skiplist_remove_all(sl2, NULL);
+        return sl1;
+    }
+    /* This is what makes it brute force... Just insert :/ */
+    b2 = apr_skiplist_getlist(sl2);
+    while (b2) {
+        apr_skiplist_insert(sl1, b2->data);
+        apr_skiplist_next(sl2, &b2);
+    }
+    apr_skiplist_remove_all(sl2, NULL);
+    return sl1;
+}
diff --git a/contrib/apr/tables/apr_tables.c b/contrib/apr/tables/apr_tables.c
index 7479ef47c..2f5b4e537 100644
--- a/contrib/apr/tables/apr_tables.c
+++ b/contrib/apr/tables/apr_tables.c
@@ -357,6 +357,14 @@ struct apr_table_t {
     int index_last[TABLE_HASH_SIZE];
 };
 
+/* keep state for apr_table_getm() */
+typedef struct
+{
+    apr_pool_t *p;
+    const char *first;
+    apr_array_header_t *merged;
+} table_getm_t;
+
 /*
  * NOTICE: if you tweak this you should look at is_empty_table() 
  * and table_elts() in alloc.h
@@ -736,12 +744,14 @@ APR_DECLARE(void) apr_table_mergen(apr_table_t *t, const char *key,
     {
 	apr_pool_t *pool;
 	pool = apr_pool_find(key);
-	if ((pool != key) && (!apr_pool_is_ancestor(pool, t->a.pool))) {
+	if ((pool != (apr_pool_t *)key)
+            && (!apr_pool_is_ancestor(pool, t->a.pool))) {
 	    fprintf(stderr, "apr_table_mergen: key not in ancestor pool of t\n");
 	    abort();
 	}
 	pool = apr_pool_find(val);
-	if ((pool != val) && (!apr_pool_is_ancestor(pool, t->a.pool))) {
+	if ((pool != (apr_pool_t *)val)
+            && (!apr_pool_is_ancestor(pool, t->a.pool))) {
 	    fprintf(stderr, "apr_table_mergen: val not in ancestor pool of t\n");
 	    abort();
 	}
@@ -1236,3 +1246,51 @@ APR_DECLARE(void) apr_table_overlap(apr_table_t *a, const apr_table_t *b,
 
     apr_table_compress(a, flags);
 }
+
+static int table_getm_do(void *v, const char *key, const char *val)
+{
+    table_getm_t *state = (table_getm_t *) v;
+
+    if (!state->first) {
+        /**
+         * The most common case is a single header, and this is covered by
+         * a fast path that doesn't allocate any memory. On the second and
+         * subsequent header, an array is created and the array concatenated
+         * together to form the final value.
+         */
+        state->first = val;
+    }
+    else {
+        const char **elt;
+        if (!state->merged) {
+            state->merged = apr_array_make(state->p, 10, sizeof(const char *));
+            elt = apr_array_push(state->merged);
+            *elt = state->first;
+        }
+        elt = apr_array_push(state->merged);
+        *elt = val;
+    }
+    return 1;
+}
+
+APR_DECLARE(const char *) apr_table_getm(apr_pool_t *p, const apr_table_t *t,
+        const char *key)
+{
+    table_getm_t state;
+
+    state.p = p;
+    state.first = NULL;
+    state.merged = NULL;
+
+    apr_table_do(table_getm_do, &state, t, key, NULL);
+
+    if (!state.first) {
+        return NULL;
+    }
+    else if (!state.merged) {
+        return state.first;
+    }
+    else {
+        return apr_array_pstrcat(p, state.merged, ',');
+    }
+}
diff --git a/contrib/apr/tools/gen_test_char.c b/contrib/apr/tools/gen_test_char.c
new file mode 100644
index 000000000..811c802f2
--- /dev/null
+++ b/contrib/apr/tools/gen_test_char.c
@@ -0,0 +1,115 @@
+/* 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.
+ */
+
+#if defined(WIN32) || defined(OS2)
+#define NEED_ENHANCED_ESCAPES
+#endif
+
+#include 
+#include 
+#include 
+#include 
+
+/* A bunch of functions in util.c scan strings looking for certain characters.
+ * To make that more efficient we encode a lookup table.
+ */
+#define T_ESCAPE_SHELL_CMD    (0x01)
+#define T_ESCAPE_PATH_SEGMENT (0x02)
+#define T_OS_ESCAPE_PATH      (0x04)
+#define T_ESCAPE_ECHO         (0x08)
+#define T_ESCAPE_URLENCODED   (0x10)
+#define T_ESCAPE_XML          (0x20)
+
+int main(int argc, char *argv[])
+{
+    unsigned c;
+    unsigned char flags;
+
+    printf("/* this file is automatically generated by gen_test_char, "
+           "do not edit. \"make include/private/apr_escape_test_char.h\" to regenerate. */\n"
+           "#define T_ESCAPE_SHELL_CMD     (%u)\n"
+           "#define T_ESCAPE_PATH_SEGMENT  (%u)\n"
+           "#define T_OS_ESCAPE_PATH       (%u)\n"
+           "#define T_ESCAPE_ECHO          (%u)\n"
+           "#define T_ESCAPE_URLENCODED    (%u)\n"
+           "#define T_ESCAPE_XML           (%u)\n"
+           "\n"
+           "static const unsigned char test_char_table[256] = {",
+           T_ESCAPE_SHELL_CMD,
+           T_ESCAPE_PATH_SEGMENT,
+           T_OS_ESCAPE_PATH,
+           T_ESCAPE_ECHO,
+           T_ESCAPE_URLENCODED,
+           T_ESCAPE_XML);
+
+    for (c = 0; c < 256; ++c) {
+        flags = 0;
+        if (c % 20 == 0)
+            printf("\n    ");
+
+        /* escape_shell_cmd */
+#ifdef NEED_ENHANCED_ESCAPES
+        /* Win32/OS2 have many of the same vulnerable characters
+         * as Unix sh, plus the carriage return and percent char.
+         * The proper escaping of these characters varies from unix
+         * since Win32/OS2 use carets or doubled-double quotes,
+         * and neither lf nor cr can be escaped.  We escape unix
+         * specific as well, to assure that cross-compiled unix
+         * applications behave similiarly when invoked on win32/os2.
+         *
+         * Rem please keep in-sync with apr's list in win32/filesys.c
+         */
+        if (c && strchr("&;`'\"|*?~<>^()[]{}$\\\n\r%", c)) {
+            flags |= T_ESCAPE_SHELL_CMD;
+        }
+#else
+        if (c && strchr("&;`'\"|*?~<>^()[]{}$\\\n", c)) {
+            flags |= T_ESCAPE_SHELL_CMD;
+        }
+#endif
+
+        if (!isalnum(c) && !strchr("$-_.+!*'(),:@&=~", c)) {
+            flags |= T_ESCAPE_PATH_SEGMENT;
+        }
+
+        if (!isalnum(c) && !strchr("$-_.+!*'(),:@&=/~", c)) {
+            flags |= T_OS_ESCAPE_PATH;
+        }
+
+        if (!isalnum(c) && !strchr(".-*_ ", c)) {
+            flags |= T_ESCAPE_URLENCODED;
+        }
+
+        /* For logging, escape all control characters,
+         * double quotes (because they delimit the request in the log file)
+         * backslashes (because we use backslash for escaping)
+         * and 8-bit chars with the high bit set
+         */
+        if (c && (!isprint(c) || c == '"' || c == '\\' || iscntrl(c))) {
+            flags |= T_ESCAPE_ECHO;
+        }
+
+        if (strchr("<>&\"", c)) {
+            flags |= T_ESCAPE_XML;
+        }
+
+        printf("%u%c", flags, (c < 255) ? ',' : ' ');
+    }
+
+    printf("\n};\n");
+
+    return 0;
+}
diff --git a/contrib/serf/CHANGES b/contrib/serf/CHANGES
index e4e1c892b..6d39b0c5c 100644
--- a/contrib/serf/CHANGES
+++ b/contrib/serf/CHANGES
@@ -1,4 +1,18 @@
-Serf 1.3.4 [2014-02-08, from /tags/1.3.4, rxxxx]
+Serf 1.3.7 [2014-08-11, from /tags/1.3.7, r2411]
+  Handle NUL bytes in fields of an X.509 certificate. (r2393, r2399)
+
+Serf 1.3.6 [2014-06-09, from /tags/1.3.6, r2372]
+  Revert r2319 from serf 1.3.5: this change was making serf call handle_response
+    multiple times in case of an error response, leading to unexpected behavior.
+
+Serf 1.3.5 [2014-04-27, from /tags/1.3.5, r2355]
+  Fix issue #125: no reverse lookup during Negotiate authentication for proxies.
+  Fix a crash caused by incorrect reuse of the ssltunnel CONNECT request (r2316)
+  Cancel request if response parsing failed + authn callback set (r2319)
+  Update the expired certificates in the test suite.
+
+
+Serf 1.3.4 [2014-02-08, from /tags/1.3.4, r2310]
   Fix issue #119: Endless loop during ssl tunnel setup with Negotiate authn
   Fix issue #123: Can't setup ssl tunnel which sends Connection close header
   Fix a race condition when initializing OpenSSL from multiple threads (r2263)
diff --git a/contrib/serf/auth/auth_spnego.c b/contrib/serf/auth/auth_spnego.c
index c0ad27e36..e55fad2ae 100644
--- a/contrib/serf/auth/auth_spnego.c
+++ b/contrib/serf/auth/auth_spnego.c
@@ -335,8 +335,7 @@ do_auth(peer_t peer,
                                          &tmp, &tmp_len,
                                          gss_info);
     } else {
-        char *proxy_host;
-        apr_getnameinfo(&proxy_host, conn->ctx->proxy_address, 0);
+        char *proxy_host = conn->ctx->proxy_address->hostname;
         status = gss_api_get_credentials(conn,
                                          token, token_len, proxy_host,
                                          &tmp, &tmp_len,
diff --git a/contrib/serf/buckets/ssl_buckets.c b/contrib/serf/buckets/ssl_buckets.c
index 1a27d3f8e..d2fe51d71 100644
--- a/contrib/serf/buckets/ssl_buckets.c
+++ b/contrib/serf/buckets/ssl_buckets.c
@@ -202,6 +202,8 @@ struct serf_ssl_certificate_t {
 };
 
 static void disable_compression(serf_ssl_context_t *ssl_ctx);
+static char *
+    pstrdup_escape_nul_bytes(const char *buf, int len, apr_pool_t *pool);
 
 #if SSL_VERBOSE
 /* Log all ssl alerts that we receive from the server. */
@@ -427,6 +429,85 @@ static BIO_METHOD bio_file_method = {
 #endif
 };
 
+typedef enum san_copy_t {
+    EscapeNulAndCopy = 0,
+    ErrorOnNul = 1,
+} san_copy_t;
+
+
+static apr_status_t
+get_subject_alt_names(apr_array_header_t **san_arr, X509 *ssl_cert,
+                      san_copy_t copy_action, apr_pool_t *pool)
+{
+    STACK_OF(GENERAL_NAME) *names;
+
+    /* assert: copy_action == ErrorOnNul || (san_arr && pool) */
+
+    if (san_arr) {
+        *san_arr = NULL;
+    }
+
+    /* Get subjectAltNames */
+    names = X509_get_ext_d2i(ssl_cert, NID_subject_alt_name, NULL, NULL);
+    if (names) {
+        int names_count = sk_GENERAL_NAME_num(names);
+        int name_idx;
+
+        if (san_arr)
+            *san_arr = apr_array_make(pool, names_count, sizeof(char*));
+        for (name_idx = 0; name_idx < names_count; name_idx++) {
+            char *p = NULL;
+            GENERAL_NAME *nm = sk_GENERAL_NAME_value(names, name_idx);
+
+            switch (nm->type) {
+                case GEN_DNS:
+                    if (copy_action == ErrorOnNul &&
+                        strlen(nm->d.ia5->data) != nm->d.ia5->length)
+                        return SERF_ERROR_SSL_CERT_FAILED;
+                    if (san_arr && *san_arr)
+                        p = pstrdup_escape_nul_bytes((const char *)nm->d.ia5->data,
+                                                     nm->d.ia5->length,
+                                                     pool);
+                    break;
+                default:
+                    /* Don't know what to do - skip. */
+                    break;
+            }
+
+            if (p) {
+                APR_ARRAY_PUSH(*san_arr, char*) = p;
+            }
+        }
+        sk_GENERAL_NAME_pop_free(names, GENERAL_NAME_free);
+    }
+    
+    return APR_SUCCESS;
+}
+
+static apr_status_t validate_cert_hostname(X509 *server_cert, apr_pool_t *pool)
+{
+    char buf[1024];
+    int length;
+    apr_status_t ret;
+
+    ret = get_subject_alt_names(NULL, server_cert, ErrorOnNul, NULL);
+    if (ret) {
+      return ret;
+    } else {
+        /* Fail if the subject's CN field contains \0 characters. */
+        X509_NAME *subject = X509_get_subject_name(server_cert);
+        if (!subject)
+            return SERF_ERROR_SSL_CERT_FAILED;
+
+        length = X509_NAME_get_text_by_NID(subject, NID_commonName, buf, 1024);
+        if (length != -1)
+            if (strlen(buf) != length)
+                return SERF_ERROR_SSL_CERT_FAILED;
+    }
+
+    return APR_SUCCESS;
+}
+
 static int
 validate_server_certificate(int cert_valid, X509_STORE_CTX *store_ctx)
 {
@@ -435,6 +516,7 @@ validate_server_certificate(int cert_valid, X509_STORE_CTX *store_ctx)
     X509 *server_cert;
     int err, depth;
     int failures = 0;
+    apr_status_t status;
 
     ssl = X509_STORE_CTX_get_ex_data(store_ctx,
                                      SSL_get_ex_data_X509_STORE_CTX_idx());
@@ -475,6 +557,11 @@ validate_server_certificate(int cert_valid, X509_STORE_CTX *store_ctx)
         }
     }
 
+    /* Validate hostname */
+    status = validate_cert_hostname(server_cert, ctx->pool);
+    if (status)
+        failures |= SERF_SSL_CERT_UNKNOWN_FAILURE;
+
     /* Check certificate expiry dates. */
     if (X509_cmp_current_time(X509_get_notBefore(server_cert)) >= 0) {
         failures |= SERF_SSL_CERT_NOTYETVALID;
@@ -485,7 +572,6 @@ validate_server_certificate(int cert_valid, X509_STORE_CTX *store_ctx)
 
     if (ctx->server_cert_callback &&
         (depth == 0 || failures)) {
-        apr_status_t status;
         serf_ssl_certificate_t *cert;
         apr_pool_t *subpool;
 
@@ -512,7 +598,6 @@ validate_server_certificate(int cert_valid, X509_STORE_CTX *store_ctx)
 
     if (ctx->server_cert_chain_callback
         && (depth == 0 || failures)) {
-        apr_status_t status;
         STACK_OF(X509) *chain;
         const serf_ssl_certificate_t **certs;
         int certs_len;
@@ -1461,7 +1546,50 @@ serf_ssl_context_t *serf_bucket_ssl_encrypt_context_get(
 
 /* Functions to read a serf_ssl_certificate structure. */
 
-/* Creates a hash_table with keys (E, CN, OU, O, L, ST and C). */
+/* Takes a counted length string and escapes any NUL bytes so that
+ * it can be used as a C string.  NUL bytes are escaped as 3 characters
+ * "\00" (that's a literal backslash).
+ * The returned string is allocated in POOL.
+ */
+static char *
+pstrdup_escape_nul_bytes(const char *buf, int len, apr_pool_t *pool)
+{
+    int i, nul_count = 0;
+    char *ret;
+
+    /* First determine if there are any nul bytes in the string. */
+    for (i = 0; i < len; i++) {
+        if (buf[i] == '\0')
+            nul_count++;
+    }
+
+    if (nul_count == 0) {
+        /* There aren't so easy case to just copy the string */
+        ret = apr_pstrdup(pool, buf);
+    } else {
+        /* There are so we have to replace nul bytes with escape codes
+         * Proper length is the length of the original string, plus
+         * 2 times the number of nulls (for two digit hex code for
+         * the value) + the trailing null. */
+        char *pos;
+        ret = pos = apr_palloc(pool, len + 2 * nul_count + 1);
+        for (i = 0; i < len; i++) {
+            if (buf[i] != '\0') {
+                *(pos++) = buf[i];
+            } else {
+                *(pos++) = '\\';
+                *(pos++) = '0';
+                *(pos++) = '0';
+            }
+        }
+        *pos = '\0';
+    }
+
+    return ret;
+}
+
+/* Creates a hash_table with keys (E, CN, OU, O, L, ST and C). Any NUL bytes in
+   these fields in the certificate will be escaped as \00. */
 static apr_hash_t *
 convert_X509_NAME_to_table(X509_NAME *org, apr_pool_t *pool)
 {
@@ -1474,37 +1602,44 @@ convert_X509_NAME_to_table(X509_NAME *org, apr_pool_t *pool)
                                     NID_commonName,
                                     buf, 1024);
     if (ret != -1)
-        apr_hash_set(tgt, "CN", APR_HASH_KEY_STRING, apr_pstrdup(pool, buf));
+        apr_hash_set(tgt, "CN", APR_HASH_KEY_STRING,
+                     pstrdup_escape_nul_bytes(buf, ret, pool));
     ret = X509_NAME_get_text_by_NID(org,
                                     NID_pkcs9_emailAddress,
                                     buf, 1024);
     if (ret != -1)
-        apr_hash_set(tgt, "E", APR_HASH_KEY_STRING, apr_pstrdup(pool, buf));
+        apr_hash_set(tgt, "E", APR_HASH_KEY_STRING,
+                     pstrdup_escape_nul_bytes(buf, ret, pool));
     ret = X509_NAME_get_text_by_NID(org,
                                     NID_organizationalUnitName,
                                     buf, 1024);
     if (ret != -1)
-        apr_hash_set(tgt, "OU", APR_HASH_KEY_STRING, apr_pstrdup(pool, buf));
+        apr_hash_set(tgt, "OU", APR_HASH_KEY_STRING,
+                     pstrdup_escape_nul_bytes(buf, ret, pool));
     ret = X509_NAME_get_text_by_NID(org,
                                     NID_organizationName,
                                     buf, 1024);
     if (ret != -1)
-        apr_hash_set(tgt, "O", APR_HASH_KEY_STRING, apr_pstrdup(pool, buf));
+        apr_hash_set(tgt, "O", APR_HASH_KEY_STRING,
+                     pstrdup_escape_nul_bytes(buf, ret, pool));
     ret = X509_NAME_get_text_by_NID(org,
                                     NID_localityName,
                                     buf, 1024);
     if (ret != -1)
-        apr_hash_set(tgt, "L", APR_HASH_KEY_STRING, apr_pstrdup(pool, buf));
+        apr_hash_set(tgt, "L", APR_HASH_KEY_STRING,
+                     pstrdup_escape_nul_bytes(buf, ret, pool));
     ret = X509_NAME_get_text_by_NID(org,
                                     NID_stateOrProvinceName,
                                     buf, 1024);
     if (ret != -1)
-        apr_hash_set(tgt, "ST", APR_HASH_KEY_STRING, apr_pstrdup(pool, buf));
+        apr_hash_set(tgt, "ST", APR_HASH_KEY_STRING,
+                     pstrdup_escape_nul_bytes(buf, ret, pool));
     ret = X509_NAME_get_text_by_NID(org,
                                     NID_countryName,
                                     buf, 1024);
     if (ret != -1)
-        apr_hash_set(tgt, "C", APR_HASH_KEY_STRING, apr_pstrdup(pool, buf));
+        apr_hash_set(tgt, "C", APR_HASH_KEY_STRING,
+                     pstrdup_escape_nul_bytes(buf, ret, pool));
 
     return tgt;
 }
@@ -1550,7 +1685,7 @@ apr_hash_t *serf_ssl_cert_certificate(
     unsigned int md_size, i;
     unsigned char md[EVP_MAX_MD_SIZE];
     BIO *bio;
-    STACK_OF(GENERAL_NAME) *names;
+    apr_array_header_t *san_arr;
 
     /* sha1 fingerprint */
     if (X509_digest(cert->ssl_cert, EVP_sha1(), md, &md_size)) {
@@ -1595,32 +1730,8 @@ apr_hash_t *serf_ssl_cert_certificate(
     BIO_free(bio);
 
     /* Get subjectAltNames */
-    names = X509_get_ext_d2i(cert->ssl_cert, NID_subject_alt_name, NULL, NULL);
-    if (names) {
-        int names_count = sk_GENERAL_NAME_num(names);
-
-        apr_array_header_t *san_arr = apr_array_make(pool, names_count,
-                                                     sizeof(char*));
+    if (!get_subject_alt_names(&san_arr, cert->ssl_cert, EscapeNulAndCopy, pool))
         apr_hash_set(tgt, "subjectAltName", APR_HASH_KEY_STRING, san_arr);
-        for (i = 0; i < names_count; i++) {
-            char *p = NULL;
-            GENERAL_NAME *nm = sk_GENERAL_NAME_value(names, i);
-
-            switch (nm->type) {
-            case GEN_DNS:
-                p = apr_pstrmemdup(pool, (const char *)nm->d.ia5->data,
-                                   nm->d.ia5->length);
-                break;
-            default:
-                /* Don't know what to do - skip. */
-                break;
-            }
-            if (p) {
-                APR_ARRAY_PUSH(san_arr, char*) = p;
-            }
-        }
-        sk_GENERAL_NAME_pop_free(names, GENERAL_NAME_free);
-    }
 
     return tgt;
 }
diff --git a/contrib/serf/serf.h b/contrib/serf/serf.h
index c28703f0c..f6f34a7c7 100644
--- a/contrib/serf/serf.h
+++ b/contrib/serf/serf.h
@@ -1062,7 +1062,7 @@ void serf_debug__bucket_alloc_check(
 /* Version info */
 #define SERF_MAJOR_VERSION 1
 #define SERF_MINOR_VERSION 3
-#define SERF_PATCH_VERSION 4
+#define SERF_PATCH_VERSION 7
 
 /* Version number string */
 #define SERF_VERSION_STRING APR_STRINGIFY(SERF_MAJOR_VERSION) "." \
diff --git a/contrib/serf/ssltunnel.c b/contrib/serf/ssltunnel.c
index 28ca12700..0ad04d677 100644
--- a/contrib/serf/ssltunnel.c
+++ b/contrib/serf/ssltunnel.c
@@ -70,12 +70,11 @@ static apr_status_t handle_response(serf_request_t *request,
     req_ctx_t *ctx = handler_baton;
     serf_connection_t *conn = request->conn;
 
-    if (! response) {
-        serf_connection_request_create(conn,
-                                       setup_request,
-                                       ctx);
+    /* CONNECT request was cancelled. Assuming that this is during connection
+       reset, we can safely discard the request as a new one will be created
+       when setting up the next connection. */
+    if (!response)
         return APR_SUCCESS;
-    }
 
     status = serf_bucket_response_status(response, &sl);
     if (SERF_BUCKET_READ_ERROR(status)) {
diff --git a/contrib/subversion/CHANGES b/contrib/subversion/CHANGES
index b78eadd79..616caec3f 100644
--- a/contrib/subversion/CHANGES
+++ b/contrib/subversion/CHANGES
@@ -1,3 +1,112 @@
+Version 1.8.10
+(11 Aug 2014, from /branches/1.8.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.8.10
+
+ User-visible changes:
+  - Client-side bugfixes:
+    * guard against md5 hash collisions when finding cached credentials
+        (r1550691, r1550772, r1600909)
+    * ra_serf: properly match wildcards in SSL certs. (r1615211, 1615219)
+    * ra_serf: ignore the CommonName in SSL certs where there are Subject Alt
+        Names (r1565531, r1566503, r1568349, r1568361)
+    * ra_serf: fix a URI escaping bug that prevented deleting locked paths
+        (r1594223, r1553501, r1553556, r1559197, issue #3674)
+    * rm: Display the proper URL when deleting a URL in the commit log editor
+        (r1591123)
+    * log: Fix another instance of broken pipe error (r1596866, issue #3014)
+    * copy: Properly handle props not present or excluded on cross wc copy
+        (r1589184, r1589188)
+    * copy: Fix copying parents of locally deleted nodes between wcs
+        (r1589460, r1589486)
+    * externals: Properly delete ancestor directories of externals when
+        removing the external by changing svn:externals. (r1600311, 1600315,
+        r1600323, r1600393)
+    * ra_serf: fix memory lifetime of some hash values (r1606009)
+
+  - Server-side bugfixes:
+    * fsfs: omit config file when creating pre-1.5 format repos (r1547454,
+        r1561703)
+
+ Developer-visible changes:
+  - General:
+    * fix improper linking when serf is in the same prefix as existing svn
+        libraries. (r1609004)
+    * use proper intermediate directory when building with VS 2003-2008
+        (r1595431)
+    * support generating VS 2013 and later project files.
+
+  - Bindings:
+    * ruby: removing warning about Ruby 1.9 support being new. (r1593992)
+    * python: fix notify_func callbacks (r1594794, r1594814, r1594834, r1595061)
+
+
+Version 1.8.9
+(07 May 2014, from /branches/1.8.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.8.9
+
+ User-visible changes:
+  - Client-side bugfixes:
+    * log: use proper peg revision over DAV (r1568872)
+    * upgrade: allow upgrading from 1.7 with exclusive locks (r1572102 et al)
+    * proplist: resolve inconsitent inherited property results (r1575270 et al)
+    * increase minimal timestamp sleep from 1ms to 10ms (r1581305 et al)
+    * merge: automatic merge confused by subtree merge (issue #4481)
+    * propget: report proper error on invalid revision for url (r1586255)
+    * commit: fix an assertion when committing a deleted descendant
+      (r1571747, r1571787, r1571795)
+    * merge: resolve segfault when '--force' merges a directory delete
+      (r1577812, r1577813, r1579429)
+    * resolve: prevent interactive conflict resolution when nothing has been
+      done to resolve the conflict (r1577294)
+    * update: fix locks lost from wc with pre-1.6.17 servers (issue #4412)
+    * merge: honor the 'preserved-conflict-file-exts' setting (r1577151)
+    * list: fix '--verbose' against older servers (r1591111)
+    * unlock: fix ability to remove locks with timeouts (r1579588)
+    * copy: fix 'svn copy URL WC' on relocated working copies
+      (r1580626, r1580650)
+    * export: allow file externals to be exported (issue #4427)
+    * move: fix working copy db inconsistency in cert scenarios (issue #4437)
+    * commit: fix an issue where mixed revision copy with non copy descendants
+      that shadow a not present node couldn't be committed (r1518942 et al)
+    * delete: properly remove move_to info when the node in its original
+      location is removed (r1538812 et al)
+    * status; fix an issue where output would vary based on if the target
+      was the node itself or its parent (r1544597 et al)
+
+  - Server-side bugfixes:
+    * ensure proper access synchronization in fsfs on Windows (r1568953 et al)
+    * svnadmin dump: don't let invalid mergeinfo stop dump (r1574868 et al)
+    * svnserve: resolve performance regression caused by iprops (r1578853 et al)
+    * reduce size of memory buffer when reading config files (r1581296)
+    * remove dead transaction if commit was blocked by hook (r1583977)
+    * svnrdump load: fix crash when svn:* normalization (issue #4490)
+    * fix memcached support (issue #4470)
+    * svndumpfilter: fix order of node record headers (r1578670 et al)
+    * mod_dav_svn: blacklist building with broken versions of httpd; 2.2.25,
+      2.4.5 and 2.4.6 (r1545835)
+    * mod_dav_svn: allow generic DAV clients to refresh locks (issue #3515)
+    * mod_dav_svn: detect out of dateness correctly during commit (issue #4480)
+
+ Developer-visible changes:
+  - General:
+    * improve consistency checks of DAV inherited property requests (r1498000)
+    * fix ocassional failure in autoprop_tests.py (r1567752)
+    * avoid duplicate sqlite analyze information rows (r1571214)
+    * add Mavericks to our sysinfo output (r1573088)
+    * bump copyright years to 2014 (r1555403)
+    * unbreak test suite when running as root (r1583580)
+    * resolve buffer overflow in testcode (r1481782)
+    * fix libmagic detection with custom LDFLAGS (r1577200)
+    * fix an out of scope variable use in merge (r1587946)
+    * javahl: fix crash from resolve callback throwing an exception (r1586439)
+    * ruby: fix two memory lifetime bugs (r1586052, r1586467)
+    * fix a missing null byte when handling old pre-1.4 deltas (r1587968)
+    * fix building with APR 0.9.x (r1585499)
+    * make svn_ra_get_locks() and svn_ra_get_lock() report not locked nodes
+      with a NULL svn_lock_t *, as documented (r1578273, r1578311, r1578326)
+    * fix tests for compiler flags (r1573106)
+
+
 Version 1.8.8
 (19 Feb 2014, from /branches/1.8.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.8.8
@@ -620,9 +729,54 @@ http://svn.apache.org/repos/asf/subversion/tags/1.8.0
     * fix some reference counting bugs in swig-py bindings (r1464899, r1466524)
 
 
-Version 1.7.15
-(12 Feb 2014, from /branches/1.7.x)
-http://svn.apache.org/repos/asf/subversion/tags/1.7.15
+Version 1.7.18
+(11 Aug 2014, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.18
+
+ User-visible changes:
+  - Client-side bugfixes:
+    * guard against md5 hash collisions when finding cached credentials
+        (r1550691, r1550772, r1600909)
+    * ra_serf: properly match wildcards in SSL certs. (r1615211, 1615219)
+    * ra_serf: ignore the CommonName in SSL certs where there are Subject Alt
+        Names (r1565531, r1566503, r1568349)
+
+ Developer-visible changes:
+  - General:
+    * fix ocassional failure in checkout_tests.py test 12. (r1496127)
+    * disable building ZLib's assembly optimizations on Windows.
+
+
+Version 1.7.17
+(07 May 2014, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.17
+
+ User-visible changes:
+  - Client-side bugfixes:
+    * log: use proper peg revision over DAV (r1568872)
+    * move: fix errors when moving files between an external and the parent
+      working copy (r1551579)
+    * copy: fix 'svn copy URL WC' on relocated working copies
+      (r1580626, r1580650)
+
+  - Server-side bugfixes:
+    * mod_dav_svn: blacklist building with broken versions of httpd; 2.2.25,
+      2.4.5 and 2.4.6 (r1545835)
+    * mod_dav_svn: detect out of dateness correctly during commit (issue #4480)
+
+ Developer-visible changes:
+  - General:
+    * fix libmagic detection with custom LDFLAGS (r1577200)
+    * fix a missing null byte when handling old pre-1.4 deltas (r1587968)
+    * support building with Serf 1.3.x (r1517123, r1535139)
+
+  - Bindings:
+    * javahl: fix crash from resolve callback throwing an exception (r1586439)
+
+
+Version 1.7.16
+(26 Feb 2014, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.16
 
  User-visible changes:
   - Client-side bugfixes:
@@ -637,6 +791,11 @@ http://svn.apache.org/repos/asf/subversion/tags/1.7.15
   - General:
     * fix failure in checkout_tests.py
     * support compiling against Cyrus sasl 2.1.25 (r1404912, r1413402)
+    * support compiling against neon 0.30.x (r1566320)
+
+
+Version 1.7.15
+(Not released, see changes for 1.7.16.)
 
 
 Version 1.7.14
@@ -883,7 +1042,7 @@ http://svn.apache.org/repos/asf/subversion/tags/1.7.6
     * fix ra_serf against Subversion 1.2 servers (r1349367)
     * fix 'svn upgrade' on working copies with certain tree conflicts (r1345482)
     * avoid workqueue references to system temp dir (r1367854)
-    * allow non-existant canonical paths (r1367853)
+    * allow non-existent canonical paths (r1367853)
     * fix 'svn revert --depth files' to operate on files (r1365554)
     * fix ra_serf XML namespace handling against malicious server (r1337441)
     * fix relocate with server-relative externals (issue 4216)
@@ -1235,7 +1394,7 @@ the 1.6 release:  http://subversion.apache.org/docs/release-notes/1.7.html
     * fixed: rm -> ci -> cp = missing directory (issue #2763)
     * fixed: 'svn info' returns parent info on missing dirs (issue #3178)
     * fixed: spurious prop conflict with 'merge --reintegrate' (issue #3919)
-    * fixed: 'svn --version' fails with non-existant $HOME (issue #3947)
+    * fixed: 'svn --version' fails with non-existent $HOME (issue #3947)
     * fixed: unforced export silently overwites existing file (issue #3799)
     * fixed: reverse merge which adds subtree mergeinfo fails (issue #3978)
     * fixed: 'svn up -r{R>HEAD}' hangs client over ra_svn (issue #3963)
@@ -1410,7 +1569,7 @@ http://svn.apache.org/repos/asf/subversion/tags/1.6.17
     * fix crash in mod_dav_svn with GETs of baselined resources (r1104126)
             See CVE-2011-1752, and descriptive advisory at
             http://subversion.apache.org/security/CVE-2011-1752-advisory.txt
-    * fixed: write-through proxy could direcly commit to slave (r917523)
+    * fixed: write-through proxy could directly commit to slave (r917523)
     * detect a particular corruption condition in FSFS (r1100213)
     * improve error message when clients refer to unknown revisions (r939000)
     * bugfixes and optimizations to the DAV mirroring code (r878607)
diff --git a/contrib/subversion/NOTICE b/contrib/subversion/NOTICE
index fdcea3c80..c1afd4127 100644
--- a/contrib/subversion/NOTICE
+++ b/contrib/subversion/NOTICE
@@ -1,5 +1,5 @@
 Apache Subversion
-Copyright 2013 The Apache Software Foundation
+Copyright 2014 The Apache Software Foundation
 
 This product includes software developed by many people, and distributed
 under Contributor License Agreements to The Apache Software Foundation
diff --git a/contrib/subversion/build-outputs.mk b/contrib/subversion/build-outputs.mk
index 5845a86c2..3126b3f7f 100644
--- a/contrib/subversion/build-outputs.mk
+++ b/contrib/subversion/build-outputs.mk
@@ -2231,7 +2231,7 @@ subversion/libsvn_ra_serf/serf.lo: subversion/libsvn_ra_serf/serf.c subversion/i
 
 subversion/libsvn_ra_serf/update.lo: subversion/libsvn_ra_serf/update.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_string_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_base64.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
 
-subversion/libsvn_ra_serf/util.lo: subversion/libsvn_ra_serf/util.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
+subversion/libsvn_ra_serf/util.lo: subversion/libsvn_ra_serf/util.c subversion/include/private/svn_auth_private.h subversion/include/private/svn_cert.h subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_editor.h subversion/include/private/svn_fspath.h subversion/include/private/svn_ra_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_props.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_ra/ra_loader.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h subversion/svn_private_config.h
 
 subversion/libsvn_ra_serf/util_error.lo: subversion/libsvn_ra_serf/util_error.c subversion/include/private/svn_dav_protocol.h subversion/include/private/svn_debug.h subversion/include/private/svn_editor.h subversion/include/private/svn_error_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_dav.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/libsvn_ra_serf/blncache.h subversion/libsvn_ra_serf/ra_serf.h
 
@@ -2329,7 +2329,7 @@ subversion/libsvn_subr/debug.lo: subversion/libsvn_subr/debug.c subversion/inclu
 
 subversion/libsvn_subr/deprecated.lo: subversion/libsvn_subr/deprecated.c subversion/include/private/svn_debug.h subversion/include/private/svn_mergeinfo_private.h subversion/include/private/svn_opt_private.h subversion/include/private/svn_subr_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_cmdline.h subversion/include/svn_config.h subversion/include/svn_dirent_uri.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_subst.h subversion/include/svn_types.h subversion/include/svn_utf.h subversion/include/svn_version.h subversion/include/svn_xml.h subversion/libsvn_subr/opt.h subversion/svn_private_config.h
 
-subversion/libsvn_subr/dirent_uri.lo: subversion/libsvn_subr/dirent_uri.c subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/svn_ctype.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_subr/dirent_uri.h subversion/svn_private_config.h
+subversion/libsvn_subr/dirent_uri.lo: subversion/libsvn_subr/dirent_uri.c subversion/include/private/svn_cert.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/svn_ctype.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_subr/dirent_uri.h subversion/svn_private_config.h
 
 subversion/libsvn_subr/dso.lo: subversion/libsvn_subr/dso.c subversion/include/private/svn_debug.h subversion/include/private/svn_mutex.h subversion/include/svn_checksum.h subversion/include/svn_dso.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_hash.h subversion/include/svn_io.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/svn_private_config.h
 
@@ -2781,7 +2781,7 @@ subversion/tests/libsvn_subr/config-test.lo: subversion/tests/libsvn_subr/config
 
 subversion/tests/libsvn_subr/crypto-test.lo: subversion/tests/libsvn_subr/crypto-test.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/libsvn_subr/crypto.h subversion/tests/svn_test.h
 
-subversion/tests/libsvn_subr/dirent_uri-test.lo: subversion/tests/libsvn_subr/dirent_uri-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
+subversion/tests/libsvn_subr/dirent_uri-test.lo: subversion/tests/libsvn_subr/dirent_uri-test.c subversion/include/private/svn_cert.h subversion/include/private/svn_debug.h subversion/include/private/svn_fspath.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
 
 subversion/tests/libsvn_subr/error-code-test.lo: subversion/tests/libsvn_subr/error-code-test.c subversion/include/private/svn_debug.h subversion/include/svn_checksum.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_path.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/tests/svn_test.h
 
@@ -2829,17 +2829,17 @@ subversion/tests/libsvn_wc/op-depth-test.lo: subversion/tests/libsvn_wc/op-depth
 
 subversion/tests/libsvn_wc/pristine-store-test.lo: subversion/tests/libsvn_wc/pristine-store-test.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/workqueue.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h
 
-subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
 
-subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
 
-subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
 
-subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
 
-subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
 
-subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
+subversion/tests/libsvn_wc/utils.lo: subversion/tests/libsvn_wc/utils.c subversion/include/private/svn_debug.h subversion/include/private/svn_dep_compat.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_client.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_diff.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_fs.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_repos.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc-queries.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/libsvn_wc/wc_db_private.h subversion/svn_private_config.h subversion/tests/libsvn_wc/utils.h subversion/tests/svn_test.h subversion/tests/svn_test_fs.h
 
 subversion/tests/libsvn_wc/wc-incomplete-tester.lo: subversion/tests/libsvn_wc/wc-incomplete-tester.c subversion/include/private/svn_debug.h subversion/include/private/svn_diff_tree.h subversion/include/private/svn_skel.h subversion/include/private/svn_sqlite.h subversion/include/private/svn_token.h subversion/include/private/svn_wc_private.h subversion/include/svn_auth.h subversion/include/svn_checksum.h subversion/include/svn_config.h subversion/include/svn_delta.h subversion/include/svn_dirent_uri.h subversion/include/svn_error.h subversion/include/svn_error_codes.h subversion/include/svn_io.h subversion/include/svn_mergeinfo.h subversion/include/svn_opt.h subversion/include/svn_path.h subversion/include/svn_pools.h subversion/include/svn_ra.h subversion/include/svn_string.h subversion/include/svn_types.h subversion/include/svn_wc.h subversion/libsvn_wc/wc.h subversion/libsvn_wc/wc_db.h subversion/svn_private_config.h
 
diff --git a/contrib/subversion/build.conf b/contrib/subversion/build.conf
index 74defd02b..356163a2d 100644
--- a/contrib/subversion/build.conf
+++ b/contrib/subversion/build.conf
@@ -342,6 +342,7 @@ msvc-export =
         private\svn_temp_serializer.h private\svn_io_private.h
         private\svn_string_private.h private\svn_magic.h
         private\svn_subr_private.h private\svn_mutex.h private\svn_named_atomic.h
+        private\svn_cert.h
 
 # Working copy management lib
 [libsvn_wc]
diff --git a/contrib/subversion/configure b/contrib/subversion/configure
index 17799235b..445251bdf 100755
--- a/contrib/subversion/configure
+++ b/contrib/subversion/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for subversion 1.8.8.
+# Generated by GNU Autoconf 2.69 for subversion 1.8.10.
 #
 # Report bugs to .
 #
@@ -590,8 +590,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='subversion'
 PACKAGE_TARNAME='subversion'
-PACKAGE_VERSION='1.8.8'
-PACKAGE_STRING='subversion 1.8.8'
+PACKAGE_VERSION='1.8.10'
+PACKAGE_STRING='subversion 1.8.10'
 PACKAGE_BUGREPORT='http://subversion.apache.org/'
 PACKAGE_URL=''
 
@@ -1457,7 +1457,7 @@ 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 subversion 1.8.8 to adapt to many kinds of systems.
+\`configure' configures subversion 1.8.10 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1523,7 +1523,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of subversion 1.8.8:";;
+     short | recursive ) echo "Configuration of subversion 1.8.10:";;
    esac
   cat <<\_ACEOF
 
@@ -1737,7 +1737,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-subversion configure 1.8.8
+subversion configure 1.8.10
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1789,6 +1789,52 @@ fi
 
 } # ac_fn_c_try_compile
 
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  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 ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 test -x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+
 # ac_fn_cxx_try_compile LINENO
 # ----------------------------
 # Try to compile conftest.$ac_ext, and return whether this succeeded.
@@ -1827,6 +1873,52 @@ fi
 
 } # ac_fn_cxx_try_compile
 
+# ac_fn_cxx_try_link LINENO
+# -------------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  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 ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 test -x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_link
+
 # ac_fn_c_try_cpp LINENO
 # ----------------------
 # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
@@ -2028,52 +2120,6 @@ $as_echo "$ac_res" >&6; }
 
 } # ac_fn_c_check_header_compile
 
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  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 ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 test -x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_link
-
 # ac_fn_c_check_func LINENO FUNC VAR
 # ----------------------------------
 # Tests whether FUNC exists, setting the cache variable VAR accordingly
@@ -2178,52 +2224,6 @@ fi
 
 } # ac_fn_cxx_try_cpp
 
-# ac_fn_cxx_try_link LINENO
-# -------------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  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 ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 test -x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_link
-
 # ac_fn_c_check_type LINENO TYPE VAR INCLUDES
 # -------------------------------------------
 # Tests whether TYPE exists after having included INCLUDES, setting cache
@@ -2281,7 +2281,7 @@ 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 subversion $as_me 1.8.8, which was
+It was created by subversion $as_me 1.8.10, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2661,8 +2661,8 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring Subversion 1.8.8" >&5
-$as_echo "$as_me: Configuring Subversion 1.8.8" >&6;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: Configuring Subversion 1.8.10" >&5
+$as_echo "$as_me: Configuring Subversion 1.8.10" >&6;}
 
 abs_srcdir="`cd $srcdir && pwd`"
 
@@ -3509,11 +3509,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -std=c90" >&5
 $as_echo_n "checking if $CC accepts -std=c90... " >&6; }
   CFLAGS="-std=c90 $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -3536,11 +3536,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -std=c89" >&5
 $as_echo_n "checking if $CC accepts -std=c89... " >&6; }
   CFLAGS="-std=c89 $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -3563,11 +3563,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -ansi" >&5
 $as_echo_n "checking if $CC accepts -ansi... " >&6; }
   CFLAGS="-ansi $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -3581,7 +3581,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -3592,7 +3593,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -3603,7 +3605,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -3628,11 +3631,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Werror=unknown-warning-option" >&5
 $as_echo_n "checking if $CC accepts -Werror=unknown-warning-option... " >&6; }
   CFLAGS="-Werror=unknown-warning-option $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -3646,7 +3649,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -3932,11 +3936,11 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -std=c++98" >&5
 $as_echo_n "checking if $CXX accepts -std=c++98... " >&6; }
   CXXFLAGS="-std=c++98 $CXXFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(){}
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -3950,7 +3954,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -3975,11 +3980,11 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -Werror=unknown-warning-option" >&5
 $as_echo_n "checking if $CXX accepts -Werror=unknown-warning-option... " >&6; }
   CXXFLAGS="-Werror=unknown-warning-option $CXXFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(){}
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -3993,7 +3998,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -4578,7 +4584,7 @@ fi
 # ==== Libraries, for which we may have source to build ======================
 
 
-APR_VER_REGEXES="0\.9\.[7-9] 0\.9\.1[0-9] 1\. 2\."
+APR_VER_REGEXES="0\.9\.[7-9] 0\.9\.[12][0-9] 1\. 2\."
 
 
   APR_WANTED_REGEXES="$APR_VER_REGEXES"
@@ -5279,7 +5285,26 @@ if test "x$ac_cv_header_serf_h" = xyes; then :
 _ACEOF
 
       save_ldflags="$LDFLAGS"
-      LDFLAGS="$LDFLAGS -L$serf_prefix/lib"
+      LDFLAGS="$LDFLAGS `
+  input_flags="-L$serf_prefix/lib"
+  output_flags=""
+  filtered_dirs="/lib /lib64 /usr/lib /usr/lib64"
+  for flag in $input_flags; do
+    filter="no"
+    for dir in $filtered_dirs; do
+      if test "$flag" = "-L$dir" || test "$flag" = "-L$dir/"; then
+        filter="yes"
+        break
+      fi
+    done
+    if test "$filter" = "no"; then
+      output_flags="$output_flags $flag"
+    fi
+  done
+  if test -n "$output_flags"; then
+    printf "%s" "${output_flags# }"
+  fi
+`"
       as_ac_Lib=`$as_echo "ac_cv_lib_$serf_major''_serf_context_create" | $as_tr_sh`
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for serf_context_create in -l$serf_major" >&5
 $as_echo_n "checking for serf_context_create in -l$serf_major... " >&6; }
@@ -5363,12 +5388,31 @@ done
       SVN_SERF_LIBS="$serf_prefix/lib/lib$serf_major.la"
     else
       SVN_SERF_LIBS="-l$serf_major"
-      LDFLAGS="$LDFLAGS -L$serf_prefix/lib"
-    fi
-  fi
-
-    fi
-
+      LDFLAGS="$LDFLAGS `
+  input_flags="-L$serf_prefix/lib"
+  output_flags=""
+  filtered_dirs="/lib /lib64 /usr/lib /usr/lib64"
+  for flag in $input_flags; do
+    filter="no"
+    for dir in $filtered_dirs; do
+      if test "$flag" = "-L$dir" || test "$flag" = "-L$dir/"; then
+        filter="yes"
+        break
+      fi
+    done
+    if test "$filter" = "no"; then
+      output_flags="$output_flags $flag"
+    fi
+  done
+  if test -n "$output_flags"; then
+    printf "%s" "${output_flags# }"
+  fi
+`"
+    fi
+  fi
+
+    fi
+
 fi
 
 
@@ -5718,6 +5762,38 @@ rm -f conftest*
   CPPFLAGS="$old_CPPFLAGS"
 fi
 
+# check for some busted versions of mod_dav
+# in particular 2.2.25, 2.4.5, and 2.4.6 had the following bugs which are
+# troublesome for Subversion:
+# PR 55304: https://issues.apache.org/bugzilla/show_bug.cgi?id=55304
+# PR 55306: https://issues.apache.org/bugzilla/show_bug.cgi?id=55306
+# PR 55397: https://issues.apache.org/bugzilla/show_bug.cgi?id=55397
+if test -n "$APXS" && test "$APXS" != "no"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking mod_dav version" >&5
+$as_echo_n "checking mod_dav version... " >&6; }
+  old_CPPFLAGS="$CPPFLAGS"
+  CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES"
+  blacklisted_versions_regex="\"2\" \"\.\" (\"2\" \"\.\" \"25\"|\"4\" \"\.\" \"[56]\")"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include "$APXS_INCLUDE/ap_release.h"
+apache_version=AP_SERVER_BASEREVISION
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "apache_version= *$blacklisted_versions_regex" >/dev/null 2>&1; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: broken" >&5
+$as_echo "broken" >&6; }
+                as_fn_error $? "Apache httpd version includes a broken mod_dav; use a newer version of httpd" "$LINENO" 5
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: acceptable" >&5
+$as_echo "acceptable" >&6; }
+fi
+rm -f conftest*
+
+  CPPFLAGS="$old_CPPFLAGS"
+fi
+
 
 # Check whether --with-apache-libexecdir was given.
 if test "${with_apache_libexecdir+set}" = set; then :
@@ -17964,7 +18040,26 @@ if test "${with_berkeley_db+set}" = set; then :
         done
         SVN_DB_INCLUDES="${SVN_DB_INCLUDES## }"
         for l in `echo "$withval" | $SED -e "s/.*:[^:]*:\([^:]*\):.*/\1/"`; do
-          LDFLAGS="$LDFLAGS -L$l"
+          LDFLAGS="$LDFLAGS `
+  input_flags="-L$l"
+  output_flags=""
+  filtered_dirs="/lib /lib64 /usr/lib /usr/lib64"
+  for flag in $input_flags; do
+    filter="no"
+    for dir in $filtered_dirs; do
+      if test "$flag" = "-L$dir" || test "$flag" = "-L$dir/"; then
+        filter="yes"
+        break
+      fi
+    done
+    if test "$filter" = "no"; then
+      output_flags="$output_flags $flag"
+    fi
+  done
+  if test -n "$output_flags"; then
+    printf "%s" "${output_flags# }"
+  fi
+`"
         done
         SVN_DB_LIBS=""
         for l in `echo "$withval" | $SED -e "s/.*:\([^:]*\)/\1/"`; do
@@ -19147,7 +19242,7 @@ if test "x$ac_cv_header_magic_h" = xyes; then :
 _ACEOF
 
       save_ldflags="$LDFLAGS"
-      LDFLAGS="-L$libmagic_prefix/lib"
+      LDFLAGS="-L$libmagic_prefix/lib $LDFLAGS"
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for magic_open in -lmagic" >&5
 $as_echo_n "checking for magic_open in -lmagic... " >&6; }
 if ${ac_cv_lib_magic_magic_open+:} false; then :
@@ -20013,11 +20108,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Werror=implicit-function-declaration" >&5
 $as_echo_n "checking if $CC accepts -Werror=implicit-function-declaration... " >&6; }
   CFLAGS="-Werror=implicit-function-declaration $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20031,7 +20126,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20050,11 +20146,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Werror=declaration-after-statement" >&5
 $as_echo_n "checking if $CC accepts -Werror=declaration-after-statement... " >&6; }
   CFLAGS="-Werror=declaration-after-statement $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20068,7 +20164,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20087,11 +20184,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Wextra-tokens" >&5
 $as_echo_n "checking if $CC accepts -Wextra-tokens... " >&6; }
   CFLAGS="-Wextra-tokens $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20105,7 +20202,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20124,11 +20222,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Wnewline-eof" >&5
 $as_echo_n "checking if $CC accepts -Wnewline-eof... " >&6; }
   CFLAGS="-Wnewline-eof $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20142,7 +20240,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20161,11 +20260,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Wshorten-64-to-32" >&5
 $as_echo_n "checking if $CC accepts -Wshorten-64-to-32... " >&6; }
   CFLAGS="-Wshorten-64-to-32 $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20179,7 +20278,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20198,11 +20298,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Wold-style-definition" >&5
 $as_echo_n "checking if $CC accepts -Wold-style-definition... " >&6; }
   CFLAGS="-Wold-style-definition $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20216,7 +20316,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20235,11 +20336,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Wno-system-headers" >&5
 $as_echo_n "checking if $CC accepts -Wno-system-headers... " >&6; }
   CFLAGS="-Wno-system-headers $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20253,7 +20354,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20272,11 +20374,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Wno-format-nonliteral" >&5
 $as_echo_n "checking if $CC accepts -Wno-format-nonliteral... " >&6; }
   CFLAGS="-Wno-format-nonliteral $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20290,7 +20392,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20322,11 +20425,11 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -Wextra-tokens" >&5
 $as_echo_n "checking if $CXX accepts -Wextra-tokens... " >&6; }
   CXXFLAGS="-Wextra-tokens $CXXFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(){}
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20340,7 +20443,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20359,11 +20463,11 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -Wnewline-eof" >&5
 $as_echo_n "checking if $CXX accepts -Wnewline-eof... " >&6; }
   CXXFLAGS="-Wnewline-eof $CXXFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(){}
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20377,7 +20481,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20396,11 +20501,11 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -Wshorten-64-to-32" >&5
 $as_echo_n "checking if $CXX accepts -Wshorten-64-to-32... " >&6; }
   CXXFLAGS="-Wshorten-64-to-32 $CXXFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(){}
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20414,7 +20519,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20433,11 +20539,11 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -Wno-system-headers" >&5
 $as_echo_n "checking if $CXX accepts -Wno-system-headers... " >&6; }
   CXXFLAGS="-Wno-system-headers $CXXFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(){}
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20451,7 +20557,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20492,11 +20599,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -fno-inline" >&5
 $as_echo_n "checking if $CC accepts -fno-inline... " >&6; }
   CFLAGS="-fno-inline $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20510,7 +20617,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20529,11 +20637,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -fno-omit-frame-pointer" >&5
 $as_echo_n "checking if $CC accepts -fno-omit-frame-pointer... " >&6; }
   CFLAGS="-fno-omit-frame-pointer $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20547,7 +20655,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20566,11 +20675,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -g3" >&5
 $as_echo_n "checking if $CC accepts -g3... " >&6; }
   CFLAGS="-g3 $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20593,11 +20702,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -g2" >&5
 $as_echo_n "checking if $CC accepts -g2... " >&6; }
   CFLAGS="-g2 $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20620,11 +20729,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -g" >&5
 $as_echo_n "checking if $CC accepts -g... " >&6; }
   CFLAGS="-g $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20638,7 +20747,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20648,7 +20758,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20658,7 +20769,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20682,11 +20794,11 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -fno-inline" >&5
 $as_echo_n "checking if $CXX accepts -fno-inline... " >&6; }
   CXXFLAGS="-fno-inline $CXXFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(){}
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20700,7 +20812,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20719,11 +20832,11 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -fno-omit-frame-pointer" >&5
 $as_echo_n "checking if $CXX accepts -fno-omit-frame-pointer... " >&6; }
   CXXFLAGS="-fno-omit-frame-pointer $CXXFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(){}
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20737,7 +20850,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20756,11 +20870,11 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -g3" >&5
 $as_echo_n "checking if $CXX accepts -g3... " >&6; }
   CXXFLAGS="-g3 $CXXFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(){}
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20783,11 +20897,11 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -g2" >&5
 $as_echo_n "checking if $CXX accepts -g2... " >&6; }
   CXXFLAGS="-g2 $CXXFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(){}
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20810,11 +20924,11 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -g" >&5
 $as_echo_n "checking if $CXX accepts -g... " >&6; }
   CXXFLAGS="-g $CXXFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(){}
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20828,7 +20942,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=cpp
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20838,7 +20953,8 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=cpp
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20848,7 +20964,8 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20887,11 +21004,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -O1" >&5
 $as_echo_n "checking if $CC accepts -O1... " >&6; }
   CFLAGS="-O1 $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20914,11 +21031,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -O" >&5
 $as_echo_n "checking if $CC accepts -O... " >&6; }
   CFLAGS="-O $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20932,7 +21049,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20942,7 +21060,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -20964,11 +21083,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -O3" >&5
 $as_echo_n "checking if $CC accepts -O3... " >&6; }
   CFLAGS="-O3 $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -20991,11 +21110,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -O2" >&5
 $as_echo_n "checking if $CC accepts -O2... " >&6; }
   CFLAGS="-O2 $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -21018,11 +21137,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -O1" >&5
 $as_echo_n "checking if $CC accepts -O1... " >&6; }
   CFLAGS="-O1 $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -21045,11 +21164,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -O" >&5
 $as_echo_n "checking if $CC accepts -O... " >&6; }
   CFLAGS="-O $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -21063,7 +21182,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -21073,7 +21193,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -21083,7 +21204,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -21093,7 +21215,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -21112,11 +21235,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Wno-clobbered" >&5
 $as_echo_n "checking if $CC accepts -Wno-clobbered... " >&6; }
   CFLAGS="-Wno-clobbered $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -21130,7 +21253,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -21149,11 +21273,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -flto" >&5
 $as_echo_n "checking if $CC accepts -flto... " >&6; }
   CFLAGS="-flto $CFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(void){return 0;}
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -21167,7 +21291,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -21193,11 +21318,11 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -O1" >&5
 $as_echo_n "checking if $CXX accepts -O1... " >&6; }
   CXXFLAGS="-O1 $CXXFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(){}
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -21220,11 +21345,11 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -O" >&5
 $as_echo_n "checking if $CXX accepts -O... " >&6; }
   CXXFLAGS="-O $CXXFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(){}
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -21238,7 +21363,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=cpp
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -21248,7 +21374,8 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -21270,11 +21397,11 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -O3" >&5
 $as_echo_n "checking if $CXX accepts -O3... " >&6; }
   CXXFLAGS="-O3 $CXXFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(){}
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -21297,11 +21424,11 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -O2" >&5
 $as_echo_n "checking if $CXX accepts -O2... " >&6; }
   CXXFLAGS="-O2 $CXXFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(){}
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -21324,11 +21451,11 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -O1" >&5
 $as_echo_n "checking if $CXX accepts -O1... " >&6; }
   CXXFLAGS="-O1 $CXXFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(){}
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -21351,11 +21478,11 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -O" >&5
 $as_echo_n "checking if $CXX accepts -O... " >&6; }
   CXXFLAGS="-O $CXXFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(){}
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -21369,7 +21496,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=cpp
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -21379,7 +21507,8 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=cpp
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -21389,7 +21518,8 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=cpp
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -21399,7 +21529,8 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -21418,11 +21549,11 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -Wno-clobbered" >&5
 $as_echo_n "checking if $CXX accepts -Wno-clobbered... " >&6; }
   CXXFLAGS="-Wno-clobbered $CXXFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(){}
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -21436,7 +21567,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -21455,11 +21587,11 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CXX accepts -flto" >&5
 $as_echo_n "checking if $CXX accepts -flto... " >&6; }
   CXXFLAGS="-flto $CXXFLAGS"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+int main(){}
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
+if ac_fn_cxx_try_link "$LINENO"; then :
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -21473,7 +21605,8 @@ $as_echo "no" >&6; }
 
 
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -22652,12 +22785,6 @@ $as_echo "$svn_cv_ruby_teeny" >&6; }
 $as_echo "$as_me: WARNING: The detected Ruby is between 1.9 and 1.9.3" >&2;}
       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Only 1.8.x and 1.9.3 releases are supported at this time" >&5
 $as_echo "$as_me: WARNING: Only 1.8.x and 1.9.3 releases are supported at this time" >&2;}
-    elif test \(  "$RUBY_MAJOR" -eq "1" -a "$RUBY_MINOR" -eq "9" -a "$RUBY_TEENY" -eq "3" \); then
-      #Warn about 1.9.3 support
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: WARNING: The detected Ruby is 1.9.3" >&5
-$as_echo "$as_me: WARNING: WARNING: The detected Ruby is 1.9.3" >&2;}
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: WARNING: Only 1.8.x releases are fully supported, 1.9.3 support is new" >&5
-$as_echo "$as_me: WARNING: WARNING: Only 1.8.x releases are fully supported, 1.9.3 support is new" >&2;}
     fi
   else
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
@@ -25670,7 +25797,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by subversion $as_me 1.8.8, which was
+This file was extended by subversion $as_me 1.8.10, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -25736,7 +25863,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-subversion config.status 1.8.8
+subversion config.status 1.8.10
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/contrib/subversion/configure.ac b/contrib/subversion/configure.ac
index e93d7a35f..955ba254f 100644
--- a/contrib/subversion/configure.ac
+++ b/contrib/subversion/configure.ac
@@ -98,7 +98,7 @@ dnl   now generating errors instead of silently ignoring
 dnl   them.  Only .7 and later can guarantee repository
 dnl   integrity with FSFS.
 
-APR_VER_REGEXES=["0\.9\.[7-9] 0\.9\.1[0-9] 1\. 2\."]
+APR_VER_REGEXES=["0\.9\.[7-9] 0\.9\.[12][0-9] 1\. 2\."]
 
 SVN_LIB_APR($APR_VER_REGEXES)
 
@@ -755,7 +755,7 @@ AC_ARG_WITH(libmagic,AS_HELP_STRING([--with-libmagic=PREFIX],
     CPPFLAGS="$CPPFLAGS -I$libmagic_prefix/include"
     AC_CHECK_HEADERS(magic.h,[
       save_ldflags="$LDFLAGS"
-      LDFLAGS="-L$libmagic_prefix/lib"
+      LDFLAGS="-L$libmagic_prefix/lib $LDFLAGS"
       AC_CHECK_LIB(magic, magic_open, [libmagic_found="yes"])
       LDFLAGS="$save_ldflags"
     ])
@@ -1280,10 +1280,6 @@ if test "$RUBY" != "none"; then
       RUBY="none"
       AC_MSG_WARN([The detected Ruby is between 1.9 and 1.9.3])
       AC_MSG_WARN([Only 1.8.x and 1.9.3 releases are supported at this time])
-    elif test \(  "$RUBY_MAJOR" -eq "1" -a "$RUBY_MINOR" -eq "9" -a "$RUBY_TEENY" -eq "3" \); then
-      #Warn about 1.9.3 support
-      AC_MSG_WARN([WARNING: The detected Ruby is 1.9.3])
-      AC_MSG_WARN([WARNING: Only 1.8.x releases are fully supported, 1.9.3 support is new])
     fi
   else
     AC_MSG_RESULT([no])
diff --git a/contrib/subversion/get-deps.sh b/contrib/subversion/get-deps.sh
index 0c0be8cc1..912547c83 100755
--- a/contrib/subversion/get-deps.sh
+++ b/contrib/subversion/get-deps.sh
@@ -33,11 +33,11 @@
 
 APR_VERSION=${APR_VERSION:-"1.4.6"}
 APU_VERSION=${APU_VERSION:-"1.5.1"}
-SERF_VERSION=${SERF_VERSION:-"1.2.1"}
+SERF_VERSION=${SERF_VERSION:-"1.3.4"}
 ZLIB_VERSION=${ZLIB_VERSION:-"1.2.8"}
 SQLITE_VERSION=${SQLITE_VERSION:-"3.7.15.1"}
 GTEST_VERSION=${GTEST_VERSION:-"1.6.0"}
-HTTPD_VERSION=${HTTPD_VERSION:-"2.4.6"}
+HTTPD_VERSION=${HTTPD_VERSION:-"2.4.10"}
 APR_ICONV_VERSION=${APR_ICONV_VERSION:-"1.2.1"}
 
 APR=apr-${APR_VERSION}
@@ -57,7 +57,7 @@ TEMPDIR=$BASEDIR/temp
 
 HTTP_FETCH=
 [ -z "$HTTP_FETCH" ] && type wget  >/dev/null 2>&1 && HTTP_FETCH="wget -q -nc"
-[ -z "$HTTP_FETCH" ] && type curl  >/dev/null 2>&1 && HTTP_FETCH="curl -sO"
+[ -z "$HTTP_FETCH" ] && type curl  >/dev/null 2>&1 && HTTP_FETCH="curl -sOL"
 [ -z "$HTTP_FETCH" ] && type fetch >/dev/null 2>&1 && HTTP_FETCH="fetch -q"
 
 # Need this uncommented if any of the specific versions of the ASF tarballs to
@@ -89,7 +89,7 @@ get_serf() {
     test -d $BASEDIR/serf && return
 
     cd $TEMPDIR
-    $HTTP_FETCH http://serf.googlecode.com/files/$SERF.tar.bz2
+    $HTTP_FETCH http://serf.googlecode.com/svn/src_releases/$SERF.tar.bz2
     cd $BASEDIR
 
     bzip2 -dc $TEMPDIR/$SERF.tar.bz2 | tar -xf -
@@ -101,7 +101,7 @@ get_zlib() {
     test -d $BASEDIR/zlib && return
 
     cd $TEMPDIR
-    $HTTP_FETCH http://www.zlib.net/$ZLIB.tar.gz
+    $HTTP_FETCH http://sourceforge.net/projects/libpng/files/zlib/$ZLIB_VERSION/$ZLIB.tar.gz
     cd $BASEDIR
 
     gzip -dc $TEMPDIR/$ZLIB.tar.gz | tar -xf -
diff --git a/contrib/subversion/subversion/include/private/svn_cache.h b/contrib/subversion/subversion/include/private/svn_cache.h
index df40f7e06..08d2f09cb 100644
--- a/contrib/subversion/subversion/include/private/svn_cache.h
+++ b/contrib/subversion/subversion/include/private/svn_cache.h
@@ -182,6 +182,10 @@ typedef struct svn_cache__info_t
  * if they are strings.  Cached values will be copied in and out of
  * the cache using @a serialize_func and @a deserialize_func, respectively.
  *
+ * If @a deserialize_func is NULL, then the data is returned as an
+ * svn_stringbuf_t; if @a serialize_func is NULL, then the data is
+ * assumed to be an svn_stringbuf_t.
+ *
  * The cache stores up to @a pages * @a items_per_page items at a
  * time.  The exact cache invalidation strategy is not defined here,
  * but in general, a lower value for @a items_per_page means more
@@ -224,7 +228,7 @@ svn_cache__create_inprocess(svn_cache__t **cache_p,
  * other caches.  @a *cache_p will be allocated in @a result_pool.
  *
  * If @a deserialize_func is NULL, then the data is returned as an
- * svn_string_t; if @a serialize_func is NULL, then the data is
+ * svn_stringbuf_t; if @a serialize_func is NULL, then the data is
  * assumed to be an svn_stringbuf_t.
  *
  * These caches are always thread safe.
@@ -309,7 +313,7 @@ svn_cache__membuffer_cache_create(svn_membuffer_t **cache,
  * this cache from other caches.  @a *cache_p will be allocated in @a result_pool.
  *
  * If @a deserialize_func is NULL, then the data is returned as an
- * svn_string_t; if @a serialize_func is NULL, then the data is
+ * svn_stringbuf_t; if @a serialize_func is NULL, then the data is
  * assumed to be an svn_stringbuf_t.
  *
  * If @a thread_safe is true, and APR is compiled with threads, all
diff --git a/contrib/subversion/subversion/include/private/svn_cert.h b/contrib/subversion/subversion/include/private/svn_cert.h
new file mode 100644
index 000000000..32e32a01f
--- /dev/null
+++ b/contrib/subversion/subversion/include/private/svn_cert.h
@@ -0,0 +1,68 @@
+/**
+ * @copyright
+ * ====================================================================
+ *    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.
+ * ====================================================================
+ * @endcopyright
+ *
+ * @file svn_cert.h
+ * @brief Implementation of certificate validation functions
+ */
+
+#ifndef SVN_CERT_H
+#define SVN_CERT_H
+
+#include 
+
+#include "svn_types.h"
+#include "svn_string.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/* Return TRUE iff @a pattern matches @a hostname as defined
+ * by the matching rules of RFC 6125.  In the context of RFC
+ * 6125 the pattern is the domain name portion of the presented
+ * identifier (which comes from the Common Name or a DNSName
+ * portion of the subjectAltName of an X.509 certificate) and
+ * the hostname is the source domain (i.e. the host portion
+ * of the URI the user entered).
+ *
+ * @note With respect to wildcards we only support matching
+ * wildcards in the left-most label and as the only character
+ * in the left-most label (i.e. we support RFC 6125 § 6.4.3
+ * Rule 1 and 2 but not the optional Rule 3).  This may change
+ * in the future.
+ *
+ * @note Subversion does not at current support internationalized
+ * domain names.  Both values are presumed to be in NR-LDH label
+ * or A-label form (see RFC 5890 for the definition).
+ *
+ * @since New in 1.9.
+ */
+svn_boolean_t
+svn_cert__match_dns_identity(svn_string_t *pattern, svn_string_t *hostname);
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* SVN_CERT_H */
diff --git a/contrib/subversion/subversion/include/private/svn_dep_compat.h b/contrib/subversion/subversion/include/private/svn_dep_compat.h
index 71c0b9a75..108b67cd6 100644
--- a/contrib/subversion/subversion/include/private/svn_dep_compat.h
+++ b/contrib/subversion/subversion/include/private/svn_dep_compat.h
@@ -78,6 +78,7 @@ void svn_hash__clear(struct apr_hash_t *ht);
 #if !APR_VERSION_AT_LEAST(1,0,0)
 #define APR_UINT64_C(val) UINT64_C(val)
 #define APR_FPROT_OS_DEFAULT APR_OS_DEFAULT
+#define apr_hash_make_custom(pool,hash_func) apr_hash_make(pool)
 #endif
 
 #if !APR_VERSION_AT_LEAST(1,3,0)
@@ -114,6 +115,12 @@ typedef apr_uint32_t apr_uintptr_t;
 #define SVN_LOCK_IS_BUSY(x) APR_STATUS_IS_EBUSY(x)
 #endif
 
+#if !APR_VERSION_AT_LEAST(1,4,0)
+#ifndef apr_time_from_msec
+#define apr_time_from_msec(msec) ((apr_time_t)(msec) * 1000)
+#endif
+#endif
+
 /**
  * Check at compile time if the Serf version is at least a certain
  * level.
diff --git a/contrib/subversion/subversion/include/svn_version.h b/contrib/subversion/subversion/include/svn_version.h
index 646c0286a..8788fa56e 100644
--- a/contrib/subversion/subversion/include/svn_version.h
+++ b/contrib/subversion/subversion/include/svn_version.h
@@ -72,7 +72,7 @@ extern "C" {
  *
  * @since New in 1.1.
  */
-#define SVN_VER_PATCH      8
+#define SVN_VER_PATCH      10
 
 
 /** @deprecated Provided for backward compatibility with the 1.0 API. */
@@ -95,7 +95,7 @@ extern "C" {
  *
  * Always change this at the same time as SVN_VER_NUMTAG.
  */
-#define SVN_VER_TAG        " (r1568071)"
+#define SVN_VER_TAG        " (r1615264)"
 
 
 /** Number tag: a string describing the version.
@@ -121,7 +121,7 @@ extern "C" {
  * When rolling a tarball, we automatically replace it with what we
  * guess to be the correct revision number.
  */
-#define SVN_VER_REVISION   1568071
+#define SVN_VER_REVISION   1615264
 
 
 /* Version strings composed from the above definitions. */
diff --git a/contrib/subversion/subversion/libsvn_client/commit_util.c b/contrib/subversion/subversion/libsvn_client/commit_util.c
index 1e2c50cd9..a32ec5d3e 100644
--- a/contrib/subversion/subversion/libsvn_client/commit_util.c
+++ b/contrib/subversion/subversion/libsvn_client/commit_util.c
@@ -892,7 +892,7 @@ harvest_status_callback(void *status_baton,
   if (matches_changelists
       && (is_harvest_root || baton->changelists)
       && state_flags
-      && is_added
+      && (is_added || (is_deleted && is_op_root && status->copied))
       && baton->danglers)
     {
       /* If a node is added, its parent must exist in the repository at the
@@ -966,17 +966,19 @@ struct handle_descendants_baton
   void *cancel_baton;
   svn_client__check_url_kind_t check_url_func;
   void *check_url_baton;
+  svn_client__committables_t *committables;
 };
 
 /* Helper for the commit harvesters */
 static svn_error_t *
 handle_descendants(void *baton,
-                       const void *key, apr_ssize_t klen, void *val,
-                       apr_pool_t *pool)
+                   const void *key, apr_ssize_t klen, void *val,
+                   apr_pool_t *pool)
 {
   struct handle_descendants_baton *hdb = baton;
   apr_array_header_t *commit_items = val;
   apr_pool_t *iterpool = svn_pool_create(pool);
+  const char *repos_root_url = key;
   int i;
 
   for (i = 0; i < commit_items->nelts; i++)
@@ -1002,32 +1004,64 @@ handle_descendants(void *baton,
 
       for (j = 0; j < absent_descendants->nelts; j++)
         {
-          int k;
-          svn_boolean_t found_item = FALSE;
           svn_node_kind_t kind;
+          svn_client_commit_item3_t *desc_item;
           const char *relpath = APR_ARRAY_IDX(absent_descendants, j,
                                               const char *);
           const char *local_abspath = svn_dirent_join(item->path, relpath,
                                                       iterpool);
 
-          /* If the path has a commit operation, we do nothing.
-             (It will be deleted by the operation) */
-          for (k = 0; k < commit_items->nelts; k++)
+          /* ### Need a sub-iterpool? */
+
+
+          /* We found a 'not present' descendant during a copy (at op_depth>0),
+             this is most commonly caused by copying some mixed revision tree.
+
+             In this case not present can imply that the node does not exist
+             in the parent revision, or that the node does. But we want to copy
+             the working copy state in which it does not exist, but might be
+             replaced. */
+
+          desc_item = svn_hash_gets(hdb->committables->by_path, local_abspath);
+
+          /* If the path has a commit operation (possibly at an higher
+             op_depth, we might want to turn an add in a replace. */
+          if (desc_item)
             {
-              svn_client_commit_item3_t *cmt_item =
-                 APR_ARRAY_IDX(commit_items, k, svn_client_commit_item3_t *);
+              const char *dir;
+              svn_boolean_t found_intermediate = FALSE;
+
+              if (desc_item->state_flags & SVN_CLIENT_COMMIT_ITEM_DELETE)
+                continue; /* We already have a delete or replace */
+              else if (!(desc_item->state_flags & SVN_CLIENT_COMMIT_ITEM_ADD))
+                continue; /* Not a copy/add, just a modification */
 
-              if (! strcmp(cmt_item->path, local_abspath))
+              dir = svn_dirent_dirname(local_abspath, iterpool);
+
+              while (strcmp(dir, item->path))
                 {
-                  found_item = TRUE;
-                  break;
+                  svn_client_commit_item3_t *i_item;
+
+                  i_item = svn_hash_gets(hdb->committables->by_path, dir);
+
+                  if (i_item)
+                    {
+                      if ((i_item->state_flags & SVN_CLIENT_COMMIT_ITEM_DELETE)
+                          || (i_item->state_flags & SVN_CLIENT_COMMIT_ITEM_ADD))
+                        {
+                          found_intermediate = TRUE;
+                          break;
+                        }
+                    }
+                  dir = svn_dirent_dirname(dir, iterpool);
                 }
-            }
 
-          if (found_item)
-            continue; /* We have an explicit delete or replace for this path */
+              if (found_intermediate)
+                continue; /* Some intermediate ancestor is an add or delete */
 
-          /* ### Need a sub-iterpool? */
+              /* Fall through to detect if we need to turn the add in a
+                 replace. */
+            }
 
           if (hdb->check_url_func)
             {
@@ -1045,25 +1079,35 @@ handle_descendants(void *baton,
           else
             kind = svn_node_unknown; /* 'Ok' for a delete of something */
 
-          {
-            /* Add a new commit item that describes the delete */
-            apr_pool_t *result_pool = commit_items->pool;
-            svn_client_commit_item3_t *new_item
-                  = svn_client_commit_item3_create(result_pool);
-
-            new_item->path = svn_dirent_join(item->path, relpath,
-                                             result_pool);
-            new_item->kind = kind;
-            new_item->url = svn_path_url_add_component2(item->url, relpath,
-                                                        result_pool);
-            new_item->revision = SVN_INVALID_REVNUM;
-            new_item->state_flags = SVN_CLIENT_COMMIT_ITEM_DELETE;
-            new_item->incoming_prop_changes = apr_array_make(result_pool, 1,
-                                                 sizeof(svn_prop_t *));
-
-            APR_ARRAY_PUSH(commit_items, svn_client_commit_item3_t *)
-                  = new_item;
-          }
+          if (desc_item)
+            {
+              /* Extend the existing add/copy item to create a replace */
+              desc_item->state_flags |= SVN_CLIENT_COMMIT_ITEM_DELETE;
+              continue;
+            }
+
+          /* Add a new commit item that describes the delete */
+
+          SVN_ERR(add_committable(hdb->committables,
+                                  svn_dirent_join(item->path, relpath,
+                                                  iterpool),
+                                  kind,
+                                  repos_root_url,
+                                  svn_uri_skip_ancestor(
+                                        repos_root_url,
+                                        svn_path_url_add_component2(item->url,
+                                                                    relpath,
+                                                                    iterpool),
+                                        iterpool),
+                                  SVN_INVALID_REVNUM,
+                                  NULL /* copyfrom_relpath */,
+                                  SVN_INVALID_REVNUM,
+                                  NULL /* moved_from_abspath */,
+                                  SVN_CLIENT_COMMIT_ITEM_DELETE,
+                                  NULL /* lock tokens */,
+                                  NULL /* lock */,
+                                  commit_items->pool,
+                                  iterpool));
         }
       }
 
@@ -1181,6 +1225,7 @@ svn_client__harvest_committables(svn_client__committables_t **committables,
   hdb.cancel_baton = ctx->cancel_baton;
   hdb.check_url_func = check_url_func;
   hdb.check_url_baton = check_url_baton;
+  hdb.committables = *committables;
 
   SVN_ERR(svn_iter_apr_hash(NULL, (*committables)->by_repository,
                             handle_descendants, &hdb, iterpool));
@@ -1274,6 +1319,7 @@ harvest_copy_committables(void *baton, void *item, apr_pool_t *pool)
   hdb.cancel_baton = btn->ctx->cancel_baton;
   hdb.check_url_func = btn->check_url_func;
   hdb.check_url_baton = btn->check_url_baton;
+  hdb.committables = btn->committables;
 
   SVN_ERR(svn_iter_apr_hash(NULL, btn->committables->by_repository,
                             handle_descendants, &hdb, pool));
diff --git a/contrib/subversion/subversion/libsvn_client/delete.c b/contrib/subversion/subversion/libsvn_client/delete.c
index 2f4ee664f..803b70c1f 100644
--- a/contrib/subversion/subversion/libsvn_client/delete.c
+++ b/contrib/subversion/subversion/libsvn_client/delete.c
@@ -193,7 +193,7 @@ path_driver_cb_func(void **dir_baton,
 
 static svn_error_t *
 single_repos_delete(svn_ra_session_t *ra_session,
-                    const char *repos_root,
+                    const char *base_uri,
                     const apr_array_header_t *relpaths,
                     const apr_hash_t *revprop_table,
                     svn_commit_callback2_t commit_callback,
@@ -221,7 +221,7 @@ single_repos_delete(svn_ra_session_t *ra_session,
           const char *relpath = APR_ARRAY_IDX(relpaths, i, const char *);
 
           item = svn_client_commit_item3_create(pool);
-          item->url = svn_path_url_add_component2(repos_root, relpath, pool);
+          item->url = svn_path_url_add_component2(base_uri, relpath, pool);
           item->state_flags = SVN_CLIENT_COMMIT_ITEM_DELETE;
           APR_ARRAY_PUSH(commit_items, svn_client_commit_item3_t *) = item;
         }
@@ -361,7 +361,6 @@ delete_urls_multi_repos(const apr_array_header_t *uris,
   iterpool = svn_pool_create(pool);
   for (hi = apr_hash_first(pool, deletables); hi; hi = apr_hash_next(hi))
     {
-      const char *repos_root = svn__apr_hash_index_key(hi);
       struct repos_deletables_t *repos_deletables = svn__apr_hash_index_val(hi);
       const char *base_uri;
       apr_array_header_t *target_relpaths;
@@ -398,7 +397,7 @@ delete_urls_multi_repos(const apr_array_header_t *uris,
         }
 
       SVN_ERR(svn_ra_reparent(repos_deletables->ra_session, base_uri, pool));
-      SVN_ERR(single_repos_delete(repos_deletables->ra_session, repos_root,
+      SVN_ERR(single_repos_delete(repos_deletables->ra_session, base_uri,
                                   target_relpaths,
                                   revprop_table, commit_callback,
                                   commit_baton, ctx, iterpool));
diff --git a/contrib/subversion/subversion/libsvn_client/export.c b/contrib/subversion/subversion/libsvn_client/export.c
index d6022ed68..c14a5f0bc 100644
--- a/contrib/subversion/subversion/libsvn_client/export.c
+++ b/contrib/subversion/subversion/libsvn_client/export.c
@@ -267,7 +267,9 @@ export_node(void *baton,
                                                       scratch_pool));
     }
 
-  if (status->file_external)
+  /* Skip file externals if they are a descendant of the export,
+     BUT NOT if we are explictly exporting the file external. */
+  if (status->file_external && strcmp(eib->origin_abspath, local_abspath) != 0)
     return SVN_NO_ERROR;
 
   /* Produce overwrite errors for the export root */
@@ -1587,3 +1589,4 @@ svn_client_export5(svn_revnum_t *result_rev,
 
   return SVN_NO_ERROR;
 }
+
diff --git a/contrib/subversion/subversion/libsvn_client/externals.c b/contrib/subversion/subversion/libsvn_client/externals.c
index e572dc7b3..8c08f4052 100644
--- a/contrib/subversion/subversion/libsvn_client/externals.c
+++ b/contrib/subversion/subversion/libsvn_client/externals.c
@@ -1017,19 +1017,30 @@ svn_client__handle_externals(apr_hash_t *externals_new,
 
         parent_abspath = svn_dirent_dirname(parent_abspath, iterpool);
         SVN_ERR(svn_wc_read_kind2(&kind, ctx->wc_ctx, parent_abspath,
-                                  TRUE, FALSE, iterpool));
+                                  FALSE /* show_deleted*/,
+                                  FALSE /* show_hidden */,
+                                  iterpool));
         if (kind == svn_node_none)
           {
             svn_error_t *err;
 
             err = svn_io_dir_remove_nonrecursive(parent_abspath, iterpool);
-            if (err && APR_STATUS_IS_ENOTEMPTY(err->apr_err))
+            if (err)
               {
-                svn_error_clear(err);
-                break;
+                if (APR_STATUS_IS_ENOTEMPTY(err->apr_err))
+                  {
+                    svn_error_clear(err);
+                    break; /* No parents to delete */
+                  }
+                else if (APR_STATUS_IS_ENOENT(err->apr_err)
+                         || APR_STATUS_IS_ENOTDIR(err->apr_err))
+                  {
+                    svn_error_clear(err);
+                    /* Fall through; parent dir might be unversioned */
+                  }
+                else
+                  return svn_error_trace(err);
               }
-            else
-              SVN_ERR(err);
           }
       } while (strcmp(parent_abspath, defining_abspath) != 0);
     }
diff --git a/contrib/subversion/subversion/libsvn_client/merge.c b/contrib/subversion/subversion/libsvn_client/merge.c
index cb07f8303..b314e8409 100644
--- a/contrib/subversion/subversion/libsvn_client/merge.c
+++ b/contrib/subversion/subversion/libsvn_client/merge.c
@@ -322,6 +322,10 @@ typedef struct merge_cmd_baton_t {
   const char *diff3_cmd;
   const apr_array_header_t *merge_options;
 
+  /* Array of file extension patterns to preserve as extensions in
+     generated conflict files. */
+  const apr_array_header_t *ext_patterns;
+
   /* RA sessions used throughout a merge operation.  Opened/re-parented
      as needed.
 
@@ -2023,17 +2027,36 @@ merge_file_changed(const char *relpath,
     {
       svn_boolean_t has_local_mods;
       enum svn_wc_merge_outcome_t content_outcome;
+      const char *target_label;
+      const char *left_label;
+      const char *right_label;
+      const char *path_ext = "";
+
+      if (merge_b->ext_patterns && merge_b->ext_patterns->nelts)
+        {
+          svn_path_splitext(NULL, &path_ext, local_abspath, scratch_pool);
+          if (! (*path_ext
+                 && svn_cstring_match_glob_list(path_ext,
+                                                merge_b->ext_patterns)))
+            {
+              path_ext = "";
+            }
+        }
 
       /* xgettext: the '.working', '.merge-left.r%ld' and
          '.merge-right.r%ld' strings are used to tag onto a file
          name in case of a merge conflict */
-      const char *target_label = _(".working");
-      const char *left_label = apr_psprintf(scratch_pool,
-                                            _(".merge-left.r%ld"),
-                                            left_source->revision);
-      const char *right_label = apr_psprintf(scratch_pool,
-                                             _(".merge-right.r%ld"),
-                                             right_source->revision);
+
+      target_label = apr_psprintf(scratch_pool, _(".working%s%s"),
+                                  *path_ext ? "." : "", path_ext);
+      left_label = apr_psprintf(scratch_pool,
+                                _(".merge-left.r%ld%s%s"),
+                                left_source->revision,
+                                *path_ext ? "." : "", path_ext);
+      right_label = apr_psprintf(scratch_pool,
+                                 _(".merge-right.r%ld%s%s"),
+                                 right_source->revision,
+                                 *path_ext ? "." : "", path_ext);
 
       SVN_ERR(svn_wc_text_modified_p2(&has_local_mods, ctx->wc_ctx,
                                       local_abspath, FALSE, scratch_pool));
@@ -3062,7 +3085,6 @@ merge_dir_deleted(const char *relpath,
   struct merge_dir_baton_t *db = dir_baton;
   const char *local_abspath = svn_dirent_join(merge_b->target->abspath,
                                               relpath, scratch_pool);
-  struct dir_delete_baton_t *delb;
   svn_boolean_t same;
   apr_hash_t *working_props;
 
@@ -3093,66 +3115,69 @@ merge_dir_deleted(const char *relpath,
                             scratch_pool, scratch_pool));
 
   if (merge_b->force_delete)
-    same = TRUE;
+    {
+      /* In this legacy mode we just assume that a directory delete
+         matches any directory. db->delete_state is NULL */
+      same = TRUE;
+    }
   else
     {
+      struct dir_delete_baton_t *delb;
+
       /* Compare the properties */
       SVN_ERR(properties_same_p(&same, left_props, working_props,
                                 scratch_pool));
-    }
+      delb = db->delete_state;
+      assert(delb != NULL);
 
-  delb = db->delete_state;
-  assert(delb != NULL);
-
-  if (! same)
-    {
-      delb->found_edit = TRUE;
-    }
-  else
-    {
-      store_path(delb->compared_abspaths, local_abspath);
-    }
+      if (! same)
+        {
+          delb->found_edit = TRUE;
+        }
+      else
+        {
+          store_path(delb->compared_abspaths, local_abspath);
+        }
 
-  if (delb->del_root != db)
-    return SVN_NO_ERROR;
+      if (delb->del_root != db)
+        return SVN_NO_ERROR;
 
-  if (delb->found_edit)
-    same = FALSE;
-  else if (merge_b->force_delete)
-    same = TRUE;
-  else
-    {
-      apr_array_header_t *ignores;
-      svn_error_t *err;
-      same = TRUE;
+      if (delb->found_edit)
+        same = FALSE;
+      else
+        {
+          apr_array_header_t *ignores;
+          svn_error_t *err;
+          same = TRUE;
 
-      SVN_ERR(svn_wc_get_default_ignores(&ignores, merge_b->ctx->config,
-                                         scratch_pool));
+          SVN_ERR(svn_wc_get_default_ignores(&ignores, merge_b->ctx->config,
+                                             scratch_pool));
 
-      /* None of the descendants was modified, but maybe there are
-         descendants we haven't walked?
-
-         Note that we aren't interested in changes, as we already verified
-         changes in the paths touched by the merge. And the existance of
-         other paths is enough to mark the directory edited */
-      err = svn_wc_walk_status(merge_b->ctx->wc_ctx, local_abspath,
-                               svn_depth_infinity, TRUE /* get-all */,
-                               FALSE /* no-ignore */,
-                               TRUE /* ignore-text-mods */, ignores,
-                               verify_touched_by_del_check, delb,
-                               merge_b->ctx->cancel_func,
-                               merge_b->ctx->cancel_baton,
-                               scratch_pool);
+          /* None of the descendants was modified, but maybe there are
+             descendants we haven't walked?
+
+             Note that we aren't interested in changes, as we already verified
+             changes in the paths touched by the merge. And the existence of
+             other paths is enough to mark the directory edited */
+          err = svn_wc_walk_status(merge_b->ctx->wc_ctx, local_abspath,
+                                   svn_depth_infinity, TRUE /* get-all */,
+                                   FALSE /* no-ignore */,
+                                   TRUE /* ignore-text-mods */, ignores,
+                                   verify_touched_by_del_check, delb,
+                                   merge_b->ctx->cancel_func,
+                                   merge_b->ctx->cancel_baton,
+                                   scratch_pool);
+
+          if (err)
+            {
+              if (err->apr_err != SVN_ERR_CEASE_INVOCATION)
+                return svn_error_trace(err);
 
-      if (err)
-        {
-          if (err->apr_err != SVN_ERR_CEASE_INVOCATION)
-            return svn_error_trace(err);
+              svn_error_clear(err);
+            }
 
-          svn_error_clear(err);
+          same = ! delb->found_edit;
         }
-
-      same = ! delb->found_edit;
     }
 
   if (same && !merge_b->dry_run)
@@ -9668,6 +9693,7 @@ do_merge(apr_hash_t **modified_subtrees,
   merge_cmd_baton_t merge_cmd_baton = { 0 };
   svn_config_t *cfg;
   const char *diff3_cmd;
+  const char *preserved_exts_str;
   int i;
   svn_boolean_t checked_mergeinfo_capability = FALSE;
   svn_ra_session_t *ra_session1 = NULL, *ra_session2 = NULL;
@@ -9728,6 +9754,11 @@ do_merge(apr_hash_t **modified_subtrees,
   if (diff3_cmd != NULL)
     SVN_ERR(svn_path_cstring_to_utf8(&diff3_cmd, diff3_cmd, scratch_pool));
 
+    /* See which files the user wants to preserve the extension of when
+     conflict files are made. */
+  svn_config_get(cfg, &preserved_exts_str, SVN_CONFIG_SECTION_MISCELLANY,
+                 SVN_CONFIG_OPTION_PRESERVED_CF_EXTS, "");
+
   /* Build the merge context baton (or at least the parts of it that
      don't need to be reset for each merge source).  */
   merge_cmd_baton.force_delete = force_delete;
@@ -9743,6 +9774,11 @@ do_merge(apr_hash_t **modified_subtrees,
   merge_cmd_baton.pool = iterpool;
   merge_cmd_baton.merge_options = merge_options;
   merge_cmd_baton.diff3_cmd = diff3_cmd;
+  merge_cmd_baton.ext_patterns = *preserved_exts_str
+                          ? svn_cstring_split(preserved_exts_str, "\n\r\t\v ",
+                                              FALSE, scratch_pool)
+                          : NULL;
+
   merge_cmd_baton.use_sleep = use_sleep;
 
   /* Do we already know the specific subtrees with mergeinfo we want
@@ -10447,15 +10483,10 @@ merge_locked(conflict_report_t **conflict_report,
     }
   else
     {
-      merge_source_t source;
-
-      source.loc1 = source1_loc;
-      source.loc2 = source2_loc;
-      source.ancestral = FALSE;
-
       /* Build a single-item merge_source_t array. */
       merge_sources = apr_array_make(scratch_pool, 1, sizeof(merge_source_t *));
-      APR_ARRAY_PUSH(merge_sources, merge_source_t *) = &source;
+      APR_ARRAY_PUSH(merge_sources, merge_source_t *)
+        = merge_source_create(source1_loc, source2_loc, FALSE, scratch_pool);
     }
 
   err = do_merge(NULL, NULL, conflict_report, &use_sleep,
@@ -10761,7 +10792,7 @@ log_find_operative_revs(void *baton,
    UNMERGED_CATALOG represents the history (as mergeinfo) from
    TARGET_LOC that is not represented in SOURCE_LOC's
    explicit/inherited mergeinfo as represented by MERGED_CATALOG.
-   MERGEINFO_CATALOG may be empty if the source has no explicit or inherited
+   MERGED_CATALOG may be empty if the source has no explicit or inherited
    mergeinfo.
 
    Check that all of the unmerged revisions in UNMERGED_CATALOG's
@@ -11464,7 +11495,7 @@ find_reintegrate_merge(merge_source_t **source_p,
          prefix. */
       svn_mergeinfo_catalog_t final_unmerged_catalog = apr_hash_make(scratch_pool);
 
-      SVN_ERR(find_unsynced_ranges(source_loc, yc_ancestor,
+      SVN_ERR(find_unsynced_ranges(source_loc, &target->loc,
                                    unmerged_to_source_mergeinfo_catalog,
                                    merged_to_source_mergeinfo_catalog,
                                    final_unmerged_catalog,
diff --git a/contrib/subversion/subversion/libsvn_client/prop_commands.c b/contrib/subversion/subversion/libsvn_client/prop_commands.c
index a3e59c866..06c4d21dc 100644
--- a/contrib/subversion/subversion/libsvn_client/prop_commands.c
+++ b/contrib/subversion/subversion/libsvn_client/prop_commands.c
@@ -890,8 +890,14 @@ svn_client_propget5(apr_hash_t **props,
           const char *copy_root_abspath;
           svn_boolean_t is_copy;
 
-          SVN_ERR(svn_dirent_get_absolute(&local_abspath, target,
-                                          scratch_pool));
+          /* Avoid assertion on the next line when somebody accidentally asks for
+             a working copy revision on a URL */
+          if (svn_path_is_url(target))
+            return svn_error_create(SVN_ERR_CLIENT_VERSIONED_PATH_REQUIRED,
+                                    NULL, NULL);
+
+          SVN_ERR_ASSERT(svn_dirent_is_absolute(target));
+          local_abspath = target;
 
           if (SVN_CLIENT__REVKIND_NEEDS_WC(peg_revision->kind))
             {
@@ -1232,7 +1238,7 @@ recursive_proplist_receiver(void *baton,
          Report iprops anyway */
 
       SVN_ERR(b->wrapped_receiver(b->wrapped_receiver_baton,
-                                  b->anchor ? b->anchor : local_abspath,
+                                  b->anchor ? b->anchor : b->anchor_abspath,
                                   NULL /* prop_hash */,
                                   b->iprops,
                                   scratch_pool));
@@ -1293,6 +1299,12 @@ get_remote_props(const char *path_or_url,
       const char *copy_root_abspath;
       svn_boolean_t is_copy;
 
+      /* Avoid assertion on the next line when somebody accidentally asks for
+         a working copy revision on a URL */
+      if (svn_path_is_url(path_or_url))
+        return svn_error_create(SVN_ERR_CLIENT_VERSIONED_PATH_REQUIRED,
+                                NULL, NULL);
+
       SVN_ERR(svn_dirent_get_absolute(&local_abspath, path_or_url,
                                       scratch_pool));
 
diff --git a/contrib/subversion/subversion/libsvn_delta/svndiff.c b/contrib/subversion/subversion/libsvn_delta/svndiff.c
index f4b9dc686..b9cb28515 100644
--- a/contrib/subversion/subversion/libsvn_delta/svndiff.c
+++ b/contrib/subversion/subversion/libsvn_delta/svndiff.c
@@ -723,8 +723,6 @@ decode_window(svn_txdelta_window_t *window, svn_filesize_t sview_offset,
       svn_stringbuf_t *instout = svn_stringbuf_create_empty(pool);
       svn_stringbuf_t *ndout = svn_stringbuf_create_empty(pool);
 
-      /* these may in fact simply return references to insend */
-
       SVN_ERR(zlib_decode(insend, newlen, ndout,
                           SVN_DELTA_WINDOW_SIZE));
       SVN_ERR(zlib_decode(data, insend - data, instout,
@@ -739,7 +737,13 @@ decode_window(svn_txdelta_window_t *window, svn_filesize_t sview_offset,
     }
   else
     {
-      new_data->data = (const char *) insend;
+      /* Copy the data because an svn_string_t must have the invariant
+         data[len]=='\0'. */
+      char *buf = apr_palloc(pool, newlen + 1);
+
+      memcpy(buf, insend, newlen);
+      buf[newlen] = '\0';
+      new_data->data = buf;
       new_data->len = newlen;
     }
 
diff --git a/contrib/subversion/subversion/libsvn_fs_fs/fs.c b/contrib/subversion/subversion/libsvn_fs_fs/fs.c
index 691f416d3..d0ba7342a 100644
--- a/contrib/subversion/subversion/libsvn_fs_fs/fs.c
+++ b/contrib/subversion/subversion/libsvn_fs_fs/fs.c
@@ -98,8 +98,11 @@ fs_serialized_init(svn_fs_t *fs, apr_pool_t *common_pool, apr_pool_t *pool)
       SVN_ERR(svn_mutex__init(&ffsd->txn_current_lock,
                               SVN_FS_FS__USE_LOCK_MUTEX, common_pool));
 
+      /* We also need a mutex for synchronizing access to the active
+         transaction list and free transaction pointer.  This one is
+         enabled unconditionally. */
       SVN_ERR(svn_mutex__init(&ffsd->txn_list_lock,
-                              SVN_FS_FS__USE_LOCK_MUTEX, common_pool));
+                              TRUE, common_pool));
 
       key = apr_pstrdup(common_pool, key);
       status = apr_pool_userdata_set(ffsd, key, NULL, common_pool);
diff --git a/contrib/subversion/subversion/libsvn_fs_fs/fs.h b/contrib/subversion/subversion/libsvn_fs_fs/fs.h
index ea301f6f5..5cdc27033 100644
--- a/contrib/subversion/subversion/libsvn_fs_fs/fs.h
+++ b/contrib/subversion/subversion/libsvn_fs_fs/fs.h
@@ -266,7 +266,7 @@ typedef struct fs_fs_data_t
   svn_cache__t *dir_cache;
 
   /* Fulltext cache; currently only used with memcached.  Maps from
-     rep key (revision/offset) to svn_string_t. */
+     rep key (revision/offset) to svn_stringbuf_t. */
   svn_cache__t *fulltext_cache;
 
   /* Access object to the atomics namespace used by revprop caching.
diff --git a/contrib/subversion/subversion/libsvn_fs_fs/fs_fs.c b/contrib/subversion/subversion/libsvn_fs_fs/fs_fs.c
index 372455d2d..89816a8bc 100644
--- a/contrib/subversion/subversion/libsvn_fs_fs/fs_fs.c
+++ b/contrib/subversion/subversion/libsvn_fs_fs/fs_fs.c
@@ -8877,7 +8877,12 @@ svn_fs_fs__create(svn_fs_t *fs,
 
   SVN_ERR(write_revision_zero(fs));
 
-  SVN_ERR(write_config(fs, pool));
+  /* Create the fsfs.conf file if supported.  Older server versions would
+     simply ignore the file but that might result in a different behavior
+     than with the later releases.  Also, hotcopy would ignore, i.e. not
+     copy, a fsfs.conf with old formats. */
+  if (ffd->format >= SVN_FS_FS__MIN_CONFIG_FILE)
+    SVN_ERR(write_config(fs, pool));
 
   SVN_ERR(read_config(ffd, fs->path, pool));
 
diff --git a/contrib/subversion/subversion/libsvn_fs_fs/rep-cache-db.h b/contrib/subversion/subversion/libsvn_fs_fs/rep-cache-db.h
index b02b052c5..0c9b821fe 100644
--- a/contrib/subversion/subversion/libsvn_fs_fs/rep-cache-db.h
+++ b/contrib/subversion/subversion/libsvn_fs_fs/rep-cache-db.h
@@ -1,4 +1,4 @@
-/* This file is automatically generated from rep-cache-db.sql and .dist_sandbox/subversion-1.8.8/subversion/libsvn_fs_fs/token-map.h.
+/* This file is automatically generated from rep-cache-db.sql and .dist_sandbox/subversion-1.8.10/subversion/libsvn_fs_fs/token-map.h.
  * Do not edit this file -- edit the source and rerun gen-make.py */
 
 #define STMT_CREATE_SCHEMA 0
diff --git a/contrib/subversion/subversion/libsvn_ra_serf/commit.c b/contrib/subversion/subversion/libsvn_ra_serf/commit.c
index 4950ac489..1f9f1cc99 100644
--- a/contrib/subversion/subversion/libsvn_ra_serf/commit.c
+++ b/contrib/subversion/subversion/libsvn_ra_serf/commit.c
@@ -99,14 +99,11 @@ typedef struct proppatch_context_t {
 } proppatch_context_t;
 
 typedef struct delete_context_t {
-  const char *path;
+  const char *relpath;
 
   svn_revnum_t revision;
 
-  const char *lock_token;
-  apr_hash_t *lock_token_hash;
-  svn_boolean_t keep_locks;
-
+  commit_context_t *commit;
 } delete_context_t;
 
 /* Represents a directory. */
@@ -149,7 +146,6 @@ typedef struct dir_context_t {
   /* The checked-out working resource for this directory.  May be NULL; if so
      call checkout_dir() first.  */
   const char *working_url;
-
 } dir_context_t;
 
 /* Represents a file to be committed. */
@@ -1077,6 +1073,96 @@ setup_copy_file_headers(serf_bucket_t *headers,
   return SVN_NO_ERROR;
 }
 
+static svn_error_t *
+setup_if_header_recursive(svn_boolean_t *added,
+                          serf_bucket_t *headers,
+                          commit_context_t *commit_ctx,
+                          const char *rq_relpath,
+                          apr_pool_t *pool)
+{
+  svn_stringbuf_t *sb = NULL;
+  apr_hash_index_t *hi;
+  apr_pool_t *iterpool = NULL;
+
+  if (!commit_ctx->lock_tokens)
+    {
+      *added = FALSE;
+      return SVN_NO_ERROR;
+    }
+
+  /* We try to create a directory, so within the Subversion world that
+     would imply that there is nothing here, but mod_dav_svn still sees
+     locks on the old nodes here as in DAV it is perfectly legal to lock
+     something that is not there...
+
+     Let's make mod_dav, mod_dav_svn and the DAV RFC happy by providing
+     the locks we know of with the request */
+
+  for (hi = apr_hash_first(pool, commit_ctx->lock_tokens);
+       hi;
+       hi = apr_hash_next(hi))
+    {
+      const char *relpath = svn__apr_hash_index_key(hi);
+      apr_uri_t uri;
+
+      if (!svn_relpath_skip_ancestor(rq_relpath, relpath))
+        continue;
+      else if (svn_hash_gets(commit_ctx->deleted_entries, relpath))
+        {
+          /* When a path is already explicit deleted then its lock
+             will be removed by mod_dav. But mod_dav doesn't remove
+             locks on descendants */
+          continue;
+        }
+
+      if (!iterpool)
+        iterpool = svn_pool_create(pool);
+      else
+        svn_pool_clear(iterpool);
+
+      if (sb == NULL)
+        sb = svn_stringbuf_create("", pool);
+      else
+        svn_stringbuf_appendbyte(sb, ' ');
+
+      uri = commit_ctx->session->session_url;
+      uri.path = (char *)svn_path_url_add_component2(uri.path, relpath,
+                                                    iterpool);
+
+      svn_stringbuf_appendbyte(sb, '<');
+      svn_stringbuf_appendcstr(sb, apr_uri_unparse(iterpool, &uri, 0));
+      svn_stringbuf_appendcstr(sb, "> (<");
+      svn_stringbuf_appendcstr(sb, svn__apr_hash_index_val(hi));
+      svn_stringbuf_appendcstr(sb, ">)");
+    }
+
+  if (iterpool)
+    svn_pool_destroy(iterpool);
+
+  if (sb)
+    {
+      serf_bucket_headers_set(headers, "If", sb->data);
+      *added = TRUE;
+    }
+  else
+    *added = FALSE;
+
+  return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+setup_add_dir_common_headers(serf_bucket_t *headers,
+                             void *baton,
+                             apr_pool_t *pool)
+{
+  dir_context_t *dir = baton;
+  svn_boolean_t added;
+
+  return svn_error_trace(
+      setup_if_header_recursive(&added, headers, dir->commit, dir->relpath,
+                                pool));
+}
+
 static svn_error_t *
 setup_copy_dir_headers(serf_bucket_t *headers,
                        void *baton,
@@ -1109,7 +1195,7 @@ setup_copy_dir_headers(serf_bucket_t *headers,
   /* Implicitly checkout this dir now. */
   dir->working_url = apr_pstrdup(dir->pool, uri.path);
 
-  return SVN_NO_ERROR;
+  return svn_error_trace(setup_add_dir_common_headers(headers, baton, pool));
 }
 
 static svn_error_t *
@@ -1117,54 +1203,22 @@ setup_delete_headers(serf_bucket_t *headers,
                      void *baton,
                      apr_pool_t *pool)
 {
-  delete_context_t *ctx = baton;
+  delete_context_t *del = baton;
+  svn_boolean_t added;
 
   serf_bucket_headers_set(headers, SVN_DAV_VERSION_NAME_HEADER,
-                          apr_ltoa(pool, ctx->revision));
+                          apr_ltoa(pool, del->revision));
 
-  if (ctx->lock_token_hash)
-    {
-      ctx->lock_token = svn_hash_gets(ctx->lock_token_hash, ctx->path);
+  SVN_ERR(setup_if_header_recursive(&added, headers, del->commit,
+                                    del->relpath, pool));
 
-      if (ctx->lock_token)
-        {
-          const char *token_header;
-
-          token_header = apr_pstrcat(pool, "<", ctx->path, "> (<",
-                                     ctx->lock_token, ">)", (char *)NULL);
-
-          serf_bucket_headers_set(headers, "If", token_header);
-
-          if (ctx->keep_locks)
-            serf_bucket_headers_setn(headers, SVN_DAV_OPTIONS_HEADER,
-                                     SVN_DAV_OPTION_KEEP_LOCKS);
-        }
-    }
+  if (added && del->commit->keep_locks)
+    serf_bucket_headers_setn(headers, SVN_DAV_OPTIONS_HEADER,
+                                      SVN_DAV_OPTION_KEEP_LOCKS);
 
   return SVN_NO_ERROR;
 }
 
-/* Implements svn_ra_serf__request_body_delegate_t */
-static svn_error_t *
-create_delete_body(serf_bucket_t **body_bkt,
-                   void *baton,
-                   serf_bucket_alloc_t *alloc,
-                   apr_pool_t *pool)
-{
-  delete_context_t *ctx = baton;
-  serf_bucket_t *body;
-
-  body = serf_bucket_aggregate_create(alloc);
-
-  svn_ra_serf__add_xml_header_buckets(body, alloc);
-
-  svn_ra_serf__merge_lock_token_list(ctx->lock_token_hash, ctx->path,
-                                     body, alloc, pool);
-
-  *body_bkt = body;
-  return SVN_NO_ERROR;
-}
-
 /* Helper function to write the svndiff stream to temporary file. */
 static svn_error_t *
 svndiff_stream_write(void *file_baton,
@@ -1541,7 +1595,6 @@ delete_entry(const char *path,
   delete_context_t *delete_ctx;
   svn_ra_serf__handler_t *handler;
   const char *delete_target;
-  svn_error_t *err;
 
   if (USING_HTTPV2_COMMIT_SUPPORT(dir->commit))
     {
@@ -1560,10 +1613,9 @@ delete_entry(const char *path,
 
   /* DELETE our entry */
   delete_ctx = apr_pcalloc(pool, sizeof(*delete_ctx));
-  delete_ctx->path = apr_pstrdup(pool, path);
+  delete_ctx->relpath = apr_pstrdup(pool, path);
   delete_ctx->revision = revision;
-  delete_ctx->lock_token_hash = dir->commit->lock_tokens;
-  delete_ctx->keep_locks = dir->commit->keep_locks;
+  delete_ctx->commit = dir->commit;
 
   handler = apr_pcalloc(pool, sizeof(*handler));
   handler->handler_pool = pool;
@@ -1579,30 +1631,7 @@ delete_entry(const char *path,
   handler->method = "DELETE";
   handler->path = delete_target;
 
-  err = svn_ra_serf__context_run_one(handler, pool);
-
-  if (err &&
-      (err->apr_err == SVN_ERR_FS_BAD_LOCK_TOKEN ||
-       err->apr_err == SVN_ERR_FS_NO_LOCK_TOKEN ||
-       err->apr_err == SVN_ERR_FS_LOCK_OWNER_MISMATCH ||
-       err->apr_err == SVN_ERR_FS_PATH_ALREADY_LOCKED))
-    {
-      svn_error_clear(err);
-
-      /* An error has been registered on the connection. Reset the thing
-         so that we can use it again.  */
-      serf_connection_reset(handler->conn->conn);
-
-      handler->body_delegate = create_delete_body;
-      handler->body_delegate_baton = delete_ctx;
-      handler->body_type = "text/xml";
-
-      SVN_ERR(svn_ra_serf__context_run_one(handler, pool));
-    }
-  else if (err)
-    {
-      return err;
-    }
+  SVN_ERR(svn_ra_serf__context_run_one(handler, pool));
 
   /* 204 No Content: item successfully deleted */
   if (handler->sline.code != 204)
@@ -1673,6 +1702,9 @@ add_directory(const char *path,
     {
       handler->method = "MKCOL";
       handler->path = mkcol_target;
+
+      handler->header_delegate = setup_add_dir_common_headers;
+      handler->header_delegate_baton = dir;
     }
   else
     {
@@ -2341,7 +2373,8 @@ svn_ra_serf__get_commit_editor(svn_ra_session_t *ra_session,
   ctx->callback = callback;
   ctx->callback_baton = callback_baton;
 
-  ctx->lock_tokens = lock_tokens;
+  ctx->lock_tokens = (lock_tokens && apr_hash_count(lock_tokens))
+                       ? lock_tokens : NULL;
   ctx->keep_locks = keep_locks;
 
   ctx->deleted_entries = apr_hash_make(ctx->pool);
diff --git a/contrib/subversion/subversion/libsvn_ra_serf/getlocks.c b/contrib/subversion/subversion/libsvn_ra_serf/getlocks.c
index 04e556179..df201a750 100644
--- a/contrib/subversion/subversion/libsvn_ra_serf/getlocks.c
+++ b/contrib/subversion/subversion/libsvn_ra_serf/getlocks.c
@@ -116,6 +116,7 @@ getlocks_closed(svn_ra_serf__xml_estate_t *xes,
   if (leaving_state == LOCK)
     {
       const char *path = svn_hash_gets(attrs, "path");
+      const char *token = svn_hash_gets(attrs, "token");
       svn_boolean_t save_lock = FALSE;
 
       /* Filter out unwanted paths.  Since Subversion only allows
@@ -128,6 +129,12 @@ getlocks_closed(svn_ra_serf__xml_estate_t *xes,
          c) we've asked for depth=files or depth=immediates, and this
             lock is on an immediate child of our query path.
       */
+      if (! token)
+        {
+          /* A lock without a token is not a lock; just an answer that there
+             is no lock on the node. */
+          save_lock = FALSE;
+        }
       if (strcmp(lock_ctx->path, path) == 0
           || lock_ctx->requested_depth == svn_depth_infinity)
         {
@@ -154,7 +161,7 @@ getlocks_closed(svn_ra_serf__xml_estate_t *xes,
              them may have not been sent, so the value will be NULL.  */
 
           lock.path = path;
-          lock.token = svn_hash_gets(attrs, "token");
+          lock.token = token;
           lock.owner = svn_hash_gets(attrs, "owner");
           lock.comment = svn_hash_gets(attrs, "comment");
 
@@ -234,6 +241,7 @@ svn_ra_serf__get_locks(svn_ra_session_t *ra_session,
   svn_ra_serf__handler_t *handler;
   svn_ra_serf__xml_context_t *xmlctx;
   const char *req_url, *rel_path;
+  svn_error_t *err;
 
   req_url = svn_path_url_add_component2(session->session_url.path, path, pool);
   SVN_ERR(svn_ra_serf__get_relative_path(&rel_path, req_url, session,
@@ -260,7 +268,14 @@ svn_ra_serf__get_locks(svn_ra_session_t *ra_session,
   handler->body_delegate = create_getlocks_body;
   handler->body_delegate_baton = lock_ctx;
 
-  SVN_ERR(svn_ra_serf__context_run_one(handler, pool));
+  err = svn_ra_serf__context_run_one(handler, pool);
+  
+  /* Wrap the server generated error for an unsupported report with the
+     documented error for this ra function. */
+  if (svn_error_find_cause(err, SVN_ERR_UNSUPPORTED_FEATURE))
+    err = svn_error_create(SVN_ERR_RA_NOT_IMPLEMENTED, err, NULL);
+    
+  SVN_ERR(err);
 
   /* We get a 404 when a path doesn't exist in HEAD, but it might
      have existed earlier (E.g. 'svn ls http://s/svn/trunk/file@1' */
diff --git a/contrib/subversion/subversion/libsvn_ra_serf/inherited_props.c b/contrib/subversion/subversion/libsvn_ra_serf/inherited_props.c
index 54eae0b5b..f1172e7b6 100644
--- a/contrib/subversion/subversion/libsvn_ra_serf/inherited_props.c
+++ b/contrib/subversion/subversion/libsvn_ra_serf/inherited_props.c
@@ -41,7 +41,7 @@
 
 /* The current state of our XML parsing. */
 typedef enum iprops_state_e {
-  NONE = 0,
+  INITIAL = 0,
   IPROPS_REPORT,
   IPROPS_ITEM,
   IPROPS_PATH,
@@ -61,18 +61,12 @@ typedef struct iprops_context_t {
   /* The repository's root URL. */
   const char *repos_root_url;
 
-  /* Current CDATA values*/
-  svn_stringbuf_t *curr_path;
+  /* Current property name */
   svn_stringbuf_t *curr_propname;
-  svn_stringbuf_t *curr_propval;
-  const char *curr_prop_val_encoding;
 
   /* Current element in IPROPS. */
   svn_prop_inherited_item_t *curr_iprop;
 
-  /* Serf context completion flag for svn_ra_serf__context_run_wait() */
-  svn_boolean_t done;
-
   /* Path we are finding inherited properties for.  This is relative to
      the RA session passed to svn_ra_serf__get_inherited_props. */
   const char *path;
@@ -80,162 +74,121 @@ typedef struct iprops_context_t {
   svn_revnum_t revision;
 } iprops_context_t;
 
+#define S_ SVN_XML_NAMESPACE
+static const svn_ra_serf__xml_transition_t iprops_table[] = {
+  { INITIAL, S_, SVN_DAV__INHERITED_PROPS_REPORT, IPROPS_REPORT,
+    FALSE, { NULL }, FALSE },
+
+  { IPROPS_REPORT, S_, SVN_DAV__IPROP_ITEM, IPROPS_ITEM,
+    FALSE, { NULL }, TRUE },
+
+  { IPROPS_ITEM, S_, SVN_DAV__IPROP_PATH, IPROPS_PATH,
+    TRUE, { NULL }, TRUE },
+
+  { IPROPS_ITEM, S_, SVN_DAV__IPROP_PROPNAME, IPROPS_PROPNAME,
+    TRUE, { NULL }, TRUE },
+
+  { IPROPS_ITEM, S_, SVN_DAV__IPROP_PROPVAL, IPROPS_PROPVAL,
+    TRUE, { "?V:encoding", NULL }, TRUE },
+
+  { 0 }
+};
+
+/* Conforms to svn_ra_serf__xml_opened_t */
 static svn_error_t *
-start_element(svn_ra_serf__xml_parser_t *parser,
-              svn_ra_serf__dav_props_t name,
-              const char **attrs,
+iprops_opened(svn_ra_serf__xml_estate_t *xes,
+              void *baton,
+              int entered_state,
+              const svn_ra_serf__dav_props_t *tag,
               apr_pool_t *scratch_pool)
 {
-  iprops_context_t *iprops_ctx = parser->user_data;
-  iprops_state_e state;
+  iprops_context_t *iprops_ctx = baton;
 
-  state = parser->state->current_state;
-  if (state == NONE
-      && strcmp(name.name, SVN_DAV__INHERITED_PROPS_REPORT) == 0)
+  if (entered_state == IPROPS_ITEM)
     {
-      svn_ra_serf__xml_push_state(parser, IPROPS_REPORT);
-    }
-  else if (state == IPROPS_REPORT &&
-           strcmp(name.name, SVN_DAV__IPROP_ITEM) == 0)
-    {
-      svn_stringbuf_setempty(iprops_ctx->curr_path);
       svn_stringbuf_setempty(iprops_ctx->curr_propname);
-      svn_stringbuf_setempty(iprops_ctx->curr_propval);
-      iprops_ctx->curr_prop_val_encoding = NULL;
-      iprops_ctx->curr_iprop = NULL;
-      svn_ra_serf__xml_push_state(parser, IPROPS_ITEM);
-    }
-  else if (state == IPROPS_ITEM &&
-           strcmp(name.name, SVN_DAV__IPROP_PROPVAL) == 0)
-    {
-      const char *prop_val_encoding = svn_xml_get_attr_value("encoding",
-                                                             attrs);
-      iprops_ctx->curr_prop_val_encoding = apr_pstrdup(iprops_ctx->pool,
-                                                       prop_val_encoding);
-      svn_ra_serf__xml_push_state(parser, IPROPS_PROPVAL);
-    }
-  else if (state == IPROPS_ITEM &&
-           strcmp(name.name, SVN_DAV__IPROP_PATH) == 0)
-    {
-      svn_ra_serf__xml_push_state(parser, IPROPS_PATH);
-    }
-  else if (state == IPROPS_ITEM &&
-           strcmp(name.name, SVN_DAV__IPROP_PROPNAME) == 0)
-    {
-      svn_ra_serf__xml_push_state(parser, IPROPS_PROPNAME);
-    }
-  else if (state == IPROPS_ITEM &&
-           strcmp(name.name, SVN_DAV__IPROP_PROPVAL) == 0)
-    {
-      svn_ra_serf__xml_push_state(parser, IPROPS_PROPVAL);
-    }
 
+      iprops_ctx->curr_iprop = apr_pcalloc(iprops_ctx->pool,
+                                           sizeof(*iprops_ctx->curr_iprop));
+
+      iprops_ctx->curr_iprop->prop_hash = apr_hash_make(iprops_ctx->pool);
+    }
   return SVN_NO_ERROR;
 }
 
+/* Conforms to svn_ra_serf__xml_closed_t  */
 static svn_error_t *
-end_element(svn_ra_serf__xml_parser_t *parser,
-            svn_ra_serf__dav_props_t name,
-            apr_pool_t *scratch_pool)
+iprops_closed(svn_ra_serf__xml_estate_t *xes,
+              void *baton,
+              int leaving_state,
+              const svn_string_t *cdata,
+              apr_hash_t *attrs,
+              apr_pool_t *scratch_pool)
 {
-  iprops_context_t *iprops_ctx = parser->user_data;
-  iprops_state_e state;
-
-  state = parser->state->current_state;
+  iprops_context_t *iprops_ctx = baton;
 
-    if (state == IPROPS_REPORT &&
-      strcmp(name.name, SVN_DAV__INHERITED_PROPS_REPORT) == 0)
+  if (leaving_state == IPROPS_ITEM)
     {
-      svn_ra_serf__xml_pop_state(parser);
+      APR_ARRAY_PUSH(iprops_ctx->iprops, svn_prop_inherited_item_t *) =
+        iprops_ctx->curr_iprop;
+
+      iprops_ctx->curr_iprop = NULL;
     }
-  else if (state == IPROPS_PATH
-           && strcmp(name.name, SVN_DAV__IPROP_PATH) == 0)
+  else if (leaving_state == IPROPS_PATH)
     {
-      iprops_ctx->curr_iprop = apr_palloc(
-        iprops_ctx->pool, sizeof(svn_prop_inherited_item_t));
+      /* Every  has a single  */
+      if (iprops_ctx->curr_iprop->path_or_url)
+        return svn_error_create(SVN_ERR_XML_MALFORMED, NULL, NULL);
 
       iprops_ctx->curr_iprop->path_or_url =
         svn_path_url_add_component2(iprops_ctx->repos_root_url,
-                                    iprops_ctx->curr_path->data,
+                                    cdata->data,
                                     iprops_ctx->pool);
-      iprops_ctx->curr_iprop->prop_hash = apr_hash_make(iprops_ctx->pool);
-      svn_ra_serf__xml_pop_state(parser);
     }
-  else if (state == IPROPS_PROPVAL
-           && strcmp(name.name, SVN_DAV__IPROP_PROPVAL) == 0)
+  else if (leaving_state == IPROPS_PROPNAME)
     {
-      const svn_string_t *prop_val;
+      if (iprops_ctx->curr_propname->len)
+        return svn_error_create(SVN_ERR_XML_MALFORMED, NULL, NULL);
 
-      if (iprops_ctx->curr_prop_val_encoding)
-        {
-          svn_string_t encoded_prop_val;
+      /* Store propname for value */
+      svn_stringbuf_set(iprops_ctx->curr_propname, cdata->data);
+    }
+  else if (leaving_state == IPROPS_PROPVAL)
+    {
+      const char *encoding;
+      const svn_string_t *val_str;
+
+      if (! iprops_ctx->curr_propname->len)
+        return svn_error_create(SVN_ERR_XML_MALFORMED, NULL, NULL);
 
-          if (strcmp(iprops_ctx->curr_prop_val_encoding, "base64") != 0)
-            return svn_error_create(SVN_ERR_XML_MALFORMED, NULL, NULL);
+      encoding = svn_hash_gets(attrs, "V:encoding");
 
-          encoded_prop_val.data = iprops_ctx->curr_propval->data;
-          encoded_prop_val.len = iprops_ctx->curr_propval->len;
-          prop_val = svn_base64_decode_string(&encoded_prop_val,
-                                              iprops_ctx->pool);
+      if (encoding)
+        {
+          if (strcmp(encoding, "base64") != 0)
+            return svn_error_createf(SVN_ERR_XML_MALFORMED,
+                                     NULL,
+                                     _("Got unrecognized encoding '%s'"),
+                                     encoding);
+
+          /* Decode into the right pool.  */
+          val_str = svn_base64_decode_string(cdata, iprops_ctx->pool);
         }
       else
         {
-          prop_val = svn_string_create_from_buf(iprops_ctx->curr_propval,
-                                                iprops_ctx->pool);
+          /* Copy into the right pool.  */
+          val_str = svn_string_dup(cdata, iprops_ctx->pool);
         }
 
       svn_hash_sets(iprops_ctx->curr_iprop->prop_hash,
                     apr_pstrdup(iprops_ctx->pool,
                                 iprops_ctx->curr_propname->data),
-                    prop_val);
-      /* Clear current propname and propval in the event there are
-         multiple properties on the current path. */
+                    val_str);
+      /* Clear current propname. */
       svn_stringbuf_setempty(iprops_ctx->curr_propname);
-      svn_stringbuf_setempty(iprops_ctx->curr_propval);
-      svn_ra_serf__xml_pop_state(parser);
-    }
-  else if (state == IPROPS_PROPNAME
-           && strcmp(name.name, SVN_DAV__IPROP_PROPNAME) == 0)
-    {
-      svn_ra_serf__xml_pop_state(parser);
-    }
-  else if (state == IPROPS_ITEM
-           && strcmp(name.name, SVN_DAV__IPROP_ITEM) == 0)
-    {
-      APR_ARRAY_PUSH(iprops_ctx->iprops, svn_prop_inherited_item_t *) =
-        iprops_ctx->curr_iprop;
-      svn_ra_serf__xml_pop_state(parser);
-    }
-  return SVN_NO_ERROR;
-}
-
-
-static svn_error_t *
-cdata_handler(svn_ra_serf__xml_parser_t *parser,
-              const char *data,
-              apr_size_t len,
-              apr_pool_t *scratch_pool)
-{
-  iprops_context_t *iprops_ctx = parser->user_data;
-  iprops_state_e state = parser->state->current_state;
-
-  switch (state)
-    {
-    case IPROPS_PATH:
-      svn_stringbuf_appendbytes(iprops_ctx->curr_path, data, len);
-      break;
-
-    case IPROPS_PROPNAME:
-      svn_stringbuf_appendbytes(iprops_ctx->curr_propname, data, len);
-      break;
-
-    case IPROPS_PROPVAL:
-      svn_stringbuf_appendbytes(iprops_ctx->curr_propval, data, len);
-      break;
-
-    default:
-      break;
     }
+  else
+    SVN_ERR_MALFUNCTION(); /* Invalid transition table */
 
   return SVN_NO_ERROR;
 }
@@ -281,7 +234,7 @@ svn_ra_serf__get_inherited_props(svn_ra_session_t *ra_session,
   iprops_context_t *iprops_ctx;
   svn_ra_serf__session_t *session = ra_session->priv;
   svn_ra_serf__handler_t *handler;
-  svn_ra_serf__xml_parser_t *parser_ctx;
+  svn_ra_serf__xml_context_t *xmlctx;
   const char *req_url;
 
   SVN_ERR(svn_ra_serf__get_stable_url(&req_url,
@@ -295,19 +248,20 @@ svn_ra_serf__get_inherited_props(svn_ra_session_t *ra_session,
   SVN_ERR_ASSERT(session->repos_root_str);
 
   iprops_ctx = apr_pcalloc(scratch_pool, sizeof(*iprops_ctx));
-  iprops_ctx->done = FALSE;
   iprops_ctx->repos_root_url = session->repos_root_str;
   iprops_ctx->pool = result_pool;
-  iprops_ctx->curr_path = svn_stringbuf_create_empty(scratch_pool);
   iprops_ctx->curr_propname = svn_stringbuf_create_empty(scratch_pool);
-  iprops_ctx->curr_propval = svn_stringbuf_create_empty(scratch_pool);
   iprops_ctx->curr_iprop = NULL;
   iprops_ctx->iprops = apr_array_make(result_pool, 1,
                                        sizeof(svn_prop_inherited_item_t *));
   iprops_ctx->path = path;
   iprops_ctx->revision = revision;
 
-  handler = apr_pcalloc(scratch_pool, sizeof(*handler));
+  xmlctx = svn_ra_serf__xml_context_create(iprops_table,
+                                           iprops_opened, iprops_closed, NULL,
+                                           iprops_ctx,
+                                           scratch_pool);
+  handler = svn_ra_serf__create_expat_handler(xmlctx, scratch_pool);
 
   handler->method = "REPORT";
   handler->path = req_url;
@@ -318,18 +272,6 @@ svn_ra_serf__get_inherited_props(svn_ra_session_t *ra_session,
   handler->body_type = "text/xml";
   handler->handler_pool = scratch_pool;
 
-  parser_ctx = apr_pcalloc(scratch_pool, sizeof(*parser_ctx));
-
-  parser_ctx->pool = scratch_pool;
-  parser_ctx->user_data = iprops_ctx;
-  parser_ctx->start = start_element;
-  parser_ctx->end = end_element;
-  parser_ctx->cdata = cdata_handler;
-  parser_ctx->done = &iprops_ctx->done;
-
-  handler->response_handler = svn_ra_serf__handle_xml_parser;
-  handler->response_baton = parser_ctx;
-
   err = svn_ra_serf__context_run_one(handler, scratch_pool);
   SVN_ERR(svn_error_compose_create(
                     svn_ra_serf__error_on_status(handler->sline,
@@ -337,8 +279,7 @@ svn_ra_serf__get_inherited_props(svn_ra_session_t *ra_session,
                                                  handler->location),
                     err));
 
-  if (iprops_ctx->done)
-    *iprops = iprops_ctx->iprops;
+  *iprops = iprops_ctx->iprops;
 
   return SVN_NO_ERROR;
 }
diff --git a/contrib/subversion/subversion/libsvn_ra_serf/locks.c b/contrib/subversion/subversion/libsvn_ra_serf/locks.c
index db2d37125..252c30182 100644
--- a/contrib/subversion/subversion/libsvn_ra_serf/locks.c
+++ b/contrib/subversion/subversion/libsvn_ra_serf/locks.c
@@ -156,11 +156,20 @@ locks_closed(svn_ra_serf__xml_estate_t *xes,
 
   if (leaving_state == TIMEOUT)
     {
-      if (strcmp(cdata->data, "Infinite") == 0)
+      if (strcasecmp(cdata->data, "Infinite") == 0)
         lock_ctx->lock->expiration_date = 0;
+      else if (strncasecmp(cdata->data, "Second-", 7) == 0)
+        {
+          unsigned n;
+          SVN_ERR(svn_cstring_atoui(&n, cdata->data+7));
+
+          lock_ctx->lock->expiration_date = apr_time_now() +
+                                            apr_time_from_sec(n);
+        }
       else
-        SVN_ERR(svn_time_from_cstring(&lock_ctx->lock->creation_date,
-                                      cdata->data, lock_ctx->pool));
+        return svn_error_createf(SVN_ERR_RA_DAV_MALFORMED_DATA, NULL,
+                                 _("Invalid LOCK timeout value '%s'"),
+                                 cdata->data);
     }
   else if (leaving_state == HREF)
     {
@@ -362,29 +371,30 @@ svn_error_t *
 svn_ra_serf__get_lock(svn_ra_session_t *ra_session,
                       svn_lock_t **lock,
                       const char *path,
-                      apr_pool_t *pool)
+                      apr_pool_t *result_pool)
 {
   svn_ra_serf__session_t *session = ra_session->priv;
   svn_ra_serf__handler_t *handler;
   svn_ra_serf__xml_context_t *xmlctx;
+  apr_pool_t *scratch_pool = svn_pool_create(result_pool);
   lock_info_t *lock_ctx;
   const char *req_url;
   svn_error_t *err;
 
-  req_url = svn_path_url_add_component2(session->session_url.path, path, pool);
-
-  lock_ctx = apr_pcalloc(pool, sizeof(*lock_ctx));
+  req_url = svn_path_url_add_component2(session->session_url.path, path,
+                                        scratch_pool);
 
-  lock_ctx->pool = pool;
+  lock_ctx = apr_pcalloc(scratch_pool, sizeof(*lock_ctx));
+  lock_ctx->pool = result_pool;
   lock_ctx->path = req_url;
-  lock_ctx->lock = svn_lock_create(pool);
-  lock_ctx->lock->path = apr_pstrdup(pool, path); /* be sure  */
+  lock_ctx->lock = svn_lock_create(result_pool);
+  lock_ctx->lock->path = apr_pstrdup(result_pool, path);
 
   xmlctx = svn_ra_serf__xml_context_create(locks_ttable,
                                            NULL, locks_closed, NULL,
                                            lock_ctx,
-                                           pool);
-  handler = svn_ra_serf__create_expat_handler(xmlctx, pool);
+                                           scratch_pool);
+  handler = svn_ra_serf__create_expat_handler(xmlctx, scratch_pool);
 
   handler->method = "PROPFIND";
   handler->path = req_url;
@@ -405,7 +415,7 @@ svn_ra_serf__get_lock(svn_ra_session_t *ra_session,
 
   lock_ctx->handler = handler;
 
-  err = svn_ra_serf__context_run_one(handler, pool);
+  err = svn_ra_serf__context_run_one(handler, scratch_pool);
   err = determine_error(handler, err);
 
   if (handler->sline.code == 404)
@@ -420,7 +430,12 @@ svn_ra_serf__get_lock(svn_ra_session_t *ra_session,
                               _("Server does not support locking features"));
     }
 
-  *lock = lock_ctx->lock;
+  if (lock_ctx->lock && lock_ctx->lock->token)
+    *lock = lock_ctx->lock;
+  else
+    *lock = NULL;
+
+  svn_pool_destroy(scratch_pool);
 
   return SVN_NO_ERROR;
 }
@@ -574,7 +589,7 @@ svn_ra_serf__unlock(svn_ra_session_t *ra_session,
         {
           SVN_ERR(svn_ra_serf__get_lock(ra_session, &existing_lock, path,
                                         iterpool));
-          token = existing_lock->token;
+          token = existing_lock ? existing_lock->token : NULL;
           if (!token)
             {
               err = svn_error_createf(SVN_ERR_RA_NOT_LOCKED, NULL,
diff --git a/contrib/subversion/subversion/libsvn_ra_serf/log.c b/contrib/subversion/subversion/libsvn_ra_serf/log.c
index 58a57d890..02f2f2995 100644
--- a/contrib/subversion/subversion/libsvn_ra_serf/log.c
+++ b/contrib/subversion/subversion/libsvn_ra_serf/log.c
@@ -571,7 +571,7 @@ svn_ra_serf__get_log(svn_ra_session_t *ra_session,
   /* At this point, we may have a deleted file.  So, we'll match ra_neon's
    * behavior and use the larger of start or end as our 'peg' rev.
    */
-  peg_rev = (start > end) ? start : end;
+  peg_rev = (start == SVN_INVALID_REVNUM || start > end) ? start : end;
 
   SVN_ERR(svn_ra_serf__get_stable_url(&req_url, NULL /* latest_revnum */,
                                       session, NULL /* conn */,
diff --git a/contrib/subversion/subversion/libsvn_ra_serf/options.c b/contrib/subversion/subversion/libsvn_ra_serf/options.c
index a3c2fb95c..f61ee8714 100644
--- a/contrib/subversion/subversion/libsvn_ra_serf/options.c
+++ b/contrib/subversion/subversion/libsvn_ra_serf/options.c
@@ -302,7 +302,7 @@ capabilities_headers_iterator_callback(void *baton,
           /* May contain multiple values, separated by commas. */
           int i;
           apr_array_header_t *vals = svn_cstring_split(val, ",", TRUE,
-                                                       opt_ctx->pool);
+                                                       session->pool);
 
           for (i = 0; i < vals->nelts; i++)
             {
diff --git a/contrib/subversion/subversion/libsvn_ra_serf/update.c b/contrib/subversion/subversion/libsvn_ra_serf/update.c
index 06a16c06e..88488ff20 100644
--- a/contrib/subversion/subversion/libsvn_ra_serf/update.c
+++ b/contrib/subversion/subversion/libsvn_ra_serf/update.c
@@ -329,9 +329,6 @@ struct report_context_t {
      files/dirs? */
   svn_boolean_t add_props_included;
 
-  /* Path -> lock token mapping. */
-  apr_hash_t *lock_path_tokens;
-
   /* Path -> const char *repos_relpath mapping */
   apr_hash_t *switched_paths;
 
@@ -2248,8 +2245,6 @@ end_report(svn_ra_serf__xml_parser_t *parser,
                                         info->pool);
         }
 
-      info->lock_token = svn_hash_gets(ctx->lock_path_tokens, info->name);
-
       if (info->lock_token && !info->fetch_props)
         info->fetch_props = TRUE;
 
@@ -2578,13 +2573,6 @@ set_path(void *report_baton,
   SVN_ERR(svn_io_file_write_full(report->body_file, buf->data, buf->len,
                                  NULL, pool));
 
-  if (lock_token)
-    {
-      svn_hash_sets(report->lock_path_tokens,
-                    apr_pstrdup(report->pool, path),
-                    apr_pstrdup(report->pool, lock_token));
-    }
-
   return SVN_NO_ERROR;
 }
 
@@ -2660,12 +2648,6 @@ link_path(void *report_baton,
   if (!*path)
     report->root_is_switched = TRUE;
 
-  if (lock_token)
-    {
-      svn_hash_sets(report->lock_path_tokens,
-                    path, apr_pstrdup(report->pool, lock_token));
-    }
-
   return APR_SUCCESS;
 }
 
@@ -3193,7 +3175,6 @@ make_update_reporter(svn_ra_session_t *ra_session,
   report->ignore_ancestry = ignore_ancestry;
   report->send_copyfrom_args = send_copyfrom_args;
   report->text_deltas = text_deltas;
-  report->lock_path_tokens = apr_hash_make(report->pool);
   report->switched_paths = apr_hash_make(report->pool);
 
   report->source = src_path;
diff --git a/contrib/subversion/subversion/libsvn_ra_serf/util.c b/contrib/subversion/subversion/libsvn_ra_serf/util.c
index 60fa3c44a..8f6c1bb5d 100644
--- a/contrib/subversion/subversion/libsvn_ra_serf/util.c
+++ b/contrib/subversion/subversion/libsvn_ra_serf/util.c
@@ -28,7 +28,6 @@
 #define APR_WANT_STRFUNC
 #include 
 #include 
-#include 
 
 #include 
 #include 
@@ -49,6 +48,7 @@
 #include "private/svn_fspath.h"
 #include "private/svn_subr_private.h"
 #include "private/svn_auth_private.h"
+#include "private/svn_cert.h"
 
 #include "ra_serf.h"
 
@@ -274,7 +274,6 @@ ssl_server_cert(void *baton, int failures,
   apr_hash_t *subject = NULL;
   apr_hash_t *serf_cert = NULL;
   void *creds;
-  int found_matching_hostname = 0;
 
   svn_failures = (ssl_convert_serf_failures(failures)
       | conn->server_cert_failures);
@@ -286,26 +285,37 @@ ssl_server_cert(void *baton, int failures,
       ### This should really be handled by serf, which should pass an error
           for this case, but that has backwards compatibility issues. */
       apr_array_header_t *san;
+      svn_boolean_t found_san_entry = FALSE;
+      svn_boolean_t found_matching_hostname = FALSE;
+      svn_string_t *actual_hostname =
+          svn_string_create(conn->session->session_url.hostname, scratch_pool);
 
       serf_cert = serf_ssl_cert_certificate(cert, scratch_pool);
 
       san = svn_hash_gets(serf_cert, "subjectAltName");
       /* Try to find matching server name via subjectAltName first... */
-      if (san) {
+      if (san)
+        {
           int i;
-          for (i = 0; i < san->nelts; i++) {
+          found_san_entry = san->nelts > 0;
+          for (i = 0; i < san->nelts; i++)
+            {
               const char *s = APR_ARRAY_IDX(san, i, const char*);
-              if (apr_fnmatch(s, conn->session->session_url.hostname,
-                  APR_FNM_PERIOD | APR_FNM_CASE_BLIND) == APR_SUCCESS)
-              {
-                  found_matching_hostname = 1;
+              svn_string_t *cert_hostname = svn_string_create(s, scratch_pool);
+
+              if (svn_cert__match_dns_identity(cert_hostname, actual_hostname))
+                {
+                  found_matching_hostname = TRUE;
                   break;
-              }
-          }
-      }
+                }
+            }
+        }
 
-      /* Match server certificate CN with the hostname of the server */
-      if (!found_matching_hostname)
+      /* Match server certificate CN with the hostname of the server iff
+       * we didn't find any subjectAltName fields and try to match them.
+       * Per RFC 2818 they are authoritative if present and CommonName
+       * should be ignored. */
+      if (!found_matching_hostname && !found_san_entry)
         {
           const char *hostname = NULL;
 
@@ -314,13 +324,20 @@ ssl_server_cert(void *baton, int failures,
           if (subject)
             hostname = svn_hash_gets(subject, "CN");
 
-          if (!hostname
-              || apr_fnmatch(hostname, conn->session->session_url.hostname,
-                             APR_FNM_PERIOD | APR_FNM_CASE_BLIND) != APR_SUCCESS)
-          {
-              svn_failures |= SVN_AUTH_SSL_CNMISMATCH;
-          }
-      }
+          if (hostname)
+            {
+              svn_string_t *cert_hostname = svn_string_create(hostname,
+                                                              scratch_pool);
+
+              if (svn_cert__match_dns_identity(cert_hostname, actual_hostname))
+                {
+                  found_matching_hostname = TRUE;
+                }
+            }
+        }
+
+      if (!found_matching_hostname)
+        svn_failures |= SVN_AUTH_SSL_CNMISMATCH;
     }
 
   if (!svn_failures)
diff --git a/contrib/subversion/subversion/libsvn_ra_svn/protocol b/contrib/subversion/subversion/libsvn_ra_svn/protocol
index d056b74a5..4d98b2bb1 100644
--- a/contrib/subversion/subversion/libsvn_ra_svn/protocol
+++ b/contrib/subversion/subversion/libsvn_ra_svn/protocol
@@ -310,6 +310,7 @@ second place for auth-request point as noted below.
      sends file contents as a series of strings, terminated by the empty
      string, followed by a second empty command response to indicate
      whether an error occurred during the sending of the file.
+    NOTE: the standard client never sends want-iprops, it uses get-iprops. 
 
   get-dir
     params:   ( path:string [ rev:number ] want-props:bool want-contents:bool
@@ -321,6 +322,7 @@ second place for auth-request point as noted below.
                 [ last-author:string ] )
     dirent-field: kind | size | has-props | created-rev | time | last-author
                   | word
+    NOTE: the standard client never sends want-iprops, it uses get-iprops. 
 
   check-path
     params:   ( path:string [ rev:number ] )
diff --git a/contrib/subversion/subversion/libsvn_repos/dump.c b/contrib/subversion/subversion/libsvn_repos/dump.c
index 75843d705..a64b1809c 100644
--- a/contrib/subversion/subversion/libsvn_repos/dump.c
+++ b/contrib/subversion/subversion/libsvn_repos/dump.c
@@ -217,6 +217,49 @@ make_dir_baton(const char *path,
 }
 
 
+/* If the mergeinfo in MERGEINFO_STR refers to any revisions older than
+ * OLDEST_DUMPED_REV, issue a warning and set *FOUND_OLD_MERGEINFO to TRUE,
+ * otherwise leave *FOUND_OLD_MERGEINFO unchanged.
+ */
+static svn_error_t *
+verify_mergeinfo_revisions(svn_boolean_t *found_old_mergeinfo,
+                           const char *mergeinfo_str,
+                           svn_revnum_t oldest_dumped_rev,
+                           svn_repos_notify_func_t notify_func,
+                           void *notify_baton,
+                           apr_pool_t *pool)
+{
+  svn_mergeinfo_t mergeinfo, old_mergeinfo;
+
+  SVN_ERR(svn_mergeinfo_parse(&mergeinfo, mergeinfo_str, pool));
+  SVN_ERR(svn_mergeinfo__filter_mergeinfo_by_ranges(
+            &old_mergeinfo, mergeinfo,
+            oldest_dumped_rev - 1, 0,
+            TRUE, pool, pool));
+
+  if (apr_hash_count(old_mergeinfo))
+    {
+      svn_repos_notify_t *notify =
+        svn_repos_notify_create(svn_repos_notify_warning, pool);
+
+      notify->warning = svn_repos_notify_warning_found_old_mergeinfo;
+      notify->warning_str = apr_psprintf(
+        pool,
+        _("Mergeinfo referencing revision(s) prior "
+          "to the oldest dumped revision (r%ld). "
+          "Loading this dump may result in invalid "
+          "mergeinfo."),
+        oldest_dumped_rev);
+
+      if (found_old_mergeinfo)
+        *found_old_mergeinfo = TRUE;
+      notify_func(notify_baton, notify, pool);
+    }
+
+  return SVN_NO_ERROR;
+}
+
+
 /* This helper is the main "meat" of the editor -- it does all the
    work of writing a node record.
 
@@ -475,32 +518,13 @@ dump_node(struct edit_baton *eb,
                                                       SVN_PROP_MERGEINFO);
           if (mergeinfo_str)
             {
-              svn_mergeinfo_t mergeinfo, old_mergeinfo;
-
-              SVN_ERR(svn_mergeinfo_parse(&mergeinfo, mergeinfo_str->data,
-                                          pool));
-              SVN_ERR(svn_mergeinfo__filter_mergeinfo_by_ranges(
-                &old_mergeinfo, mergeinfo,
-                eb->oldest_dumped_rev - 1, 0,
-                TRUE, pool, pool));
-              if (apr_hash_count(old_mergeinfo))
-                {
-                  svn_repos_notify_t *notify =
-                    svn_repos_notify_create(svn_repos_notify_warning, pool);
-
-                  notify->warning = svn_repos_notify_warning_found_old_mergeinfo;
-                  notify->warning_str = apr_psprintf(
-                    pool,
-                    _("Mergeinfo referencing revision(s) prior "
-                      "to the oldest dumped revision (r%ld). "
-                      "Loading this dump may result in invalid "
-                      "mergeinfo."),
-                    eb->oldest_dumped_rev);
-
-                  if (eb->found_old_mergeinfo)
-                    *eb->found_old_mergeinfo = TRUE;
-                  eb->notify_func(eb->notify_baton, notify, pool);
-                }
+              /* An error in verifying the mergeinfo must not prevent dumping
+                 the data. Ignore any such error. */
+              svn_error_clear(verify_mergeinfo_revisions(
+                                eb->found_old_mergeinfo,
+                                mergeinfo_str->data, eb->oldest_dumped_rev,
+                                eb->notify_func, eb->notify_baton,
+                                pool));
             }
         }
 
diff --git a/contrib/subversion/subversion/libsvn_repos/fs-wrap.c b/contrib/subversion/subversion/libsvn_repos/fs-wrap.c
index 755fa61bb..006b2861e 100644
--- a/contrib/subversion/subversion/libsvn_repos/fs-wrap.c
+++ b/contrib/subversion/subversion/libsvn_repos/fs-wrap.c
@@ -117,6 +117,8 @@ svn_repos_fs_begin_txn_for_commit2(svn_fs_txn_t **txn_p,
   const char *txn_name;
   svn_string_t *author = svn_hash_gets(revprop_table, SVN_PROP_REVISION_AUTHOR);
   apr_hash_t *hooks_env;
+  svn_error_t *err;
+  svn_fs_txn_t *txn;
 
   /* Parse the hooks-env file (if any). */
   SVN_ERR(svn_repos__parse_hooks_env(&hooks_env, repos->hooks_env_path,
@@ -124,21 +126,30 @@ svn_repos_fs_begin_txn_for_commit2(svn_fs_txn_t **txn_p,
 
   /* Begin the transaction, ask for the fs to do on-the-fly lock checks.
      We fetch its name, too, so the start-commit hook can use it.  */
-  SVN_ERR(svn_fs_begin_txn2(txn_p, repos->fs, rev,
+  SVN_ERR(svn_fs_begin_txn2(&txn, repos->fs, rev,
                             SVN_FS_TXN_CHECK_LOCKS, pool));
-  SVN_ERR(svn_fs_txn_name(&txn_name, *txn_p, pool));
+  err = svn_fs_txn_name(&txn_name, txn, pool);
+  if (err)
+    return svn_error_compose_create(err, svn_fs_abort_txn(txn, pool));
 
   /* We pass the revision properties to the filesystem by adding them
      as properties on the txn.  Later, when we commit the txn, these
      properties will be copied into the newly created revision. */
   revprops = svn_prop_hash_to_array(revprop_table, pool);
-  SVN_ERR(svn_repos_fs_change_txn_props(*txn_p, revprops, pool));
+  err = svn_repos_fs_change_txn_props(txn, revprops, pool);
+  if (err)
+    return svn_error_compose_create(err, svn_fs_abort_txn(txn, pool));
 
   /* Run start-commit hooks. */
-  SVN_ERR(svn_repos__hooks_start_commit(repos, hooks_env,
-                                        author ? author->data : NULL,
-                                        repos->client_capabilities, txn_name,
-                                        pool));
+  err = svn_repos__hooks_start_commit(repos, hooks_env,
+                                      author ? author->data : NULL,
+                                      repos->client_capabilities, txn_name,
+                                      pool);
+  if (err)
+    return svn_error_compose_create(err, svn_fs_abort_txn(txn, pool));
+
+  /* We have API promise that *TXN_P is unaffected on faulure. */
+  *txn_p = txn;
   return SVN_NO_ERROR;
 }
 
diff --git a/contrib/subversion/subversion/libsvn_subr/cache-memcache.c b/contrib/subversion/subversion/libsvn_subr/cache-memcache.c
index 5332d0442..500426d0f 100644
--- a/contrib/subversion/subversion/libsvn_subr/cache-memcache.c
+++ b/contrib/subversion/subversion/libsvn_subr/cache-memcache.c
@@ -203,9 +203,10 @@ memcache_get(void **value_p,
         }
       else
         {
-          svn_string_t *value = apr_pcalloc(result_pool, sizeof(*value));
+          svn_stringbuf_t *value = svn_stringbuf_create_empty(result_pool);
           value->data = data;
-          value->len = data_len;
+          value->blocksize = data_len;
+          value->len = data_len - 1; /* account for trailing NUL */
           *value_p = value;
         }
     }
@@ -263,7 +264,7 @@ memcache_set(void *cache_void,
     {
       svn_stringbuf_t *value_str = value;
       data = value_str->data;
-      data_len = value_str->len;
+      data_len = value_str->len + 1; /* copy trailing NUL */
     }
 
   err = memcache_internal_set(cache_void, key, data, data_len, subpool);
diff --git a/contrib/subversion/subversion/libsvn_subr/config_auth.c b/contrib/subversion/subversion/libsvn_subr/config_auth.c
index 091e4e84a..ed26a58cb 100644
--- a/contrib/subversion/subversion/libsvn_subr/config_auth.c
+++ b/contrib/subversion/subversion/libsvn_subr/config_auth.c
@@ -94,6 +94,7 @@ svn_config_read_auth_data(apr_hash_t **hash,
   if (kind == svn_node_file)
     {
       svn_stream_t *stream;
+      svn_string_t *stored_realm;
 
       SVN_ERR_W(svn_stream_open_readonly(&stream, auth_path, pool, pool),
                 _("Unable to open auth file for reading"));
@@ -104,6 +105,11 @@ svn_config_read_auth_data(apr_hash_t **hash,
                 apr_psprintf(pool, _("Error parsing '%s'"),
                              svn_dirent_local_style(auth_path, pool)));
 
+      stored_realm = svn_hash_gets(*hash, SVN_CONFIG_REALMSTRING_KEY);
+
+      if (!stored_realm || strcmp(stored_realm->data, realmstring) != 0)
+        *hash = NULL; /* Hash collision, or somebody tampering with storage */
+
       SVN_ERR(svn_stream_close(stream));
     }
 
diff --git a/contrib/subversion/subversion/libsvn_subr/config_file.c b/contrib/subversion/subversion/libsvn_subr/config_file.c
index c705b14fd..9969b8eb9 100644
--- a/contrib/subversion/subversion/libsvn_subr/config_file.c
+++ b/contrib/subversion/subversion/libsvn_subr/config_file.c
@@ -69,7 +69,7 @@ typedef struct parse_context_t
 
   /* Parser buffer for getc() to avoid call overhead into several libraries
      for every character */
-  char parser_buffer[SVN_STREAM_CHUNK_SIZE]; /* Larger than most config files */
+  char parser_buffer[SVN__STREAM_CHUNK_SIZE]; /* Larger than most config files */
   size_t buffer_pos; /* Current position within parser_buffer */
   size_t buffer_size; /* parser_buffer contains this many bytes */
 } parse_context_t;
diff --git a/contrib/subversion/subversion/libsvn_subr/dirent_uri.c b/contrib/subversion/subversion/libsvn_subr/dirent_uri.c
index 4801f8c8e..6886a3e75 100644
--- a/contrib/subversion/subversion/libsvn_subr/dirent_uri.c
+++ b/contrib/subversion/subversion/libsvn_subr/dirent_uri.c
@@ -38,6 +38,7 @@
 
 #include "dirent_uri.h"
 #include "private/svn_fspath.h"
+#include "private/svn_cert.h"
 
 /* The canonical empty path.  Can this be changed?  Well, change the empty
    test below and the path library will work, not so sure about the fs/wc
@@ -2597,3 +2598,81 @@ svn_urlpath__canonicalize(const char *uri,
     }
   return uri;
 }
+
+
+/* -------------- The cert API (see private/svn_cert.h) ------------- */
+
+svn_boolean_t
+svn_cert__match_dns_identity(svn_string_t *pattern, svn_string_t *hostname)
+{
+  apr_size_t pattern_pos = 0, hostname_pos = 0;
+
+  /* support leading wildcards that composed of the only character in the
+   * left-most label. */
+  if (pattern->len >= 2 &&
+      pattern->data[pattern_pos] == '*' &&
+      pattern->data[pattern_pos + 1] == '.')
+    {
+      while (hostname_pos < hostname->len &&
+             hostname->data[hostname_pos] != '.')
+        {
+          hostname_pos++;
+        }
+      /* Assume that the wildcard must match something.  Rule 2 says
+       * that *.example.com should not match example.com.  If the wildcard
+       * ends up not matching anything then it matches .example.com which
+       * seems to be essentially the same as just example.com */
+      if (hostname_pos == 0)
+        return FALSE;
+
+      pattern_pos++;
+    }
+
+  while (pattern_pos < pattern->len && hostname_pos < hostname->len)
+    {
+      char pattern_c = pattern->data[pattern_pos];
+      char hostname_c = hostname->data[hostname_pos];
+
+      /* fold case as described in RFC 4343.
+       * Note: We actually convert to lowercase, since our URI
+       * canonicalization code converts to lowercase and generally
+       * most certs are issued with lowercase DNS names, meaning
+       * this avoids the fold operation in most cases.  The RFC
+       * suggests the opposite transformation, but doesn't require
+       * any specific implementation in any case.  It is critical
+       * that this folding be locale independent so you can't use
+       * tolower(). */
+      pattern_c = canonicalize_to_lower(pattern_c);
+      hostname_c = canonicalize_to_lower(hostname_c);
+
+      if (pattern_c != hostname_c)
+        {
+          /* doesn't match */
+          return FALSE;
+        }
+      else
+        {
+          /* characters match so skip both */
+          pattern_pos++;
+          hostname_pos++;
+        }
+    }
+
+  /* ignore a trailing period on the hostname since this has no effect on the
+   * security of the matching.  See the following for the long explanation as
+   * to why:
+   * https://bugzilla.mozilla.org/show_bug.cgi?id=134402#c28
+   */
+  if (pattern_pos == pattern->len &&
+      hostname_pos == hostname->len - 1 &&
+      hostname->data[hostname_pos] == '.')
+    hostname_pos++;
+
+  if (pattern_pos != pattern->len || hostname_pos != hostname->len)
+    {
+      /* end didn't match */
+      return FALSE;
+    }
+
+  return TRUE;
+}
diff --git a/contrib/subversion/subversion/libsvn_subr/internal_statements.h b/contrib/subversion/subversion/libsvn_subr/internal_statements.h
index 84c616f38..58616f4c4 100644
--- a/contrib/subversion/subversion/libsvn_subr/internal_statements.h
+++ b/contrib/subversion/subversion/libsvn_subr/internal_statements.h
@@ -1,4 +1,4 @@
-/* This file is automatically generated from internal_statements.sql and .dist_sandbox/subversion-1.8.8/subversion/libsvn_subr/token-map.h.
+/* This file is automatically generated from internal_statements.sql and .dist_sandbox/subversion-1.8.10/subversion/libsvn_subr/token-map.h.
  * Do not edit this file -- edit the source and rerun gen-make.py */
 
 #define STMT_INTERNAL_SAVEPOINT_SVN 0
diff --git a/contrib/subversion/subversion/libsvn_subr/io.c b/contrib/subversion/subversion/libsvn_subr/io.c
index f0956e2aa..08f2e326d 100644
--- a/contrib/subversion/subversion/libsvn_subr/io.c
+++ b/contrib/subversion/subversion/libsvn_subr/io.c
@@ -1243,32 +1243,44 @@ svn_io_sleep_for_timestamps(const char *path, apr_pool_t *pool)
         {
           /* Very simplistic but safe approach:
               If the filesystem has < sec mtime we can be reasonably sure
-              that the filesystem has <= millisecond precision.
+              that the filesystem has some sub-second resolution.  On Windows
+              it is likely to be sub-millisecond; on Linux systems it depends
+              on the filesystem, ext4 is typically 1ms, 4ms or 10ms resolution.
 
              ## Perhaps find a better algorithm here. This will fail once
-                in every 1000 cases on a millisecond precision filesystem.
+                in every 1000 cases on a millisecond precision filesystem
+                if the mtime happens to be an exact second.
 
                 But better to fail once in every thousand cases than every
                 time, like we did before.
-                (All tested filesystems I know have at least microsecond precision.)
 
              Note for further research on algorithm:
-               FAT32 has < 1 sec precision on ctime, but 2 sec on mtime */
+               FAT32 has < 1 sec precision on ctime, but 2 sec on mtime.
 
-          /* Sleep for at least 1 millisecond.
-             (t < 1000 will be round to 0 in apr) */
-          apr_sleep(1000);
+               Linux/ext4 with CONFIG_HZ=250 has high resolution
+               apr_time_now and although the filesystem timestamps
+               have similar high precision they are only updated with
+               a coarser 4ms resolution. */
 
-          return;
+          /* 10 milliseconds after now. */
+#ifndef SVN_HI_RES_SLEEP_MS
+#define SVN_HI_RES_SLEEP_MS 10
+#endif
+          then = now + apr_time_from_msec(SVN_HI_RES_SLEEP_MS);
         }
 
-      now = apr_time_now(); /* Extract the time used for the path stat */
-
-      if (now >= then)
-        return; /* Passing negative values may suspend indefinitely (Windows) */
+      /* Remove time taken to do stat() from sleep. */
+      now = apr_time_now();
     }
 
-  apr_sleep(then - now);
+  if (now >= then)
+    return; /* Passing negative values may suspend indefinitely (Windows) */
+
+  /* (t < 1000 will be round to 0 in apr) */
+  if (then - now < 1000)
+    apr_sleep(1000);
+  else
+    apr_sleep(then - now);
 }
 
 
diff --git a/contrib/subversion/subversion/libsvn_subr/opt.c b/contrib/subversion/subversion/libsvn_subr/opt.c
index e499089c4..d91a2ef37 100644
--- a/contrib/subversion/subversion/libsvn_subr/opt.c
+++ b/contrib/subversion/subversion/libsvn_subr/opt.c
@@ -417,7 +417,9 @@ svn_opt_subcommand_help3(const char *subcommand,
                               _("\"%s\": unknown command.\n\n"), subcommand);
 
   if (err) {
-    svn_handle_error2(err, stderr, FALSE, "svn: ");
+    /* Issue #3014: Don't print anything on broken pipes. */
+    if (err->apr_err != SVN_ERR_IO_PIPE_WRITE_ERROR)
+      svn_handle_error2(err, stderr, FALSE, "svn: ");
     svn_error_clear(err);
   }
 }
diff --git a/contrib/subversion/subversion/libsvn_subr/prompt.c b/contrib/subversion/subversion/libsvn_subr/prompt.c
index 92ee6a278..d0c29d025 100644
--- a/contrib/subversion/subversion/libsvn_subr/prompt.c
+++ b/contrib/subversion/subversion/libsvn_subr/prompt.c
@@ -177,7 +177,7 @@ terminal_open(terminal_handle_t **terminal, svn_boolean_t noecho,
      and stderr for prompting. */
   apr_file_t *tmpfd;
   status = apr_file_open(&tmpfd, "/dev/tty",
-                         APR_FOPEN_READ | APR_FOPEN_WRITE,
+                         APR_READ | APR_WRITE,
                          APR_OS_DEFAULT, pool);
   *terminal = apr_palloc(pool, sizeof(terminal_handle_t));
   if (!status)
diff --git a/contrib/subversion/subversion/libsvn_subr/sysinfo.c b/contrib/subversion/subversion/libsvn_subr/sysinfo.c
index a506310aa..f20050cdb 100644
--- a/contrib/subversion/subversion/libsvn_subr/sysinfo.c
+++ b/contrib/subversion/subversion/libsvn_subr/sysinfo.c
@@ -1022,6 +1022,7 @@ release_name_from_version(const char *osver)
     case 6: return "Snow Leopard";
     case 7: return "Lion";
     case 8: return "Mountain Lion";
+    case 9: return "Mavericks";
     }
 
   return NULL;
diff --git a/contrib/subversion/subversion/libsvn_subr/version.c b/contrib/subversion/subversion/libsvn_subr/version.c
index d89a51221..b385a9442 100644
--- a/contrib/subversion/subversion/libsvn_subr/version.c
+++ b/contrib/subversion/subversion/libsvn_subr/version.c
@@ -136,7 +136,7 @@ svn_version_extended(svn_boolean_t verbose,
   info->build_time = NULL;
   info->build_host = SVN_BUILD_HOST;
   info->copyright = apr_pstrdup
-    (pool, _("Copyright (C) 2013 The Apache Software Foundation.\n"
+    (pool, _("Copyright (C) 2014 The Apache Software Foundation.\n"
              "This software consists of contributions made by many people;\n"
              "see the NOTICE file for more information.\n"
              "Subversion is open source software, see "
diff --git a/contrib/subversion/subversion/libsvn_wc/status.c b/contrib/subversion/subversion/libsvn_wc/status.c
index 1440b2ee5..fa57b0aee 100644
--- a/contrib/subversion/subversion/libsvn_wc/status.c
+++ b/contrib/subversion/subversion/libsvn_wc/status.c
@@ -242,144 +242,7 @@ struct file_baton
 
 /** Code **/
 
-/* Fill in *INFO with the information it would contain if it were
-   obtained from svn_wc__db_read_children_info. */
-static svn_error_t *
-read_info(const struct svn_wc__db_info_t **info,
-          const char *local_abspath,
-          svn_wc__db_t *db,
-          apr_pool_t *result_pool,
-          apr_pool_t *scratch_pool)
-{
-  struct svn_wc__db_info_t *mtb = apr_pcalloc(result_pool, sizeof(*mtb));
-  const svn_checksum_t *checksum;
-  const char *original_repos_relpath;
-
-  SVN_ERR(svn_wc__db_read_info(&mtb->status, &mtb->kind,
-                               &mtb->revnum, &mtb->repos_relpath,
-                               &mtb->repos_root_url, &mtb->repos_uuid,
-                               &mtb->changed_rev, &mtb->changed_date,
-                               &mtb->changed_author, &mtb->depth,
-                               &checksum, NULL, &original_repos_relpath, NULL,
-                               NULL, NULL, &mtb->lock, &mtb->recorded_size,
-                               &mtb->recorded_time, &mtb->changelist,
-                               &mtb->conflicted, &mtb->op_root,
-                               &mtb->had_props, &mtb->props_mod,
-                               &mtb->have_base, &mtb->have_more_work, NULL,
-                               db, local_abspath,
-                               result_pool, scratch_pool));
-
-  SVN_ERR(svn_wc__db_wclocked(&mtb->locked, db, local_abspath, scratch_pool));
-
-  /* Maybe we have to get some shadowed lock from BASE to make our test suite
-     happy... (It might be completely unrelated, but...) */
-  if (mtb->have_base
-      && (mtb->status == svn_wc__db_status_added
-          || mtb->status == svn_wc__db_status_deleted
-          || mtb->kind == svn_node_file))
-    {
-      svn_boolean_t update_root;
-      svn_wc__db_lock_t **lock_arg = NULL;
-
-      if (mtb->status == svn_wc__db_status_added
-          || mtb->status == svn_wc__db_status_deleted)
-        lock_arg = &mtb->lock;
-
-      SVN_ERR(svn_wc__db_base_get_info(NULL, NULL, NULL, NULL, NULL, NULL,
-                                       NULL, NULL, NULL, NULL, NULL, NULL,
-                                       lock_arg, NULL, NULL, &update_root,
-                                       db, local_abspath,
-                                       result_pool, scratch_pool));
-
-      mtb->file_external = (update_root && mtb->kind == svn_node_file);
-
-      if (mtb->status == svn_wc__db_status_deleted)
-        {
-          const char *moved_to_abspath;
-          const char *moved_to_op_root_abspath;
-
-          /* NOTE: we can't use op-root-ness as a condition here since a base
-           * node can be the root of a move and still not be an explicit
-           * op-root (having a working node with op_depth == pathelements).
-           *
-           * Both these (almost identical) situations showcase this:
-           *   svn mv a/b bb
-           *   svn del a
-           * and
-           *   svn mv a aa
-           *   svn mv aa/b bb
-           * In both, 'bb' is moved from 'a/b', but 'a/b' has no op_depth>0
-           * node at all, as its parent 'a' is locally deleted. */
-
-          SVN_ERR(svn_wc__db_scan_deletion(NULL,
-                                           &moved_to_abspath,
-                                           NULL,
-                                           &moved_to_op_root_abspath,
-                                           db, local_abspath,
-                                           scratch_pool, scratch_pool));
-          if (moved_to_abspath != NULL
-              && moved_to_op_root_abspath != NULL
-              && strcmp(moved_to_abspath, moved_to_op_root_abspath) == 0)
-            {
-              mtb->moved_to_abspath = apr_pstrdup(result_pool,
-                                                  moved_to_abspath);
-            }
-          /* ### ^^^ THIS SUCKS. For at least two reasons:
-           * 1) We scan the node deletion and that's technically not necessary.
-           *    We'd be fine to know if this is an actual root of a move.
-           * 2) From the elaborately calculated results, we backwards-guess
-           *    whether this is a root.
-           * It works ok, and this code only gets called when a node is an
-           * explicit target of a 'status'. But it would be better to do this
-           * differently.
-           * We could return moved-to via svn_wc__db_base_get_info() (called
-           * just above), but as moved-to is only intended to be returned for
-           * roots of a move, that doesn't fit too well. */
-        }
-    }
-
-  /* ### svn_wc__db_read_info() could easily return the moved-here flag. But
-   * for now... (The per-dir query for recursive status is far more optimal.)
-   * Note that this actually scans around to get the full path, for a bool.
-   * This bool then gets returned, later is evaluated, and if true leads to
-   * the same paths being scanned again. We'd want to obtain this bool here as
-   * cheaply as svn_wc__db_read_children_info() does. */
-  if (mtb->status == svn_wc__db_status_added)
-    {
-      svn_wc__db_status_t status;
 
-      SVN_ERR(svn_wc__db_scan_addition(&status, NULL, NULL, NULL, NULL,
-                                       NULL, NULL, NULL, NULL,
-                                       db, local_abspath,
-                                       result_pool, scratch_pool));
-
-      mtb->moved_here = (status == svn_wc__db_status_moved_here);
-      mtb->incomplete = (status == svn_wc__db_status_incomplete);
-    }
-
-  mtb->has_checksum = (checksum != NULL);
-  mtb->copied = (original_repos_relpath != NULL);
-
-#ifdef HAVE_SYMLINK
-  if (mtb->kind == svn_node_file
-      && (mtb->had_props || mtb->props_mod))
-    {
-      apr_hash_t *properties;
-
-      if (mtb->props_mod)
-        SVN_ERR(svn_wc__db_read_props(&properties, db, local_abspath,
-                                      scratch_pool, scratch_pool));
-      else
-        SVN_ERR(svn_wc__db_read_pristine_props(&properties, db, local_abspath,
-                                               scratch_pool, scratch_pool));
-
-      mtb->special = (NULL != svn_hash_gets(properties, SVN_PROP_SPECIAL));
-    }
-#endif
-  *info = mtb;
-
-  return SVN_NO_ERROR;
-}
 
 /* Return *REPOS_RELPATH and *REPOS_ROOT_URL for LOCAL_ABSPATH using
    information in INFO if available, falling back on
@@ -421,13 +284,42 @@ get_repos_root_url_relpath(const char **repos_relpath,
                                        db, local_abspath,
                                        result_pool, scratch_pool));
     }
-  else if (info->have_base)
+  else if (info->status == svn_wc__db_status_deleted
+           && !info->have_more_work
+           && info->have_base)
     {
       SVN_ERR(svn_wc__db_scan_base_repos(repos_relpath, repos_root_url,
                                          repos_uuid,
                                          db, local_abspath,
                                          result_pool, scratch_pool));
     }
+  else if (info->status == svn_wc__db_status_deleted)
+    {
+      const char *work_del_abspath;
+      const char *add_abspath;
+
+      /* Handles working DELETE and the special case where there is just
+         svn_wc__db_status_not_present in WORKING */
+
+      SVN_ERR(svn_wc__db_scan_deletion(NULL, NULL, &work_del_abspath, NULL,
+                                       db, local_abspath,
+                                       scratch_pool, scratch_pool));
+
+      /* The parent of what has been deleted must be added */
+      add_abspath = svn_dirent_dirname(work_del_abspath, scratch_pool);
+
+      SVN_ERR(svn_wc__db_scan_addition(NULL, NULL, repos_relpath,
+                                       repos_root_url, repos_uuid, NULL,
+                                       NULL, NULL, NULL,
+                                       db, add_abspath,
+                                       result_pool, scratch_pool));
+
+      *repos_relpath = svn_relpath_join(*repos_relpath,
+                                        svn_dirent_skip_ancestor(
+                                              add_abspath,
+                                              local_abspath),
+                                        result_pool);
+    }
   else
     {
       *repos_relpath = NULL;
@@ -493,7 +385,8 @@ assemble_status(svn_wc_status3_t **status,
 
 
   if (!info)
-    SVN_ERR(read_info(&info, local_abspath, db, result_pool, scratch_pool));
+    SVN_ERR(svn_wc__db_read_single_info(&info, db, local_abspath,
+                                        result_pool, scratch_pool));
 
   if (!info->repos_relpath || !parent_repos_relpath)
     switched_p = FALSE;
@@ -799,8 +692,11 @@ assemble_status(svn_wc_status3_t **status,
     stat->changelist = apr_pstrdup(result_pool, info->changelist);
 
   stat->moved_from_abspath = moved_from_abspath;
-  if (info->moved_to_abspath)
-    stat->moved_to_abspath = apr_pstrdup(result_pool, info->moved_to_abspath);
+
+  /* ### TODO: Handle multiple moved_to values properly */
+  if (info->moved_to)
+    stat->moved_to_abspath = apr_pstrdup(result_pool,
+                                         info->moved_to->moved_to_abspath);
 
   stat->file_external = info->file_external;
 
@@ -1345,8 +1241,8 @@ get_dir_status(const struct walk_status_baton *wb,
     SVN_ERR(err);
 
   if (!dir_info)
-    SVN_ERR(read_info(&dir_info, local_abspath, wb->db,
-                      scratch_pool, iterpool));
+      SVN_ERR(svn_wc__db_read_single_info(&dir_info, wb->db, local_abspath,
+                                          scratch_pool, iterpool));
 
   SVN_ERR(get_repos_root_url_relpath(&dir_repos_relpath, &dir_repos_root_url,
                                      &dir_repos_uuid, dir_info,
@@ -1506,8 +1402,9 @@ get_child_status(const struct walk_status_baton *wb,
   if (dirent->kind == svn_node_none)
     dirent = NULL;
 
-  SVN_ERR(read_info(&dir_info, parent_abspath, wb->db,
-                    scratch_pool, scratch_pool));
+  SVN_ERR(svn_wc__db_read_single_info(&dir_info,
+                                      wb->db, parent_abspath,
+                                      scratch_pool, scratch_pool));
 
   SVN_ERR(get_repos_root_url_relpath(&dir_repos_relpath, &dir_repos_root_url,
                                      &dir_repos_uuid, dir_info,
@@ -2710,7 +2607,8 @@ svn_wc__internal_walk_status(svn_wc__db_t *db,
       ignore_patterns = ignores;
     }
 
-  err = read_info(&info, local_abspath, db, scratch_pool, scratch_pool);
+  err = svn_wc__db_read_single_info(&info, db, local_abspath,
+                                    scratch_pool, scratch_pool);
 
   if (err)
     {
diff --git a/contrib/subversion/subversion/libsvn_wc/wc-checks.h b/contrib/subversion/subversion/libsvn_wc/wc-checks.h
index 14d7ef3a7..43a006645 100644
--- a/contrib/subversion/subversion/libsvn_wc/wc-checks.h
+++ b/contrib/subversion/subversion/libsvn_wc/wc-checks.h
@@ -1,4 +1,4 @@
-/* This file is automatically generated from wc-checks.sql and .dist_sandbox/subversion-1.8.8/subversion/libsvn_wc/token-map.h.
+/* This file is automatically generated from wc-checks.sql and .dist_sandbox/subversion-1.8.10/subversion/libsvn_wc/token-map.h.
  * Do not edit this file -- edit the source and rerun gen-make.py */
 
 #define STMT_VERIFICATION_TRIGGERS 0
diff --git a/contrib/subversion/subversion/libsvn_wc/wc-metadata.h b/contrib/subversion/subversion/libsvn_wc/wc-metadata.h
index 0ab17d453..b24f24ff3 100644
--- a/contrib/subversion/subversion/libsvn_wc/wc-metadata.h
+++ b/contrib/subversion/subversion/libsvn_wc/wc-metadata.h
@@ -1,4 +1,4 @@
-/* This file is automatically generated from wc-metadata.sql and .dist_sandbox/subversion-1.8.8/subversion/libsvn_wc/token-map.h.
+/* This file is automatically generated from wc-metadata.sql and .dist_sandbox/subversion-1.8.10/subversion/libsvn_wc/token-map.h.
  * Do not edit this file -- edit the source and rerun gen-make.py */
 
 #define STMT_CREATE_SCHEMA 0
@@ -163,6 +163,8 @@
 #define STMT_4_INFO {"STMT_INSTALL_SCHEMA_STATISTICS", NULL}
 #define STMT_4 \
   "ANALYZE sqlite_master; " \
+  "DELETE FROM sqlite_stat1 " \
+  "WHERE tbl in ('NODES', 'ACTUAL_NODE', 'LOCK', 'WC_LOCK'); " \
   "INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES " \
   "    ('NODES', 'sqlite_autoindex_NODES_1',               '8000 8000 2 1'); " \
   "INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES " \
diff --git a/contrib/subversion/subversion/libsvn_wc/wc-metadata.sql b/contrib/subversion/subversion/libsvn_wc/wc-metadata.sql
index 848293d2c..e4b226e09 100644
--- a/contrib/subversion/subversion/libsvn_wc/wc-metadata.sql
+++ b/contrib/subversion/subversion/libsvn_wc/wc-metadata.sql
@@ -597,6 +597,9 @@ CREATE UNIQUE INDEX I_EXTERNALS_DEFINED ON EXTERNALS (wc_id,
 -- STMT_INSTALL_SCHEMA_STATISTICS
 ANALYZE sqlite_master; /* Creates empty sqlite_stat1 if necessary */
 
+DELETE FROM sqlite_stat1
+WHERE tbl in ('NODES', 'ACTUAL_NODE', 'LOCK', 'WC_LOCK');
+
 INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
     ('NODES', 'sqlite_autoindex_NODES_1',               '8000 8000 2 1');
 INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES
diff --git a/contrib/subversion/subversion/libsvn_wc/wc-queries.h b/contrib/subversion/subversion/libsvn_wc/wc-queries.h
index 0246ee50b..2508bcf25 100644
--- a/contrib/subversion/subversion/libsvn_wc/wc-queries.h
+++ b/contrib/subversion/subversion/libsvn_wc/wc-queries.h
@@ -1,4 +1,4 @@
-/* This file is automatically generated from wc-queries.sql and .dist_sandbox/subversion-1.8.8/subversion/libsvn_wc/token-map.h.
+/* This file is automatically generated from wc-queries.sql and .dist_sandbox/subversion-1.8.10/subversion/libsvn_wc/token-map.h.
  * Do not edit this file -- edit the source and rerun gen-make.py */
 
 #define STMT_SELECT_NODE_INFO 0
@@ -221,7 +221,7 @@
 #define STMT_21 \
   "DELETE " \
   "FROM NODES " \
-  "WHERE wc_id = ?1 AND local_relpath = ?2 " \
+  "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
   ""
 
 #define STMT_DELETE_ACTUAL_FOR_BASE_RECURSIVE 22
@@ -516,9 +516,18 @@
   "LIMIT 1 " \
   ""
 
-#define STMT_SELECT_OP_DEPTH_MOVED_TO 50
-#define STMT_50_INFO {"STMT_SELECT_OP_DEPTH_MOVED_TO", NULL}
+#define STMT_SELECT_MOVED_TO_NODE 50
+#define STMT_50_INFO {"STMT_SELECT_MOVED_TO_NODE", NULL}
 #define STMT_50 \
+  "SELECT op_depth, moved_to " \
+  "FROM nodes " \
+  "WHERE wc_id = ?1 AND local_relpath = ?2 AND moved_to IS NOT NULL " \
+  "ORDER BY op_depth DESC " \
+  ""
+
+#define STMT_SELECT_OP_DEPTH_MOVED_TO 51
+#define STMT_51_INFO {"STMT_SELECT_OP_DEPTH_MOVED_TO", NULL}
+#define STMT_51 \
   "SELECT op_depth, moved_to, repos_path, revision " \
   "FROM nodes " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 " \
@@ -527,26 +536,26 @@
   "ORDER BY op_depth DESC " \
   ""
 
-#define STMT_SELECT_MOVED_TO 51
-#define STMT_51_INFO {"STMT_SELECT_MOVED_TO", NULL}
-#define STMT_51 \
+#define STMT_SELECT_MOVED_TO 52
+#define STMT_52_INFO {"STMT_SELECT_MOVED_TO", NULL}
+#define STMT_52 \
   "SELECT moved_to " \
   "FROM nodes " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
   ""
 
-#define STMT_SELECT_MOVED_HERE 52
-#define STMT_52_INFO {"STMT_SELECT_MOVED_HERE", NULL}
-#define STMT_52 \
+#define STMT_SELECT_MOVED_HERE 53
+#define STMT_53_INFO {"STMT_SELECT_MOVED_HERE", NULL}
+#define STMT_53 \
   "SELECT moved_here, presence, repos_path, revision " \
   "FROM nodes " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth >= ?3 " \
   "ORDER BY op_depth " \
   ""
 
-#define STMT_SELECT_MOVED_BACK 53
-#define STMT_53_INFO {"STMT_SELECT_MOVED_BACK", NULL}
-#define STMT_53 \
+#define STMT_SELECT_MOVED_BACK 54
+#define STMT_54_INFO {"STMT_SELECT_MOVED_BACK", NULL}
+#define STMT_54 \
   "SELECT u.local_relpath, " \
   "       u.presence, u.repos_id, u.repos_path, u.revision, " \
   "       l.presence, l.repos_id, l.repos_path, l.revision, " \
@@ -572,9 +581,9 @@
   "  AND u.op_depth = ?4 " \
   ""
 
-#define STMT_DELETE_MOVED_BACK 54
-#define STMT_54_INFO {"STMT_DELETE_MOVED_BACK", NULL}
-#define STMT_54 \
+#define STMT_DELETE_MOVED_BACK 55
+#define STMT_55_INFO {"STMT_DELETE_MOVED_BACK", NULL}
+#define STMT_55 \
   "DELETE FROM nodes " \
   "WHERE wc_id = ?1 " \
   "  AND (local_relpath = ?2 " \
@@ -582,71 +591,71 @@
   "  AND op_depth = ?3 " \
   ""
 
-#define STMT_DELETE_LOCK 55
-#define STMT_55_INFO {"STMT_DELETE_LOCK", NULL}
-#define STMT_55 \
+#define STMT_DELETE_LOCK 56
+#define STMT_56_INFO {"STMT_DELETE_LOCK", NULL}
+#define STMT_56 \
   "DELETE FROM lock " \
   "WHERE repos_id = ?1 AND repos_relpath = ?2 " \
   ""
 
-#define STMT_DELETE_LOCK_RECURSIVELY 56
-#define STMT_56_INFO {"STMT_DELETE_LOCK_RECURSIVELY", NULL}
-#define STMT_56 \
+#define STMT_DELETE_LOCK_RECURSIVELY 57
+#define STMT_57_INFO {"STMT_DELETE_LOCK_RECURSIVELY", NULL}
+#define STMT_57 \
   "DELETE FROM lock " \
   "WHERE repos_id = ?1 AND (repos_relpath = ?2 OR (((repos_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((repos_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
   ""
 
-#define STMT_CLEAR_BASE_NODE_RECURSIVE_DAV_CACHE 57
-#define STMT_57_INFO {"STMT_CLEAR_BASE_NODE_RECURSIVE_DAV_CACHE", NULL}
-#define STMT_57 \
+#define STMT_CLEAR_BASE_NODE_RECURSIVE_DAV_CACHE 58
+#define STMT_58_INFO {"STMT_CLEAR_BASE_NODE_RECURSIVE_DAV_CACHE", NULL}
+#define STMT_58 \
   "UPDATE nodes SET dav_cache = NULL " \
   "WHERE dav_cache IS NOT NULL AND wc_id = ?1 AND op_depth = 0 " \
   "  AND (local_relpath = ?2 " \
   "       OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
   ""
 
-#define STMT_RECURSIVE_UPDATE_NODE_REPO 58
-#define STMT_58_INFO {"STMT_RECURSIVE_UPDATE_NODE_REPO", NULL}
-#define STMT_58 \
+#define STMT_RECURSIVE_UPDATE_NODE_REPO 59
+#define STMT_59_INFO {"STMT_RECURSIVE_UPDATE_NODE_REPO", NULL}
+#define STMT_59 \
   "UPDATE nodes SET repos_id = ?4, dav_cache = NULL " \
   "WHERE (wc_id = ?1 AND local_relpath = ?2 AND repos_id = ?3) " \
   "   OR (wc_id = ?1 AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
   "       AND repos_id = ?3) " \
   ""
 
-#define STMT_UPDATE_LOCK_REPOS_ID 59
-#define STMT_59_INFO {"STMT_UPDATE_LOCK_REPOS_ID", NULL}
-#define STMT_59 \
+#define STMT_UPDATE_LOCK_REPOS_ID 60
+#define STMT_60_INFO {"STMT_UPDATE_LOCK_REPOS_ID", NULL}
+#define STMT_60 \
   "UPDATE lock SET repos_id = ?2 " \
   "WHERE repos_id = ?1 " \
   ""
 
-#define STMT_UPDATE_NODE_FILEINFO 60
-#define STMT_60_INFO {"STMT_UPDATE_NODE_FILEINFO", NULL}
-#define STMT_60 \
+#define STMT_UPDATE_NODE_FILEINFO 61
+#define STMT_61_INFO {"STMT_UPDATE_NODE_FILEINFO", NULL}
+#define STMT_61 \
   "UPDATE nodes SET translated_size = ?3, last_mod_time = ?4 " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 " \
   "  AND op_depth = (SELECT MAX(op_depth) FROM nodes " \
   "                  WHERE wc_id = ?1 AND local_relpath = ?2) " \
   ""
 
-#define STMT_INSERT_ACTUAL_CONFLICT 61
-#define STMT_61_INFO {"STMT_INSERT_ACTUAL_CONFLICT", NULL}
-#define STMT_61 \
+#define STMT_INSERT_ACTUAL_CONFLICT 62
+#define STMT_62_INFO {"STMT_INSERT_ACTUAL_CONFLICT", NULL}
+#define STMT_62 \
   "INSERT INTO actual_node (wc_id, local_relpath, conflict_data, parent_relpath) " \
   "VALUES (?1, ?2, ?3, ?4) " \
   ""
 
-#define STMT_UPDATE_ACTUAL_CONFLICT 62
-#define STMT_62_INFO {"STMT_UPDATE_ACTUAL_CONFLICT", NULL}
-#define STMT_62 \
+#define STMT_UPDATE_ACTUAL_CONFLICT 63
+#define STMT_63_INFO {"STMT_UPDATE_ACTUAL_CONFLICT", NULL}
+#define STMT_63 \
   "UPDATE actual_node SET conflict_data = ?3 " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 " \
   ""
 
-#define STMT_UPDATE_ACTUAL_CHANGELISTS 63
-#define STMT_63_INFO {"STMT_UPDATE_ACTUAL_CHANGELISTS", NULL}
-#define STMT_63 \
+#define STMT_UPDATE_ACTUAL_CHANGELISTS 64
+#define STMT_64_INFO {"STMT_UPDATE_ACTUAL_CHANGELISTS", NULL}
+#define STMT_64 \
   "UPDATE actual_node SET changelist = ?3 " \
   "WHERE wc_id = ?1 " \
   "  AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
@@ -656,16 +665,16 @@
   "                         AND kind = 'file') " \
   ""
 
-#define STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST 64
-#define STMT_64_INFO {"STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST", NULL}
-#define STMT_64 \
+#define STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST 65
+#define STMT_65_INFO {"STMT_UPDATE_ACTUAL_CLEAR_CHANGELIST", NULL}
+#define STMT_65 \
   "UPDATE actual_node SET changelist = NULL " \
   " WHERE wc_id = ?1 AND local_relpath = ?2 " \
   ""
 
-#define STMT_MARK_SKIPPED_CHANGELIST_DIRS 65
-#define STMT_65_INFO {"STMT_MARK_SKIPPED_CHANGELIST_DIRS", NULL}
-#define STMT_65 \
+#define STMT_MARK_SKIPPED_CHANGELIST_DIRS 66
+#define STMT_66_INFO {"STMT_MARK_SKIPPED_CHANGELIST_DIRS", NULL}
+#define STMT_66 \
   "INSERT INTO changelist_list (wc_id, local_relpath, notify, changelist) " \
   "SELECT wc_id, local_relpath, 7, ?3 " \
   "FROM targets_list " \
@@ -674,17 +683,17 @@
   "  AND kind = 'dir' " \
   ""
 
-#define STMT_RESET_ACTUAL_WITH_CHANGELIST 66
-#define STMT_66_INFO {"STMT_RESET_ACTUAL_WITH_CHANGELIST", NULL}
-#define STMT_66 \
+#define STMT_RESET_ACTUAL_WITH_CHANGELIST 67
+#define STMT_67_INFO {"STMT_RESET_ACTUAL_WITH_CHANGELIST", NULL}
+#define STMT_67 \
   "REPLACE INTO actual_node ( " \
   "  wc_id, local_relpath, parent_relpath, changelist) " \
   "VALUES (?1, ?2, ?3, ?4) " \
   ""
 
-#define STMT_CREATE_CHANGELIST_LIST 67
-#define STMT_67_INFO {"STMT_CREATE_CHANGELIST_LIST", NULL}
-#define STMT_67 \
+#define STMT_CREATE_CHANGELIST_LIST 68
+#define STMT_68_INFO {"STMT_CREATE_CHANGELIST_LIST", NULL}
+#define STMT_68 \
   "DROP TABLE IF EXISTS changelist_list; " \
   "CREATE TEMPORARY TABLE changelist_list ( " \
   "  wc_id  INTEGER NOT NULL, " \
@@ -695,9 +704,9 @@
   ") " \
   ""
 
-#define STMT_CREATE_CHANGELIST_TRIGGER 68
-#define STMT_68_INFO {"STMT_CREATE_CHANGELIST_TRIGGER", NULL}
-#define STMT_68 \
+#define STMT_CREATE_CHANGELIST_TRIGGER 69
+#define STMT_69_INFO {"STMT_CREATE_CHANGELIST_TRIGGER", NULL}
+#define STMT_69 \
   "DROP TRIGGER IF EXISTS   trigger_changelist_list_change; " \
   "CREATE TEMPORARY TRIGGER trigger_changelist_list_change " \
   "BEFORE UPDATE ON actual_node " \
@@ -712,25 +721,25 @@
   "END " \
   ""
 
-#define STMT_FINALIZE_CHANGELIST 69
-#define STMT_69_INFO {"STMT_FINALIZE_CHANGELIST", NULL}
-#define STMT_69 \
+#define STMT_FINALIZE_CHANGELIST 70
+#define STMT_70_INFO {"STMT_FINALIZE_CHANGELIST", NULL}
+#define STMT_70 \
   "DROP TRIGGER trigger_changelist_list_change; " \
   "DROP TABLE changelist_list; " \
   "DROP TABLE targets_list " \
   ""
 
-#define STMT_SELECT_CHANGELIST_LIST 70
-#define STMT_70_INFO {"STMT_SELECT_CHANGELIST_LIST", NULL}
-#define STMT_70 \
+#define STMT_SELECT_CHANGELIST_LIST 71
+#define STMT_71_INFO {"STMT_SELECT_CHANGELIST_LIST", NULL}
+#define STMT_71 \
   "SELECT wc_id, local_relpath, notify, changelist " \
   "FROM changelist_list " \
   "ORDER BY wc_id, local_relpath ASC, notify DESC " \
   ""
 
-#define STMT_CREATE_TARGETS_LIST 71
-#define STMT_71_INFO {"STMT_CREATE_TARGETS_LIST", NULL}
-#define STMT_71 \
+#define STMT_CREATE_TARGETS_LIST 72
+#define STMT_72_INFO {"STMT_CREATE_TARGETS_LIST", NULL}
+#define STMT_72 \
   "DROP TABLE IF EXISTS targets_list; " \
   "CREATE TEMPORARY TABLE targets_list ( " \
   "  wc_id  INTEGER NOT NULL, " \
@@ -741,15 +750,15 @@
   "  ); " \
   ""
 
-#define STMT_DROP_TARGETS_LIST 72
-#define STMT_72_INFO {"STMT_DROP_TARGETS_LIST", NULL}
-#define STMT_72 \
+#define STMT_DROP_TARGETS_LIST 73
+#define STMT_73_INFO {"STMT_DROP_TARGETS_LIST", NULL}
+#define STMT_73 \
   "DROP TABLE targets_list " \
   ""
 
-#define STMT_INSERT_TARGET 73
-#define STMT_73_INFO {"STMT_INSERT_TARGET", NULL}
-#define STMT_73 \
+#define STMT_INSERT_TARGET 74
+#define STMT_74_INFO {"STMT_INSERT_TARGET", NULL}
+#define STMT_74 \
   "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
   "SELECT wc_id, local_relpath, parent_relpath, kind " \
   "FROM nodes_current " \
@@ -757,9 +766,9 @@
   "  AND local_relpath = ?2 " \
   ""
 
-#define STMT_INSERT_TARGET_DEPTH_FILES 74
-#define STMT_74_INFO {"STMT_INSERT_TARGET_DEPTH_FILES", NULL}
-#define STMT_74 \
+#define STMT_INSERT_TARGET_DEPTH_FILES 75
+#define STMT_75_INFO {"STMT_INSERT_TARGET_DEPTH_FILES", NULL}
+#define STMT_75 \
   "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
   "SELECT wc_id, local_relpath, parent_relpath, kind " \
   "FROM nodes_current " \
@@ -768,9 +777,9 @@
   "  AND kind = 'file' " \
   ""
 
-#define STMT_INSERT_TARGET_DEPTH_IMMEDIATES 75
-#define STMT_75_INFO {"STMT_INSERT_TARGET_DEPTH_IMMEDIATES", NULL}
-#define STMT_75 \
+#define STMT_INSERT_TARGET_DEPTH_IMMEDIATES 76
+#define STMT_76_INFO {"STMT_INSERT_TARGET_DEPTH_IMMEDIATES", NULL}
+#define STMT_76 \
   "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
   "SELECT wc_id, local_relpath, parent_relpath, kind " \
   "FROM nodes_current " \
@@ -778,9 +787,9 @@
   "  AND parent_relpath = ?2 " \
   ""
 
-#define STMT_INSERT_TARGET_DEPTH_INFINITY 76
-#define STMT_76_INFO {"STMT_INSERT_TARGET_DEPTH_INFINITY", NULL}
-#define STMT_76 \
+#define STMT_INSERT_TARGET_DEPTH_INFINITY 77
+#define STMT_77_INFO {"STMT_INSERT_TARGET_DEPTH_INFINITY", NULL}
+#define STMT_77 \
   "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
   "SELECT wc_id, local_relpath, parent_relpath, kind " \
   "FROM nodes_current " \
@@ -788,9 +797,9 @@
   "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
   ""
 
-#define STMT_INSERT_TARGET_WITH_CHANGELIST 77
-#define STMT_77_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST", NULL}
-#define STMT_77 \
+#define STMT_INSERT_TARGET_WITH_CHANGELIST 78
+#define STMT_78_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST", NULL}
+#define STMT_78 \
   "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
   "SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \
   "  FROM actual_node AS A JOIN nodes_current AS N " \
@@ -800,9 +809,9 @@
   "   AND A.changelist = ?3 " \
   ""
 
-#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_FILES 78
-#define STMT_78_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_FILES", NULL}
-#define STMT_78 \
+#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_FILES 79
+#define STMT_79_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_FILES", NULL}
+#define STMT_79 \
   "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
   "SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \
   "  FROM actual_node AS A JOIN nodes_current AS N " \
@@ -813,9 +822,9 @@
   "   AND A.changelist = ?3 " \
   ""
 
-#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_IMMEDIATES 79
-#define STMT_79_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_IMMEDIATES", NULL}
-#define STMT_79 \
+#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_IMMEDIATES 80
+#define STMT_80_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_IMMEDIATES", NULL}
+#define STMT_80 \
   "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
   "SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \
   "  FROM actual_node AS A JOIN nodes_current AS N " \
@@ -825,9 +834,9 @@
   "  AND A.changelist = ?3 " \
   ""
 
-#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_INFINITY 80
-#define STMT_80_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_INFINITY", NULL}
-#define STMT_80 \
+#define STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_INFINITY 81
+#define STMT_81_INFO {"STMT_INSERT_TARGET_WITH_CHANGELIST_DEPTH_INFINITY", NULL}
+#define STMT_81 \
   "INSERT INTO targets_list(wc_id, local_relpath, parent_relpath, kind) " \
   "SELECT N.wc_id, N.local_relpath, N.parent_relpath, N.kind " \
   "  FROM actual_node AS A JOIN nodes_current AS N " \
@@ -837,18 +846,18 @@
   "   AND A.changelist = ?3 " \
   ""
 
-#define STMT_INSERT_ACTUAL_EMPTIES 81
-#define STMT_81_INFO {"STMT_INSERT_ACTUAL_EMPTIES", NULL}
-#define STMT_81 \
+#define STMT_INSERT_ACTUAL_EMPTIES 82
+#define STMT_82_INFO {"STMT_INSERT_ACTUAL_EMPTIES", NULL}
+#define STMT_82 \
   "INSERT OR IGNORE INTO actual_node ( " \
   "     wc_id, local_relpath, parent_relpath) " \
   "SELECT wc_id, local_relpath, parent_relpath " \
   "FROM targets_list " \
   ""
 
-#define STMT_DELETE_ACTUAL_EMPTY 82
-#define STMT_82_INFO {"STMT_DELETE_ACTUAL_EMPTY", NULL}
-#define STMT_82 \
+#define STMT_DELETE_ACTUAL_EMPTY 83
+#define STMT_83_INFO {"STMT_DELETE_ACTUAL_EMPTY", NULL}
+#define STMT_83 \
   "DELETE FROM actual_node " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 " \
   "  AND properties IS NULL " \
@@ -860,9 +869,9 @@
   "  AND left_checksum IS NULL " \
   ""
 
-#define STMT_DELETE_ACTUAL_EMPTIES 83
-#define STMT_83_INFO {"STMT_DELETE_ACTUAL_EMPTIES", NULL}
-#define STMT_83 \
+#define STMT_DELETE_ACTUAL_EMPTIES 84
+#define STMT_84_INFO {"STMT_DELETE_ACTUAL_EMPTIES", NULL}
+#define STMT_84 \
   "DELETE FROM actual_node " \
   "WHERE wc_id = ?1 " \
   "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
@@ -875,25 +884,25 @@
   "  AND left_checksum IS NULL " \
   ""
 
-#define STMT_DELETE_BASE_NODE 84
-#define STMT_84_INFO {"STMT_DELETE_BASE_NODE", NULL}
-#define STMT_84 \
+#define STMT_DELETE_BASE_NODE 85
+#define STMT_85_INFO {"STMT_DELETE_BASE_NODE", NULL}
+#define STMT_85 \
   "DELETE FROM nodes " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
   ""
 
-#define STMT_DELETE_WORKING_NODE 85
-#define STMT_85_INFO {"STMT_DELETE_WORKING_NODE", NULL}
-#define STMT_85 \
+#define STMT_DELETE_WORKING_NODE 86
+#define STMT_86_INFO {"STMT_DELETE_WORKING_NODE", NULL}
+#define STMT_86 \
   "DELETE FROM nodes " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 " \
   "  AND op_depth = (SELECT MAX(op_depth) FROM nodes " \
   "                  WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > 0) " \
   ""
 
-#define STMT_DELETE_LOWEST_WORKING_NODE 86
-#define STMT_86_INFO {"STMT_DELETE_LOWEST_WORKING_NODE", NULL}
-#define STMT_86 \
+#define STMT_DELETE_LOWEST_WORKING_NODE 87
+#define STMT_87_INFO {"STMT_DELETE_LOWEST_WORKING_NODE", NULL}
+#define STMT_87 \
   "DELETE FROM nodes " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 " \
   "  AND op_depth = (SELECT MIN(op_depth) FROM nodes " \
@@ -901,16 +910,16 @@
   "  AND presence = 'base-deleted' " \
   ""
 
-#define STMT_DELETE_ALL_LAYERS 87
-#define STMT_87_INFO {"STMT_DELETE_ALL_LAYERS", NULL}
-#define STMT_87 \
+#define STMT_DELETE_NODE_ALL_LAYERS 88
+#define STMT_88_INFO {"STMT_DELETE_NODE_ALL_LAYERS", NULL}
+#define STMT_88 \
   "DELETE FROM nodes " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 " \
   ""
 
-#define STMT_DELETE_NODES_ABOVE_DEPTH_RECURSIVE 88
-#define STMT_88_INFO {"STMT_DELETE_NODES_ABOVE_DEPTH_RECURSIVE", NULL}
-#define STMT_88 \
+#define STMT_DELETE_NODES_ABOVE_DEPTH_RECURSIVE 89
+#define STMT_89_INFO {"STMT_DELETE_NODES_ABOVE_DEPTH_RECURSIVE", NULL}
+#define STMT_89 \
   "DELETE FROM nodes " \
   "WHERE wc_id = ?1 " \
   "  AND (local_relpath = ?2 " \
@@ -918,25 +927,25 @@
   "  AND op_depth >= ?3 " \
   ""
 
-#define STMT_DELETE_ACTUAL_NODE 89
-#define STMT_89_INFO {"STMT_DELETE_ACTUAL_NODE", NULL}
-#define STMT_89 \
+#define STMT_DELETE_ACTUAL_NODE 90
+#define STMT_90_INFO {"STMT_DELETE_ACTUAL_NODE", NULL}
+#define STMT_90 \
   "DELETE FROM actual_node " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 " \
   ""
 
-#define STMT_DELETE_ACTUAL_NODE_RECURSIVE 90
-#define STMT_90_INFO {"STMT_DELETE_ACTUAL_NODE_RECURSIVE", NULL}
-#define STMT_90 \
+#define STMT_DELETE_ACTUAL_NODE_RECURSIVE 91
+#define STMT_91_INFO {"STMT_DELETE_ACTUAL_NODE_RECURSIVE", NULL}
+#define STMT_91 \
   "DELETE FROM actual_node " \
   "WHERE wc_id = ?1 " \
   "  AND (local_relpath = ?2 " \
   "       OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
   ""
 
-#define STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST 91
-#define STMT_91_INFO {"STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST", NULL}
-#define STMT_91 \
+#define STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST 92
+#define STMT_92_INFO {"STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST", NULL}
+#define STMT_92 \
   "DELETE FROM actual_node " \
   "WHERE wc_id = ?1 " \
   "  AND local_relpath = ?2 " \
@@ -946,9 +955,9 @@
   "                        AND c.kind = 'file')) " \
   ""
 
-#define STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE 92
-#define STMT_92_INFO {"STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE", NULL}
-#define STMT_92 \
+#define STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE 93
+#define STMT_93_INFO {"STMT_DELETE_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE", NULL}
+#define STMT_93 \
   "DELETE FROM actual_node " \
   "WHERE wc_id = ?1 " \
   "  AND (local_relpath = ?2 " \
@@ -960,9 +969,9 @@
   "                        AND c.kind = 'file')) " \
   ""
 
-#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST 93
-#define STMT_93_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST", NULL}
-#define STMT_93 \
+#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST 94
+#define STMT_94_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST", NULL}
+#define STMT_94 \
   "UPDATE actual_node " \
   "SET properties = NULL, " \
   "    text_mod = NULL, " \
@@ -974,9 +983,9 @@
   "WHERE wc_id = ?1 AND local_relpath = ?2 " \
   ""
 
-#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE 94
-#define STMT_94_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE", NULL}
-#define STMT_94 \
+#define STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE 95
+#define STMT_95_INFO {"STMT_CLEAR_ACTUAL_NODE_LEAVING_CHANGELIST_RECURSIVE", NULL}
+#define STMT_95 \
   "UPDATE actual_node " \
   "SET properties = NULL, " \
   "    text_mod = NULL, " \
@@ -990,108 +999,108 @@
   "       OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
   ""
 
-#define STMT_UPDATE_NODE_BASE_DEPTH 95
-#define STMT_95_INFO {"STMT_UPDATE_NODE_BASE_DEPTH", NULL}
-#define STMT_95 \
+#define STMT_UPDATE_NODE_BASE_DEPTH 96
+#define STMT_96_INFO {"STMT_UPDATE_NODE_BASE_DEPTH", NULL}
+#define STMT_96 \
   "UPDATE nodes SET depth = ?3 " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
   "  AND kind='dir' " \
   ""
 
-#define STMT_UPDATE_NODE_BASE_PRESENCE 96
-#define STMT_96_INFO {"STMT_UPDATE_NODE_BASE_PRESENCE", NULL}
-#define STMT_96 \
+#define STMT_UPDATE_NODE_BASE_PRESENCE 97
+#define STMT_97_INFO {"STMT_UPDATE_NODE_BASE_PRESENCE", NULL}
+#define STMT_97 \
   "UPDATE nodes SET presence = ?3 " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
   ""
 
-#define STMT_UPDATE_BASE_NODE_PRESENCE_REVNUM_AND_REPOS_PATH 97
-#define STMT_97_INFO {"STMT_UPDATE_BASE_NODE_PRESENCE_REVNUM_AND_REPOS_PATH", NULL}
-#define STMT_97 \
+#define STMT_UPDATE_BASE_NODE_PRESENCE_REVNUM_AND_REPOS_PATH 98
+#define STMT_98_INFO {"STMT_UPDATE_BASE_NODE_PRESENCE_REVNUM_AND_REPOS_PATH", NULL}
+#define STMT_98 \
   "UPDATE nodes SET presence = ?3, revision = ?4, repos_path = ?5 " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
   ""
 
-#define STMT_LOOK_FOR_WORK 98
-#define STMT_98_INFO {"STMT_LOOK_FOR_WORK", NULL}
-#define STMT_98 \
+#define STMT_LOOK_FOR_WORK 99
+#define STMT_99_INFO {"STMT_LOOK_FOR_WORK", NULL}
+#define STMT_99 \
   "SELECT id FROM work_queue LIMIT 1 " \
   ""
 
-#define STMT_INSERT_WORK_ITEM 99
-#define STMT_99_INFO {"STMT_INSERT_WORK_ITEM", NULL}
-#define STMT_99 \
+#define STMT_INSERT_WORK_ITEM 100
+#define STMT_100_INFO {"STMT_INSERT_WORK_ITEM", NULL}
+#define STMT_100 \
   "INSERT INTO work_queue (work) VALUES (?1) " \
   ""
 
-#define STMT_SELECT_WORK_ITEM 100
-#define STMT_100_INFO {"STMT_SELECT_WORK_ITEM", NULL}
-#define STMT_100 \
+#define STMT_SELECT_WORK_ITEM 101
+#define STMT_101_INFO {"STMT_SELECT_WORK_ITEM", NULL}
+#define STMT_101 \
   "SELECT id, work FROM work_queue ORDER BY id LIMIT 1 " \
   ""
 
-#define STMT_DELETE_WORK_ITEM 101
-#define STMT_101_INFO {"STMT_DELETE_WORK_ITEM", NULL}
-#define STMT_101 \
+#define STMT_DELETE_WORK_ITEM 102
+#define STMT_102_INFO {"STMT_DELETE_WORK_ITEM", NULL}
+#define STMT_102 \
   "DELETE FROM work_queue WHERE id = ?1 " \
   ""
 
-#define STMT_INSERT_OR_IGNORE_PRISTINE 102
-#define STMT_102_INFO {"STMT_INSERT_OR_IGNORE_PRISTINE", NULL}
-#define STMT_102 \
+#define STMT_INSERT_OR_IGNORE_PRISTINE 103
+#define STMT_103_INFO {"STMT_INSERT_OR_IGNORE_PRISTINE", NULL}
+#define STMT_103 \
   "INSERT OR IGNORE INTO pristine (checksum, md5_checksum, size, refcount) " \
   "VALUES (?1, ?2, ?3, 0) " \
   ""
 
-#define STMT_INSERT_PRISTINE 103
-#define STMT_103_INFO {"STMT_INSERT_PRISTINE", NULL}
-#define STMT_103 \
+#define STMT_INSERT_PRISTINE 104
+#define STMT_104_INFO {"STMT_INSERT_PRISTINE", NULL}
+#define STMT_104 \
   "INSERT INTO pristine (checksum, md5_checksum, size, refcount) " \
   "VALUES (?1, ?2, ?3, 0) " \
   ""
 
-#define STMT_SELECT_PRISTINE 104
-#define STMT_104_INFO {"STMT_SELECT_PRISTINE", NULL}
-#define STMT_104 \
+#define STMT_SELECT_PRISTINE 105
+#define STMT_105_INFO {"STMT_SELECT_PRISTINE", NULL}
+#define STMT_105 \
   "SELECT md5_checksum " \
   "FROM pristine " \
   "WHERE checksum = ?1 " \
   ""
 
-#define STMT_SELECT_PRISTINE_SIZE 105
-#define STMT_105_INFO {"STMT_SELECT_PRISTINE_SIZE", NULL}
-#define STMT_105 \
+#define STMT_SELECT_PRISTINE_SIZE 106
+#define STMT_106_INFO {"STMT_SELECT_PRISTINE_SIZE", NULL}
+#define STMT_106 \
   "SELECT size " \
   "FROM pristine " \
   "WHERE checksum = ?1 LIMIT 1 " \
   ""
 
-#define STMT_SELECT_PRISTINE_BY_MD5 106
-#define STMT_106_INFO {"STMT_SELECT_PRISTINE_BY_MD5", NULL}
-#define STMT_106 \
+#define STMT_SELECT_PRISTINE_BY_MD5 107
+#define STMT_107_INFO {"STMT_SELECT_PRISTINE_BY_MD5", NULL}
+#define STMT_107 \
   "SELECT checksum " \
   "FROM pristine " \
   "WHERE md5_checksum = ?1 " \
   ""
 
-#define STMT_SELECT_UNREFERENCED_PRISTINES 107
-#define STMT_107_INFO {"STMT_SELECT_UNREFERENCED_PRISTINES", NULL}
-#define STMT_107 \
+#define STMT_SELECT_UNREFERENCED_PRISTINES 108
+#define STMT_108_INFO {"STMT_SELECT_UNREFERENCED_PRISTINES", NULL}
+#define STMT_108 \
   "SELECT checksum " \
   "FROM pristine " \
   "WHERE refcount = 0 " \
   ""
 
-#define STMT_DELETE_PRISTINE_IF_UNREFERENCED 108
-#define STMT_108_INFO {"STMT_DELETE_PRISTINE_IF_UNREFERENCED", NULL}
-#define STMT_108 \
+#define STMT_DELETE_PRISTINE_IF_UNREFERENCED 109
+#define STMT_109_INFO {"STMT_DELETE_PRISTINE_IF_UNREFERENCED", NULL}
+#define STMT_109 \
   "DELETE FROM pristine " \
   "WHERE checksum = ?1 AND refcount = 0 " \
   ""
 
-#define STMT_SELECT_COPY_PRISTINES 109
-#define STMT_109_INFO {"STMT_SELECT_COPY_PRISTINES", NULL}
-#define STMT_109 \
+#define STMT_SELECT_COPY_PRISTINES 110
+#define STMT_110_INFO {"STMT_SELECT_COPY_PRISTINES", NULL}
+#define STMT_110 \
   "SELECT n.checksum, md5_checksum, size " \
   "FROM nodes_current n " \
   "LEFT JOIN pristine p ON n.checksum = p.checksum " \
@@ -1109,62 +1118,62 @@
   "  AND n.checksum IS NOT NULL " \
   ""
 
-#define STMT_VACUUM 110
-#define STMT_110_INFO {"STMT_VACUUM", NULL}
-#define STMT_110 \
+#define STMT_VACUUM 111
+#define STMT_111_INFO {"STMT_VACUUM", NULL}
+#define STMT_111 \
   "VACUUM " \
   ""
 
-#define STMT_SELECT_CONFLICT_VICTIMS 111
-#define STMT_111_INFO {"STMT_SELECT_CONFLICT_VICTIMS", NULL}
-#define STMT_111 \
+#define STMT_SELECT_CONFLICT_VICTIMS 112
+#define STMT_112_INFO {"STMT_SELECT_CONFLICT_VICTIMS", NULL}
+#define STMT_112 \
   "SELECT local_relpath, conflict_data " \
   "FROM actual_node " \
   "WHERE wc_id = ?1 AND parent_relpath = ?2 AND " \
   "  NOT (conflict_data IS NULL) " \
   ""
 
-#define STMT_INSERT_WC_LOCK 112
-#define STMT_112_INFO {"STMT_INSERT_WC_LOCK", NULL}
-#define STMT_112 \
+#define STMT_INSERT_WC_LOCK 113
+#define STMT_113_INFO {"STMT_INSERT_WC_LOCK", NULL}
+#define STMT_113 \
   "INSERT INTO wc_lock (wc_id, local_dir_relpath, locked_levels) " \
   "VALUES (?1, ?2, ?3) " \
   ""
 
-#define STMT_SELECT_WC_LOCK 113
-#define STMT_113_INFO {"STMT_SELECT_WC_LOCK", NULL}
-#define STMT_113 \
+#define STMT_SELECT_WC_LOCK 114
+#define STMT_114_INFO {"STMT_SELECT_WC_LOCK", NULL}
+#define STMT_114 \
   "SELECT locked_levels FROM wc_lock " \
   "WHERE wc_id = ?1 AND local_dir_relpath = ?2 " \
   ""
 
-#define STMT_SELECT_ANCESTOR_WCLOCKS 114
-#define STMT_114_INFO {"STMT_SELECT_ANCESTOR_WCLOCKS", NULL}
-#define STMT_114 \
+#define STMT_SELECT_ANCESTOR_WCLOCKS 115
+#define STMT_115_INFO {"STMT_SELECT_ANCESTOR_WCLOCKS", NULL}
+#define STMT_115 \
   "SELECT local_dir_relpath, locked_levels FROM wc_lock " \
   "WHERE wc_id = ?1 " \
   "  AND ((local_dir_relpath >= ?3 AND local_dir_relpath <= ?2) " \
   "       OR local_dir_relpath = '') " \
   ""
 
-#define STMT_DELETE_WC_LOCK 115
-#define STMT_115_INFO {"STMT_DELETE_WC_LOCK", NULL}
-#define STMT_115 \
+#define STMT_DELETE_WC_LOCK 116
+#define STMT_116_INFO {"STMT_DELETE_WC_LOCK", NULL}
+#define STMT_116 \
   "DELETE FROM wc_lock " \
   "WHERE wc_id = ?1 AND local_dir_relpath = ?2 " \
   ""
 
-#define STMT_FIND_WC_LOCK 116
-#define STMT_116_INFO {"STMT_FIND_WC_LOCK", NULL}
-#define STMT_116 \
+#define STMT_FIND_WC_LOCK 117
+#define STMT_117_INFO {"STMT_FIND_WC_LOCK", NULL}
+#define STMT_117 \
   "SELECT local_dir_relpath FROM wc_lock " \
   "WHERE wc_id = ?1 " \
   "  AND (((local_dir_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_dir_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
   ""
 
-#define STMT_DELETE_WC_LOCK_ORPHAN 117
-#define STMT_117_INFO {"STMT_DELETE_WC_LOCK_ORPHAN", NULL}
-#define STMT_117 \
+#define STMT_DELETE_WC_LOCK_ORPHAN 118
+#define STMT_118_INFO {"STMT_DELETE_WC_LOCK_ORPHAN", NULL}
+#define STMT_118 \
   "DELETE FROM wc_lock " \
   "WHERE wc_id = ?1 AND local_dir_relpath = ?2 " \
   "AND NOT EXISTS (SELECT 1 FROM nodes " \
@@ -1172,9 +1181,9 @@
   "                   AND nodes.local_relpath = wc_lock.local_dir_relpath) " \
   ""
 
-#define STMT_DELETE_WC_LOCK_ORPHAN_RECURSIVE 118
-#define STMT_118_INFO {"STMT_DELETE_WC_LOCK_ORPHAN_RECURSIVE", NULL}
-#define STMT_118 \
+#define STMT_DELETE_WC_LOCK_ORPHAN_RECURSIVE 119
+#define STMT_119_INFO {"STMT_DELETE_WC_LOCK_ORPHAN_RECURSIVE", NULL}
+#define STMT_119 \
   "DELETE FROM wc_lock " \
   "WHERE wc_id = ?1 " \
   "  AND (local_dir_relpath = ?2 " \
@@ -1184,9 +1193,9 @@
   "                     AND nodes.local_relpath = wc_lock.local_dir_relpath) " \
   ""
 
-#define STMT_APPLY_CHANGES_TO_BASE_NODE 119
-#define STMT_119_INFO {"STMT_APPLY_CHANGES_TO_BASE_NODE", NULL}
-#define STMT_119 \
+#define STMT_APPLY_CHANGES_TO_BASE_NODE 120
+#define STMT_120_INFO {"STMT_APPLY_CHANGES_TO_BASE_NODE", NULL}
+#define STMT_120 \
   "INSERT OR REPLACE INTO nodes ( " \
   "  wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
   "  revision, presence, depth, kind, changed_revision, changed_date, " \
@@ -1200,18 +1209,18 @@
   "            AND op_depth = 0)) " \
   ""
 
-#define STMT_INSTALL_WORKING_NODE_FOR_DELETE 120
-#define STMT_120_INFO {"STMT_INSTALL_WORKING_NODE_FOR_DELETE", NULL}
-#define STMT_120 \
+#define STMT_INSTALL_WORKING_NODE_FOR_DELETE 121
+#define STMT_121_INFO {"STMT_INSTALL_WORKING_NODE_FOR_DELETE", NULL}
+#define STMT_121 \
   "INSERT OR REPLACE INTO nodes ( " \
   "    wc_id, local_relpath, op_depth, " \
   "    parent_relpath, presence, kind) " \
   "VALUES(?1, ?2, ?3, ?4, 'base-deleted', ?5) " \
   ""
 
-#define STMT_DELETE_NO_LOWER_LAYER 121
-#define STMT_121_INFO {"STMT_DELETE_NO_LOWER_LAYER", NULL}
-#define STMT_121 \
+#define STMT_DELETE_NO_LOWER_LAYER 122
+#define STMT_122_INFO {"STMT_DELETE_NO_LOWER_LAYER", NULL}
+#define STMT_122 \
   "DELETE FROM nodes " \
   " WHERE wc_id = ?1 " \
   "   AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
@@ -1223,9 +1232,9 @@
   "                    AND n.presence IN ('normal', 'incomplete')) " \
   ""
 
-#define STMT_REPLACE_WITH_BASE_DELETED 122
-#define STMT_122_INFO {"STMT_REPLACE_WITH_BASE_DELETED", NULL}
-#define STMT_122 \
+#define STMT_REPLACE_WITH_BASE_DELETED 123
+#define STMT_123_INFO {"STMT_REPLACE_WITH_BASE_DELETED", NULL}
+#define STMT_123 \
   "INSERT OR REPLACE INTO nodes (wc_id, local_relpath, op_depth, parent_relpath, " \
   "                              kind, moved_to, presence) " \
   "SELECT wc_id, local_relpath, op_depth, parent_relpath, " \
@@ -1236,9 +1245,9 @@
   "   AND op_depth = ?3 " \
   ""
 
-#define STMT_INSERT_DELETE_FROM_NODE_RECURSIVE 123
-#define STMT_123_INFO {"STMT_INSERT_DELETE_FROM_NODE_RECURSIVE", NULL}
-#define STMT_123 \
+#define STMT_INSERT_DELETE_FROM_NODE_RECURSIVE 124
+#define STMT_124_INFO {"STMT_INSERT_DELETE_FROM_NODE_RECURSIVE", NULL}
+#define STMT_124 \
   "INSERT INTO nodes ( " \
   "    wc_id, local_relpath, op_depth, parent_relpath, presence, kind) " \
   "SELECT wc_id, local_relpath, ?4 , parent_relpath, 'base-deleted', " \
@@ -1252,9 +1261,9 @@
   "  AND file_external IS NULL " \
   ""
 
-#define STMT_INSERT_WORKING_NODE_FROM_BASE_COPY 124
-#define STMT_124_INFO {"STMT_INSERT_WORKING_NODE_FROM_BASE_COPY", NULL}
-#define STMT_124 \
+#define STMT_INSERT_WORKING_NODE_FROM_BASE_COPY 125
+#define STMT_125_INFO {"STMT_INSERT_WORKING_NODE_FROM_BASE_COPY", NULL}
+#define STMT_125 \
   "INSERT INTO nodes ( " \
   "    wc_id, local_relpath, op_depth, parent_relpath, repos_id, repos_path, " \
   "    revision, presence, depth, kind, changed_revision, changed_date, " \
@@ -1268,9 +1277,9 @@
   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
   ""
 
-#define STMT_INSERT_DELETE_FROM_BASE 125
-#define STMT_125_INFO {"STMT_INSERT_DELETE_FROM_BASE", NULL}
-#define STMT_125 \
+#define STMT_INSERT_DELETE_FROM_BASE 126
+#define STMT_126_INFO {"STMT_INSERT_DELETE_FROM_BASE", NULL}
+#define STMT_126 \
   "INSERT INTO nodes ( " \
   "    wc_id, local_relpath, op_depth, parent_relpath, presence, kind) " \
   "SELECT wc_id, local_relpath, ?3 , parent_relpath, " \
@@ -1279,34 +1288,34 @@
   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
   ""
 
-#define STMT_UPDATE_OP_DEPTH_INCREASE_RECURSIVE 126
-#define STMT_126_INFO {"STMT_UPDATE_OP_DEPTH_INCREASE_RECURSIVE", NULL}
-#define STMT_126 \
+#define STMT_UPDATE_OP_DEPTH_INCREASE_RECURSIVE 127
+#define STMT_127_INFO {"STMT_UPDATE_OP_DEPTH_INCREASE_RECURSIVE", NULL}
+#define STMT_127 \
   "UPDATE nodes SET op_depth = ?3 + 1 " \
   "WHERE wc_id = ?1 " \
   " AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
   " AND op_depth = ?3 " \
   ""
 
-#define STMT_UPDATE_OP_DEPTH_RECURSIVE 127
-#define STMT_127_INFO {"STMT_UPDATE_OP_DEPTH_RECURSIVE", NULL}
-#define STMT_127 \
+#define STMT_UPDATE_OP_DEPTH_RECURSIVE 128
+#define STMT_128_INFO {"STMT_UPDATE_OP_DEPTH_RECURSIVE", NULL}
+#define STMT_128 \
   "UPDATE nodes SET op_depth = ?4, moved_here = NULL " \
   "WHERE wc_id = ?1 " \
   " AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
   " AND op_depth = ?3 " \
   ""
 
-#define STMT_DOES_NODE_EXIST 128
-#define STMT_128_INFO {"STMT_DOES_NODE_EXIST", NULL}
-#define STMT_128 \
+#define STMT_DOES_NODE_EXIST 129
+#define STMT_129_INFO {"STMT_DOES_NODE_EXIST", NULL}
+#define STMT_129 \
   "SELECT 1 FROM nodes WHERE wc_id = ?1 AND local_relpath = ?2 " \
   "LIMIT 1 " \
   ""
 
-#define STMT_HAS_SERVER_EXCLUDED_DESCENDANTS 129
-#define STMT_129_INFO {"STMT_HAS_SERVER_EXCLUDED_DESCENDANTS", NULL}
-#define STMT_129 \
+#define STMT_HAS_SERVER_EXCLUDED_DESCENDANTS 130
+#define STMT_130_INFO {"STMT_HAS_SERVER_EXCLUDED_DESCENDANTS", NULL}
+#define STMT_130 \
   "SELECT local_relpath FROM nodes " \
   "WHERE wc_id = ?1 " \
   "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
@@ -1314,9 +1323,9 @@
   "LIMIT 1 " \
   ""
 
-#define STMT_SELECT_ALL_EXCLUDED_DESCENDANTS 130
-#define STMT_130_INFO {"STMT_SELECT_ALL_EXCLUDED_DESCENDANTS", NULL}
-#define STMT_130 \
+#define STMT_SELECT_ALL_EXCLUDED_DESCENDANTS 131
+#define STMT_131_INFO {"STMT_SELECT_ALL_EXCLUDED_DESCENDANTS", NULL}
+#define STMT_131 \
   "SELECT local_relpath FROM nodes " \
   "WHERE wc_id = ?1 " \
   "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
@@ -1324,9 +1333,9 @@
   "  AND (presence = 'server-excluded' OR presence = 'excluded') " \
   ""
 
-#define STMT_INSERT_WORKING_NODE_COPY_FROM 131
-#define STMT_131_INFO {"STMT_INSERT_WORKING_NODE_COPY_FROM", NULL}
-#define STMT_131 \
+#define STMT_INSERT_WORKING_NODE_COPY_FROM 132
+#define STMT_132_INFO {"STMT_INSERT_WORKING_NODE_COPY_FROM", NULL}
+#define STMT_132 \
   "INSERT OR REPLACE INTO nodes ( " \
   "    wc_id, local_relpath, op_depth, parent_relpath, repos_id, " \
   "    repos_path, revision, presence, depth, moved_here, kind, changed_revision, " \
@@ -1345,9 +1354,9 @@
   "WHERE wc_id = ?1 AND local_relpath = ?2 " \
   ""
 
-#define STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH 132
-#define STMT_132_INFO {"STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH", NULL}
-#define STMT_132 \
+#define STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH 133
+#define STMT_133_INFO {"STMT_INSERT_WORKING_NODE_COPY_FROM_DEPTH", NULL}
+#define STMT_133 \
   "INSERT OR REPLACE INTO nodes ( " \
   "    wc_id, local_relpath, op_depth, parent_relpath, repos_id, " \
   "    repos_path, revision, presence, depth, moved_here, kind, changed_revision, " \
@@ -1366,49 +1375,49 @@
   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?7 " \
   ""
 
-#define STMT_UPDATE_BASE_REVISION 133
-#define STMT_133_INFO {"STMT_UPDATE_BASE_REVISION", NULL}
-#define STMT_133 \
+#define STMT_UPDATE_BASE_REVISION 134
+#define STMT_134_INFO {"STMT_UPDATE_BASE_REVISION", NULL}
+#define STMT_134 \
   "UPDATE nodes SET revision = ?3 " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
   ""
 
-#define STMT_UPDATE_BASE_REPOS 134
-#define STMT_134_INFO {"STMT_UPDATE_BASE_REPOS", NULL}
-#define STMT_134 \
+#define STMT_UPDATE_BASE_REPOS 135
+#define STMT_135_INFO {"STMT_UPDATE_BASE_REPOS", NULL}
+#define STMT_135 \
   "UPDATE nodes SET repos_id = ?3, repos_path = ?4 " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0 " \
   ""
 
-#define STMT_ACTUAL_HAS_CHILDREN 135
-#define STMT_135_INFO {"STMT_ACTUAL_HAS_CHILDREN", NULL}
-#define STMT_135 \
+#define STMT_ACTUAL_HAS_CHILDREN 136
+#define STMT_136_INFO {"STMT_ACTUAL_HAS_CHILDREN", NULL}
+#define STMT_136 \
   "SELECT 1 FROM actual_node " \
   "WHERE wc_id = ?1 AND parent_relpath = ?2 " \
   "LIMIT 1 " \
   ""
 
-#define STMT_INSERT_EXTERNAL 136
-#define STMT_136_INFO {"STMT_INSERT_EXTERNAL", NULL}
-#define STMT_136 \
+#define STMT_INSERT_EXTERNAL 137
+#define STMT_137_INFO {"STMT_INSERT_EXTERNAL", NULL}
+#define STMT_137 \
   "INSERT OR REPLACE INTO externals ( " \
   "    wc_id, local_relpath, parent_relpath, presence, kind, def_local_relpath, " \
   "    repos_id, def_repos_relpath, def_operational_revision, def_revision) " \
   "VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7, ?8, ?9, ?10) " \
   ""
 
-#define STMT_SELECT_EXTERNAL_INFO 137
-#define STMT_137_INFO {"STMT_SELECT_EXTERNAL_INFO", NULL}
-#define STMT_137 \
+#define STMT_SELECT_EXTERNAL_INFO 138
+#define STMT_138_INFO {"STMT_SELECT_EXTERNAL_INFO", NULL}
+#define STMT_138 \
   "SELECT presence, kind, def_local_relpath, repos_id, " \
   "    def_repos_relpath, def_operational_revision, def_revision " \
   "FROM externals WHERE wc_id = ?1 AND local_relpath = ?2 " \
   "LIMIT 1 " \
   ""
 
-#define STMT_DELETE_FILE_EXTERNALS 138
-#define STMT_138_INFO {"STMT_DELETE_FILE_EXTERNALS", NULL}
-#define STMT_138 \
+#define STMT_DELETE_FILE_EXTERNALS 139
+#define STMT_139_INFO {"STMT_DELETE_FILE_EXTERNALS", NULL}
+#define STMT_139 \
   "DELETE FROM nodes " \
   "WHERE wc_id = ?1 " \
   "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
@@ -1416,26 +1425,26 @@
   "  AND file_external IS NOT NULL " \
   ""
 
-#define STMT_DELETE_FILE_EXTERNAL_REGISTATIONS 139
-#define STMT_139_INFO {"STMT_DELETE_FILE_EXTERNAL_REGISTATIONS", NULL}
-#define STMT_139 \
+#define STMT_DELETE_FILE_EXTERNAL_REGISTATIONS 140
+#define STMT_140_INFO {"STMT_DELETE_FILE_EXTERNAL_REGISTATIONS", NULL}
+#define STMT_140 \
   "DELETE FROM externals " \
   "WHERE wc_id = ?1 " \
   "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
   "  AND kind != 'dir' " \
   ""
 
-#define STMT_DELETE_EXTERNAL_REGISTATIONS 140
-#define STMT_140_INFO {"STMT_DELETE_EXTERNAL_REGISTATIONS", NULL}
-#define STMT_140 \
+#define STMT_DELETE_EXTERNAL_REGISTATIONS 141
+#define STMT_141_INFO {"STMT_DELETE_EXTERNAL_REGISTATIONS", NULL}
+#define STMT_141 \
   "DELETE FROM externals " \
   "WHERE wc_id = ?1 " \
   "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
   ""
 
-#define STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW 141
-#define STMT_141_INFO {"STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW", NULL}
-#define STMT_141 \
+#define STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW 142
+#define STMT_142_INFO {"STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW", NULL}
+#define STMT_142 \
   "SELECT local_relpath, kind, def_repos_relpath, " \
   "  (SELECT root FROM repository AS r WHERE r.id = e.repos_id) " \
   "FROM externals e " \
@@ -1453,9 +1462,9 @@
   "                  AND nodes.local_relpath = e.parent_relpath)) " \
   ""
 
-#define STMT_SELECT_COMMITTABLE_EXTERNALS_IMMEDIATELY_BELOW 142
-#define STMT_142_INFO {"STMT_SELECT_COMMITTABLE_EXTERNALS_IMMEDIATELY_BELOW", NULL}
-#define STMT_142 \
+#define STMT_SELECT_COMMITTABLE_EXTERNALS_IMMEDIATELY_BELOW 143
+#define STMT_143_INFO {"STMT_SELECT_COMMITTABLE_EXTERNALS_IMMEDIATELY_BELOW", NULL}
+#define STMT_143 \
   "SELECT local_relpath, kind, def_repos_relpath, " \
   "  (SELECT root FROM repository AS r WHERE r.id = e.repos_id) " \
   "FROM externals e " \
@@ -1474,25 +1483,25 @@
   "                  AND nodes.local_relpath = e.parent_relpath)) " \
   ""
 
-#define STMT_SELECT_EXTERNALS_DEFINED 143
-#define STMT_143_INFO {"STMT_SELECT_EXTERNALS_DEFINED", NULL}
-#define STMT_143 \
+#define STMT_SELECT_EXTERNALS_DEFINED 144
+#define STMT_144_INFO {"STMT_SELECT_EXTERNALS_DEFINED", NULL}
+#define STMT_144 \
   "SELECT local_relpath, def_local_relpath " \
   "FROM externals " \
   "WHERE (wc_id = ?1 AND def_local_relpath = ?2) " \
   "   OR (wc_id = ?1 AND (((def_local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((def_local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
   ""
 
-#define STMT_DELETE_EXTERNAL 144
-#define STMT_144_INFO {"STMT_DELETE_EXTERNAL", NULL}
-#define STMT_144 \
+#define STMT_DELETE_EXTERNAL 145
+#define STMT_145_INFO {"STMT_DELETE_EXTERNAL", NULL}
+#define STMT_145 \
   "DELETE FROM externals " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 " \
   ""
 
-#define STMT_SELECT_EXTERNAL_PROPERTIES 145
-#define STMT_145_INFO {"STMT_SELECT_EXTERNAL_PROPERTIES", NULL}
-#define STMT_145 \
+#define STMT_SELECT_EXTERNAL_PROPERTIES 146
+#define STMT_146_INFO {"STMT_SELECT_EXTERNAL_PROPERTIES", NULL}
+#define STMT_146 \
   "SELECT IFNULL((SELECT properties FROM actual_node a " \
   "               WHERE a.wc_id = ?1 AND A.local_relpath = n.local_relpath), " \
   "              properties), " \
@@ -1510,9 +1519,9 @@
   "  AND kind = 'dir' AND presence IN ('normal', 'incomplete') " \
   ""
 
-#define STMT_SELECT_CURRENT_PROPS_RECURSIVE 146
-#define STMT_146_INFO {"STMT_SELECT_CURRENT_PROPS_RECURSIVE", NULL}
-#define STMT_146 \
+#define STMT_SELECT_CURRENT_PROPS_RECURSIVE 147
+#define STMT_147_INFO {"STMT_SELECT_CURRENT_PROPS_RECURSIVE", NULL}
+#define STMT_147 \
   "SELECT IFNULL((SELECT properties FROM actual_node a " \
   "               WHERE a.wc_id = ?1 AND A.local_relpath = n.local_relpath), " \
   "              properties), " \
@@ -1522,57 +1531,57 @@
   "   OR (wc_id = ?1 AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
   ""
 
-#define STMT_PRAGMA_LOCKING_MODE 147
-#define STMT_147_INFO {"STMT_PRAGMA_LOCKING_MODE", NULL}
-#define STMT_147 \
+#define STMT_PRAGMA_LOCKING_MODE 148
+#define STMT_148_INFO {"STMT_PRAGMA_LOCKING_MODE", NULL}
+#define STMT_148 \
   "PRAGMA locking_mode = exclusive " \
   ""
 
-#define STMT_INSERT_ACTUAL_NODE 148
-#define STMT_148_INFO {"STMT_INSERT_ACTUAL_NODE", NULL}
-#define STMT_148 \
+#define STMT_INSERT_ACTUAL_NODE 149
+#define STMT_149_INFO {"STMT_INSERT_ACTUAL_NODE", NULL}
+#define STMT_149 \
   "INSERT OR REPLACE INTO actual_node ( " \
   "  wc_id, local_relpath, parent_relpath, properties, changelist, conflict_data) " \
   "VALUES (?1, ?2, ?3, ?4, ?5, ?6) " \
   ""
 
-#define STMT_UPDATE_ACTUAL_CONFLICT_DATA 149
-#define STMT_149_INFO {"STMT_UPDATE_ACTUAL_CONFLICT_DATA", NULL}
-#define STMT_149 \
+#define STMT_UPDATE_ACTUAL_CONFLICT_DATA 150
+#define STMT_150_INFO {"STMT_UPDATE_ACTUAL_CONFLICT_DATA", NULL}
+#define STMT_150 \
   "UPDATE actual_node SET conflict_data = ?3 " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 " \
   ""
 
-#define STMT_INSERT_ACTUAL_CONFLICT_DATA 150
-#define STMT_150_INFO {"STMT_INSERT_ACTUAL_CONFLICT_DATA", NULL}
-#define STMT_150 \
+#define STMT_INSERT_ACTUAL_CONFLICT_DATA 151
+#define STMT_151_INFO {"STMT_INSERT_ACTUAL_CONFLICT_DATA", NULL}
+#define STMT_151 \
   "INSERT INTO actual_node (wc_id, local_relpath, conflict_data, parent_relpath) " \
   "VALUES (?1, ?2, ?3, ?4) " \
   ""
 
-#define STMT_SELECT_ALL_FILES 151
-#define STMT_151_INFO {"STMT_SELECT_ALL_FILES", NULL}
-#define STMT_151 \
+#define STMT_SELECT_ALL_FILES 152
+#define STMT_152_INFO {"STMT_SELECT_ALL_FILES", NULL}
+#define STMT_152 \
   "SELECT local_relpath FROM nodes_current " \
   "WHERE wc_id = ?1 AND parent_relpath = ?2 AND kind = 'file' " \
   ""
 
-#define STMT_UPDATE_NODE_PROPS 152
-#define STMT_152_INFO {"STMT_UPDATE_NODE_PROPS", NULL}
-#define STMT_152 \
+#define STMT_UPDATE_NODE_PROPS 153
+#define STMT_153_INFO {"STMT_UPDATE_NODE_PROPS", NULL}
+#define STMT_153 \
   "UPDATE nodes SET properties = ?4 " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
   ""
 
-#define STMT_PRAGMA_TABLE_INFO_NODES 153
-#define STMT_153_INFO {"STMT_PRAGMA_TABLE_INFO_NODES", NULL}
-#define STMT_153 \
+#define STMT_PRAGMA_TABLE_INFO_NODES 154
+#define STMT_154_INFO {"STMT_PRAGMA_TABLE_INFO_NODES", NULL}
+#define STMT_154 \
   "PRAGMA table_info(\"NODES\") " \
   ""
 
-#define STMT_CREATE_TARGET_PROP_CACHE 154
-#define STMT_154_INFO {"STMT_CREATE_TARGET_PROP_CACHE", NULL}
-#define STMT_154 \
+#define STMT_CREATE_TARGET_PROP_CACHE 155
+#define STMT_155_INFO {"STMT_CREATE_TARGET_PROP_CACHE", NULL}
+#define STMT_155 \
   "DROP TABLE IF EXISTS target_prop_cache; " \
   "CREATE TEMPORARY TABLE target_prop_cache ( " \
   "  local_relpath TEXT NOT NULL PRIMARY KEY, " \
@@ -1581,9 +1590,9 @@
   "); " \
   ""
 
-#define STMT_CACHE_TARGET_PROPS 155
-#define STMT_155_INFO {"STMT_CACHE_TARGET_PROPS", NULL}
-#define STMT_155 \
+#define STMT_CACHE_TARGET_PROPS 156
+#define STMT_156_INFO {"STMT_CACHE_TARGET_PROPS", NULL}
+#define STMT_156 \
   "INSERT INTO target_prop_cache(local_relpath, kind, properties) " \
   " SELECT n.local_relpath, n.kind, " \
   "        IFNULL((SELECT properties FROM actual_node AS a " \
@@ -1602,9 +1611,9 @@
   "  ORDER BY t.local_relpath " \
   ""
 
-#define STMT_CACHE_TARGET_PRISTINE_PROPS 156
-#define STMT_156_INFO {"STMT_CACHE_TARGET_PRISTINE_PROPS", NULL}
-#define STMT_156 \
+#define STMT_CACHE_TARGET_PRISTINE_PROPS 157
+#define STMT_157_INFO {"STMT_CACHE_TARGET_PRISTINE_PROPS", NULL}
+#define STMT_157 \
   "INSERT INTO target_prop_cache(local_relpath, kind, properties) " \
   " SELECT n.local_relpath, n.kind, " \
   "        CASE n.presence " \
@@ -1629,22 +1638,22 @@
   "  ORDER BY t.local_relpath " \
   ""
 
-#define STMT_SELECT_ALL_TARGET_PROP_CACHE 157
-#define STMT_157_INFO {"STMT_SELECT_ALL_TARGET_PROP_CACHE", NULL}
-#define STMT_157 \
+#define STMT_SELECT_ALL_TARGET_PROP_CACHE 158
+#define STMT_158_INFO {"STMT_SELECT_ALL_TARGET_PROP_CACHE", NULL}
+#define STMT_158 \
   "SELECT local_relpath, properties FROM target_prop_cache " \
   "ORDER BY local_relpath " \
   ""
 
-#define STMT_DROP_TARGET_PROP_CACHE 158
-#define STMT_158_INFO {"STMT_DROP_TARGET_PROP_CACHE", NULL}
-#define STMT_158 \
+#define STMT_DROP_TARGET_PROP_CACHE 159
+#define STMT_159_INFO {"STMT_DROP_TARGET_PROP_CACHE", NULL}
+#define STMT_159 \
   "DROP TABLE target_prop_cache; " \
   ""
 
-#define STMT_CREATE_REVERT_LIST 159
-#define STMT_159_INFO {"STMT_CREATE_REVERT_LIST", NULL}
-#define STMT_159 \
+#define STMT_CREATE_REVERT_LIST 160
+#define STMT_160_INFO {"STMT_CREATE_REVERT_LIST", NULL}
+#define STMT_160 \
   "DROP TABLE IF EXISTS revert_list; " \
   "CREATE TEMPORARY TABLE revert_list ( " \
   "   local_relpath TEXT NOT NULL, " \
@@ -1700,26 +1709,26 @@
   "END " \
   ""
 
-#define STMT_DROP_REVERT_LIST_TRIGGERS 160
-#define STMT_160_INFO {"STMT_DROP_REVERT_LIST_TRIGGERS", NULL}
-#define STMT_160 \
+#define STMT_DROP_REVERT_LIST_TRIGGERS 161
+#define STMT_161_INFO {"STMT_DROP_REVERT_LIST_TRIGGERS", NULL}
+#define STMT_161 \
   "DROP TRIGGER trigger_revert_list_nodes; " \
   "DROP TRIGGER trigger_revert_list_actual_delete; " \
   "DROP TRIGGER trigger_revert_list_actual_update " \
   ""
 
-#define STMT_SELECT_REVERT_LIST 161
-#define STMT_161_INFO {"STMT_SELECT_REVERT_LIST", NULL}
-#define STMT_161 \
+#define STMT_SELECT_REVERT_LIST 162
+#define STMT_162_INFO {"STMT_SELECT_REVERT_LIST", NULL}
+#define STMT_162 \
   "SELECT actual, notify, kind, op_depth, repos_id, conflict_data " \
   "FROM revert_list " \
   "WHERE local_relpath = ?1 " \
   "ORDER BY actual DESC " \
   ""
 
-#define STMT_SELECT_REVERT_LIST_COPIED_CHILDREN 162
-#define STMT_162_INFO {"STMT_SELECT_REVERT_LIST_COPIED_CHILDREN", NULL}
-#define STMT_162 \
+#define STMT_SELECT_REVERT_LIST_COPIED_CHILDREN 163
+#define STMT_163_INFO {"STMT_SELECT_REVERT_LIST_COPIED_CHILDREN", NULL}
+#define STMT_163 \
   "SELECT local_relpath, kind " \
   "FROM revert_list " \
   "WHERE (((local_relpath) > (CASE (?1) WHEN '' THEN '' ELSE (?1) || '/' END)) AND ((local_relpath) < CASE (?1) WHEN '' THEN X'FFFF' ELSE (?1) || '0' END)) " \
@@ -1728,15 +1737,15 @@
   "ORDER BY local_relpath " \
   ""
 
-#define STMT_DELETE_REVERT_LIST 163
-#define STMT_163_INFO {"STMT_DELETE_REVERT_LIST", NULL}
-#define STMT_163 \
+#define STMT_DELETE_REVERT_LIST 164
+#define STMT_164_INFO {"STMT_DELETE_REVERT_LIST", NULL}
+#define STMT_164 \
   "DELETE FROM revert_list WHERE local_relpath = ?1 " \
   ""
 
-#define STMT_SELECT_REVERT_LIST_RECURSIVE 164
-#define STMT_164_INFO {"STMT_SELECT_REVERT_LIST_RECURSIVE", NULL}
-#define STMT_164 \
+#define STMT_SELECT_REVERT_LIST_RECURSIVE 165
+#define STMT_165_INFO {"STMT_SELECT_REVERT_LIST_RECURSIVE", NULL}
+#define STMT_165 \
   "SELECT DISTINCT local_relpath " \
   "FROM revert_list " \
   "WHERE (local_relpath = ?1 " \
@@ -1745,32 +1754,32 @@
   "ORDER BY local_relpath " \
   ""
 
-#define STMT_DELETE_REVERT_LIST_RECURSIVE 165
-#define STMT_165_INFO {"STMT_DELETE_REVERT_LIST_RECURSIVE", NULL}
-#define STMT_165 \
+#define STMT_DELETE_REVERT_LIST_RECURSIVE 166
+#define STMT_166_INFO {"STMT_DELETE_REVERT_LIST_RECURSIVE", NULL}
+#define STMT_166 \
   "DELETE FROM revert_list " \
   "WHERE (local_relpath = ?1 " \
   "       OR (((local_relpath) > (CASE (?1) WHEN '' THEN '' ELSE (?1) || '/' END)) AND ((local_relpath) < CASE (?1) WHEN '' THEN X'FFFF' ELSE (?1) || '0' END))) " \
   ""
 
-#define STMT_DROP_REVERT_LIST 166
-#define STMT_166_INFO {"STMT_DROP_REVERT_LIST", NULL}
-#define STMT_166 \
+#define STMT_DROP_REVERT_LIST 167
+#define STMT_167_INFO {"STMT_DROP_REVERT_LIST", NULL}
+#define STMT_167 \
   "DROP TABLE IF EXISTS revert_list " \
   ""
 
-#define STMT_CREATE_DELETE_LIST 167
-#define STMT_167_INFO {"STMT_CREATE_DELETE_LIST", NULL}
-#define STMT_167 \
+#define STMT_CREATE_DELETE_LIST 168
+#define STMT_168_INFO {"STMT_CREATE_DELETE_LIST", NULL}
+#define STMT_168 \
   "DROP TABLE IF EXISTS delete_list; " \
   "CREATE TEMPORARY TABLE delete_list ( " \
   "   local_relpath TEXT PRIMARY KEY NOT NULL UNIQUE " \
   "   ) " \
   ""
 
-#define STMT_INSERT_DELETE_LIST 168
-#define STMT_168_INFO {"STMT_INSERT_DELETE_LIST", NULL}
-#define STMT_168 \
+#define STMT_INSERT_DELETE_LIST 169
+#define STMT_169_INFO {"STMT_INSERT_DELETE_LIST", NULL}
+#define STMT_169 \
   "INSERT INTO delete_list(local_relpath) " \
   "SELECT local_relpath FROM nodes AS n " \
   "WHERE wc_id = ?1 " \
@@ -1784,22 +1793,22 @@
   "  AND file_external IS NULL " \
   ""
 
-#define STMT_SELECT_DELETE_LIST 169
-#define STMT_169_INFO {"STMT_SELECT_DELETE_LIST", NULL}
-#define STMT_169 \
+#define STMT_SELECT_DELETE_LIST 170
+#define STMT_170_INFO {"STMT_SELECT_DELETE_LIST", NULL}
+#define STMT_170 \
   "SELECT local_relpath FROM delete_list " \
   "ORDER BY local_relpath " \
   ""
 
-#define STMT_FINALIZE_DELETE 170
-#define STMT_170_INFO {"STMT_FINALIZE_DELETE", NULL}
-#define STMT_170 \
+#define STMT_FINALIZE_DELETE 171
+#define STMT_171_INFO {"STMT_FINALIZE_DELETE", NULL}
+#define STMT_171 \
   "DROP TABLE IF EXISTS delete_list " \
   ""
 
-#define STMT_CREATE_UPDATE_MOVE_LIST 171
-#define STMT_171_INFO {"STMT_CREATE_UPDATE_MOVE_LIST", NULL}
-#define STMT_171 \
+#define STMT_CREATE_UPDATE_MOVE_LIST 172
+#define STMT_172_INFO {"STMT_CREATE_UPDATE_MOVE_LIST", NULL}
+#define STMT_172 \
   "DROP TABLE IF EXISTS update_move_list; " \
   "CREATE TEMPORARY TABLE update_move_list ( " \
   "  local_relpath TEXT PRIMARY KEY NOT NULL UNIQUE, " \
@@ -1810,31 +1819,31 @@
   "  ) " \
   ""
 
-#define STMT_INSERT_UPDATE_MOVE_LIST 172
-#define STMT_172_INFO {"STMT_INSERT_UPDATE_MOVE_LIST", NULL}
-#define STMT_172 \
+#define STMT_INSERT_UPDATE_MOVE_LIST 173
+#define STMT_173_INFO {"STMT_INSERT_UPDATE_MOVE_LIST", NULL}
+#define STMT_173 \
   "INSERT INTO update_move_list(local_relpath, action, kind, content_state, " \
   "  prop_state) " \
   "VALUES (?1, ?2, ?3, ?4, ?5) " \
   ""
 
-#define STMT_SELECT_UPDATE_MOVE_LIST 173
-#define STMT_173_INFO {"STMT_SELECT_UPDATE_MOVE_LIST", NULL}
-#define STMT_173 \
+#define STMT_SELECT_UPDATE_MOVE_LIST 174
+#define STMT_174_INFO {"STMT_SELECT_UPDATE_MOVE_LIST", NULL}
+#define STMT_174 \
   "SELECT local_relpath, action, kind, content_state, prop_state " \
   "FROM update_move_list " \
   "ORDER BY local_relpath " \
   ""
 
-#define STMT_FINALIZE_UPDATE_MOVE 174
-#define STMT_174_INFO {"STMT_FINALIZE_UPDATE_MOVE", NULL}
-#define STMT_174 \
+#define STMT_FINALIZE_UPDATE_MOVE 175
+#define STMT_175_INFO {"STMT_FINALIZE_UPDATE_MOVE", NULL}
+#define STMT_175 \
   "DROP TABLE IF EXISTS update_move_list " \
   ""
 
-#define STMT_SELECT_MIN_MAX_REVISIONS 175
-#define STMT_175_INFO {"STMT_SELECT_MIN_MAX_REVISIONS", NULL}
-#define STMT_175 \
+#define STMT_SELECT_MIN_MAX_REVISIONS 176
+#define STMT_176_INFO {"STMT_SELECT_MIN_MAX_REVISIONS", NULL}
+#define STMT_176 \
   "SELECT MIN(revision), MAX(revision), " \
   "       MIN(changed_revision), MAX(changed_revision) FROM nodes " \
   "  WHERE wc_id = ?1 " \
@@ -1845,9 +1854,9 @@
   "    AND op_depth = 0 " \
   ""
 
-#define STMT_HAS_SPARSE_NODES 176
-#define STMT_176_INFO {"STMT_HAS_SPARSE_NODES", NULL}
-#define STMT_176 \
+#define STMT_HAS_SPARSE_NODES 177
+#define STMT_177_INFO {"STMT_HAS_SPARSE_NODES", NULL}
+#define STMT_177 \
   "SELECT 1 FROM nodes " \
   "WHERE wc_id = ?1 " \
   "  AND (local_relpath = ?2 " \
@@ -1859,9 +1868,9 @@
   "LIMIT 1 " \
   ""
 
-#define STMT_SUBTREE_HAS_TREE_MODIFICATIONS 177
-#define STMT_177_INFO {"STMT_SUBTREE_HAS_TREE_MODIFICATIONS", NULL}
-#define STMT_177 \
+#define STMT_SUBTREE_HAS_TREE_MODIFICATIONS 178
+#define STMT_178_INFO {"STMT_SUBTREE_HAS_TREE_MODIFICATIONS", NULL}
+#define STMT_178 \
   "SELECT 1 FROM nodes " \
   "WHERE wc_id = ?1 " \
   "  AND (local_relpath = ?2 " \
@@ -1870,9 +1879,9 @@
   "LIMIT 1 " \
   ""
 
-#define STMT_SUBTREE_HAS_PROP_MODIFICATIONS 178
-#define STMT_178_INFO {"STMT_SUBTREE_HAS_PROP_MODIFICATIONS", NULL}
-#define STMT_178 \
+#define STMT_SUBTREE_HAS_PROP_MODIFICATIONS 179
+#define STMT_179_INFO {"STMT_SUBTREE_HAS_PROP_MODIFICATIONS", NULL}
+#define STMT_179 \
   "SELECT 1 FROM actual_node " \
   "WHERE wc_id = ?1 " \
   "  AND (local_relpath = ?2 " \
@@ -1881,9 +1890,9 @@
   "LIMIT 1 " \
   ""
 
-#define STMT_HAS_SWITCHED 179
-#define STMT_179_INFO {"STMT_HAS_SWITCHED", NULL}
-#define STMT_179 \
+#define STMT_HAS_SWITCHED 180
+#define STMT_180_INFO {"STMT_HAS_SWITCHED", NULL}
+#define STMT_180 \
   "SELECT 1 " \
   "FROM nodes " \
   "WHERE wc_id = ?1 " \
@@ -1895,9 +1904,9 @@
   "LIMIT 1 " \
   ""
 
-#define STMT_SELECT_BASE_FILES_RECURSIVE 180
-#define STMT_180_INFO {"STMT_SELECT_BASE_FILES_RECURSIVE", NULL}
-#define STMT_180 \
+#define STMT_SELECT_BASE_FILES_RECURSIVE 181
+#define STMT_181_INFO {"STMT_SELECT_BASE_FILES_RECURSIVE", NULL}
+#define STMT_181 \
   "SELECT local_relpath, translated_size, last_mod_time FROM nodes AS n " \
   "WHERE wc_id = ?1 " \
   "  AND (local_relpath = ?2 " \
@@ -1908,75 +1917,92 @@
   "  AND file_external IS NULL " \
   ""
 
-#define STMT_SELECT_MOVED_FROM_RELPATH 181
-#define STMT_181_INFO {"STMT_SELECT_MOVED_FROM_RELPATH", NULL}
-#define STMT_181 \
+#define STMT_SELECT_MOVED_FROM_RELPATH 182
+#define STMT_182_INFO {"STMT_SELECT_MOVED_FROM_RELPATH", NULL}
+#define STMT_182 \
   "SELECT local_relpath, op_depth FROM nodes " \
   "WHERE wc_id = ?1 AND moved_to = ?2 AND op_depth > 0 " \
   ""
 
-#define STMT_UPDATE_MOVED_TO_RELPATH 182
-#define STMT_182_INFO {"STMT_UPDATE_MOVED_TO_RELPATH", NULL}
-#define STMT_182 \
+#define STMT_UPDATE_MOVED_TO_RELPATH 183
+#define STMT_183_INFO {"STMT_UPDATE_MOVED_TO_RELPATH", NULL}
+#define STMT_183 \
   "UPDATE nodes SET moved_to = ?4 " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
   ""
 
-#define STMT_CLEAR_MOVED_TO_RELPATH 183
-#define STMT_183_INFO {"STMT_CLEAR_MOVED_TO_RELPATH", NULL}
-#define STMT_183 \
+#define STMT_CLEAR_MOVED_TO_RELPATH 184
+#define STMT_184_INFO {"STMT_CLEAR_MOVED_TO_RELPATH", NULL}
+#define STMT_184 \
   "UPDATE nodes SET moved_to = NULL " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3 " \
   ""
 
-#define STMT_CLEAR_MOVED_HERE_RECURSIVE 184
-#define STMT_184_INFO {"STMT_CLEAR_MOVED_HERE_RECURSIVE", NULL}
-#define STMT_184 \
+#define STMT_CLEAR_MOVED_HERE_RECURSIVE 185
+#define STMT_185_INFO {"STMT_CLEAR_MOVED_HERE_RECURSIVE", NULL}
+#define STMT_185 \
   "UPDATE nodes SET moved_here = NULL " \
   "WHERE wc_id = ?1 " \
   " AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
   " AND op_depth = ?3 " \
   ""
 
-#define STMT_SELECT_MOVED_HERE_CHILDREN 185
-#define STMT_185_INFO {"STMT_SELECT_MOVED_HERE_CHILDREN", NULL}
-#define STMT_185 \
+#define STMT_SELECT_MOVED_HERE_CHILDREN 186
+#define STMT_186_INFO {"STMT_SELECT_MOVED_HERE_CHILDREN", NULL}
+#define STMT_186 \
   "SELECT moved_to, local_relpath FROM nodes " \
   "WHERE wc_id = ?1 AND op_depth > 0 " \
   "  AND (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
   ""
 
-#define STMT_SELECT_MOVED_FOR_DELETE 186
-#define STMT_186_INFO {"STMT_SELECT_MOVED_FOR_DELETE", NULL}
-#define STMT_186 \
-  "SELECT local_relpath, moved_to, op_depth FROM nodes " \
+#define STMT_SELECT_MOVED_FOR_DELETE 187
+#define STMT_187_INFO {"STMT_SELECT_MOVED_FOR_DELETE", NULL}
+#define STMT_187 \
+  "SELECT local_relpath, moved_to, op_depth, " \
+  "       (SELECT CASE WHEN r.moved_here THEN r.op_depth END FROM nodes r " \
+  "        WHERE r.wc_id = ?1 " \
+  "          AND r.local_relpath = n.local_relpath " \
+  "          AND r.op_depth < n.op_depth " \
+  "        ORDER BY r.op_depth DESC LIMIT 1) AS moved_here_op_depth " \
+  " FROM nodes n " \
   "WHERE wc_id = ?1 " \
   "  AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
   "  AND moved_to IS NOT NULL " \
-  "  AND op_depth >= (SELECT MAX(op_depth) FROM nodes o " \
-  "                    WHERE o.wc_id = ?1 " \
-  "                      AND o.local_relpath = ?2) " \
+  "  AND op_depth >= ?3 " \
   ""
 
-#define STMT_UPDATE_MOVED_TO_DESCENDANTS 187
-#define STMT_187_INFO {"STMT_UPDATE_MOVED_TO_DESCENDANTS", NULL}
-#define STMT_187 \
+#define STMT_SELECT_MOVED_FROM_FOR_DELETE 188
+#define STMT_188_INFO {"STMT_SELECT_MOVED_FROM_FOR_DELETE", NULL}
+#define STMT_188 \
+  "SELECT local_relpath, op_depth, " \
+  "       (SELECT CASE WHEN r.moved_here THEN r.op_depth END FROM nodes r " \
+  "        WHERE r.wc_id = ?1 " \
+  "          AND r.local_relpath = n.local_relpath " \
+  "          AND r.op_depth < n.op_depth " \
+  "        ORDER BY r.op_depth DESC LIMIT 1) AS moved_here_op_depth " \
+  " FROM nodes n " \
+  "WHERE wc_id = ?1 AND moved_to = ?2 AND op_depth > 0 " \
+  ""
+
+#define STMT_UPDATE_MOVED_TO_DESCENDANTS 189
+#define STMT_189_INFO {"STMT_UPDATE_MOVED_TO_DESCENDANTS", NULL}
+#define STMT_189 \
   "UPDATE nodes SET moved_to = (CASE WHEN (?2) = '' THEN (CASE WHEN (?3) = '' THEN (moved_to) WHEN (moved_to) = '' THEN (?3) ELSE (?3) || '/' || (moved_to) END) WHEN (?3) = '' THEN (CASE WHEN (?2) = '' THEN (moved_to)  WHEN SUBSTR((moved_to), 1, LENGTH(?2)) = (?2)  THEN CASE WHEN LENGTH(?2) = LENGTH(moved_to) THEN '' WHEN SUBSTR((moved_to), LENGTH(?2)+1, 1) = '/' THEN SUBSTR((moved_to), LENGTH(?2)+2) END END) WHEN SUBSTR((moved_to), 1, LENGTH(?2)) = (?2) THEN CASE WHEN LENGTH(?2) = LENGTH(moved_to) THEN (?3) WHEN SUBSTR((moved_to), LENGTH(?2)+1, 1) = '/' THEN (?3) || SUBSTR((moved_to), LENGTH(?2)+1) END END) " \
   " WHERE wc_id = ?1 " \
   "   AND (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
   ""
 
-#define STMT_CLEAR_MOVED_TO_DESCENDANTS 188
-#define STMT_188_INFO {"STMT_CLEAR_MOVED_TO_DESCENDANTS", NULL}
-#define STMT_188 \
+#define STMT_CLEAR_MOVED_TO_DESCENDANTS 190
+#define STMT_190_INFO {"STMT_CLEAR_MOVED_TO_DESCENDANTS", NULL}
+#define STMT_190 \
   "UPDATE nodes SET moved_to = NULL " \
   " WHERE wc_id = ?1 " \
   "   AND (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
   ""
 
-#define STMT_SELECT_MOVED_PAIR2 189
-#define STMT_189_INFO {"STMT_SELECT_MOVED_PAIR2", NULL}
-#define STMT_189 \
+#define STMT_SELECT_MOVED_PAIR2 191
+#define STMT_191_INFO {"STMT_SELECT_MOVED_PAIR2", NULL}
+#define STMT_191 \
   "SELECT local_relpath, moved_to, op_depth FROM nodes " \
   "WHERE wc_id = ?1 " \
   "  AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
@@ -1987,9 +2013,9 @@
   "                      AND o.local_relpath = ?2) " \
   ""
 
-#define STMT_SELECT_MOVED_PAIR3 190
-#define STMT_190_INFO {"STMT_SELECT_MOVED_PAIR3", NULL}
-#define STMT_190 \
+#define STMT_SELECT_MOVED_PAIR3 192
+#define STMT_192_INFO {"STMT_SELECT_MOVED_PAIR3", NULL}
+#define STMT_192 \
   "SELECT local_relpath, moved_to, op_depth, kind FROM nodes " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > ?3 " \
   "  AND moved_to IS NOT NULL " \
@@ -2002,9 +2028,9 @@
   "ORDER BY local_relpath, op_depth " \
   ""
 
-#define STMT_SELECT_MOVED_OUTSIDE 191
-#define STMT_191_INFO {"STMT_SELECT_MOVED_OUTSIDE", NULL}
-#define STMT_191 \
+#define STMT_SELECT_MOVED_OUTSIDE 193
+#define STMT_193_INFO {"STMT_SELECT_MOVED_OUTSIDE", NULL}
+#define STMT_193 \
   "SELECT local_relpath, moved_to, op_depth FROM nodes " \
   "WHERE wc_id = ?1 " \
   "  AND (local_relpath = ?2 OR (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END))) " \
@@ -2013,9 +2039,9 @@
   "  AND NOT (((moved_to) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((moved_to) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
   ""
 
-#define STMT_SELECT_OP_DEPTH_MOVED_PAIR 192
-#define STMT_192_INFO {"STMT_SELECT_OP_DEPTH_MOVED_PAIR", NULL}
-#define STMT_192 \
+#define STMT_SELECT_OP_DEPTH_MOVED_PAIR 194
+#define STMT_194_INFO {"STMT_SELECT_OP_DEPTH_MOVED_PAIR", NULL}
+#define STMT_194 \
   "SELECT n.local_relpath, n.moved_to, " \
   "       (SELECT o.repos_path FROM nodes AS o " \
   "        WHERE o.wc_id = n.wc_id " \
@@ -2028,9 +2054,9 @@
   "  AND n.moved_to IS NOT NULL " \
   ""
 
-#define STMT_SELECT_MOVED_DESCENDANTS 193
-#define STMT_193_INFO {"STMT_SELECT_MOVED_DESCENDANTS", NULL}
-#define STMT_193 \
+#define STMT_SELECT_MOVED_DESCENDANTS 195
+#define STMT_195_INFO {"STMT_SELECT_MOVED_DESCENDANTS", NULL}
+#define STMT_195 \
   "SELECT n.local_relpath, h.moved_to " \
   "FROM nodes n, nodes h " \
   "WHERE n.wc_id = ?1 " \
@@ -2046,9 +2072,9 @@
   "  AND h.moved_to IS NOT NULL " \
   ""
 
-#define STMT_COMMIT_UPDATE_ORIGIN 194
-#define STMT_194_INFO {"STMT_COMMIT_UPDATE_ORIGIN", NULL}
-#define STMT_194 \
+#define STMT_COMMIT_UPDATE_ORIGIN 196
+#define STMT_196_INFO {"STMT_COMMIT_UPDATE_ORIGIN", NULL}
+#define STMT_196 \
   "UPDATE nodes SET repos_id = ?4, " \
   "                 repos_path = ?5 || SUBSTR(local_relpath, LENGTH(?2)+1), " \
   "                 revision = ?6 " \
@@ -2058,16 +2084,16 @@
   "  AND op_depth = ?3 " \
   ""
 
-#define STMT_HAS_LAYER_BETWEEN 195
-#define STMT_195_INFO {"STMT_HAS_LAYER_BETWEEN", NULL}
-#define STMT_195 \
+#define STMT_HAS_LAYER_BETWEEN 197
+#define STMT_197_INFO {"STMT_HAS_LAYER_BETWEEN", NULL}
+#define STMT_197 \
   "SELECT 1 FROM NODES " \
   "WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > ?3 AND op_depth < ?4 " \
   ""
 
-#define STMT_SELECT_REPOS_PATH_REVISION 196
-#define STMT_196_INFO {"STMT_SELECT_REPOS_PATH_REVISION", NULL}
-#define STMT_196 \
+#define STMT_SELECT_REPOS_PATH_REVISION 198
+#define STMT_198_INFO {"STMT_SELECT_REPOS_PATH_REVISION", NULL}
+#define STMT_198 \
   "SELECT local_relpath, repos_path, revision FROM nodes " \
   "WHERE wc_id = ?1 " \
   "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
@@ -2075,16 +2101,16 @@
   "ORDER BY local_relpath " \
   ""
 
-#define STMT_SELECT_HAS_NON_FILE_CHILDREN 197
-#define STMT_197_INFO {"STMT_SELECT_HAS_NON_FILE_CHILDREN", NULL}
-#define STMT_197 \
+#define STMT_SELECT_HAS_NON_FILE_CHILDREN 199
+#define STMT_199_INFO {"STMT_SELECT_HAS_NON_FILE_CHILDREN", NULL}
+#define STMT_199 \
   "SELECT 1 FROM nodes " \
   "WHERE wc_id = ?1 AND parent_relpath = ?2 AND op_depth = 0 AND kind != 'file' " \
   ""
 
-#define STMT_SELECT_HAS_GRANDCHILDREN 198
-#define STMT_198_INFO {"STMT_SELECT_HAS_GRANDCHILDREN", NULL}
-#define STMT_198 \
+#define STMT_SELECT_HAS_GRANDCHILDREN 200
+#define STMT_200_INFO {"STMT_SELECT_HAS_GRANDCHILDREN", NULL}
+#define STMT_200 \
   "SELECT 1 FROM nodes " \
   "WHERE wc_id = ?1 " \
   "  AND (((parent_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((parent_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
@@ -2092,33 +2118,33 @@
   "  AND file_external IS NULL " \
   ""
 
-#define STMT_SELECT_ALL_NODES 199
-#define STMT_199_INFO {"STMT_SELECT_ALL_NODES", NULL}
-#define STMT_199 \
+#define STMT_SELECT_ALL_NODES 201
+#define STMT_201_INFO {"STMT_SELECT_ALL_NODES", NULL}
+#define STMT_201 \
   "SELECT op_depth, local_relpath, parent_relpath, file_external FROM nodes " \
   "WHERE wc_id = ?1 " \
   ""
 
-#define STMT_SELECT_IPROPS 200
-#define STMT_200_INFO {"STMT_SELECT_IPROPS", NULL}
-#define STMT_200 \
+#define STMT_SELECT_IPROPS 202
+#define STMT_202_INFO {"STMT_SELECT_IPROPS", NULL}
+#define STMT_202 \
   "SELECT inherited_props FROM nodes " \
   "WHERE wc_id = ?1 " \
   "  AND local_relpath = ?2 " \
   "  AND op_depth = 0 " \
   ""
 
-#define STMT_UPDATE_IPROP 201
-#define STMT_201_INFO {"STMT_UPDATE_IPROP", NULL}
-#define STMT_201 \
+#define STMT_UPDATE_IPROP 203
+#define STMT_203_INFO {"STMT_UPDATE_IPROP", NULL}
+#define STMT_203 \
   "UPDATE nodes " \
   "SET inherited_props = ?3 " \
   "WHERE (wc_id = ?1 AND local_relpath = ?2 AND op_depth = 0) " \
   ""
 
-#define STMT_SELECT_IPROPS_NODE 202
-#define STMT_202_INFO {"STMT_SELECT_IPROPS_NODE", NULL}
-#define STMT_202 \
+#define STMT_SELECT_IPROPS_NODE 204
+#define STMT_204_INFO {"STMT_SELECT_IPROPS_NODE", NULL}
+#define STMT_204 \
   "SELECT local_relpath, repos_path FROM nodes " \
   "WHERE wc_id = ?1 " \
   "  AND local_relpath = ?2 " \
@@ -2126,9 +2152,9 @@
   "  AND (inherited_props not null) " \
   ""
 
-#define STMT_SELECT_IPROPS_RECURSIVE 203
-#define STMT_203_INFO {"STMT_SELECT_IPROPS_RECURSIVE", NULL}
-#define STMT_203 \
+#define STMT_SELECT_IPROPS_RECURSIVE 205
+#define STMT_205_INFO {"STMT_SELECT_IPROPS_RECURSIVE", NULL}
+#define STMT_205 \
   "SELECT local_relpath, repos_path FROM nodes " \
   "WHERE wc_id = ?1 " \
   "  AND (((local_relpath) > (CASE (?2) WHEN '' THEN '' ELSE (?2) || '/' END)) AND ((local_relpath) < CASE (?2) WHEN '' THEN X'FFFF' ELSE (?2) || '0' END)) " \
@@ -2136,9 +2162,9 @@
   "  AND (inherited_props not null) " \
   ""
 
-#define STMT_SELECT_IPROPS_CHILDREN 204
-#define STMT_204_INFO {"STMT_SELECT_IPROPS_CHILDREN", NULL}
-#define STMT_204 \
+#define STMT_SELECT_IPROPS_CHILDREN 206
+#define STMT_206_INFO {"STMT_SELECT_IPROPS_CHILDREN", NULL}
+#define STMT_206 \
   "SELECT local_relpath, repos_path FROM nodes " \
   "WHERE wc_id = ?1 " \
   "  AND parent_relpath = ?2 " \
@@ -2146,9 +2172,9 @@
   "  AND (inherited_props not null) " \
   ""
 
-#define STMT_CREATE_SCHEMA 205
-#define STMT_205_INFO {"STMT_CREATE_SCHEMA", NULL}
-#define STMT_205 \
+#define STMT_CREATE_SCHEMA 207
+#define STMT_207_INFO {"STMT_CREATE_SCHEMA", NULL}
+#define STMT_207 \
   "CREATE TABLE REPOSITORY ( " \
   "  id INTEGER PRIMARY KEY AUTOINCREMENT, " \
   "  root  TEXT UNIQUE NOT NULL, " \
@@ -2213,9 +2239,9 @@
   "; " \
   ""
 
-#define STMT_CREATE_NODES 206
-#define STMT_206_INFO {"STMT_CREATE_NODES", NULL}
-#define STMT_206 \
+#define STMT_CREATE_NODES 208
+#define STMT_208_INFO {"STMT_CREATE_NODES", NULL}
+#define STMT_208 \
   "CREATE TABLE NODES ( " \
   "  wc_id  INTEGER NOT NULL REFERENCES WCROOT (id), " \
   "  local_relpath  TEXT NOT NULL, " \
@@ -2255,9 +2281,9 @@
   "  WHERE op_depth = 0; " \
   ""
 
-#define STMT_CREATE_NODES_TRIGGERS 207
-#define STMT_207_INFO {"STMT_CREATE_NODES_TRIGGERS", NULL}
-#define STMT_207 \
+#define STMT_CREATE_NODES_TRIGGERS 209
+#define STMT_209_INFO {"STMT_CREATE_NODES_TRIGGERS", NULL}
+#define STMT_209 \
   "CREATE TRIGGER nodes_insert_trigger " \
   "AFTER INSERT ON nodes " \
   "WHEN NEW.checksum IS NOT NULL " \
@@ -2283,9 +2309,9 @@
   "END; " \
   ""
 
-#define STMT_CREATE_EXTERNALS 208
-#define STMT_208_INFO {"STMT_CREATE_EXTERNALS", NULL}
-#define STMT_208 \
+#define STMT_CREATE_EXTERNALS 210
+#define STMT_210_INFO {"STMT_CREATE_EXTERNALS", NULL}
+#define STMT_210 \
   "CREATE TABLE EXTERNALS ( " \
   "  wc_id  INTEGER NOT NULL REFERENCES WCROOT (id), " \
   "  local_relpath  TEXT NOT NULL, " \
@@ -2304,10 +2330,12 @@
   "                                                      local_relpath); " \
   ""
 
-#define STMT_INSTALL_SCHEMA_STATISTICS 209
-#define STMT_209_INFO {"STMT_INSTALL_SCHEMA_STATISTICS", NULL}
-#define STMT_209 \
+#define STMT_INSTALL_SCHEMA_STATISTICS 211
+#define STMT_211_INFO {"STMT_INSTALL_SCHEMA_STATISTICS", NULL}
+#define STMT_211 \
   "ANALYZE sqlite_master; " \
+  "DELETE FROM sqlite_stat1 " \
+  "WHERE tbl in ('NODES', 'ACTUAL_NODE', 'LOCK', 'WC_LOCK'); " \
   "INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES " \
   "    ('NODES', 'sqlite_autoindex_NODES_1',               '8000 8000 2 1'); " \
   "INSERT OR REPLACE INTO sqlite_stat1(tbl, idx, stat) VALUES " \
@@ -2325,9 +2353,9 @@
   "ANALYZE sqlite_master; " \
   ""
 
-#define STMT_UPGRADE_TO_20 210
-#define STMT_210_INFO {"STMT_UPGRADE_TO_20", NULL}
-#define STMT_210 \
+#define STMT_UPGRADE_TO_20 212
+#define STMT_212_INFO {"STMT_UPGRADE_TO_20", NULL}
+#define STMT_212 \
   "UPDATE BASE_NODE SET checksum = (SELECT checksum FROM pristine " \
   "                                 WHERE md5_checksum = BASE_NODE.checksum) " \
   "WHERE EXISTS (SELECT 1 FROM pristine WHERE md5_checksum = BASE_NODE.checksum); " \
@@ -2368,59 +2396,59 @@
   "PRAGMA user_version = 20; " \
   ""
 
-#define STMT_UPGRADE_TO_21 211
-#define STMT_211_INFO {"STMT_UPGRADE_TO_21", NULL}
-#define STMT_211 \
+#define STMT_UPGRADE_TO_21 213
+#define STMT_213_INFO {"STMT_UPGRADE_TO_21", NULL}
+#define STMT_213 \
   "PRAGMA user_version = 21; " \
   ""
 
-#define STMT_UPGRADE_21_SELECT_OLD_TREE_CONFLICT 212
-#define STMT_212_INFO {"STMT_UPGRADE_21_SELECT_OLD_TREE_CONFLICT", NULL}
-#define STMT_212 \
+#define STMT_UPGRADE_21_SELECT_OLD_TREE_CONFLICT 214
+#define STMT_214_INFO {"STMT_UPGRADE_21_SELECT_OLD_TREE_CONFLICT", NULL}
+#define STMT_214 \
   "SELECT wc_id, local_relpath, tree_conflict_data " \
   "FROM actual_node " \
   "WHERE tree_conflict_data IS NOT NULL " \
   ""
 
-#define STMT_UPGRADE_21_ERASE_OLD_CONFLICTS 213
-#define STMT_213_INFO {"STMT_UPGRADE_21_ERASE_OLD_CONFLICTS", NULL}
-#define STMT_213 \
+#define STMT_UPGRADE_21_ERASE_OLD_CONFLICTS 215
+#define STMT_215_INFO {"STMT_UPGRADE_21_ERASE_OLD_CONFLICTS", NULL}
+#define STMT_215 \
   "UPDATE actual_node SET tree_conflict_data = NULL " \
   ""
 
-#define STMT_UPGRADE_TO_22 214
-#define STMT_214_INFO {"STMT_UPGRADE_TO_22", NULL}
-#define STMT_214 \
+#define STMT_UPGRADE_TO_22 216
+#define STMT_216_INFO {"STMT_UPGRADE_TO_22", NULL}
+#define STMT_216 \
   "UPDATE actual_node SET tree_conflict_data = conflict_data; " \
   "UPDATE actual_node SET conflict_data = NULL; " \
   "PRAGMA user_version = 22; " \
   ""
 
-#define STMT_UPGRADE_TO_23 215
-#define STMT_215_INFO {"STMT_UPGRADE_TO_23", NULL}
-#define STMT_215 \
+#define STMT_UPGRADE_TO_23 217
+#define STMT_217_INFO {"STMT_UPGRADE_TO_23", NULL}
+#define STMT_217 \
   "PRAGMA user_version = 23; " \
   ""
 
-#define STMT_UPGRADE_23_HAS_WORKING_NODES 216
-#define STMT_216_INFO {"STMT_UPGRADE_23_HAS_WORKING_NODES", NULL}
-#define STMT_216 \
+#define STMT_UPGRADE_23_HAS_WORKING_NODES 218
+#define STMT_218_INFO {"STMT_UPGRADE_23_HAS_WORKING_NODES", NULL}
+#define STMT_218 \
   "SELECT 1 FROM nodes WHERE op_depth > 0 " \
   "LIMIT 1 " \
   ""
 
-#define STMT_UPGRADE_TO_24 217
-#define STMT_217_INFO {"STMT_UPGRADE_TO_24", NULL}
-#define STMT_217 \
+#define STMT_UPGRADE_TO_24 219
+#define STMT_219_INFO {"STMT_UPGRADE_TO_24", NULL}
+#define STMT_219 \
   "UPDATE pristine SET refcount = " \
   "  (SELECT COUNT(*) FROM nodes " \
   "   WHERE checksum = pristine.checksum ); " \
   "PRAGMA user_version = 24; " \
   ""
 
-#define STMT_UPGRADE_TO_25 218
-#define STMT_218_INFO {"STMT_UPGRADE_TO_25", NULL}
-#define STMT_218 \
+#define STMT_UPGRADE_TO_25 220
+#define STMT_220_INFO {"STMT_UPGRADE_TO_25", NULL}
+#define STMT_220 \
   "DROP VIEW IF EXISTS NODES_CURRENT; " \
   "CREATE VIEW NODES_CURRENT AS " \
   "  SELECT * FROM nodes " \
@@ -2432,9 +2460,9 @@
   "PRAGMA user_version = 25; " \
   ""
 
-#define STMT_UPGRADE_TO_26 219
-#define STMT_219_INFO {"STMT_UPGRADE_TO_26", NULL}
-#define STMT_219 \
+#define STMT_UPGRADE_TO_26 221
+#define STMT_221_INFO {"STMT_UPGRADE_TO_26", NULL}
+#define STMT_221 \
   "DROP VIEW IF EXISTS NODES_BASE; " \
   "CREATE VIEW NODES_BASE AS " \
   "  SELECT * FROM nodes " \
@@ -2442,15 +2470,15 @@
   "PRAGMA user_version = 26; " \
   ""
 
-#define STMT_UPGRADE_TO_27 220
-#define STMT_220_INFO {"STMT_UPGRADE_TO_27", NULL}
-#define STMT_220 \
+#define STMT_UPGRADE_TO_27 222
+#define STMT_222_INFO {"STMT_UPGRADE_TO_27", NULL}
+#define STMT_222 \
   "PRAGMA user_version = 27; " \
   ""
 
-#define STMT_UPGRADE_27_HAS_ACTUAL_NODES_CONFLICTS 221
-#define STMT_221_INFO {"STMT_UPGRADE_27_HAS_ACTUAL_NODES_CONFLICTS", NULL}
-#define STMT_221 \
+#define STMT_UPGRADE_27_HAS_ACTUAL_NODES_CONFLICTS 223
+#define STMT_223_INFO {"STMT_UPGRADE_27_HAS_ACTUAL_NODES_CONFLICTS", NULL}
+#define STMT_223 \
   "SELECT 1 FROM actual_node " \
   "WHERE NOT ((prop_reject IS NULL) AND (conflict_old IS NULL) " \
   "           AND (conflict_new IS NULL) AND (conflict_working IS NULL) " \
@@ -2458,18 +2486,18 @@
   "LIMIT 1 " \
   ""
 
-#define STMT_UPGRADE_TO_28 222
-#define STMT_222_INFO {"STMT_UPGRADE_TO_28", NULL}
-#define STMT_222 \
+#define STMT_UPGRADE_TO_28 224
+#define STMT_224_INFO {"STMT_UPGRADE_TO_28", NULL}
+#define STMT_224 \
   "UPDATE NODES SET checksum = (SELECT checksum FROM pristine " \
   "                             WHERE md5_checksum = nodes.checksum) " \
   "WHERE EXISTS (SELECT 1 FROM pristine WHERE md5_checksum = nodes.checksum); " \
   "PRAGMA user_version = 28; " \
   ""
 
-#define STMT_UPGRADE_TO_29 223
-#define STMT_223_INFO {"STMT_UPGRADE_TO_29", NULL}
-#define STMT_223 \
+#define STMT_UPGRADE_TO_29 225
+#define STMT_225_INFO {"STMT_UPGRADE_TO_29", NULL}
+#define STMT_225 \
   "DROP TRIGGER IF EXISTS nodes_update_checksum_trigger; " \
   "DROP TRIGGER IF EXISTS nodes_insert_trigger; " \
   "DROP TRIGGER IF EXISTS nodes_delete_trigger; " \
@@ -2499,9 +2527,9 @@
   "PRAGMA user_version = 29; " \
   ""
 
-#define STMT_UPGRADE_TO_30 224
-#define STMT_224_INFO {"STMT_UPGRADE_TO_30", NULL}
-#define STMT_224 \
+#define STMT_UPGRADE_TO_30 226
+#define STMT_226_INFO {"STMT_UPGRADE_TO_30", NULL}
+#define STMT_226 \
   "CREATE UNIQUE INDEX IF NOT EXISTS I_NODES_MOVED " \
   "ON NODES (wc_id, moved_to, op_depth); " \
   "CREATE INDEX IF NOT EXISTS I_PRISTINE_MD5 ON PRISTINE (md5_checksum); " \
@@ -2509,9 +2537,9 @@
   "UPDATE nodes SET file_external=1 WHERE file_external IS NOT NULL; " \
   ""
 
-#define STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE 225
-#define STMT_225_INFO {"STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE", NULL}
-#define STMT_225 \
+#define STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE 227
+#define STMT_227_INFO {"STMT_UPGRADE_30_SELECT_CONFLICT_SEPARATE", NULL}
+#define STMT_227 \
   "SELECT wc_id, local_relpath, " \
   "  conflict_old, conflict_working, conflict_new, prop_reject, tree_conflict_data " \
   "FROM actual_node " \
@@ -2523,24 +2551,24 @@
   "ORDER by wc_id, local_relpath " \
   ""
 
-#define STMT_UPGRADE_30_SET_CONFLICT 226
-#define STMT_226_INFO {"STMT_UPGRADE_30_SET_CONFLICT", NULL}
-#define STMT_226 \
+#define STMT_UPGRADE_30_SET_CONFLICT 228
+#define STMT_228_INFO {"STMT_UPGRADE_30_SET_CONFLICT", NULL}
+#define STMT_228 \
   "UPDATE actual_node SET conflict_data = ?3, conflict_old = NULL, " \
   "  conflict_working = NULL, conflict_new = NULL, prop_reject = NULL, " \
   "  tree_conflict_data = NULL " \
   "WHERE wc_id = ?1 and local_relpath = ?2 " \
   ""
 
-#define STMT_UPGRADE_TO_31_ALTER_TABLE 227
-#define STMT_227_INFO {"STMT_UPGRADE_TO_31_ALTER_TABLE", NULL}
-#define STMT_227 \
+#define STMT_UPGRADE_TO_31_ALTER_TABLE 229
+#define STMT_229_INFO {"STMT_UPGRADE_TO_31_ALTER_TABLE", NULL}
+#define STMT_229 \
   "ALTER TABLE NODES ADD COLUMN inherited_props BLOB; " \
   ""
 
-#define STMT_UPGRADE_TO_31_FINALIZE 228
-#define STMT_228_INFO {"STMT_UPGRADE_TO_31_FINALIZE", NULL}
-#define STMT_228 \
+#define STMT_UPGRADE_TO_31_FINALIZE 230
+#define STMT_230_INFO {"STMT_UPGRADE_TO_31_FINALIZE", NULL}
+#define STMT_230 \
   "DROP INDEX IF EXISTS I_ACTUAL_CHANGELIST; " \
   "DROP INDEX IF EXISTS I_EXTERNALS_PARENT; " \
   "DROP INDEX I_NODES_PARENT; " \
@@ -2552,9 +2580,9 @@
   "PRAGMA user_version = 31; " \
   ""
 
-#define STMT_UPGRADE_31_SELECT_WCROOT_NODES 229
-#define STMT_229_INFO {"STMT_UPGRADE_31_SELECT_WCROOT_NODES", NULL}
-#define STMT_229 \
+#define STMT_UPGRADE_31_SELECT_WCROOT_NODES 231
+#define STMT_231_INFO {"STMT_UPGRADE_31_SELECT_WCROOT_NODES", NULL}
+#define STMT_231 \
   "SELECT l.wc_id, l.local_relpath FROM nodes as l " \
   "LEFT OUTER JOIN nodes as r " \
   "ON l.wc_id = r.wc_id " \
@@ -2566,9 +2594,9 @@
   "       OR (l.repos_path IS NOT (CASE WHEN (r.local_relpath) = '' THEN (CASE WHEN (r.repos_path) = '' THEN (l.local_relpath) WHEN (l.local_relpath) = '' THEN (r.repos_path) ELSE (r.repos_path) || '/' || (l.local_relpath) END) WHEN (r.repos_path) = '' THEN (CASE WHEN (r.local_relpath) = '' THEN (l.local_relpath)  WHEN SUBSTR((l.local_relpath), 1, LENGTH(r.local_relpath)) = (r.local_relpath)  THEN CASE WHEN LENGTH(r.local_relpath) = LENGTH(l.local_relpath) THEN '' WHEN SUBSTR((l.local_relpath), LENGTH(r.local_relpath)+1, 1) = '/' THEN SUBSTR((l.local_relpath), LENGTH(r.local_relpath)+2) END END) WHEN SUBSTR((l.local_relpath), 1, LENGTH(r.local_relpath)) = (r.local_relpath) THEN CASE WHEN LENGTH(r.local_relpath) = LENGTH(l.local_relpath) THEN (r.repos_path) WHEN SUBSTR((l.local_relpath), LENGTH(r.local_relpath)+1, 1) = '/' THEN (r.repos_path) || SUBSTR((l.local_relpath), LENGTH(r.local_relpath)+1) END END))) " \
   ""
 
-#define STMT_UPGRADE_TO_32 230
-#define STMT_230_INFO {"STMT_UPGRADE_TO_32", NULL}
-#define STMT_230 \
+#define STMT_UPGRADE_TO_32 232
+#define STMT_232_INFO {"STMT_UPGRADE_TO_32", NULL}
+#define STMT_232 \
   "DROP INDEX IF EXISTS I_ACTUAL_CHANGELIST; " \
   "DROP INDEX IF EXISTS I_EXTERNALS_PARENT; " \
   "CREATE INDEX I_EXTERNALS_PARENT ON EXTERNALS (wc_id, parent_relpath); " \
@@ -2621,9 +2649,9 @@
   "DROP TABLE ACTUAL_NODE_BACKUP; " \
   ""
 
-#define STMT_VERIFICATION_TRIGGERS 231
-#define STMT_231_INFO {"STMT_VERIFICATION_TRIGGERS", NULL}
-#define STMT_231 \
+#define STMT_VERIFICATION_TRIGGERS 233
+#define STMT_233_INFO {"STMT_VERIFICATION_TRIGGERS", NULL}
+#define STMT_233 \
   "CREATE TEMPORARY TRIGGER no_repository_updates BEFORE UPDATE ON repository " \
   "BEGIN " \
   "  SELECT RAISE(FAIL, 'Updates to REPOSITORY are not allowed.'); " \
@@ -2896,6 +2924,8 @@
     STMT_229, \
     STMT_230, \
     STMT_231, \
+    STMT_232, \
+    STMT_233, \
     NULL \
   }
 
@@ -3133,5 +3163,7 @@
     STMT_229_INFO, \
     STMT_230_INFO, \
     STMT_231_INFO, \
+    STMT_232_INFO, \
+    STMT_233_INFO, \
     {NULL, NULL} \
   }
diff --git a/contrib/subversion/subversion/libsvn_wc/wc-queries.sql b/contrib/subversion/subversion/libsvn_wc/wc-queries.sql
index a8388a3a2..0ced98c79 100644
--- a/contrib/subversion/subversion/libsvn_wc/wc-queries.sql
+++ b/contrib/subversion/subversion/libsvn_wc/wc-queries.sql
@@ -191,7 +191,7 @@ WHERE wc_id = ?1
 -- STMT_DELETE_NODE
 DELETE
 FROM NODES
-WHERE wc_id = ?1 AND local_relpath = ?2
+WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth = ?3
 
 -- STMT_DELETE_ACTUAL_FOR_BASE_RECURSIVE
 /* The ACTUAL_NODE applies to BASE, unless there is in at least one op_depth
@@ -417,6 +417,12 @@ LEFT OUTER JOIN nodes AS moved
 WHERE work.wc_id = ?1 AND work.local_relpath = ?2 AND work.op_depth > 0
 LIMIT 1
 
+-- STMT_SELECT_MOVED_TO_NODE
+SELECT op_depth, moved_to
+FROM nodes
+WHERE wc_id = ?1 AND local_relpath = ?2 AND moved_to IS NOT NULL
+ORDER BY op_depth DESC
+
 -- STMT_SELECT_OP_DEPTH_MOVED_TO
 SELECT op_depth, moved_to, repos_path, revision
 FROM nodes
@@ -711,7 +717,7 @@ WHERE wc_id = ?1 AND local_relpath = ?2
                   WHERE wc_id = ?1 AND local_relpath = ?2 AND op_depth > ?3)
   AND presence = MAP_BASE_DELETED
 
--- STMT_DELETE_ALL_LAYERS
+-- STMT_DELETE_NODE_ALL_LAYERS
 DELETE FROM nodes
 WHERE wc_id = ?1 AND local_relpath = ?2
 
@@ -1503,7 +1509,6 @@ WHERE wc_id = ?1
   AND presence=MAP_NORMAL
   AND file_external IS NULL
 
-/* ### FIXME: op-depth?  What about multiple moves? */
 -- STMT_SELECT_MOVED_FROM_RELPATH
 SELECT local_relpath, op_depth FROM nodes
 WHERE wc_id = ?1 AND moved_to = ?2 AND op_depth > 0
@@ -1530,14 +1535,31 @@ SELECT moved_to, local_relpath FROM nodes
 WHERE wc_id = ?1 AND op_depth > 0
   AND IS_STRICT_DESCENDANT_OF(moved_to, ?2)
 
+/* If the node is moved here (r.moved_here = 1) we are really interested in
+   where the node was moved from. To obtain that we need the op_depth, but
+   this form of select only allows a single return value */
 -- STMT_SELECT_MOVED_FOR_DELETE
-SELECT local_relpath, moved_to, op_depth FROM nodes
+SELECT local_relpath, moved_to, op_depth,
+       (SELECT CASE WHEN r.moved_here THEN r.op_depth END FROM nodes r
+        WHERE r.wc_id = ?1
+          AND r.local_relpath = n.local_relpath
+          AND r.op_depth < n.op_depth
+        ORDER BY r.op_depth DESC LIMIT 1) AS moved_here_op_depth
+ FROM nodes n
 WHERE wc_id = ?1
   AND (local_relpath = ?2 OR IS_STRICT_DESCENDANT_OF(local_relpath, ?2))
   AND moved_to IS NOT NULL
-  AND op_depth >= (SELECT MAX(op_depth) FROM nodes o
-                    WHERE o.wc_id = ?1
-                      AND o.local_relpath = ?2)
+  AND op_depth >= ?3
+
+-- STMT_SELECT_MOVED_FROM_FOR_DELETE
+SELECT local_relpath, op_depth,
+       (SELECT CASE WHEN r.moved_here THEN r.op_depth END FROM nodes r
+        WHERE r.wc_id = ?1
+          AND r.local_relpath = n.local_relpath
+          AND r.op_depth < n.op_depth
+        ORDER BY r.op_depth DESC LIMIT 1) AS moved_here_op_depth
+ FROM nodes n
+WHERE wc_id = ?1 AND moved_to = ?2 AND op_depth > 0
 
 -- STMT_UPDATE_MOVED_TO_DESCENDANTS
 UPDATE nodes SET moved_to = RELPATH_SKIP_JOIN(?2, ?3, moved_to)
diff --git a/contrib/subversion/subversion/libsvn_wc/wc_db.c b/contrib/subversion/subversion/libsvn_wc/wc_db.c
index 7d038cf57..ed59d4cf6 100644
--- a/contrib/subversion/subversion/libsvn_wc/wc_db.c
+++ b/contrib/subversion/subversion/libsvn_wc/wc_db.c
@@ -627,6 +627,10 @@ svn_wc__db_extend_parent_delete(svn_wc__db_wcroot_t *wcroot,
    When removing a node if the parent has a higher working node then
    the parent node and this node are both deleted or replaced and any
    delete over this node must be removed.
+
+   This function (like most wcroot functions) assumes that its caller
+   only uses this function within an sqlite transaction if atomic
+   behavior is needed.
  */
 svn_error_t *
 svn_wc__db_retract_parent_delete(svn_wc__db_wcroot_t *wcroot,
@@ -635,14 +639,60 @@ svn_wc__db_retract_parent_delete(svn_wc__db_wcroot_t *wcroot,
                                  apr_pool_t *scratch_pool)
 {
   svn_sqlite__stmt_t *stmt;
+  svn_boolean_t have_row;
+  int working_depth;
+  svn_wc__db_status_t presence;
+  const char *moved_to;
 
   SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
-                                    STMT_DELETE_LOWEST_WORKING_NODE));
+                                    STMT_SELECT_LOWEST_WORKING_NODE));
   SVN_ERR(svn_sqlite__bindf(stmt, "isd", wcroot->wc_id, local_relpath,
                             op_depth));
-  SVN_ERR(svn_sqlite__step_done(stmt));
+  SVN_ERR(svn_sqlite__step(&have_row, stmt));
 
-  return SVN_NO_ERROR;
+  if (!have_row)
+    return svn_error_trace(svn_sqlite__reset(stmt));
+
+  working_depth = svn_sqlite__column_int(stmt, 0);
+  presence = svn_sqlite__column_token(stmt, 1, presence_map);
+  moved_to = svn_sqlite__column_text(stmt, 3, scratch_pool);
+
+  SVN_ERR(svn_sqlite__reset(stmt));
+
+  if (moved_to)
+    {
+      /* Turn the move into a copy to keep the NODES table valid */
+      SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
+                                        STMT_CLEAR_MOVED_HERE_RECURSIVE));
+      SVN_ERR(svn_sqlite__bindf(stmt, "isd", wcroot->wc_id,
+                                moved_to, relpath_depth(moved_to)));
+      SVN_ERR(svn_sqlite__step_done(stmt));
+
+      /* This leaves just the moved_to information on the origin,
+         which we will remove in the next step */
+    }
+
+  if (presence == svn_wc__db_status_base_deleted)
+    {
+      /* Nothing left to shadow; remove the base-deleted node */
+      SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb, STMT_DELETE_NODE));
+    }
+  else if (moved_to)
+    {
+      /* Clear moved to information, as this node is no longer base-deleted */
+      SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
+                                        STMT_CLEAR_MOVED_TO_RELPATH));
+      }
+  else
+    {
+      /* Nothing to update */
+      return SVN_NO_ERROR;
+    }
+
+  SVN_ERR(svn_sqlite__bindf(stmt, "isd", wcroot->wc_id, local_relpath,
+                            working_depth));
+
+  return svn_error_trace(svn_sqlite__update(NULL, stmt));
 }
 
 
@@ -3765,8 +3815,15 @@ cross_db_copy(svn_wc__db_wcroot_t *src_wcroot,
                     NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                     src_wcroot, src_relpath, scratch_pool, scratch_pool));
 
-  SVN_ERR(db_read_pristine_props(&props, src_wcroot, src_relpath, FALSE,
-                                 scratch_pool, scratch_pool));
+  if (dst_status != svn_wc__db_status_not_present
+      && dst_status != svn_wc__db_status_excluded
+      && dst_status != svn_wc__db_status_server_excluded)
+    {
+      SVN_ERR(db_read_pristine_props(&props, src_wcroot, src_relpath, FALSE,
+                                     scratch_pool, scratch_pool));
+    }
+  else
+    props = NULL;
 
   blank_iwb(&iwb);
   iwb.presence = dst_status;
@@ -4076,8 +4133,9 @@ get_info_for_copy(apr_int64_t *copyfrom_id,
                   svn_wc__db_status_t *status,
                   svn_node_kind_t *kind,
                   svn_boolean_t *op_root,
-                  svn_wc__db_wcroot_t *wcroot,
+                  svn_wc__db_wcroot_t *src_wcroot,
                   const char *local_relpath,
+                  svn_wc__db_wcroot_t *dst_wcroot,
                   apr_pool_t *result_pool,
                   apr_pool_t *scratch_pool)
 {
@@ -4094,7 +4152,7 @@ get_info_for_copy(apr_int64_t *copyfrom_id,
                     NULL /* have_base */,
                     NULL /* have_more_work */,
                     NULL /* have_work */,
-                    wcroot, local_relpath, result_pool, scratch_pool));
+                    src_wcroot, local_relpath, result_pool, scratch_pool));
 
   if (op_root)
     *op_root = is_op_root;
@@ -4109,7 +4167,7 @@ get_info_for_copy(apr_int64_t *copyfrom_id,
                        scratch_pool);
       SVN_ERR(get_info_for_copy(copyfrom_id, copyfrom_relpath, copyfrom_rev,
                                 NULL, NULL, NULL,
-                                wcroot, parent_relpath,
+                                src_wcroot, parent_relpath, dst_wcroot,
                                 scratch_pool, scratch_pool));
       if (*copyfrom_relpath)
         *copyfrom_relpath = svn_relpath_join(*copyfrom_relpath, base_name,
@@ -4118,7 +4176,7 @@ get_info_for_copy(apr_int64_t *copyfrom_id,
   else if (node_status == svn_wc__db_status_added)
     {
       SVN_ERR(scan_addition(&node_status, NULL, NULL, NULL, NULL, NULL, NULL,
-                            NULL, NULL, NULL, wcroot, local_relpath,
+                            NULL, NULL, NULL, src_wcroot, local_relpath,
                             scratch_pool, scratch_pool));
     }
   else if (node_status == svn_wc__db_status_deleted && is_op_root)
@@ -4127,7 +4185,7 @@ get_info_for_copy(apr_int64_t *copyfrom_id,
 
       SVN_ERR(scan_deletion_txn(&base_del_relpath, NULL,
                                 &work_del_relpath,
-                                NULL, wcroot, local_relpath,
+                                NULL, src_wcroot, local_relpath,
                                 scratch_pool, scratch_pool));
       if (work_del_relpath)
         {
@@ -4140,7 +4198,8 @@ get_info_for_copy(apr_int64_t *copyfrom_id,
           SVN_ERR(scan_addition(NULL, &op_root_relpath,
                                 NULL, NULL, /* repos_* */
                                 copyfrom_relpath, copyfrom_id, copyfrom_rev,
-                                NULL, NULL, NULL, wcroot, parent_del_relpath,
+                                NULL, NULL, NULL,
+                                src_wcroot, parent_del_relpath,
                                 scratch_pool, scratch_pool));
           *copyfrom_relpath
             = svn_relpath_join(*copyfrom_relpath,
@@ -4155,7 +4214,7 @@ get_info_for_copy(apr_int64_t *copyfrom_id,
                                                     copyfrom_id, NULL, NULL,
                                                     NULL, NULL, NULL, NULL,
                                                     NULL, NULL, NULL, NULL,
-                                                    wcroot, local_relpath,
+                                                    src_wcroot, local_relpath,
                                                     result_pool,
                                                     scratch_pool));
         }
@@ -4177,6 +4236,24 @@ get_info_for_copy(apr_int64_t *copyfrom_id,
   if (status)
     *status = node_status;
 
+  if (src_wcroot != dst_wcroot && *copyfrom_relpath)
+    {
+      const char *repos_root_url;
+      const char *repos_uuid;
+
+      /* Pass the right repos-id for the destination db. We can't just use
+         the id of the source database, as this value can change after
+         relocation (and perhaps also when we start storing multiple
+         working copies in a single db)! */
+
+      SVN_ERR(svn_wc__db_fetch_repos_info(&repos_root_url, &repos_uuid,
+                                          src_wcroot->sdb, *copyfrom_id,
+                                          scratch_pool));
+
+      SVN_ERR(create_repos_id(copyfrom_id, repos_root_url, repos_uuid,
+                              dst_wcroot->sdb, scratch_pool));
+    }
+
   return SVN_NO_ERROR;
 }
 
@@ -4336,8 +4413,9 @@ db_op_copy(svn_wc__db_wcroot_t *src_wcroot,
   const apr_array_header_t *children;
 
   SVN_ERR(get_info_for_copy(©from_id, ©from_relpath, ©from_rev,
-                            &status, &kind, &op_root, src_wcroot,
-                            src_relpath, scratch_pool, scratch_pool));
+                            &status, &kind, &op_root,
+                            src_wcroot, src_relpath, dst_wcroot,
+                            scratch_pool, scratch_pool));
 
   SVN_ERR(op_depth_for_copy(&dst_op_depth, &dst_np_op_depth,
                             &dst_parent_op_depth,
@@ -4562,21 +4640,6 @@ db_op_copy(svn_wc__db_wcroot_t *src_wcroot,
     }
   else
     {
-      if (copyfrom_relpath)
-        {
-          const char *repos_root_url;
-          const char *repos_uuid;
-
-          /* Pass the right repos-id for the destination db! */
-
-          SVN_ERR(svn_wc__db_fetch_repos_info(&repos_root_url, &repos_uuid,
-                                              src_wcroot->sdb, copyfrom_id,
-                                              scratch_pool));
-
-          SVN_ERR(create_repos_id(©from_id, repos_root_url, repos_uuid,
-                                  dst_wcroot->sdb, scratch_pool));
-        }
-
       SVN_ERR(cross_db_copy(src_wcroot, src_relpath, dst_wcroot,
                             dst_relpath, dst_presence, dst_op_depth,
                             dst_np_op_depth, kind,
@@ -5075,6 +5138,17 @@ db_op_copy_shadowed_layer(svn_wc__db_wcroot_t *src_wcroot,
                                     scratch_pool));
     }
 
+  if (dst_presence == svn_wc__db_status_not_present)
+    {
+      /* Don't create descendants of a not present node! */
+
+      /* This code is currently still triggered by copying deleted nodes
+         between separate working copies. See ### comment above. */
+
+      svn_pool_destroy(iterpool);
+      return SVN_NO_ERROR;
+    }
+
   SVN_ERR(gather_repo_children(&children, src_wcroot, src_relpath,
                                src_op_depth, scratch_pool, iterpool));
 
@@ -7176,7 +7250,7 @@ remove_node_txn(svn_boolean_t *left_changes,
   if (local_relpath[0] != '\0')
     {
       SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
-                                        STMT_DELETE_NODE));
+                                        STMT_DELETE_NODE_ALL_LAYERS));
       SVN_ERR(svn_sqlite__bindf(stmt, "is", wcroot->wc_id, local_relpath));
       SVN_ERR(svn_sqlite__step_done(stmt));
     }
@@ -7487,8 +7561,86 @@ struct moved_node_t {
 
   /* The op-depth of the deleted node at the source of the move. */
   int op_depth;
+
+  /* When >= 1 the op_depth at which local_relpath was moved to its
+     location. Used to find its original location outside the delete */
+  int moved_from_depth;
 };
 
+/* Helper function to resolve the original location of local_relpath at OP_DEPTH
+   before it was moved into the tree rooted at ROOT_RELPATH. */
+static svn_error_t *
+resolve_moved_from(const char **moved_from_relpath,
+                   int *moved_from_op_depth,
+                   svn_wc__db_wcroot_t *wcroot,
+                   const char *root_relpath,
+                   const char *local_relpath,
+                   int op_depth,
+                   apr_pool_t *result_pool,
+                   apr_pool_t *scratch_pool)
+{
+  const char *suffix = "";
+  svn_sqlite__stmt_t *stmt;
+  const char *m_from_relpath;
+  int m_from_op_depth;
+  int m_move_from_depth;
+  svn_boolean_t have_row;
+
+  while (relpath_depth(local_relpath) > op_depth)
+    {
+      const char *name;
+      svn_relpath_split(&local_relpath, &name, local_relpath, scratch_pool);
+      suffix = svn_relpath_join(suffix, name, scratch_pool);
+    }
+
+  SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
+                                    STMT_SELECT_MOVED_FROM_FOR_DELETE));
+  SVN_ERR(svn_sqlite__bindf(stmt, "is",
+                            wcroot->wc_id, local_relpath));
+  SVN_ERR(svn_sqlite__step(&have_row, stmt));
+
+  if (!have_row)
+    {
+      /* assert(have_row); */
+      *moved_from_relpath = NULL;
+      *moved_from_op_depth = -1;
+
+      SVN_ERR(svn_sqlite__reset(stmt));
+
+      return SVN_NO_ERROR;
+    }
+
+  m_from_relpath = svn_sqlite__column_text(stmt, 0, scratch_pool);
+  m_from_op_depth = svn_sqlite__column_int(stmt, 1);
+  m_move_from_depth = svn_sqlite__column_int(stmt, 2);
+
+  SVN_ERR(svn_sqlite__reset(stmt));
+
+  if (! svn_relpath_skip_ancestor(root_relpath, m_from_relpath))
+    {
+      *moved_from_relpath = svn_relpath_join(m_from_relpath, suffix,
+                                             result_pool);
+      *moved_from_op_depth = m_from_op_depth; /* ### Ok? */
+      return SVN_NO_ERROR;
+    }
+  else if (!m_move_from_depth)
+    {
+      *moved_from_relpath = NULL;
+      *moved_from_op_depth = -1;
+      return SVN_NO_ERROR;
+    }
+
+  return svn_error_trace(
+        resolve_moved_from(moved_from_relpath,
+                           moved_from_op_depth,
+                           wcroot,
+                           root_relpath,
+                           svn_relpath_join(m_from_relpath, suffix,
+                                            scratch_pool),
+                           m_move_from_depth,
+                           result_pool, scratch_pool));
+}
+
 static svn_error_t *
 delete_node(void *baton,
             svn_wc__db_wcroot_t *wcroot,
@@ -7500,19 +7652,70 @@ delete_node(void *baton,
   svn_boolean_t have_row, op_root;
   svn_boolean_t add_work = FALSE;
   svn_sqlite__stmt_t *stmt;
-  int select_depth; /* Depth of what is to be deleted */
-  svn_boolean_t refetch_depth = FALSE;
+  int working_op_depth; /* Depth of what is to be deleted */
+  int keep_op_depth = 0; /* Depth of what is below what is deleted */
   svn_node_kind_t kind;
   apr_array_header_t *moved_nodes = NULL;
-  int delete_depth = relpath_depth(local_relpath);
+  int delete_op_depth = relpath_depth(local_relpath);
 
-  SVN_ERR(read_info(&status,
-                    &kind, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-                    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-                    &op_root, NULL, NULL,
-                    NULL, NULL, NULL,
-                    wcroot, local_relpath,
-                    scratch_pool, scratch_pool));
+  assert(*local_relpath); /* Can't delete wcroot */
+
+  SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
+                                    STMT_SELECT_NODE_INFO));
+  SVN_ERR(svn_sqlite__bindf(stmt, "is", wcroot->wc_id, local_relpath));
+  SVN_ERR(svn_sqlite__step(&have_row, stmt));
+
+  if (!have_row)
+    {
+      return svn_error_createf(SVN_ERR_WC_PATH_NOT_FOUND,
+                               svn_sqlite__reset(stmt),
+                               _("The node '%s' was not found."),
+                               path_for_error_message(wcroot,
+                                                      local_relpath,
+                                                      scratch_pool));
+    }
+
+  working_op_depth = svn_sqlite__column_int(stmt, 0);
+  status = svn_sqlite__column_token(stmt, 3, presence_map);
+  kind = svn_sqlite__column_token(stmt, 4, kind_map);
+
+  if (working_op_depth < delete_op_depth)
+    {
+      op_root = FALSE;
+      add_work = TRUE;
+      keep_op_depth = working_op_depth;
+    }
+  else
+    {
+      op_root = TRUE;
+
+      SVN_ERR(svn_sqlite__step(&have_row, stmt));
+
+      if (have_row)
+        {
+          svn_wc__db_status_t below_status;
+          int below_op_depth;
+
+          below_op_depth = svn_sqlite__column_int(stmt, 0);
+          below_status = svn_sqlite__column_token(stmt, 3, presence_map);
+
+          if (below_status != svn_wc__db_status_not_present
+              && below_status != svn_wc__db_status_base_deleted)
+            {
+              add_work = TRUE;
+              keep_op_depth = below_op_depth;
+            }
+          else
+            keep_op_depth = 0;
+        }
+      else
+        keep_op_depth = -1;
+    }
+
+  SVN_ERR(svn_sqlite__reset(stmt));
+
+  if (working_op_depth != 0) /* WORKING */
+    SVN_ERR(convert_to_working_status(&status, status));
 
   if (status == svn_wc__db_status_deleted
       || status == svn_wc__db_status_not_present)
@@ -7591,6 +7794,7 @@ delete_node(void *baton,
                                                          part, scratch_pool);
           moved_node->op_depth = move_op_depth;
           moved_node->moved_to_relpath = b->moved_to_relpath;
+          moved_node->moved_from_depth = -1;
 
           APR_ARRAY_PUSH(moved_nodes, const struct moved_node_t *) = moved_node;
         }
@@ -7602,8 +7806,9 @@ delete_node(void *baton,
            * possibly because of a nested move operation. */
           moved_node = apr_palloc(scratch_pool, sizeof(struct moved_node_t));
           moved_node->local_relpath = local_relpath;
-          moved_node->op_depth = delete_depth;
+          moved_node->op_depth = delete_op_depth;
           moved_node->moved_to_relpath = b->moved_to_relpath;
+          moved_node->moved_from_depth = -1;
 
           APR_ARRAY_PUSH(moved_nodes, const struct moved_node_t *) = moved_node;
         }
@@ -7618,24 +7823,18 @@ delete_node(void *baton,
                                              b->moved_to_relpath));
       SVN_ERR(svn_sqlite__update(NULL, stmt));
     }
-  else
-    {
-      SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
-                                        STMT_CLEAR_MOVED_TO_DESCENDANTS));
-      SVN_ERR(svn_sqlite__bindf(stmt, "is", wcroot->wc_id,
-                                            local_relpath));
-      SVN_ERR(svn_sqlite__update(NULL, stmt));
-    }
 
   /* Find children that were moved out of the subtree rooted at this node.
    * We'll need to update their op-depth columns because their deletion
    * is now implied by the deletion of their parent (i.e. this node). */
     {
       apr_pool_t *iterpool;
+      int i;
 
       SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
                                         STMT_SELECT_MOVED_FOR_DELETE));
-      SVN_ERR(svn_sqlite__bindf(stmt, "is", wcroot->wc_id, local_relpath));
+      SVN_ERR(svn_sqlite__bindf(stmt, "isd", wcroot->wc_id, local_relpath,
+                                delete_op_depth));
 
       SVN_ERR(svn_sqlite__step(&have_row, stmt));
       iterpool = svn_pool_create(scratch_pool);
@@ -7645,52 +7844,85 @@ delete_node(void *baton,
           const char *child_relpath = svn_sqlite__column_text(stmt, 0, NULL);
           const char *mv_to_relpath = svn_sqlite__column_text(stmt, 1, NULL);
           int child_op_depth = svn_sqlite__column_int(stmt, 2);
+          int moved_from_depth = -1;
           svn_boolean_t fixup = FALSE;
 
-          if (!b->moved_to_relpath
+          if (! b->moved_to_relpath
               && ! svn_relpath_skip_ancestor(local_relpath, mv_to_relpath))
             {
-              /* Update the op-depth of an moved node below this tree */
-              fixup = TRUE;
-              child_op_depth = delete_depth;
-            }
-          else if (b->moved_to_relpath
-                   && delete_depth == child_op_depth)
-            {
-              /* Update the op-depth of a tree shadowed by this tree */
-              fixup = TRUE;
-              child_op_depth = delete_depth;
-            }
-          else if (b->moved_to_relpath
-                   && child_op_depth >= delete_depth
-                   && !svn_relpath_skip_ancestor(local_relpath, mv_to_relpath))
-            {
-              /* Update the move destination of something that is now moved
-                 away further */
+              /* a NULL moved_here_depth will be reported as 0 */
+              int moved_here_depth = svn_sqlite__column_int(stmt, 3);
 
-              child_relpath = svn_relpath_skip_ancestor(local_relpath, child_relpath);
+              /* Plain delete. Fixup move information of descendants that were
+                 moved here, or that were moved out */
 
-              if (child_relpath)
+              if (moved_here_depth >= delete_op_depth)
                 {
-                  child_relpath = svn_relpath_join(b->moved_to_relpath, child_relpath, scratch_pool);
+                  /* The move we recorded here must be moved to the location
+                     this node had before it was moved here.
 
-                  if (child_op_depth > delete_depth
-                      && svn_relpath_skip_ancestor(local_relpath, child_relpath))
-                    child_op_depth = delete_depth;
-                  else
-                    child_op_depth = relpath_depth(child_relpath);
+                     This might contain multiple steps when the node was moved
+                     in several places within the to be deleted tree */
 
+                  /* ### TODO: Add logic */
                   fixup = TRUE;
+                  moved_from_depth = moved_here_depth;
+                }
+              else
+                {
+                  /* Update the op-depth of an moved away node that was
+                     registered as moved by the records that we are about
+                     to delete */
+                  fixup = TRUE;
+                  child_op_depth = delete_op_depth;
+                }
+            }
+          else if (b->moved_to_relpath)
+            {
+              /* The node is moved to a new location */
+
+              if (delete_op_depth == child_op_depth)
+                {
+                  /* Update the op-depth of a tree shadowed by this tree */
+                  fixup = TRUE;
+                  /*child_op_depth = delete_depth;*/
+                }
+              else if (child_op_depth >= delete_op_depth
+                       && !svn_relpath_skip_ancestor(local_relpath,
+                                                     mv_to_relpath))
+                {
+                  /* Update the move destination of something that is now moved
+                     away further */
+
+                  child_relpath = svn_relpath_skip_ancestor(local_relpath,
+                                                            child_relpath);
+
+                  if (child_relpath)
+                    {
+                      child_relpath = svn_relpath_join(b->moved_to_relpath,
+                                                       child_relpath,
+                                                       scratch_pool);
+
+                      if (child_op_depth > delete_op_depth
+                           && svn_relpath_skip_ancestor(local_relpath,
+                                                        child_relpath))
+                        child_op_depth = delete_op_depth;
+                      else
+                        child_op_depth = relpath_depth(child_relpath);
+
+                      fixup = TRUE;
+                    }
                 }
             }
 
           if (fixup)
             {
-              mn = apr_pcalloc(scratch_pool, sizeof(struct moved_node_t));
+              mn = apr_palloc(scratch_pool, sizeof(struct moved_node_t));
 
               mn->local_relpath = apr_pstrdup(scratch_pool, child_relpath);
               mn->moved_to_relpath = apr_pstrdup(scratch_pool, mv_to_relpath);
               mn->op_depth = child_op_depth;
+              mn->moved_from_depth = moved_from_depth;
 
               if (!moved_nodes)
                 moved_nodes = apr_array_make(scratch_pool, 1,
@@ -7700,58 +7932,67 @@ delete_node(void *baton,
 
           SVN_ERR(svn_sqlite__step(&have_row, stmt));
         }
-      svn_pool_destroy(iterpool);
       SVN_ERR(svn_sqlite__reset(stmt));
-    }
 
-  if (op_root)
-    {
-      svn_boolean_t below_base;
-      svn_boolean_t below_work;
-      svn_wc__db_status_t below_status;
-
-      /* Use STMT_SELECT_NODE_INFO directly instead of read_info plus
-         info_below_working */
-      SVN_ERR(info_below_working(&below_base, &below_work, &below_status,
-                                 wcroot, local_relpath, -1, scratch_pool));
-      if ((below_base || below_work)
-          && below_status != svn_wc__db_status_not_present
-          && below_status != svn_wc__db_status_deleted)
+      for (i = 0; moved_nodes && (i < moved_nodes->nelts); i++)
         {
-          add_work = TRUE;
-          refetch_depth = TRUE;
+          struct moved_node_t *mn = APR_ARRAY_IDX(moved_nodes, i,
+                                                  struct moved_node_t *);
+
+          if (mn->moved_from_depth > 0)
+            {
+              svn_pool_clear(iterpool);
+
+              SVN_ERR(resolve_moved_from(&mn->local_relpath, &mn->op_depth,
+                                         wcroot, local_relpath,
+                                         mn->local_relpath,
+                                         mn->moved_from_depth,
+                                         scratch_pool, iterpool));
+
+              if (!mn->local_relpath)
+                svn_sort__array_delete(moved_nodes, i--, 1);
+            }
         }
 
-      select_depth = relpath_depth(local_relpath);
+      svn_pool_destroy(iterpool);
     }
-  else
+
+  if (!b->moved_to_relpath)
     {
-      add_work = TRUE;
-      if (status != svn_wc__db_status_normal)
-        SVN_ERR(op_depth_of(&select_depth, wcroot, local_relpath));
-      else
-        select_depth = 0; /* Deleting BASE node */
+      SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
+                                        STMT_CLEAR_MOVED_TO_DESCENDANTS));
+      SVN_ERR(svn_sqlite__bindf(stmt, "is", wcroot->wc_id,
+                                local_relpath));
+      SVN_ERR(svn_sqlite__update(NULL, stmt));
+
+      if (op_root)
+        {
+          SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
+                                            STMT_CLEAR_MOVED_TO_FROM_DEST));
+          SVN_ERR(svn_sqlite__bindf(stmt, "is", wcroot->wc_id,
+                                    local_relpath));
+
+          SVN_ERR(svn_sqlite__update(NULL, stmt));
+        }
     }
 
+
   /* ### Put actual-only nodes into the list? */
   if (b->notify)
     {
       SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
                                         STMT_INSERT_DELETE_LIST));
       SVN_ERR(svn_sqlite__bindf(stmt, "isd",
-                                wcroot->wc_id, local_relpath, select_depth));
+                                wcroot->wc_id, local_relpath, working_op_depth));
       SVN_ERR(svn_sqlite__step_done(stmt));
     }
 
   SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
                                     STMT_DELETE_NODES_ABOVE_DEPTH_RECURSIVE));
   SVN_ERR(svn_sqlite__bindf(stmt, "isd",
-                            wcroot->wc_id, local_relpath, delete_depth));
+                            wcroot->wc_id, local_relpath, delete_op_depth));
   SVN_ERR(svn_sqlite__step_done(stmt));
 
-  if (refetch_depth)
-    SVN_ERR(op_depth_of(&select_depth, wcroot, local_relpath));
-
   /* Delete ACTUAL_NODE rows, but leave those that have changelist
      and a NODES row. */
   SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
@@ -7781,7 +8022,7 @@ delete_node(void *baton,
                                  STMT_INSERT_DELETE_FROM_NODE_RECURSIVE));
       SVN_ERR(svn_sqlite__bindf(stmt, "isdd",
                                 wcroot->wc_id, local_relpath,
-                                select_depth, delete_depth));
+                                keep_op_depth, delete_op_depth));
       SVN_ERR(svn_sqlite__step_done(stmt));
     }
 
@@ -8680,7 +8921,11 @@ read_children_info(svn_wc__db_wcroot_t *wcroot,
           else
             child->op_root = (op_depth == relpath_depth(child_relpath));
 
-          svn_hash_sets(nodes, apr_pstrdup(result_pool, name), child);
+          if (op_depth && child->op_root)
+            child_item->info.moved_here = svn_sqlite__column_boolean(stmt, 20);
+
+          if (new_child)
+            svn_hash_sets(nodes, apr_pstrdup(result_pool, name), child);
         }
 
       if (op_depth == 0)
@@ -8702,18 +8947,48 @@ read_children_info(svn_wc__db_wcroot_t *wcroot,
           child_item->nr_layers++;
           child_item->info.have_more_work = (child_item->nr_layers > 1);
 
-          /* Moved-to can only exist at op_depth > 0. */
-          /* ### Should we really do this for every layer where op_depth > 0
-                 in undefined order? */
+
+          /* A local_relpath can be moved multiple times at different op
+             depths and it really depends on the caller what is interesting.
+             We provide a simple linked list with the moved_from information */
+
           moved_to_relpath = svn_sqlite__column_text(stmt, 21, NULL);
           if (moved_to_relpath)
-            child_item->info.moved_to_abspath =
-              svn_dirent_join(wcroot->abspath, moved_to_relpath, result_pool);
+            {
+              struct svn_wc__db_moved_to_info_t *moved_to;
+              struct svn_wc__db_moved_to_info_t **next;
+              const char *shadow_op_relpath;
+              int cur_op_depth;
+
+              moved_to = apr_pcalloc(result_pool, sizeof(*moved_to));
+              moved_to->moved_to_abspath = svn_dirent_join(wcroot->abspath,
+                                                           moved_to_relpath,
+                                                           result_pool);
+
+              cur_op_depth = relpath_depth(child_relpath);
+              shadow_op_relpath = child_relpath;
+
+              while (cur_op_depth > op_depth)
+                {
+                  shadow_op_relpath = svn_relpath_dirname(shadow_op_relpath,
+                                                          scratch_pool);
+                  cur_op_depth--;
+                }
+
+              moved_to->shadow_op_root_abspath =
+                        svn_dirent_join(wcroot->abspath, shadow_op_relpath,
+                                        result_pool);
+
+              next = &child_item->info.moved_to;
 
-          /* Moved-here can only exist at op_depth > 0. */
-          /* ### Should we really do this for every layer where op_depth > 0
-                 in undefined order? */
-          child_item->info.moved_here = svn_sqlite__column_boolean(stmt, 20);
+              while (*next &&
+                     0 < strcmp((*next)->shadow_op_root_abspath,
+                                moved_to->shadow_op_root_abspath))
+                next = &((*next)->next);
+
+              moved_to->next = *next;
+              *next = moved_to;
+            }
         }
 
       SVN_ERR(svn_sqlite__step(&have_row, stmt));
@@ -8801,6 +9076,178 @@ svn_wc__db_read_children_info(apr_hash_t **nodes,
   return SVN_NO_ERROR;
 }
 
+static svn_error_t *
+db_read_props(apr_hash_t **props,
+              svn_wc__db_wcroot_t *wcroot,
+              const char *local_relpath,
+              apr_pool_t *result_pool,
+              apr_pool_t *scratch_pool);
+
+static svn_error_t *
+read_single_info(const struct svn_wc__db_info_t **info,
+                 svn_wc__db_wcroot_t *wcroot,
+                 const char *local_relpath,
+                 apr_pool_t *result_pool,
+                 apr_pool_t *scratch_pool)
+{
+  struct svn_wc__db_info_t *mtb;
+  apr_int64_t repos_id;
+  const svn_checksum_t *checksum;
+  const char *original_repos_relpath;
+  svn_boolean_t have_work;
+
+  mtb = apr_pcalloc(result_pool, sizeof(*mtb));
+
+  SVN_ERR(read_info(&mtb->status, &mtb->kind, &mtb->revnum,
+                    &mtb->repos_relpath, &repos_id, &mtb->changed_rev,
+                    &mtb->changed_date, &mtb->changed_author, &mtb->depth,
+                    &checksum, NULL, &original_repos_relpath, NULL, NULL,
+                    &mtb->lock, &mtb->recorded_size, &mtb->recorded_time,
+                    &mtb->changelist, &mtb->conflicted, &mtb->op_root,
+                    &mtb->had_props, &mtb->props_mod, &mtb->have_base,
+                    &mtb->have_more_work, &have_work,
+                    wcroot, local_relpath,
+                    result_pool, scratch_pool));
+
+  /* Query the same rows in the database again for move information */
+  if (have_work && (mtb->have_base || mtb->have_more_work))
+    {
+      svn_sqlite__stmt_t *stmt;
+      svn_boolean_t have_row;
+      const char *cur_relpath = NULL;
+      int cur_op_depth;
+
+      SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
+                                        STMT_SELECT_MOVED_TO_NODE));
+      SVN_ERR(svn_sqlite__bindf(stmt, "is", wcroot->wc_id, local_relpath));
+
+      SVN_ERR(svn_sqlite__step(&have_row, stmt));
+
+      while (have_row)
+        {
+          struct svn_wc__db_moved_to_info_t *move;
+          int op_depth = svn_sqlite__column_int(stmt, 0);
+          const char *moved_to_relpath = svn_sqlite__column_text(stmt, 1, NULL);
+
+          move = apr_pcalloc(result_pool, sizeof(*move));
+          move->moved_to_abspath = svn_dirent_join(wcroot->abspath,
+                                                   moved_to_relpath,
+                                                   result_pool);
+
+          if (!cur_relpath)
+            {
+              cur_relpath = local_relpath;
+              cur_op_depth = relpath_depth(cur_relpath);
+            }
+          while (cur_op_depth > op_depth)
+            {
+              cur_relpath = svn_relpath_dirname(cur_relpath, scratch_pool);
+              cur_op_depth--;
+            }
+          move->shadow_op_root_abspath = svn_dirent_join(wcroot->abspath,
+                                                         cur_relpath,
+                                                         result_pool);
+
+          move->next = mtb->moved_to;
+          mtb->moved_to = move;
+
+          SVN_ERR(svn_sqlite__step(&have_row, stmt));
+        }
+
+      SVN_ERR(svn_sqlite__reset(stmt));
+    }
+
+  /* Maybe we have to get some shadowed lock from BASE to make our test suite
+     happy... (It might be completely unrelated, but...)
+     This queries the same BASE row again, joined to the lock table */
+  if (mtb->have_base && (have_work || mtb->kind == svn_node_file))
+    {
+      svn_boolean_t update_root;
+      svn_wc__db_lock_t **lock_arg = NULL;
+
+      if (have_work)
+        lock_arg = &mtb->lock;
+
+      SVN_ERR(svn_wc__db_base_get_info_internal(NULL, NULL, NULL, NULL, NULL,
+                                                NULL, NULL, NULL, NULL, NULL,
+                                                NULL, lock_arg, NULL, NULL,
+                                                &update_root,
+                                                wcroot, local_relpath,
+                                                result_pool, scratch_pool));
+
+      mtb->file_external = (update_root && mtb->kind == svn_node_file);
+    }
+
+  if (mtb->status == svn_wc__db_status_added)
+    {
+      svn_wc__db_status_t status;
+
+      SVN_ERR(scan_addition(&status, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+                            NULL, NULL,
+                            wcroot, local_relpath,
+                            result_pool, scratch_pool));
+
+      mtb->moved_here = (status == svn_wc__db_status_moved_here);
+      mtb->incomplete = (status == svn_wc__db_status_incomplete);
+    }
+
+#ifdef HAVE_SYMLINK
+  if (mtb->kind == svn_node_file
+      && (mtb->had_props || mtb->props_mod))
+    {
+      apr_hash_t *properties;
+
+      if (mtb->props_mod)
+        SVN_ERR(db_read_props(&properties,
+                              wcroot, local_relpath,
+                              scratch_pool, scratch_pool));
+      else
+        SVN_ERR(db_read_pristine_props(&properties, wcroot, local_relpath,
+                                       TRUE /* deleted_ok */,
+                                       scratch_pool, scratch_pool));
+
+      mtb->special = (NULL != svn_hash_gets(properties, SVN_PROP_SPECIAL));
+    }
+#endif
+
+  mtb->has_checksum = (checksum != NULL);
+  mtb->copied = (original_repos_relpath != NULL);
+
+  SVN_ERR(svn_wc__db_fetch_repos_info(&mtb->repos_root_url, &mtb->repos_uuid,
+                                      wcroot->sdb, repos_id, result_pool));
+
+  if (mtb->kind == svn_node_dir)
+    SVN_ERR(is_wclocked(&mtb->locked, wcroot, local_relpath, scratch_pool));
+
+  *info = mtb;
+
+  return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_wc__db_read_single_info(const struct svn_wc__db_info_t **info,
+                            svn_wc__db_t *db,
+                            const char *local_abspath,
+                            apr_pool_t *result_pool,
+                            apr_pool_t *scratch_pool)
+{
+  svn_wc__db_wcroot_t *wcroot;
+  const char *local_relpath;
+
+  SVN_ERR_ASSERT(svn_dirent_is_absolute(local_abspath));
+
+  SVN_ERR(svn_wc__db_wcroot_parse_local_abspath(&wcroot, &local_relpath, db,
+                                                local_abspath,
+                                                scratch_pool, scratch_pool));
+  VERIFY_USABLE_WCROOT(wcroot);
+
+  SVN_WC__DB_WITH_TXN(read_single_info(info, wcroot, local_relpath,
+                                       result_pool, scratch_pool),
+                      wcroot);
+
+  return SVN_NO_ERROR;
+}
+
 svn_error_t *
 svn_wc__db_read_pristine_info(svn_wc__db_status_t *status,
                               svn_node_kind_t *kind,
@@ -10730,7 +11177,7 @@ commit_node(svn_wc__db_wcroot_t *wcroot,
          if we need to remove shadowed layers below our descendants. */
 
       SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
-                                        STMT_DELETE_ALL_LAYERS));
+                                        STMT_DELETE_NODE_ALL_LAYERS));
       SVN_ERR(svn_sqlite__bindf(stmt, "is", wcroot->wc_id, local_relpath));
       SVN_ERR(svn_sqlite__update(&affected_rows, stmt));
 
diff --git a/contrib/subversion/subversion/libsvn_wc/wc_db.h b/contrib/subversion/subversion/libsvn_wc/wc_db.h
index a4ed3f976..b09149424 100644
--- a/contrib/subversion/subversion/libsvn_wc/wc_db.h
+++ b/contrib/subversion/subversion/libsvn_wc/wc_db.h
@@ -1909,6 +1909,16 @@ svn_wc__db_read_info(svn_wc__db_status_t *status,  /* ### derived */
                      apr_pool_t *result_pool,
                      apr_pool_t *scratch_pool);
 
+/* Structure used as linked list in svn_wc__db_info_t to describe all nodes
+   in this location that were moved to another location */
+struct svn_wc__db_moved_to_info_t
+{
+  const char *moved_to_abspath;
+  const char *shadow_op_root_abspath;
+
+  struct svn_wc__db_moved_to_info_t *next;
+};
+
 /* Structure returned by svn_wc__db_read_children_info.  Only has the
    fields needed by status. */
 struct svn_wc__db_info_t {
@@ -1945,7 +1955,10 @@ struct svn_wc__db_info_t {
   svn_wc__db_lock_t *lock;  /* Repository file lock */
   svn_boolean_t incomplete; /* TRUE if a working node is incomplete */
 
-  const char *moved_to_abspath; /* Only on op-roots. See svn_wc_status3_t. */
+  struct svn_wc__db_moved_to_info_t *moved_to; /* A linked list of locations
+                                                 where nodes at this path
+                                                 are moved to. Highest layers
+                                                 first */
   svn_boolean_t moved_here;     /* Only on op-roots. */
 
   svn_boolean_t file_external;
@@ -1967,6 +1980,14 @@ svn_wc__db_read_children_info(apr_hash_t **nodes,
                               apr_pool_t *result_pool,
                               apr_pool_t *scratch_pool);
 
+/* Like svn_wc__db_read_children_info, but only gets an info node for the root
+   element. */
+svn_error_t *
+svn_wc__db_read_single_info(const struct svn_wc__db_info_t **info,
+                            svn_wc__db_t *db,
+                            const char *local_abspath,
+                            apr_pool_t *result_pool,
+                            apr_pool_t *scratch_pool);
 
 /* Structure returned by svn_wc__db_read_walker_info.  Only has the
    fields needed by svn_wc__internal_walk_children(). */
diff --git a/contrib/subversion/subversion/libsvn_wc/wc_db_wcroot.c b/contrib/subversion/subversion/libsvn_wc/wc_db_wcroot.c
index 21173e50c..d801451f6 100644
--- a/contrib/subversion/subversion/libsvn_wc/wc_db_wcroot.c
+++ b/contrib/subversion/subversion/libsvn_wc/wc_db_wcroot.c
@@ -690,8 +690,12 @@ svn_wc__db_wcroot_parse_local_abspath(svn_wc__db_wcroot_t **wcroot,
           svn_error_clear(err);
           *wcroot = NULL;
         }
-      else
-        SVN_ERR(err);
+      else if (err)
+        {
+          /* Close handle if we are not going to use it to support
+             upgrading with exclusive wc locking. */
+          return svn_error_compose_create(err, svn_sqlite__close(sdb));
+        }
     }
   else
     {
diff --git a/contrib/subversion/subversion/svn/conflict-callbacks.c b/contrib/subversion/subversion/svn/conflict-callbacks.c
index 3d41ecf93..b5cdf5f07 100644
--- a/contrib/subversion/subversion/svn/conflict-callbacks.c
+++ b/contrib/subversion/subversion/svn/conflict-callbacks.c
@@ -935,7 +935,7 @@ handle_text_conflict(svn_wc_conflict_result_t *result,
           /* We only allow the user accept the merged version of
              the file if they've edited it, or at least looked at
              the diff. */
-          if (result->choice == svn_wc_conflict_choose_merged
+          if (opt->choice == svn_wc_conflict_choose_merged
               && ! knows_something)
             {
               SVN_ERR(svn_cmdline_fprintf(
diff --git a/contrib/subversion/subversion/svndumpfilter/svndumpfilter.c b/contrib/subversion/subversion/svndumpfilter/svndumpfilter.c
index a2f3fe2b4..a9430f7ef 100644
--- a/contrib/subversion/subversion/svndumpfilter/svndumpfilter.c
+++ b/contrib/subversion/subversion/svndumpfilter/svndumpfilter.c
@@ -570,6 +570,9 @@ new_node_record(void **node_baton,
     }
   else
     {
+      const char *kind;
+      const char *action;
+
       tcl = svn_hash_gets(headers, SVN_REPOS_DUMPFILE_TEXT_CONTENT_LENGTH);
 
       /* Test if this node was copied from dropped source. */
@@ -584,7 +587,6 @@ new_node_record(void **node_baton,
              dumpfile should contain the new contents of the file.  In this
              scenario, we'll just do an add without history using the new
              contents.  */
-          const char *kind;
           kind = svn_hash_gets(headers, SVN_REPOS_DUMPFILE_NODE_KIND);
 
           /* If there is a Text-content-length header, and the kind is
@@ -623,6 +625,30 @@ new_node_record(void **node_baton,
       if (! nb->rb->writing_begun)
         SVN_ERR(output_revision(nb->rb));
 
+      /* A node record is required to begin with 'Node-path', skip the
+         leading '/' to match the form used by 'svnadmin dump'. */
+      SVN_ERR(svn_stream_printf(nb->rb->pb->out_stream,
+                                pool, "%s: %s\n",
+                                SVN_REPOS_DUMPFILE_NODE_PATH, node_path + 1));
+
+      /* Node-kind is next and is optional. */
+      kind = svn_hash_gets(headers, SVN_REPOS_DUMPFILE_NODE_KIND);
+      if (kind)
+        SVN_ERR(svn_stream_printf(nb->rb->pb->out_stream,
+                                  pool, "%s: %s\n",
+                                  SVN_REPOS_DUMPFILE_NODE_KIND, kind));
+
+      /* Node-action is next and required. */
+      action = svn_hash_gets(headers, SVN_REPOS_DUMPFILE_NODE_ACTION);
+      if (action)
+        SVN_ERR(svn_stream_printf(nb->rb->pb->out_stream,
+                                  pool, "%s: %s\n",
+                                  SVN_REPOS_DUMPFILE_NODE_ACTION, action));
+      else
+        return svn_error_createf(SVN_ERR_INCOMPLETE_DATA, 0,
+                                 _("Missing Node-action for path '%s'"),
+                                 node_path);
+
       for (hi = apr_hash_first(pool, headers); hi; hi = apr_hash_next(hi))
         {
           const char *key = svn__apr_hash_index_key(hi);
@@ -638,7 +664,10 @@ new_node_record(void **node_baton,
 
           if ((!strcmp(key, SVN_REPOS_DUMPFILE_CONTENT_LENGTH))
               || (!strcmp(key, SVN_REPOS_DUMPFILE_PROP_CONTENT_LENGTH))
-              || (!strcmp(key, SVN_REPOS_DUMPFILE_TEXT_CONTENT_LENGTH)))
+              || (!strcmp(key, SVN_REPOS_DUMPFILE_TEXT_CONTENT_LENGTH))
+              || (!strcmp(key, SVN_REPOS_DUMPFILE_NODE_PATH))
+              || (!strcmp(key, SVN_REPOS_DUMPFILE_NODE_KIND))
+              || (!strcmp(key, SVN_REPOS_DUMPFILE_NODE_ACTION)))
             continue;
 
           /* Rewrite Node-Copyfrom-Rev if we are renumbering revisions.
diff --git a/contrib/subversion/subversion/svnrdump/util.c b/contrib/subversion/subversion/svnrdump/util.c
index 91cefb3f0..2586cd1db 100644
--- a/contrib/subversion/subversion/svnrdump/util.c
+++ b/contrib/subversion/subversion/svnrdump/util.c
@@ -35,7 +35,7 @@ svn_rdump__normalize_prop(const char *name,
                           const svn_string_t **value,
                           apr_pool_t *result_pool)
 {
-  if (svn_prop_needs_translation(name))
+  if (svn_prop_needs_translation(name) && *value)
     {
       const char *cstring;
 
diff --git a/contrib/subversion/subversion/svnserve/serve.c b/contrib/subversion/subversion/svnserve/serve.c
index 6b66b199f..a3fd938b1 100644
--- a/contrib/subversion/subversion/svnserve/serve.c
+++ b/contrib/subversion/subversion/svnserve/serve.c
@@ -1526,6 +1526,9 @@ static svn_error_t *get_file(svn_ra_svn_conn_t *conn, apr_pool_t *pool,
                                   &want_props, &want_contents,
                                   &wants_inherited_props));
 
+  if (wants_inherited_props == SVN_RA_SVN_UNSPECIFIED_NUMBER)
+    wants_inherited_props = FALSE;
+
   full_path = svn_fspath__join(b->fs_path->data,
                                svn_relpath_canonicalize(path, pool), pool);
 
@@ -1545,8 +1548,14 @@ static svn_error_t *get_file(svn_ra_svn_conn_t *conn, apr_pool_t *pool,
   SVN_CMD_ERR(svn_fs_file_checksum(&checksum, svn_checksum_md5, root,
                                    full_path, TRUE, pool));
   hex_digest = svn_checksum_to_cstring_display(checksum, pool);
+
+  /* Fetch the file's explicit and/or inherited properties if
+     requested.  Although the wants-iprops boolean was added to the
+     protocol in 1.8 a standard 1.8 client never requests iprops. */
   if (want_props || wants_inherited_props)
-    SVN_CMD_ERR(get_props(&props, &inherited_props, &ab, root, full_path,
+    SVN_CMD_ERR(get_props(want_props ? &props : NULL,
+                          wants_inherited_props ? &inherited_props : NULL,
+                          &ab, root, full_path,
                           pool));
   if (want_contents)
     SVN_CMD_ERR(svn_fs_file_contents(&contents, root, full_path, pool));
@@ -1640,6 +1649,9 @@ static svn_error_t *get_dir(svn_ra_svn_conn_t *conn, apr_pool_t *pool,
                                   &dirent_fields_list,
                                   &wants_inherited_props));
 
+  if (wants_inherited_props == SVN_RA_SVN_UNSPECIFIED_NUMBER)
+    wants_inherited_props = FALSE;
+
   if (! dirent_fields_list)
     {
       dirent_fields = SVN_DIRENT_ALL;
@@ -1689,10 +1701,13 @@ static svn_error_t *get_dir(svn_ra_svn_conn_t *conn, apr_pool_t *pool,
   /* Fetch the root of the appropriate revision. */
   SVN_CMD_ERR(svn_fs_revision_root(&root, b->fs, rev, pool));
 
-  /* Fetch the directory's explicit and/or inherited properties
-     if requested. */
+  /* Fetch the directory's explicit and/or inherited properties if
+     requested.  Although the wants-iprops boolean was added to the
+     protocol in 1.8 a standard 1.8 client never requests iprops. */
   if (want_props || wants_inherited_props)
-    SVN_CMD_ERR(get_props(&props, &inherited_props, &ab, root, full_path,
+    SVN_CMD_ERR(get_props(want_props ? &props : NULL,
+                          wants_inherited_props ? &inherited_props : NULL,
+                          &ab, root, full_path,
                           pool));
 
   /* Begin response ... */
diff --git a/tools/build/mk/OptionalObsoleteFiles.inc b/tools/build/mk/OptionalObsoleteFiles.inc
index ec7d77d34..78a4e5630 100644
--- a/tools/build/mk/OptionalObsoleteFiles.inc
+++ b/tools/build/mk/OptionalObsoleteFiles.inc
@@ -4609,6 +4609,7 @@ OLD_FILES+=usr/bin/svnliterdump
 OLD_FILES+=usr/bin/svnliteserve
 OLD_FILES+=usr/bin/svnlitesync
 OLD_FILES+=usr/bin/svnliteversion
+OLD_FILES+=usr/share/man/man1/svnlite.1.gz
 .endif
 
 .if ${MK_SVN} == no
diff --git a/usr.bin/svn/lib/libapr/Makefile b/usr.bin/svn/lib/libapr/Makefile
index 81f7e43e4..5be4ea20c 100644
--- a/usr.bin/svn/lib/libapr/Makefile
+++ b/usr.bin/svn/lib/libapr/Makefile
@@ -4,7 +4,7 @@
 
 INTERNALLIB=	yes
 LIB=		apr
-SRCS=		apr_cpystrn.c apr_fnmatch.c apr_getpass.c apr_hash.c \
+SRCS=		apr_cpystrn.c apr_fnmatch.c apr_getpass.c apr_hash.c apr_skiplist.c \
 		apr_pools.c apr_random.c apr_snprintf.c apr_strings.c \
 		apr_strnatcmp.c apr_strtok.c apr_tables.c buffer.c \
 		builtins.c charset.c common.c copy.c dir.c dso.c env.c \
@@ -18,7 +18,7 @@ SRCS=		apr_cpystrn.c apr_fnmatch.c apr_getpass.c apr_hash.c \
 		shm.c signals.c sockaddr.c socket_util.c sockets.c \
 		sockopt.c solaris.c start.c tempdir.c thread.c thread_cond.c \
 		thread_mutex.c thread_rwlock.c threadpriv.c time.c \
-		timestr.c userinfo.c version.c waitio.c
+		timestr.c userinfo.c version.c waitio.c z_asio.c
 
 NOMAN=		internalonly
 
diff --git a/usr.bin/svn/lib/libapr/apr.h b/usr.bin/svn/lib/libapr/apr.h
index 37e7f83d3..867a72efd 100644
--- a/usr.bin/svn/lib/libapr/apr.h
+++ b/usr.bin/svn/lib/libapr/apr.h
@@ -118,7 +118,7 @@
  * or the extern "C" namespace 
  */
 
-#if APR_HAVE_WINDOWS_H
+#if APR_HAVE_WINDOWS_H && defined(WIN32)
 /* If windows.h was already included, our preferences don't matter.
  * If not, include a restricted set of windows headers to our tastes.
  */
@@ -466,6 +466,8 @@ typedef  apr_uint32_t            apr_uintptr_t;
  */
 #define APR_THREAD_FUNC       
 
+#if defined(DOXYGEN) || !defined(WIN32)
+
 /**
  * The public APR functions are declared with APR_DECLARE(), so they may
  * use the most appropriate calling convention.  Public APR functions with 
@@ -518,6 +520,20 @@ typedef  apr_uint32_t            apr_uintptr_t;
  */
 #define APR_DECLARE_DATA
 
+#elif defined(APR_DECLARE_STATIC)
+#define APR_DECLARE(type)            type __stdcall
+#define APR_DECLARE_NONSTD(type)     type __cdecl
+#define APR_DECLARE_DATA
+#elif defined(APR_DECLARE_EXPORT)
+#define APR_DECLARE(type)            __declspec(dllexport) type __stdcall
+#define APR_DECLARE_NONSTD(type)     __declspec(dllexport) type __cdecl
+#define APR_DECLARE_DATA             __declspec(dllexport)
+#else
+#define APR_DECLARE(type)            __declspec(dllimport) type __stdcall
+#define APR_DECLARE_NONSTD(type)     __declspec(dllimport) type __cdecl
+#define APR_DECLARE_DATA             __declspec(dllimport)
+#endif
+
 /* Define APR_SSIZE_T_FMT.  
  * If ssize_t is an integer we define it to be "d",
  * if ssize_t is a long int we define it to be "ld",
diff --git a/usr.bin/svn/lib/libapr/apr_private.h b/usr.bin/svn/lib/libapr/apr_private.h
index 492a4f1df..c5125a7ce 100644
--- a/usr.bin/svn/lib/libapr/apr_private.h
+++ b/usr.bin/svn/lib/libapr/apr_private.h
@@ -86,6 +86,9 @@
 /* Define if accept4 function is supported */
 #define HAVE_ACCEPT4 1
 
+/* Define if async i/o supports message q's */
+/* #undef HAVE_AIO_MSGQ */
+
 /* Define to 1 if you have `alloca', as a function or macro. */
 #define HAVE_ALLOCA 1
 
@@ -142,7 +145,7 @@
 /* #undef HAVE_DL_H */
 
 /* Define if dup3 function is supported */
-/* #undef HAVE_DUP3 */
+#define HAVE_DUP3 1
 
 /* Define if EGD is supported */
 /* #undef HAVE_EGD */
@@ -934,7 +937,7 @@
 
 
 /* switch this on if we have a BeOS version below BONE */
-#if BEOS && !HAVE_BONE_VERSION
+#if defined(BEOS) && !defined(HAVE_BONE_VERSION)
 #define BEOS_R5 1
 #else
 #define BEOS_BONE 1
diff --git a/usr.bin/svn/svn/Makefile b/usr.bin/svn/svn/Makefile
index 61c62e6a2..796231fb5 100644
--- a/usr.bin/svn/svn/Makefile
+++ b/usr.bin/svn/svn/Makefile
@@ -1,7 +1,5 @@
 # $FreeBSD$
 
-NO_MAN=	svn.1
-
 .include "${.CURDIR}/../Makefile.inc"
 
 .PATH:	${SVNDIR}/svn
@@ -62,4 +60,8 @@ freebsd-organization.h:
 	    > freebsd-organization.h
 .endif
 
+svnlite.1: svn.1
+	# Avoid the website
+	sed -E 's,(^| |B|`)svn,\1svnlite,g' ${SVNDIR}/svn/svn.1 > ${.OBJDIR}/svnlite.1
+
 .include 
diff --git a/usr.bin/svn/svn_private_config.h b/usr.bin/svn/svn_private_config.h
index 8d220d86d..3583d6e79 100644
--- a/usr.bin/svn/svn_private_config.h
+++ b/usr.bin/svn/svn_private_config.h
@@ -105,7 +105,7 @@
 #define PACKAGE_NAME "subversion"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "subversion 1.8.8"
+#define PACKAGE_STRING "subversion 1.8.10"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "subversion"
@@ -114,7 +114,7 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.8.8"
+#define PACKAGE_VERSION "1.8.10"
 
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
-- 
2.45.0