summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2021-03-15 14:47:37 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2021-03-15 14:47:37 +0000
commit63bd840d2fe249e92c4d466d1ae0de468aec78fc (patch)
treee3c9c1123383365cbd895e43e5f536c4bd016894
parentInitial commit. (diff)
downloadapr-63bd840d2fe249e92c4d466d1ae0de468aec78fc.tar.xz
apr-63bd840d2fe249e92c4d466d1ae0de468aec78fc.zip
Adding upstream version 1.7.0.upstream/1.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
-rw-r--r--CHANGES82
-rw-r--r--CMakeLists.txt431
-rw-r--r--LICENSE341
-rw-r--r--Makefile.in150
-rw-r--r--Makefile.win171
-rw-r--r--NOTICE15
-rw-r--r--NWGNUmakefile434
-rw-r--r--README167
-rw-r--r--README.cmake112
-rw-r--r--apr-config.in251
-rw-r--r--apr.dep1916
-rw-r--r--apr.dsp831
-rw-r--r--apr.dsw101
-rw-r--r--apr.mak1380
-rw-r--r--apr.pc.in11
-rw-r--r--apr.spec100
-rw-r--r--atomic/netware/apr_atomic.c78
-rw-r--r--atomic/os390/atomic.c139
-rw-r--r--atomic/unix/builtins.c81
-rw-r--r--atomic/unix/builtins64.c64
-rw-r--r--atomic/unix/ia32.c131
-rw-r--r--atomic/unix/mutex.c206
-rw-r--r--atomic/unix/mutex64.c178
-rw-r--r--atomic/unix/ppc.c211
-rw-r--r--atomic/unix/s390.c159
-rw-r--r--atomic/unix/solaris.c83
-rw-r--r--atomic/win32/apr_atomic.c115
-rw-r--r--atomic/win32/apr_atomic64.c94
-rw-r--r--build-outputs.mk328
-rw-r--r--build.conf29
-rwxr-xr-xbuild/MakeEtags41
-rw-r--r--build/NWGNUenvironment.inc365
-rw-r--r--build/NWGNUhead.inc96
-rw-r--r--build/NWGNUmakefile101
-rw-r--r--build/NWGNUtail.inc373
-rwxr-xr-xbuild/PrintPath130
-rw-r--r--build/aplibtool.c750
-rw-r--r--build/apr_common.m41023
-rw-r--r--build/apr_hints.m4522
-rw-r--r--build/apr_network.m4994
-rw-r--r--build/apr_rules.mk.in212
-rw-r--r--build/apr_threads.m4314
-rw-r--r--build/apr_win32.m433
-rw-r--r--build/aprapp.dep32
-rw-r--r--build/aprapp.dsp191
-rw-r--r--build/aprapp.mak614
-rwxr-xr-xbuild/buildcheck.sh70
-rwxr-xr-xbuild/config.guess1493
-rwxr-xr-xbuild/config.sub1791
-rw-r--r--build/cvtdsp.pl679
-rw-r--r--build/find_apr.m4202
-rw-r--r--build/fixwin32mak.pl167
-rwxr-xr-xbuild/gen-build.py234
-rwxr-xr-xbuild/get-version.sh37
-rwxr-xr-xbuild/install.sh112
-rw-r--r--build/jlibtool.c2056
-rw-r--r--build/libaprapp.dep63
-rw-r--r--build/libaprapp.dsp195
-rw-r--r--build/libaprapp.mak632
-rw-r--r--build/libtool.m48372
-rw-r--r--build/lineends.pl150
-rw-r--r--build/ltmain.sh11149
-rw-r--r--build/ltoptions.m4437
-rw-r--r--build/ltsugar.m4124
-rw-r--r--build/ltversion.m423
-rw-r--r--build/lt~obsolete.m499
-rw-r--r--build/make_exports.awk150
-rw-r--r--build/make_nw_export.awk108
-rw-r--r--build/make_var_export.awk59
-rwxr-xr-xbuild/mkdir.sh42
-rw-r--r--build/nw_export.inc52
-rw-r--r--build/nw_make_header.awk27
-rw-r--r--build/nw_ver.awk56
-rw-r--r--build/pkg/README20
-rwxr-xr-xbuild/pkg/buildpkg.sh72
-rw-r--r--build/pkg/pkginfo.in11
-rw-r--r--build/preaprapp.dsp179
-rw-r--r--build/prelibaprapp.dsp179
-rw-r--r--build/rpm/apr.spec.in100
-rwxr-xr-xbuild/run-gcov.sh130
-rw-r--r--build/win32ver.awk124
-rwxr-xr-xbuildconf136
-rw-r--r--config.layout232
-rwxr-xr-xconfigure32465
-rw-r--r--configure.in3020
-rw-r--r--docs/APRDesign.html399
-rw-r--r--docs/canonical_filenames.html156
-rw-r--r--docs/doxygen.conf38
-rw-r--r--docs/incomplete_types84
-rw-r--r--docs/non_apr_programs47
-rw-r--r--docs/pool-design.html96
-rw-r--r--docs/win32_builds.html57
-rw-r--r--dso/aix/dso.c714
-rw-r--r--dso/beos/dso.c98
-rw-r--r--dso/netware/dso.c137
-rw-r--r--dso/os2/dso.c132
-rw-r--r--dso/os390/dso.c109
-rw-r--r--dso/unix/dso.c251
-rw-r--r--dso/win32/dso.c167
-rw-r--r--emacs-mode15
-rw-r--r--encoding/apr_encode.c1419
-rw-r--r--encoding/apr_escape.c1214
-rw-r--r--file_io/netware/filepath.c4
-rw-r--r--file_io/netware/filestat.c417
-rw-r--r--file_io/netware/filesys.c106
-rw-r--r--file_io/netware/flock.c39
-rw-r--r--file_io/netware/mktemp.c64
-rw-r--r--file_io/netware/pipe.c239
-rw-r--r--file_io/os2/buffer.c59
-rw-r--r--file_io/os2/copy.c1
-rw-r--r--file_io/os2/dir.c167
-rw-r--r--file_io/os2/dir_make_recurse.c90
-rw-r--r--file_io/os2/fileacc.c18
-rw-r--r--file_io/os2/filedup.c125
-rw-r--r--file_io/os2/filepath.c16
-rw-r--r--file_io/os2/filepath_util.c1
-rw-r--r--file_io/os2/filestat.c241
-rw-r--r--file_io/os2/filesys.c148
-rw-r--r--file_io/os2/flock.c37
-rw-r--r--file_io/os2/fullrw.c1
-rw-r--r--file_io/os2/maperrorcode.c95
-rw-r--r--file_io/os2/mktemp.c1
-rw-r--r--file_io/os2/open.c304
-rw-r--r--file_io/os2/pipe.c236
-rw-r--r--file_io/os2/readwrite.c388
-rw-r--r--file_io/os2/seek.c120
-rw-r--r--file_io/os2/tempdir.c1
-rw-r--r--file_io/unix/buffer.c60
-rw-r--r--file_io/unix/copy.c119
-rw-r--r--file_io/unix/dir.c373
-rw-r--r--file_io/unix/fileacc.c119
-rw-r--r--file_io/unix/filedup.c181
-rw-r--r--file_io/unix/filepath.c314
-rw-r--r--file_io/unix/filepath_util.c111
-rw-r--r--file_io/unix/filestat.c339
-rw-r--r--file_io/unix/flock.c120
-rw-r--r--file_io/unix/fullrw.c111
-rw-r--r--file_io/unix/mktemp.c223
-rw-r--r--file_io/unix/open.c417
-rw-r--r--file_io/unix/pipe.c292
-rw-r--r--file_io/unix/readwrite.c528
-rw-r--r--file_io/unix/seek.c136
-rw-r--r--file_io/unix/tempdir.c129
-rw-r--r--file_io/win32/buffer.c65
-rw-r--r--file_io/win32/dir.c408
-rw-r--r--file_io/win32/filedup.c229
-rw-r--r--file_io/win32/filepath.c1005
-rw-r--r--file_io/win32/filestat.c902
-rw-r--r--file_io/win32/filesys.c229
-rw-r--r--file_io/win32/flock.c86
-rw-r--r--file_io/win32/open.c755
-rw-r--r--file_io/win32/pipe.c486
-rw-r--r--file_io/win32/readwrite.c592
-rw-r--r--file_io/win32/seek.c203
-rwxr-xr-xhelpers/apr_rename.pl106
-rw-r--r--include/apr.h.in656
-rw-r--r--include/apr.hnw445
-rw-r--r--include/apr.hw667
-rw-r--r--include/apr.hwc664
-rw-r--r--include/apr_allocator.h179
-rw-r--r--include/apr_atomic.h207
-rw-r--r--include/apr_cstr.h292
-rw-r--r--include/apr_dso.h94
-rw-r--r--include/apr_encode.h569
-rw-r--r--include/apr_env.h67
-rw-r--r--include/apr_errno.h1342
-rw-r--r--include/apr_escape.h431
-rw-r--r--include/apr_file_info.h428
-rw-r--r--include/apr_file_io.h1005
-rw-r--r--include/apr_fnmatch.h153
-rw-r--r--include/apr_general.h244
-rw-r--r--include/apr_getopt.h160
-rw-r--r--include/apr_global_mutex.h195
-rw-r--r--include/apr_hash.h283
-rw-r--r--include/apr_inherit.h51
-rw-r--r--include/apr_lib.h241
-rw-r--r--include/apr_mmap.h171
-rw-r--r--include/apr_network_io.h951
-rw-r--r--include/apr_perms_set.h65
-rw-r--r--include/apr_poll.h446
-rw-r--r--include/apr_pools.h815
-rw-r--r--include/apr_portable.h549
-rw-r--r--include/apr_proc_mutex.h192
-rw-r--r--include/apr_random.h153
-rw-r--r--include/apr_ring.h513
-rw-r--r--include/apr_shm.h229
-rw-r--r--include/apr_signal.h109
-rw-r--r--include/apr_skiplist.h381
-rw-r--r--include/apr_strings.h380
-rw-r--r--include/apr_support.h57
-rw-r--r--include/apr_tables.h507
-rw-r--r--include/apr_thread_cond.h139
-rw-r--r--include/apr_thread_mutex.h123
-rw-r--r--include/apr_thread_proc.h846
-rw-r--r--include/apr_thread_rwlock.h129
-rw-r--r--include/apr_time.h237
-rw-r--r--include/apr_user.h158
-rw-r--r--include/apr_version.h164
-rw-r--r--include/apr_want.h124
-rw-r--r--include/arch/aix/apr_arch_dso.h41
-rw-r--r--include/arch/apr_private_common.h41
-rw-r--r--include/arch/beos/apr_arch_dso.h41
-rw-r--r--include/arch/beos/apr_arch_proc_mutex.h36
-rw-r--r--include/arch/beos/apr_arch_thread_cond.h46
-rw-r--r--include/arch/beos/apr_arch_thread_mutex.h42
-rw-r--r--include/arch/beos/apr_arch_thread_rwlock.h45
-rw-r--r--include/arch/beos/apr_arch_threadproc.h95
-rw-r--r--include/arch/netware/apr_arch_dso.h43
-rw-r--r--include/arch/netware/apr_arch_file_io.h176
-rw-r--r--include/arch/netware/apr_arch_global_mutex.h29
-rw-r--r--include/arch/netware/apr_arch_internal_time.h26
-rw-r--r--include/arch/netware/apr_arch_networkio.h31
-rw-r--r--include/arch/netware/apr_arch_pre_nw.h57
-rw-r--r--include/arch/netware/apr_arch_proc_mutex.h29
-rw-r--r--include/arch/netware/apr_arch_thread_cond.h29
-rw-r--r--include/arch/netware/apr_arch_thread_mutex.h32
-rw-r--r--include/arch/netware/apr_arch_thread_rwlock.h29
-rw-r--r--include/arch/netware/apr_arch_threadproc.h80
-rw-r--r--include/arch/netware/apr_private.h205
-rw-r--r--include/arch/os2/apr_arch_dso.h37
-rw-r--r--include/arch/os2/apr_arch_file_io.h86
-rw-r--r--include/arch/os2/apr_arch_inherit.h50
-rw-r--r--include/arch/os2/apr_arch_networkio.h76
-rw-r--r--include/arch/os2/apr_arch_os2calls.h59
-rw-r--r--include/arch/os2/apr_arch_proc_mutex.h31
-rw-r--r--include/arch/os2/apr_arch_thread_cond.h33
-rw-r--r--include/arch/os2/apr_arch_thread_mutex.h29
-rw-r--r--include/arch/os2/apr_arch_thread_rwlock.h31
-rw-r--r--include/arch/os2/apr_arch_threadproc.h67
-rw-r--r--include/arch/os390/apr_arch_dso.h39
-rw-r--r--include/arch/unix/apr_arch_atomic.h53
-rw-r--r--include/arch/unix/apr_arch_dso.h63
-rw-r--r--include/arch/unix/apr_arch_file_io.h174
-rw-r--r--include/arch/unix/apr_arch_global_mutex.h37
-rw-r--r--include/arch/unix/apr_arch_inherit.h64
-rw-r--r--include/arch/unix/apr_arch_internal_time.h24
-rw-r--r--include/arch/unix/apr_arch_misc.h67
-rw-r--r--include/arch/unix/apr_arch_networkio.h145
-rw-r--r--include/arch/unix/apr_arch_poll_private.h189
-rw-r--r--include/arch/unix/apr_arch_proc_mutex.h121
-rw-r--r--include/arch/unix/apr_arch_shm.h74
-rw-r--r--include/arch/unix/apr_arch_thread_cond.h42
-rw-r--r--include/arch/unix/apr_arch_thread_mutex.h42
-rw-r--r--include/arch/unix/apr_arch_thread_rwlock.h49
-rw-r--r--include/arch/unix/apr_arch_threadproc.h119
-rw-r--r--include/arch/unix/apr_private.h.in1075
-rw-r--r--include/arch/win32/apr_arch_atime.h63
-rw-r--r--include/arch/win32/apr_arch_dso.h36
-rw-r--r--include/arch/win32/apr_arch_file_io.h266
-rw-r--r--include/arch/win32/apr_arch_inherit.h123
-rw-r--r--include/arch/win32/apr_arch_misc.h509
-rw-r--r--include/arch/win32/apr_arch_networkio.h90
-rw-r--r--include/arch/win32/apr_arch_proc_mutex.h29
-rw-r--r--include/arch/win32/apr_arch_thread_cond.h32
-rw-r--r--include/arch/win32/apr_arch_thread_mutex.h40
-rw-r--r--include/arch/win32/apr_arch_thread_rwlock.h30
-rw-r--r--include/arch/win32/apr_arch_threadproc.h74
-rw-r--r--include/arch/win32/apr_arch_utf8.h56
-rw-r--r--include/arch/win32/apr_dbg_win32_handles.h217
-rw-r--r--include/arch/win32/apr_private.h175
-rw-r--r--include/private/apr_encode_private.h84
-rw-r--r--libapr.dep1920
-rw-r--r--libapr.dsp868
-rw-r--r--libapr.mak1609
-rw-r--r--libapr.rc64
-rw-r--r--locks/beos/proc_mutex.c242
-rw-r--r--locks/beos/thread_cond.c186
-rw-r--r--locks/beos/thread_mutex.c202
-rw-r--r--locks/beos/thread_rwlock.c190
-rw-r--r--locks/netware/proc_mutex.c194
-rw-r--r--locks/netware/thread_cond.c111
-rw-r--r--locks/netware/thread_mutex.c181
-rw-r--r--locks/netware/thread_rwlock.c102
-rw-r--r--locks/os2/proc_mutex.c289
-rw-r--r--locks/os2/thread_cond.c194
-rw-r--r--locks/os2/thread_mutex.c120
-rw-r--r--locks/os2/thread_rwlock.c200
-rw-r--r--locks/unix/global_mutex.c245
-rw-r--r--locks/unix/proc_mutex.c1695
-rw-r--r--locks/unix/thread_cond.c145
-rw-r--r--locks/unix/thread_mutex.c334
-rw-r--r--locks/unix/thread_rwlock.c181
-rw-r--r--locks/win32/proc_mutex.c301
-rw-r--r--locks/win32/thread_cond.c188
-rw-r--r--locks/win32/thread_mutex.c175
-rw-r--r--locks/win32/thread_rwlock.c165
-rw-r--r--memory/unix/apr_pools.c2932
-rw-r--r--misc/netware/apr.xdcbin0 -> 128 bytes
-rw-r--r--misc/netware/aprlib.def3
-rw-r--r--misc/netware/charset.c34
-rw-r--r--misc/netware/libprews.c186
-rw-r--r--misc/netware/rand.c70
-rw-r--r--misc/netware/start.c203
-rw-r--r--misc/unix/charset.c83
-rw-r--r--misc/unix/env.c88
-rw-r--r--misc/unix/errorcodes.c443
-rw-r--r--misc/unix/getopt.c309
-rw-r--r--misc/unix/otherchild.c221
-rw-r--r--misc/unix/rand.c302
-rw-r--r--misc/unix/randbyte_os2.inc123
-rw-r--r--misc/unix/start.c89
-rw-r--r--misc/unix/version.c35
-rw-r--r--misc/win32/apr_app.c80
-rw-r--r--misc/win32/charset.c55
-rw-r--r--misc/win32/env.c192
-rw-r--r--misc/win32/internal.c101
-rw-r--r--misc/win32/misc.c268
-rw-r--r--misc/win32/rand.c69
-rw-r--r--misc/win32/start.c232
-rw-r--r--misc/win32/utf8.c259
-rw-r--r--mmap/unix/common.c43
-rw-r--r--mmap/unix/mmap.c172
-rw-r--r--mmap/win32/mmap.c161
-rw-r--r--network_io/beos/sendrecv.c216
-rw-r--r--network_io/beos/socketcommon.c6
-rw-r--r--network_io/os2/inet_ntop.c1
-rw-r--r--network_io/os2/inet_pton.c1
-rw-r--r--network_io/os2/os2calls.c132
-rw-r--r--network_io/os2/sendrecv.c155
-rw-r--r--network_io/os2/sendrecv_udp.c104
-rw-r--r--network_io/os2/sockaddr.c1
-rw-r--r--network_io/os2/socket_util.c1
-rw-r--r--network_io/os2/sockets.c317
-rw-r--r--network_io/os2/sockopt.c144
-rw-r--r--network_io/unix/inet_ntop.c243
-rw-r--r--network_io/unix/inet_pton.c240
-rw-r--r--network_io/unix/multicast.c313
-rw-r--r--network_io/unix/sendrecv.c1110
-rw-r--r--network_io/unix/sockaddr.c1284
-rw-r--r--network_io/unix/socket_util.c75
-rw-r--r--network_io/unix/sockets.c572
-rw-r--r--network_io/unix/sockopt.c465
-rw-r--r--network_io/win32/sendrecv.c457
-rw-r--r--network_io/win32/sockets.c538
-rw-r--r--network_io/win32/sockopt.c302
-rw-r--r--passwd/apr_getpass.c256
-rw-r--r--poll/os2/poll.c105
-rw-r--r--poll/os2/pollset.c321
-rw-r--r--poll/unix/epoll.c490
-rw-r--r--poll/unix/kqueue.c505
-rw-r--r--poll/unix/poll.c460
-rw-r--r--poll/unix/pollcb.c224
-rw-r--r--poll/unix/pollset.c247
-rw-r--r--poll/unix/port.c594
-rw-r--r--poll/unix/select.c449
-rw-r--r--poll/unix/wakeup.c151
-rw-r--r--poll/unix/z_asio.c782
-rw-r--r--random/unix/apr_random.c326
-rw-r--r--random/unix/sha2.c528
-rw-r--r--random/unix/sha2.h59
-rw-r--r--random/unix/sha2_glue.c49
-rw-r--r--shmem/beos/shm.c195
-rw-r--r--shmem/os2/shm.c168
-rw-r--r--shmem/unix/shm.c731
-rw-r--r--shmem/win32/shm.c452
-rw-r--r--strings/apr_cpystrn.c315
-rw-r--r--strings/apr_cstr.c403
-rw-r--r--strings/apr_fnmatch.c482
-rw-r--r--strings/apr_snprintf.c1407
-rw-r--r--strings/apr_strings.c467
-rw-r--r--strings/apr_strnatcmp.c149
-rw-r--r--strings/apr_strtok.c56
-rw-r--r--support/unix/waitio.c123
-rw-r--r--tables/apr_hash.c552
-rw-r--r--tables/apr_skiplist.c852
-rw-r--r--tables/apr_tables.c1300
-rw-r--r--test/Makefile.in189
-rw-r--r--test/Makefile.win273
-rw-r--r--test/NWGNUaprtest307
-rw-r--r--test/NWGNUechod253
-rw-r--r--test/NWGNUglobalmutexchild252
-rw-r--r--test/NWGNUmakefile60
-rw-r--r--test/NWGNUmod_test254
-rw-r--r--test/NWGNUproc_child252
-rw-r--r--test/NWGNUreadchild252
-rw-r--r--test/NWGNUsockchild252
-rw-r--r--test/NWGNUsockperf253
-rw-r--r--test/NWGNUtestatmc255
-rw-r--r--test/NWGNUtryread252
-rw-r--r--test/README332
-rw-r--r--test/abts.c435
-rw-r--r--test/abts.h108
-rw-r--r--test/abts_tests.h75
-rw-r--r--test/data/file_datafile.txt1
-rw-r--r--test/data/mmap_datafile.txt1
-rw-r--r--test/echod.c134
-rw-r--r--test/globalmutexchild.c64
-rw-r--r--test/internal/Makefile.in37
-rw-r--r--test/internal/Makefile.win109
-rw-r--r--test/internal/testregex.c91
-rw-r--r--test/internal/testucs.c348
-rw-r--r--test/mod_test.c32
-rw-r--r--test/nw_misc.c23
-rw-r--r--test/occhild.c26
-rw-r--r--test/proc_child.c21
-rw-r--r--test/readchild.c46
-rw-r--r--test/sendfile.c770
-rw-r--r--test/sockchild.c90
-rw-r--r--test/sockperf.c256
-rw-r--r--test/testall.dsw137
-rw-r--r--test/testapp.c10
-rw-r--r--test/testargs.c236
-rw-r--r--test/testatomic.c923
-rw-r--r--test/testcond.c670
-rw-r--r--test/testdir.c399
-rw-r--r--test/testdll.dsp446
-rw-r--r--test/testdso.c263
-rw-r--r--test/testdup.c198
-rw-r--r--test/testencode.c916
-rw-r--r--test/testenv.c144
-rw-r--r--test/testescape.c311
-rw-r--r--test/testfile.c1269
-rw-r--r--test/testfilecopy.c138
-rw-r--r--test/testfileinfo.c263
-rw-r--r--test/testflock.c104
-rw-r--r--test/testflock.h27
-rw-r--r--test/testfmt.c166
-rw-r--r--test/testfnmatch.c256
-rw-r--r--test/testglobalmutex.c143
-rw-r--r--test/testglobalmutex.h27
-rw-r--r--test/testhash.c541
-rw-r--r--test/testipsub.c237
-rw-r--r--test/testlfs.c378
-rw-r--r--test/testlib.dsp446
-rw-r--r--test/testlock.c412
-rw-r--r--test/testlockperf.c348
-rw-r--r--test/testmmap.c165
-rw-r--r--test/testmutexscope.c234
-rw-r--r--test/testnames.c387
-rw-r--r--test/testoc.c120
-rw-r--r--test/testpath.c138
-rw-r--r--test/testpipe.c205
-rw-r--r--test/testpoll.c965
-rw-r--r--test/testpools.c156
-rw-r--r--test/testproc.c174
-rw-r--r--test/testprocmutex.c294
-rw-r--r--test/testrand.c359
-rw-r--r--test/testshm.c332
-rw-r--r--test/testshm.h33
-rw-r--r--test/testshmconsumer.c94
-rw-r--r--test/testshmproducer.c89
-rw-r--r--test/testskiplist.c546
-rw-r--r--test/testsleep.c53
-rw-r--r--test/testsock.c702
-rw-r--r--test/testsock.h34
-rw-r--r--test/testsockets.c238
-rw-r--r--test/testsockopt.c139
-rw-r--r--test/teststr.c418
-rw-r--r--test/teststrnatcmp.c78
-rw-r--r--test/testtable.c245
-rw-r--r--test/testtemp.c55
-rw-r--r--test/testthread.c132
-rw-r--r--test/testtime.c316
-rw-r--r--test/testud.c91
-rw-r--r--test/testuser.c174
-rw-r--r--test/testutil.c44
-rw-r--r--test/testutil.h109
-rw-r--r--test/testvsn.c56
-rw-r--r--test/tryread.c49
-rw-r--r--threadproc/beos/apr_proc_stub.c76
-rw-r--r--threadproc/beos/proc.c454
-rw-r--r--threadproc/beos/thread.c237
-rw-r--r--threadproc/beos/threadpriv.c180
-rw-r--r--threadproc/beos/threadproc_common.c21
-rw-r--r--threadproc/netware/proc.c515
-rw-r--r--threadproc/netware/procsup.c102
-rw-r--r--threadproc/netware/signals.c81
-rw-r--r--threadproc/netware/thread.c254
-rw-r--r--threadproc/netware/threadpriv.c102
-rw-r--r--threadproc/os2/proc.c672
-rw-r--r--threadproc/os2/signals.c1
-rw-r--r--threadproc/os2/thread.c260
-rw-r--r--threadproc/os2/threadpriv.c88
-rw-r--r--threadproc/unix/proc.c739
-rw-r--r--threadproc/unix/procsup.c104
-rw-r--r--threadproc/unix/signals.c481
-rw-r--r--threadproc/unix/thread.c334
-rw-r--r--threadproc/unix/threadpriv.c129
-rw-r--r--threadproc/win32/proc.c1158
-rw-r--r--threadproc/win32/signals.c67
-rw-r--r--threadproc/win32/thread.c281
-rw-r--r--threadproc/win32/threadpriv.c101
-rw-r--r--time/unix/time.c349
-rw-r--r--time/unix/timestr.c153
-rw-r--r--time/win32/time.c340
-rw-r--r--time/win32/timestr.c220
-rw-r--r--tools/gen_test_char.c131
-rw-r--r--user/netware/groupinfo.c41
-rw-r--r--user/netware/userinfo.c70
-rw-r--r--user/unix/groupinfo.c87
-rw-r--r--user/unix/userinfo.c146
-rw-r--r--user/win32/groupinfo.c100
-rw-r--r--user/win32/userinfo.c280
493 files changed, 185598 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
new file mode 100644
index 0000000..96c32f5
--- /dev/null
+++ b/CHANGES
@@ -0,0 +1,82 @@
+ -*- coding: utf-8 -*-
+Changes for APR 1.7.0
+
+ *) apr_dir_read: [Unix] Dropped the preference of the dirread_r() flavor
+ for dirread(), because the former is both deprecated and unneeded.
+ [Yann Ylavic, William Rowe]
+
+ *) apr_file_info: [Win32 only] Treat only "name surrogate" reparse points
+ as symlinks, and not other reparse tag types. PR47630
+ [Oleg Liatte <olegliatte gmail.com>]
+
+ *) Test %ld vs. %lld to avoid compiler emits using APR_OFF_T_FMT, in the
+ case of apparently equivilant long and long long types. [William Rowe]
+
+ *) Recognize APPLE predefined macros as equivilant to DARWIN. [Jim Jagielski]
+
+ *) Signals: Allow handling of SIGUSR2 in apr_signal_thread. [Yann Ylavic]
+
+ *) Atomics: Support for 64bit ints. [Jim Jagielski]
+
+ *) Add the apr_encode_* API that implements RFC4648 and RFC7515
+ compliant BASE64, BASE64URL, BASE32, BASE32HEX and BASE16
+ encode/decode functions. [Graham Leggett]
+
+ *) rand: Use arc4random_buf() on BSD platforms and getrandom() on Linux,
+ when available. [Christian Weisgerber <naddy openbsd.org, Yann Ylavic]
+
+ *) Add apr_sockaddr_zone_set, apr_sockaddr_zone_set to set and retrieve
+ the zone for link-local IPv6 addresses. [Joe Orton]
+
+ *) apr_sockaddr_equal: Compare link-local IPv6 addresses with different
+ zones as not equal. [Joe Orton]
+
+ *) apr_sockaddr_ip_getbuf, apr_sockaddr_ip_get: Append "%zone" for
+ IPv6 link-local addresses. [Joe Orton]
+
+ *) Locks: add a --disable-timedlocks config option in case users
+ encounter more platforms where it fails [Nick Kew].
+
+ *) apr_allocator, apr_pools: Add apr_allocator_page_size() and
+ apr_allocator_min_order_set() to respectively get the (system's) page size
+ in use and set the minimum allocation size for an allocator (expressed in
+ 2^order pages). [Yann Ylavic]
+
+ *) locks: provide portable implementations of timedlock()s for
+ posix-sems, sysv-sems and pthreads for those platforms that
+ lack native versions (eg: OSX/macOS). [Jim Jagielski]
+
+ *) locks: Introduce apr_{thread,proc,global}_mutex_timedlock().
+ [Yann Ylavic]
+
+Changes for APR 1.6.x and later:
+
+ *) http://svn.apache.org/viewvc/apr/apr/branches/1.6.x/CHANGES?view=markup
+
+Changes for APR 1.5.x and later:
+
+ *) http://svn.apache.org/viewvc/apr/apr/branches/1.5.x/CHANGES?view=markup
+
+Changes for APR 1.4.x and later:
+
+ *) http://svn.apache.org/viewvc/apr/apr/branches/1.4.x/CHANGES?view=markup
+
+Changes for APR 1.3.x and later:
+
+ *) http://svn.apache.org/viewvc/apr/apr/branches/1.3.x/CHANGES?view=markup
+
+Changes for APR 1.2.x and later:
+
+ *) http://svn.apache.org/viewvc/apr/apr/branches/1.2.x/CHANGES?view=markup
+
+Changes for APR 1.1.x and later:
+
+ *) http://svn.apache.org/viewvc/apr/apr/branches/1.1.x/CHANGES?view=markup
+
+Changes for APR 1.0.x and later:
+
+ *) http://svn.apache.org/viewvc/apr/apr/branches/1.0.x/CHANGES?view=markup
+
+Changes for APR 0.9.x and later/earlier:
+
+ *) http://svn.apache.org/viewvc/apr/apr/branches/0.9.x/CHANGES?view=markup
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..b4632c3
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,431 @@
+# 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_cstr.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_perms_set.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
+ poll/unix/wakeup.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_cstr.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/testskiplist.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)
+
+# 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)
+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_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_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)
+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/LICENSE b/LICENSE
new file mode 100644
index 0000000..cf0fb63
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,341 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+
+APACHE PORTABLE RUNTIME SUBCOMPONENTS:
+
+The Apache Portable Runtime includes a number of subcomponents with
+separate copyright notices and license terms. Your use of the source
+code for 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:
+
+/*
+ * Copyright (c) 1987, 1993, 1994
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+
+From network_io/unix/inet_ntop.c, network_io/unix/inet_pton.c:
+
+/* Copyright (c) 1996 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+
+From dso/aix/dso.c:
+
+ * Based on libdl (dlfcn.c/dlfcn.h) which is
+ * Copyright (c) 1992,1993,1995,1996,1997,1988
+ * Jens-Uwe Mager, Helios Software GmbH, Hannover, Germany.
+ *
+ * Not derived from licensed software.
+ *
+ * Permission is granted to freely use, copy, modify, and redistribute
+ * this software, provided that the author is not construed to be liable
+ * for any results of using the software, alterations are clearly marked
+ * as such, and this notice is not modified.
+
+From strings/apr_strnatcmp.c, include/apr_strings.h:
+
+ strnatcmp.c -- Perform 'natural order' comparisons of strings in C.
+ Copyright (C) 2000 by Martin Pool <mbp@humbug.org.au>
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+From strings/apr_snprintf.c:
+
+ *
+ * cvt - IEEE floating point formatting routines.
+ * Derived from UNIX V7, Copyright(C) Caldera International Inc.
+ *
+
+ Copyright(C) Caldera International Inc. 2001-2002. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+ Redistributions of source code and documentation must retain the above
+ copyright notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ All advertising materials mentioning features or use of this software
+ must display the following acknowledgement:
+
+ This product includes software developed or owned by Caldera
+ International, Inc.
+
+ Neither the name of Caldera International, Inc. nor the names of other
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+ USE OF THE SOFTWARE PROVIDED FOR UNDER THIS LICENSE BY CALDERA
+ INTERNATIONAL, INC. AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ NO EVENT SHALL CALDERA INTERNATIONAL, INC. BE LIABLE FOR ANY DIRECT,
+ INDIRECT INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+
+
diff --git a/Makefile.in b/Makefile.in
new file mode 100644
index 0000000..7aeefd0
--- /dev/null
+++ b/Makefile.in
@@ -0,0 +1,150 @@
+
+srcdir=@srcdir@
+VPATH=@srcdir@
+top_srcdir=@apr_srcdir@
+top_blddir=@apr_builddir@
+
+#
+# APR (Apache Portable Runtime) library Makefile.
+#
+CPP = @CPP@
+
+# get substituted into some targets
+APR_MAJOR_VERSION=@APR_MAJOR_VERSION@
+
+#
+# Macros for supporting directories
+#
+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 -I$(top_srcdir)/include/private -I$(top_blddir)/include/private
+
+#
+# Macros for target determination
+#
+CLEAN_SUBDIRS= test
+INSTALL_SUBDIRS=@INSTALL_SUBDIRS@
+
+TARGET_LIB = lib@APR_LIBNAME@.la
+APR_PCFILE = apr-$(APR_MAJOR_VERSION).pc
+APR_CONFIG = apr-$(APR_MAJOR_VERSION)-config
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+
+#
+# Rules for building specific targets, starting with 'all' for
+# building the entire package.
+#
+TARGETS = $(TARGET_LIB) include/private/apr_escape_test_char.h apr.exp apr-config.out build/apr_rules.out
+
+LT_VERSION = @LT_VERSION@
+
+# bring in rules.mk for standard functionality
+@INCLUDE_RULES@
+@INCLUDE_OUTPUTS@
+
+CLEAN_TARGETS = apr-config.out apr.exp exports.c export_vars.c .make.dirs \
+ 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 \
+ build/pkg/pkginfo
+EXTRACLEAN_TARGETS = configure aclocal.m4 include/arch/unix/apr_private.h.in \
+ build-outputs.mk build/ltcf-c.sh build/aclocal.m4 \
+ build/ltconfig build/ltmain.sh \
+ build/argz.m4 build/libtool.m4 build/ltoptions.m4 \
+ build/ltsugar.m4 build/ltversion.m4 build/lt~obsolete.m4
+
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+bindir=@bindir@
+libdir=@libdir@
+includedir=@includedir@
+datarootdir=@datarootdir@
+datadir=@datadir@
+installbuilddir=@installbuilddir@
+
+# Create apr-config script suitable for the install tree
+apr-config.out: $(APR_CONFIG)
+ sed 's,^\(location=\).*$$,\1installed,' < $(APR_CONFIG) > $@
+
+# Create apr_rules.mk suitable for the install tree
+build/apr_rules.out: build/apr_rules.mk
+ sed -e 's,^\(apr_build.*=\).*$$,\1$(installbuilddir),' -e 's,^\(top_build.*=\).*$$,\1$(installbuilddir),' < build/apr_rules.mk > $@
+
+install: $(TARGETS)
+ $(APR_MKDIR) $(DESTDIR)$(libdir) $(DESTDIR)$(bindir) $(DESTDIR)$(installbuilddir) \
+ $(DESTDIR)$(libdir)/pkgconfig $(DESTDIR)$(includedir)
+ $(INSTALL_DATA) $(top_blddir)/include/apr.h $(DESTDIR)$(includedir)
+ for f in $(top_srcdir)/include/apr_*.h; do \
+ $(INSTALL_DATA) $${f} $(DESTDIR)$(includedir); \
+ done
+ $(LIBTOOL) --mode=install $(INSTALL) -m 755 $(TARGET_LIB) $(DESTDIR)$(libdir)
+ $(INSTALL_DATA) apr.exp $(DESTDIR)$(libdir)/apr.exp
+ $(INSTALL_DATA) apr.pc $(DESTDIR)$(libdir)/pkgconfig/$(APR_PCFILE)
+ for f in libtool shlibtool; do \
+ if test -f $${f}; then $(INSTALL) -m 755 $${f} $(DESTDIR)$(installbuilddir); fi; \
+ done
+ $(INSTALL) -m 755 $(top_srcdir)/build/mkdir.sh $(DESTDIR)$(installbuilddir)
+ for f in make_exports.awk make_var_export.awk; do \
+ $(INSTALL_DATA) $(top_srcdir)/build/$${f} $(DESTDIR)$(installbuilddir); \
+ done
+ $(INSTALL_DATA) build/apr_rules.out $(DESTDIR)$(installbuilddir)/apr_rules.mk
+ $(INSTALL) -m 755 apr-config.out $(DESTDIR)$(bindir)/$(APR_CONFIG)
+ @if [ $(INSTALL_SUBDIRS) != "none" ]; then \
+ for i in $(INSTALL_SUBDIRS); do \
+ ( cd $$i ; $(MAKE) DESTDIR=$(DESTDIR) install ); \
+ done \
+ fi
+
+$(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) > $@
+
+export_vars.c: $(HEADERS)
+ $(APR_MKVAREXPORT) $(HEADERS) > $@
+
+apr.exp: exports.c export_vars.c
+ @echo "#! lib@APR_LIBNAME@.so" > $@
+ @echo "* This file was AUTOGENERATED at build time." >> $@
+ @echo "* Please do not edit by hand." >> $@
+ $(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) exports.c | grep "ap_hack_" | sed -e 's/^.*[)]\(.*\);$$/\1/' >> $@
+ $(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) export_vars.c | sed -e 's/^\#[^!]*//' | sed -e '/^$$/d' >> $@
+
+dox:
+ doxygen $(top_srcdir)/docs/doxygen.conf
+
+gcov:
+ @build/run-gcov.sh
+
+test: check
+check: $(TARGET_LIB)
+ cd test && $(MAKE) all check
+
+etags:
+ etags `find . -name '*.[ch]'`
+
+OBJECTS_gen_test_char = tools/gen_test_char.lo $(LOCAL_LIBS)
+tools/gen_test_char.lo: tools/gen_test_char.c
+ $(APR_MKDIR) tools
+ $(LT_COMPILE)
+
+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/Makefile.win b/Makefile.win
new file mode 100644
index 0000000..b48f9e9
--- /dev/null
+++ b/Makefile.win
@@ -0,0 +1,171 @@
+# Makefile.win for Win32 APR alone
+#
+# Targets are:
+#
+# buildall - compile everything
+# checkall - run APR regression tests
+# install - compile everything
+# clean - mop up everything
+#
+# You can override the build mechanism, choose only one;
+#
+# USEMAK=1 - compile from exported make files
+# USEDSW=1 - compile from .dsw / .dsp VC6 projects
+# USESLN=1 - compile from converted .sln / .vcproj VC7+ files
+#
+# Define ARCH to your desired preference (your PATH must point
+# to the correct compiler tools!) Choose only one;
+#
+# ARCH="Win32 Release"
+# ARCH="Win32 Debug"
+# ARCH="x64 Release"
+# ARCH="x64 Debug"
+#
+# For example;
+#
+# nmake -f Makefile.win PREFIX=C:\APR buildall checkall install clean
+#
+
+!IF EXIST("apr.sln") && ([devenv /help > NUL 2>&1] == 0) \
+ && !defined(USEMAK) && !defined(USEDSW)
+USESLN=1
+USEMAK=0
+USEDSW=0
+!ELSEIF EXIST("apr.mak") && !defined(USEDSW)
+USESLN=0
+USEMAK=1
+USEDSW=0
+!ELSE
+USESLN=0
+USEMAK=0
+USEDSW=1
+!ENDIF
+
+PREFIX=..\apr-dist
+
+!IF [$(COMSPEC) /c cl /nologo /? \
+ | $(SystemRoot)\System32\find.exe "x64" >NUL ] == 0
+ARCH=x64 Release
+!ELSE
+ARCH=Win32 Release
+!ENDIF
+
+!MESSAGE ARCH = $(ARCH)
+!MESSAGE PREFIX = $(PREFIX) (install path)
+
+
+# Utility and Translation things, nothing here for the user
+#
+!IF "$(ARCH)" == "Win32 Release"
+SLNARCH=Release|Win32
+ARCHOSPATH=Release
+LIBSOSPATH=LibR
+!ELSEIF "$(ARCH)" == "Win32 Debug"
+SLNARCH=Debug|Win32
+ARCHOSPATH=Debug
+LIBSOSPATH=LibD
+!ELSEIF "$(ARCH)" == "x64 Release"
+SLNARCH=Release|x64
+ARCHOSPATH=x64\Release
+LIBSOSPATH=x64\LibR
+!ELSEIF "$(ARCH)" == "x64 Debug"
+SLNARCH=Debug|x64
+ARCHOSPATH=x64\Debug
+LIBSOSPATH=x64\LibD
+!ENDIF
+
+!IFNDEF MAKEOPT
+# Only default the behavior if MAKEOPT= is omitted
+!IFDEF _NMAKE_VER
+# Microsoft NMake options
+MAKEOPT=-nologo
+!ELSEIF "$(MAKE)" == "make"
+# Borland make options? Not really supported (yet)
+MAKEOPT=-s -N
+!ENDIF
+!ENDIF
+
+
+all: buildall checkall
+
+!IF $(USEMAK) == 1
+
+clean:
+ $(MAKE) $(MAKEOPT) -f Makefile.win ARCH="$(ARCH)" \
+ CTARGET=CLEAN buildall
+
+buildall:
+ $(MAKE) $(MAKEOPT) -f apr.mak CFG="apr - $(ARCH)" RECURSE=0 $(CTARGET)
+ $(MAKE) $(MAKEOPT) -f libapr.mak CFG="libapr - $(ARCH)" RECURSE=0 $(CTARGET)
+ cd build
+ $(MAKE) $(MAKEOPT) -f aprapp.mak CFG="aprapp - $(ARCH)" RECURSE=0 $(CTARGET)
+ $(MAKE) $(MAKEOPT) -f libaprapp.mak CFG="libaprapp - $(ARCH)" RECURSE=0 $(CTARGET)
+ cd ..
+
+!ELSEIF $(USESLN) == 1
+
+clean:
+ -devenv apr.sln /useenv /clean "$(SLNARCH)" /project libaprapp
+ -devenv apr.sln /useenv /clean "$(SLNARCH)" /project libapr
+ -devenv apr.sln /useenv /clean "$(SLNARCH)" /project aprapp
+ -devenv apr.sln /useenv /clean "$(SLNARCH)" /project apr
+
+buildall:
+ devenv apr.sln /useenv /build "$(SLNARCH)" /project apr
+ devenv apr.sln /useenv /build "$(SLNARCH)" /project aprapp
+ devenv apr.sln /useenv /build "$(SLNARCH)" /project libapr
+ devenv apr.sln /useenv /build "$(SLNARCH)" /project libaprapp
+
+!ELSE
+# $(USEDSP) == 1
+
+clean:
+ -msdev apr.dsw /USEENV /MAKE "libaprapp - $(ARCH)" /CLEAN
+ -msdev apr.dsw /USEENV /MAKE "libapr - $(ARCH)" /CLEAN
+ -msdev apr.dsw /USEENV /MAKE "aprapp - $(ARCH)" /CLEAN
+ -msdev apr.dsw /USEENV /MAKE "apr - $(ARCH)" /CLEAN
+
+buildall:
+ @msdev apr.dsw /USEENV /MAKE "apr - $(ARCH)"
+ @msdev apr.dsw /USEENV /MAKE "aprapp - $(ARCH)"
+ @msdev apr.dsw /USEENV /MAKE "libapr - $(ARCH)"
+ @msdev apr.dsw /USEENV /MAKE "libaprapp - $(ARCH)"
+
+!ENDIF
+
+
+checkapr:
+ cd test
+ $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=static \
+ OUTDIR=$(LIBSOSPATH) check
+ $(MAKE) $(MAKEOPT) -f Makefile.win MODEL=dynamic \
+ OUTDIR=$(ARCHOSPATH) check
+ cd ..
+
+checkall: checkapr
+
+
+install:
+ echo Y >.y
+ echo A >.A
+ @if NOT EXIST "$(PREFIX)\." mkdir "$(PREFIX)"
+ @if NOT EXIST "$(PREFIX)\bin\." mkdir "$(PREFIX)\bin"
+ @if NOT EXIST "$(PREFIX)\include\." mkdir "$(PREFIX)\include"
+ @if NOT EXIST "$(PREFIX)\lib\." mkdir "$(PREFIX)\lib"
+ copy CHANGES "$(PREFIX)\APR-CHANGES.txt" <.y
+ copy LICENSE "$(PREFIX)\APR-LICENSE.txt" <.y
+ copy NOTICE "$(PREFIX)\APR-NOTICE.txt" <.y
+ xcopy include\*.h "$(PREFIX)\include\" /d < .a
+ copy $(LIBSOSPATH)\apr-1.lib "$(PREFIX)\lib\" <.y
+ copy $(LIBSOSPATH)\apr-1.pdb "$(PREFIX)\lib\" <.y
+ copy $(LIBSOSPATH)\aprapp-1.lib "$(PREFIX)\lib\" <.y
+ copy $(LIBSOSPATH)\aprapp-1.pdb "$(PREFIX)\lib\" <.y
+ copy $(ARCHOSPATH)\libaprapp-1.lib "$(PREFIX)\lib\" <.y
+ copy $(ARCHOSPATH)\libaprapp-1.pdb "$(PREFIX)\lib\" <.y
+ copy $(ARCHOSPATH)\libapr-1.lib "$(PREFIX)\lib\" <.y
+ copy $(ARCHOSPATH)\libapr-1.exp "$(PREFIX)\lib\" <.y
+ copy $(ARCHOSPATH)\libapr-1.dll "$(PREFIX)\bin\" <.y
+ copy $(ARCHOSPATH)\libapr-1.pdb "$(PREFIX)\bin\" <.y
+ del .y
+ del .a
+
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000..7da5529
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,15 @@
+Apache Portable Runtime
+Copyright (c) 2000-2019 The Apache Software Foundation.
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+Portions of this software were developed at the National Center
+for Supercomputing Applications (NCSA) at the University of
+Illinois at Urbana-Champaign.
+
+This software contains code derived from the RSA Data Security
+Inc. MD5 Message-Digest Algorithm.
+
+This software contains code derived from UNIX V7, Copyright(C)
+Caldera International Inc.
diff --git a/NWGNUmakefile b/NWGNUmakefile
new file mode 100644
index 0000000..5a3ee0f
--- /dev/null
+++ b/NWGNUmakefile
@@ -0,0 +1,434 @@
+#
+# Define our macros with defaults if we dont got them already.
+#
+ifndef APR_WORK
+export APR_WORK = $(CURDIR)
+endif
+ifneq "$(wildcard $(APR_WORK)/include/apr_version.h)" "$(APR_WORK)/include/apr_version.h"
+$(error APR_WORK does not point to a valid APR source tree)
+endif
+ifndef APU_WORK
+export APU_WORK = $(CURDIR)/../apr-util
+endif
+ifneq "$(wildcard $(APU_WORK)/include/apu_version.h)" "$(APU_WORK)/include/apu_version.h"
+$(error APU_WORK does not point to a valid APU source tree)
+endif
+
+#
+# Declare the sub-directories to be built here
+#
+
+SUBDIRS = \
+ build \
+ $(APU_WORK) \
+ $(EOLIST)
+
+ifeq "$(TEST)" "1"
+SUBDIRS += \
+ test \
+ $(APU_WORK)/test \
+ $(EOLIST)
+endif
+
+#
+# Get the 'head' of the build environment. This includes default targets and
+# paths to tools
+#
+
+include $(APR_WORK)/build/NWGNUhead.inc
+
+#
+# build this level's files
+
+#
+# Make sure all needed macro's are defined
+#
+
+#
+# These directories will be at the beginning of the include list, followed by
+# INCDIRS
+#
+XINCDIRS += \
+ $(APR)/include \
+ $(APR)/include/private \
+ $(APR)/include/arch/NetWare \
+ $(APR)/include/arch/unix \
+ $(APR)/memory/unix \
+ $(APR)/random/unix \
+ $(APU)/include \
+ $(APU)/xml \
+ $(LDAPSDK)/inc \
+ $(EOLIST)
+
+#
+# These flags will come after CFLAGS
+#
+XCFLAGS += \
+ $(EOLIST)
+
+#
+# These defines will come after DEFINES
+#
+XDEFINES += \
+ $(EOLIST)
+
+#
+# These flags will be added to the link.opt file
+#
+XLFLAGS += \
+ $(EOLIST)
+
+#
+# These values will be appended to the correct variables based on the value of
+# RELEASE
+#
+ifeq "$(RELEASE)" "debug"
+XINCDIRS += \
+ $(EOLIST)
+
+XCFLAGS += \
+ $(EOLIST)
+
+XDEFINES += \
+ $(EOLIST)
+
+XLFLAGS += \
+ $(EOLIST)
+endif
+
+ifeq "$(RELEASE)" "noopt"
+XINCDIRS += \
+ $(EOLIST)
+
+XCFLAGS += \
+ $(EOLIST)
+
+XDEFINES += \
+ $(EOLIST)
+
+XLFLAGS += \
+ $(EOLIST)
+endif
+
+ifeq "$(RELEASE)" "release"
+XINCDIRS += \
+ $(EOLIST)
+
+XCFLAGS += \
+ $(EOLIST)
+
+XDEFINES += \
+ $(EOLIST)
+
+XLFLAGS += \
+ $(EOLIST)
+endif
+
+#
+# These are used by the link target if an NLM is being generated
+# This is used by the link 'name' directive to name the nlm. If left blank
+# TARGET_nlm (see below) will be used.
+#
+NLM_NAME = aprlib
+
+#
+# This is used by the link '-desc ' directive.
+# If left blank, NLM_NAME will be used.
+#
+NLM_DESCRIPTION = Apache Portability Runtime Library $(VERSION_STR) $(VERSION_SKT)
+
+#
+# This is used by the '-threadname' directive. If left blank,
+# NLM_NAME Thread will be used.
+#
+NLM_THREAD_NAME =
+#
+# If this is specified, it will override VERSION value in
+# $(APR_WORK)/build/NWGNUenvironment.inc
+#
+NLM_VERSION =
+
+#
+# If this is specified, it will override the default of 64K
+#
+NLM_STACK_SIZE =
+
+#
+# If this is specified it will be used by the link '-entry' directive
+#
+NLM_ENTRY_SYM =
+
+#
+# If this is specified it will be used by the link '-exit' directive
+#
+NLM_EXIT_SYM =
+
+#
+# If this is specified it will be used by the link '-check' directive
+#
+NLM_CHECK_SYM =
+
+#
+# If this is specified it will be used by the link '-flags' directive
+#
+NLM_FLAGS =
+
+#
+# If this is specified it will be linked in with the XDCData option in the def
+# file instead of the default of $(APR)/misc/netware/apache.xdc. XDCData can
+# be disabled by setting APACHE_UNIPROC in the environment
+#
+XDCDATA =
+
+#
+# Declare all target files (you must add your files here)
+#
+
+#
+# If there is an NLM target, put it here
+#
+TARGET_nlm = \
+ $(OBJDIR)/aprlib.nlm \
+ $(EOLIST)
+
+#
+# If there is an LIB target, put it here
+#
+TARGET_lib = \
+ $(OBJDIR)/aprlib.lib \
+ $(EOLIST)
+
+#
+# These are the OBJ files needed to create the NLM target above.
+# Paths must all use the '/' character
+#
+FILES_nlm_objs = \
+ $(OBJDIR)/libprews.o \
+ $(EOLIST)
+
+#
+# These are the LIB files needed to create the NLM target above.
+# These will be added as a library command in the link.opt file.
+#
+FILES_nlm_libs = \
+ $(PRELUDE) \
+ $(APRLIB) \
+ $(APULIB) \
+ $(APULDAPLIB) \
+ $(APUXMLLIB) \
+ $(EOLIST)
+
+#
+# These are the modules that the above NLM target depends on to load.
+# These will be added as a module command in the link.opt file.
+#
+FILES_nlm_modules = \
+ Libc \
+ $(EOLIST)
+
+# Include the Winsock libraries if Winsock is being used
+ifndef USE_STDSOCKETS
+FILES_nlm_modules += ws2_32 \
+ $(EOLIST)
+endif
+
+#If the LDAP support is defined then add the auto-load modules
+ifneq "$(LDAPSDK)" ""
+FILES_nlm_modules += \
+ lldapsdk \
+ lldapssl \
+ $(EOLIST)
+endif
+
+#
+# If the nlm has a msg file, put it's path here
+#
+FILE_nlm_msg =
+
+#
+# If the nlm has a hlp file put it's path here
+#
+FILE_nlm_hlp =
+
+#
+# If this is specified, it will override $(NWOS)\copyright.txt.
+#
+FILE_nlm_copyright =
+
+#
+# Any additional imports go here
+#
+FILES_nlm_Ximports = \
+ @libc.imp \
+ @netware.imp \
+ $(EOLIST)
+
+# Include the Winsock imports if Winsock is being used
+ifndef USE_STDSOCKETS
+FILES_nlm_Ximports += \
+ @ws2nlm.imp \
+ WSAStartupRTags \
+ WSACleanupRTag \
+ $(EOLIST)
+endif
+
+#If the LDAP support is defined then add the imports
+ifneq "$(LDAPSDK)" ""
+FILES_nlm_Ximports += \
+ @lldapsdk.imp \
+ @lldapssl.imp \
+ $(EOLIST)
+endif
+
+#
+# Any symbols exported to here
+#
+FILES_nlm_exports = \
+ @aprlib.imp \
+ $(EOLIST)
+
+#
+# These are the OBJ files needed to create the LIB target above.
+# Paths must all use the '/' character
+#
+FILES_lib_objs = \
+ $(OBJDIR)/apr_atomic.o \
+ $(OBJDIR)/apr_cpystrn.o \
+ $(OBJDIR)/apr_escape.o \
+ $(OBJDIR)/apr_fnmatch.o \
+ $(OBJDIR)/apr_getpass.o \
+ $(OBJDIR)/apr_hash.o \
+ $(OBJDIR)/apr_pools.o \
+ $(OBJDIR)/apr_random.o \
+ $(OBJDIR)/apr_skiplist.o \
+ $(OBJDIR)/apr_snprintf.o \
+ $(OBJDIR)/apr_strings.o \
+ $(OBJDIR)/apr_strnatcmp.o \
+ $(OBJDIR)/apr_strtok.o \
+ $(OBJDIR)/apr_tables.o \
+ $(OBJDIR)/buffer.o \
+ $(OBJDIR)/charset.o \
+ $(OBJDIR)/copy.o \
+ $(OBJDIR)/common.o \
+ $(OBJDIR)/dir.o \
+ $(OBJDIR)/dso.o \
+ $(OBJDIR)/errorcodes.o \
+ $(OBJDIR)/env.o \
+ $(OBJDIR)/fileacc.o \
+ $(OBJDIR)/filedup.o \
+ $(OBJDIR)/filepath.o \
+ $(OBJDIR)/filepath_util.o \
+ $(OBJDIR)/filestat.o \
+ $(OBJDIR)/filesys.o \
+ $(OBJDIR)/flock.o \
+ $(OBJDIR)/fullrw.o \
+ $(OBJDIR)/getopt.o \
+ $(OBJDIR)/groupinfo.o \
+ $(OBJDIR)/inet_pton.o \
+ $(OBJDIR)/inet_ntop.o \
+ $(OBJDIR)/mktemp.o \
+ $(OBJDIR)/mmap.o \
+ $(OBJDIR)/multicast.o \
+ $(OBJDIR)/open.o \
+ $(OBJDIR)/pipe.o \
+ $(OBJDIR)/otherchild.o \
+ $(OBJDIR)/proc.o \
+ $(OBJDIR)/procsup.o \
+ $(OBJDIR)/proc_mutex.o \
+ $(OBJDIR)/rand.o \
+ $(OBJDIR)/readwrite.o \
+ $(OBJDIR)/seek.o \
+ $(OBJDIR)/pollcb.o \
+ $(OBJDIR)/pollset.o \
+ $(OBJDIR)/select.o \
+ $(OBJDIR)/sendrecv.o \
+ $(OBJDIR)/sha2.o \
+ $(OBJDIR)/sha2_glue.o \
+ $(OBJDIR)/shm.o \
+ $(OBJDIR)/signals.o \
+ $(OBJDIR)/sockaddr.o \
+ $(OBJDIR)/socket_util.o \
+ $(OBJDIR)/sockets.o \
+ $(OBJDIR)/sockopt.o \
+ $(OBJDIR)/start.o \
+ $(OBJDIR)/tempdir.o \
+ $(OBJDIR)/thread.o \
+ $(OBJDIR)/thread_cond.o \
+ $(OBJDIR)/thread_mutex.o \
+ $(OBJDIR)/thread_rwlock.o \
+ $(OBJDIR)/threadpriv.o \
+ $(OBJDIR)/time.o \
+ $(OBJDIR)/timestr.o \
+ $(OBJDIR)/userinfo.o \
+ $(OBJDIR)/version.o \
+ $(OBJDIR)/waitio.o \
+ $(OBJDIR)/wakeup.o \
+ $(EOLIST)
+
+
+#
+# implement targets and dependancies (leave this section alone)
+#
+
+libs :: $(OBJDIR) $(TARGET_lib)
+
+nlms :: libs $(TARGET_nlm)
+
+#
+# Updated this target to create necessary directories and copy files to the
+# correct place. (See $(APR_WORK)/build/NWGNUhead.inc for examples)
+#
+install :: nlms $(INSTDIRS) FORCE
+ $(call COPY,$(APR)/$(TARGET_nlm),$(INSTALLBASE)/)
+ifndef DEST
+ -$(call COPY,$(APR)/LICENSE,$(INSTALLBASE)/)
+ -$(call COPY,$(APR)/STATUS,$(INSTALLBASE)/STATUS.apr)
+ -$(call COPY,$(APR)/CHANGES,$(INSTALLBASE)/CHANGES.apr)
+ -$(call COPY,$(APU)/STATUS,$(INSTALLBASE)/STATUS.apu)
+ -$(call COPY,$(APU)/CHANGES,$(INSTALLBASE)/CHANGES.apu)
+ -$(call COPYR,$(APR)/docs,$(INSTALLBASE)/docs/)
+endif
+
+ifndef DEST
+installdev :: $(INSTDEVDIRS) FORCE
+ $(call COPY,$(APR)/include/*.h,$(INSTALLBASE)/include/)
+ $(call COPY,$(APR)/*.imp,$(INSTALLBASE)/lib/)
+ $(call COPY,$(APR)/misc/netware/*.xdc,$(INSTALLBASE)/lib/)
+ $(call COPY,$(APR)/$(TARGET_nlm),$(INSTALLBASE)/bin/)
+ $(call COPY,$(APRLIB),$(INSTALLBASE)/lib/)
+ $(call COPY,$(APULIB),$(INSTALLBASE)/lib/)
+ $(call COPY,$(APULDAPLIB),$(INSTALLBASE)/lib/)
+ $(call COPY,$(APUXMLLIB),$(INSTALLBASE)/lib/)
+
+$(INSTDEVDIRS) ::
+ $(call MKDIR,$@)
+endif
+
+#
+# Any specialized rules here
+#
+
+vpath %.c atomic/netware:strings:tables:passwd:lib:time/unix
+vpath %.c file_io/unix:locks/netware:misc/netware:misc/unix:threadproc/netware
+vpath %.c poll/unix:shmem/unix:support/unix:random/unix
+vpath %.c dso/netware:memory/unix:mmap/unix:user/netware:encoding
+
+# Use the win32 network_io if Winsock is being used
+ifndef USE_STDSOCKETS
+vpath %.c network_io/win32
+endif
+vpath %.c network_io/unix
+
+$(OBJDIR)/%.o: file_io/netware/%.c $(OBJDIR)/$(NLM_NAME)_cc.opt
+# @echo Compiling $<
+ @echo $(DL)CC $<$(DL)
+ $(CC) $< -cwd source -o=$@ @$(OBJDIR)/$(NLM_NAME)_cc.opt
+
+#
+# Include the 'tail' makefile that has targets that depend on variables defined
+# in this makefile
+#
+
+include $(APRBUILD)/NWGNUtail.inc
+
+
diff --git a/README b/README
new file mode 100644
index 0000000..f3add18
--- /dev/null
+++ b/README
@@ -0,0 +1,167 @@
+Apache Portable Runtime Library (APR)
+-------------------------------------
+
+ The Apache Portable Runtime Library provides a predictable and
+ consistent interface to underlying platform-specific
+ implementations, with an API to which software developers may code
+ and be assured of predictable if not identical behavior regardless
+ of the platform on which their software is built, relieving them of
+ the need to code special-case conditions to work around or take
+ advantage of platform-specific deficiencies or features.
+
+ APR and its companion libraries are implemented entirely in C
+ and provide a common programming interface across a wide variety
+ of operating system platforms without sacrificing performance.
+ Currently supported platforms include:
+
+ UNIX variants
+ Windows
+ Netware
+ Mac OS X
+ OS/2
+
+ To give a brief overview, the primary core
+ subsystems of APR 1.3 include the following:
+
+ Atomic operations
+ Dynamic Shared Object loading
+ File I/O
+ Locks (mutexes, condition variables, etc)
+ Memory management (high performance allocators)
+ Memory-mapped files
+ Multicast Sockets
+ Network I/O
+ Shared memory
+ Thread and Process management
+ Various data structures (tables, hashes, priority queues, etc)
+
+ For a more complete list, please refer to the following URLs:
+
+ http://apr.apache.org/docs/apr/modules.html
+
+ Users of APR 0.9 should be aware that migrating to the APR 1.x
+ programming interfaces may require some adjustments; APR 1.x is
+ neither source nor binary compatible with earlier APR 0.9 releases.
+ Users of APR 1.x can expect consistent interfaces and binary backwards
+ compatibility throughout the entire APR 1.x release cycle, as defined
+ in our versioning rules:
+
+ http://apr.apache.org/versioning.html
+
+ APR is already used extensively by the Apache HTTP Server
+ version 2 and the Subversion revision control system, to
+ name but a few. We list all known projects using APR at
+ http://apr.apache.org/projects.html -- so please let us know
+ if you find our libraries useful in your own projects!
+
+
+Using a Subversion Checkout on Unix
+===================================
+
+If you are building APR from SVN, you need to perform a prerequisite
+step. You must have autoconf, libtool and python installed for this
+to work. The prerequisite is simply;
+
+ ./buildconf
+
+If you are building APR from a distribution tarball, buildconf is
+already run for you, and you do not need autoconf, libtool or python
+installed or to run buildconf unless you have patched APR's buildconf
+inputs (such as configure.in, build.conf, virtually any file within
+the build/ tree, or you add or remove source files).
+
+Remember when updating from svn that you must rerun ./buildconf again
+to effect any changes made to the build schema in your fresh update.
+
+
+Configuring and Building APR on Unix
+====================================
+
+Simply;
+
+ ./configure --prefix=/desired/path/of/apr
+ make
+ make test
+ make install
+
+Configure has additional options, ./configure --help will offer you
+those choices. You may also add CC=compiler CFLAGS="compiler flags"
+etc. prior to the ./configure statement (on the same line). Please
+be warned, some flags must be passed as part of the CC command,
+itself, in order for autoconf to make the right determinations. Eg.;
+
+ CC="gcc -m64" ./configure --prefix=/desired/path/of/apr
+
+will inform APR that you are compiling to a 64 bit CPU, and autoconf
+must consider that when setting up all of APR's internal and external
+type declarations.
+
+For more verbose output from testall, you may wish to invoke testall
+with the flag;
+
+ cd test
+ ./testall -v
+
+
+Building APR RPM files on Linux
+===============================
+
+Run the following to create SRPMs:
+
+rpmbuild -ts apr-<version>.tar.bz2
+rpmbuild -ts apr-util-<version>.tar.bz2
+
+Run the following to create RPMs (or build from the SRPMs):
+
+rpmbuild -tb apr-<version>.tar.bz2
+rpmbuild -tb apr-util-<version>.tar.bz2
+
+Resolve dependencies as appropriate.
+
+
+Configuring and Building APR on Windows
+=======================================
+
+Using Visual Studio, you can build and run the test validation of APR.
+The Makefile.win make file has a bunch of documentation about it's
+options, but a trivial build is simply;
+
+ nmake -f Makefile.win
+ nmake -f Makefile.win PREFIX=c:\desired\path\of\apr install
+
+Note you must manually modify the include\apr.hw file before you
+build to change default options, see the #define APR_HAS_... or the
+#define APR_HAVE_... statements. Be careful, many of these aren't
+appropriate to be modified. The most common change is
+
+#define APR_HAVE_IPV6 1
+
+rather than 0 if this build of APR will be used strictly on machines
+with the IPv6 adapter support installed.
+
+It's trivial to include the apr.dsp (for a static library) or the
+libapr.dsp (for a dynamic library) in your own build project, or you
+can load apr.dsw in Visual Studio 2002 (.NET) or later, which will
+convert these for you into apr.sln and associated .vcproj files.
+
+When using APR as a dynamic library, nothing special is required,
+simply link to libapr.lib. To use it as a static library, simply
+define APR_DECLARE_STATIC before you include any apr header files
+in your source, and link to apr.lib instead.
+
+
+Generating Test Coverage information with gcc
+=============================================
+
+If you want to generate test coverage data, use the following steps:
+
+ ./buildconf
+ CFLAGS="-fprofile-arcs -ftest-coverage" ./configure
+ make
+ cd test
+ make
+ ./testall
+ cd ..
+ make gcov
+
+
diff --git a/README.cmake b/README.cmake
new file mode 100644
index 0000000..cfff8ca
--- /dev/null
+++ b/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/apr-config.in b/apr-config.in
new file mode 100644
index 0000000..84b4073
--- /dev/null
+++ b/apr-config.in
@@ -0,0 +1,251 @@
+#!/bin/sh
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# APR script designed to allow easy command line access to APR configuration
+# parameters.
+
+APR_MAJOR_VERSION="@APR_MAJOR_VERSION@"
+APR_DOTTED_VERSION="@APR_DOTTED_VERSION@"
+
+prefix="@prefix@"
+exec_prefix="@exec_prefix@"
+bindir="@bindir@"
+libdir="@libdir@"
+datarootdir="@datadir@"
+datadir="@datadir@"
+installbuilddir="@installbuilddir@"
+includedir="@includedir@"
+
+CC="@CC@"
+CPP="@CPP@"
+SHELL="@SHELL@"
+CPPFLAGS="@EXTRA_CPPFLAGS@"
+CFLAGS="@EXTRA_CFLAGS@"
+LDFLAGS="@EXTRA_LDFLAGS@"
+LIBS="@EXTRA_LIBS@"
+EXTRA_INCLUDES="@EXTRA_INCLUDES@"
+SHLIBPATH_VAR="@shlibpath_var@"
+APR_SOURCE_DIR="@apr_srcdir@"
+APR_BUILD_DIR="@apr_builddir@"
+APR_SO_EXT="@so_ext@"
+APR_LIB_TARGET="@export_lib_target@"
+APR_LIBNAME="@APR_LIBNAME@"
+
+# NOTE: the following line is modified during 'make install': alter with care!
+location=@APR_CONFIG_LOCATION@
+
+show_usage()
+{
+ cat << EOF
+Usage: apr-$APR_MAJOR_VERSION-config [OPTION]
+
+Known values for OPTION are:
+ --prefix[=DIR] change prefix to DIR
+ --bindir print location where binaries are installed
+ --includedir print location where headers are installed
+ --cc print C compiler name
+ --cpp print C preprocessor name and any required options
+ --cflags print C compiler flags
+ --cppflags print C preprocessor flags
+ --includes print include information
+ --ldflags print linker flags
+ --libs print additional libraries to link against
+ --srcdir print APR source directory
+ --installbuilddir print APR build helper directory
+ --link-ld print link switch(es) for linking to APR
+ --link-libtool print the libtool inputs for linking to APR
+ --shlib-path-var print the name of the shared library path env var
+ --apr-la-file print the path to the .la file, if available
+ --apr-so-ext print the extensions of shared objects on this platform
+ --apr-lib-target print the libtool target information
+ --apr-libtool print the path to APR's libtool
+ --version print the APR's version as a dotted triple
+ --help print this help
+
+When linking with libtool, an application should do something like:
+ APR_LIBS="\`apr-$APR_MAJOR_VERSION-config --link-libtool --libs\`"
+or when linking directly:
+ APR_LIBS="\`apr-$APR_MAJOR_VERSION-config --link-ld --libs\`"
+
+An application should use the results of --cflags, --cppflags, --includes,
+and --ldflags in their build process.
+EOF
+}
+
+if test $# -eq 0; then
+ show_usage
+ exit 1
+fi
+
+if test "$location" = "installed"; then
+ LA_FILE="$libdir/lib${APR_LIBNAME}.la"
+else
+ LA_FILE="$APR_BUILD_DIR/lib${APR_LIBNAME}.la"
+fi
+
+flags=""
+
+while test $# -gt 0; do
+ # Normalize the prefix.
+ case "$1" in
+ -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) optarg= ;;
+ esac
+
+ case "$1" in
+ # It is possible for the user to override our prefix.
+ --prefix=*)
+ prefix=$optarg
+ ;;
+ --prefix)
+ echo $prefix
+ exit 0
+ ;;
+ --bindir)
+ echo $bindir
+ exit 0
+ ;;
+ --includedir)
+ if test "$location" = "installed"; then
+ flags="$includedir"
+ elif test "$location" = "source"; then
+ flags="$APR_SOURCE_DIR/include"
+ else
+ # this is for VPATH builds
+ flags="$APR_BUILD_DIR/include $APR_SOURCE_DIR/include"
+ fi
+ echo $flags
+ exit 0
+ ;;
+ --cc)
+ echo $CC
+ exit 0
+ ;;
+ --cpp)
+ echo $CPP
+ exit 0
+ ;;
+ --cflags)
+ flags="$flags $CFLAGS"
+ ;;
+ --cppflags)
+ flags="$flags $CPPFLAGS"
+ ;;
+ --libs)
+ flags="$flags $LIBS"
+ ;;
+ --ldflags)
+ flags="$flags $LDFLAGS"
+ ;;
+ --includes)
+ if test "$location" = "installed"; then
+ flags="$flags -I$includedir $EXTRA_INCLUDES"
+ elif test "$location" = "source"; then
+ flags="$flags -I$APR_SOURCE_DIR/include $EXTRA_INCLUDES"
+ else
+ # this is for VPATH builds
+ flags="$flags -I$APR_BUILD_DIR/include -I$APR_SOURCE_DIR/include $EXTRA_INCLUDES"
+ fi
+ ;;
+ --srcdir)
+ echo $APR_SOURCE_DIR
+ exit 0
+ ;;
+ --installbuilddir)
+ if test "$location" = "installed"; then
+ echo "${installbuilddir}"
+ elif test "$location" = "source"; then
+ echo "$APR_SOURCE_DIR/build"
+ else
+ # this is for VPATH builds
+ echo "$APR_BUILD_DIR/build"
+ fi
+ exit 0
+ ;;
+ --version)
+ echo $APR_DOTTED_VERSION
+ exit 0
+ ;;
+ --link-ld)
+ if test "$location" = "installed"; then
+ ### avoid using -L if libdir is a "standard" location like /usr/lib
+ flags="$flags -L$libdir -l${APR_LIBNAME}"
+ else
+ ### this surely can't work since the library is in .libs?
+ flags="$flags -L$APR_BUILD_DIR -l${APR_LIBNAME}"
+ fi
+ ;;
+ --link-libtool)
+ # If the LA_FILE exists where we think it should be, use it. If we're
+ # installed and the LA_FILE does not exist, assume to use -L/-l
+ # (the LA_FILE may not have been installed). If we're building ourselves,
+ # we'll assume that at some point the .la file be created.
+ if test -f "$LA_FILE"; then
+ flags="$flags $LA_FILE"
+ elif test "$location" = "installed"; then
+ ### avoid using -L if libdir is a "standard" location like /usr/lib
+ # Since the user is specifying they are linking with libtool, we
+ # *know* that -R will be recognized by libtool.
+ flags="$flags -L$libdir -R$libdir -l${APR_LIBNAME}"
+ else
+ flags="$flags $LA_FILE"
+ fi
+ ;;
+ --shlib-path-var)
+ echo "$SHLIBPATH_VAR"
+ exit 0
+ ;;
+ --apr-la-file)
+ if test -f "$LA_FILE"; then
+ flags="$flags $LA_FILE"
+ fi
+ ;;
+ --apr-so-ext)
+ echo "$APR_SO_EXT"
+ exit 0
+ ;;
+ --apr-lib-target)
+ echo "$APR_LIB_TARGET"
+ exit 0
+ ;;
+ --apr-libtool)
+ if test "$location" = "installed"; then
+ echo "${installbuilddir}/libtool"
+ else
+ echo "$APR_BUILD_DIR/libtool"
+ fi
+ exit 0
+ ;;
+ --help)
+ show_usage
+ exit 0
+ ;;
+ *)
+ show_usage
+ exit 1
+ ;;
+ esac
+
+ # Next please.
+ shift
+done
+
+if test -n "$flags"; then
+ echo "$flags"
+fi
+
+exit 0
diff --git a/apr.dep b/apr.dep
new file mode 100644
index 0000000..aa2be74
--- /dev/null
+++ b/apr.dep
@@ -0,0 +1,1916 @@
+# 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/apr.dsp b/apr.dsp
new file mode 100644
index 0000000..ecc4acc
--- /dev/null
+++ b/apr.dsp
@@ -0,0 +1,831 @@
+# Microsoft Developer Studio Project File - Name="apr" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Static Library" 0x0104
+
+CFG=apr - Win32 Release
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "apr.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "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 - x64 Release" (based on "Win32 (x86) Static Library")
+!MESSAGE "apr - x64 Debug" (based on "Win32 (x86) Static Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "apr - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "LibR"
+# PROP BASE Intermediate_Dir "LibR"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "LibR"
+# PROP Intermediate_Dir "LibR"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
+# ADD CPP /nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /I "./include/private" /D "NDEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\" /Fd"$(OUTDIR)\apr-1" /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"LibR\apr-1.lib"
+
+!ELSEIF "$(CFG)" == "apr - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "LibD"
+# PROP BASE Intermediate_Dir "LibD"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "LibD"
+# PROP Intermediate_Dir "LibD"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MDd /W3 /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /EHsc /c
+# ADD CPP /nologo /MDd /W3 /Zi /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /I "./include/private" /D "_DEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\" /Fd"$(OUTDIR)\apr-1" /FD /EHsc /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"LibD\apr-1.lib"
+
+!ELSEIF "$(CFG)" == "apr - x64 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "x64\LibR"
+# PROP BASE Intermediate_Dir "x64\LibR"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "x64\LibR"
+# PROP Intermediate_Dir "x64\LibR"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
+# ADD CPP /nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /I "./include/private" /D "NDEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\" /Fd"$(OUTDIR)\apr-1" /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"x64\LibR\apr-1.lib"
+
+!ELSEIF "$(CFG)" == "apr - x64 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "x64\LibD"
+# PROP BASE Intermediate_Dir "x64\LibD"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "x64\LibD"
+# PROP Intermediate_Dir "x64\LibD"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MDd /W3 /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /EHsc /c
+# ADD CPP /nologo /MDd /W3 /Zi /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /I "./include/private" /D "_DEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\" /Fd"$(OUTDIR)\apr-1" /FD /EHsc /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"x64\LibD\apr-1.lib"
+
+!ENDIF
+
+# Begin Target
+
+# Name "apr - Win32 Release"
+# Name "apr - Win32 Debug"
+# Name "apr - x64 Release"
+# Name "apr - x64 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter ".c"
+# Begin Group "atomic"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\atomic\win32\apr_atomic.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\atomic\win32\apr_atomic64.c
+# End Source File
+# End Group
+# Begin Group "dso"
+
+# PROP Default_Filter ""
+# 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_encode.c
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\encoding\apr_escape.c
+
+# End Source File
+# End Group
+# Begin Group "file_io"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\file_io\win32\buffer.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\file_io\unix\copy.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\file_io\win32\dir.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\file_io\unix\fileacc.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\file_io\win32\filedup.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\file_io\win32\filepath.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\file_io\unix\filepath_util.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\file_io\win32\filestat.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\file_io\win32\filesys.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\file_io\win32\flock.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\file_io\unix\fullrw.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\file_io\unix\mktemp.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\file_io\win32\open.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\file_io\win32\pipe.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\file_io\win32\readwrite.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\file_io\win32\seek.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\file_io\unix\tempdir.c
+# End Source File
+# End Group
+# Begin Group "locks"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\locks\win32\proc_mutex.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\locks\win32\thread_cond.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\locks\win32\thread_mutex.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\locks\win32\thread_rwlock.c
+# End Source File
+# End Group
+# Begin Group "memory"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\memory\unix\apr_pools.c
+# End Source File
+# End Group
+# Begin Group "misc"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\misc\win32\apr_app.c
+# PROP Exclude_From_Build 1
+# End Source File
+# Begin Source File
+
+SOURCE=.\misc\win32\charset.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\misc\win32\env.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\misc\unix\errorcodes.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\misc\unix\getopt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\misc\win32\internal.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\misc\win32\misc.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\misc\unix\otherchild.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\misc\win32\rand.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\misc\win32\start.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\misc\win32\utf8.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\misc\unix\version.c
+# End Source File
+# End Group
+# Begin Group "mmap"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\mmap\unix\common.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\mmap\win32\mmap.c
+# End Source File
+# End Group
+# Begin Group "network_io"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\network_io\unix\inet_ntop.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\network_io\unix\inet_pton.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\network_io\unix\multicast.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\network_io\win32\sendrecv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\network_io\unix\sockaddr.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\network_io\win32\sockets.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\network_io\unix\socket_util.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\network_io\win32\sockopt.c
+# End Source File
+# End Group
+# Begin Group "passwd"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\passwd\apr_getpass.c
+# End Source File
+# End Group
+# Begin Group "poll"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\poll\unix\poll.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\poll\unix\pollcb.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\poll\unix\pollset.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\poll\unix\select.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\poll\unix\wakeup.c
+# End Source File
+# End Group
+# Begin Group "random"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\random\unix\apr_random.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\random\unix\sha2.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\random\unix\sha2_glue.c
+# End Source File
+# End Group
+# Begin Group "shmem"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\shmem\win32\shm.c
+# End Source File
+# End Group
+# Begin Group "strings"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\strings\apr_cpystrn.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\strings\apr_cstr.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\strings\apr_fnmatch.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\strings\apr_snprintf.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\strings\apr_strings.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\strings\apr_strnatcmp.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\strings\apr_strtok.c
+# End Source File
+# End Group
+# Begin Group "tables"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+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
+# Begin Group "threadproc"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\threadproc\win32\proc.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\threadproc\win32\signals.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\threadproc\win32\thread.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\threadproc\win32\threadpriv.c
+# End Source File
+# End Group
+# Begin Group "time"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\time\win32\time.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\time\win32\timestr.c
+# End Source File
+# End Group
+# Begin Group "user"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\user\win32\groupinfo.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\user\win32\userinfo.c
+# End Source File
+# End Group
+# End Group
+# Begin Group "Private Header Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\include\arch\win32\apr_arch_atime.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\arch\win32\apr_arch_dso.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\arch\win32\apr_arch_file_io.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\arch\win32\apr_arch_inherit.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\arch\win32\apr_arch_misc.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\arch\win32\apr_arch_networkio.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\arch\win32\apr_arch_thread_mutex.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\arch\win32\apr_arch_thread_rwlock.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\arch\win32\apr_arch_threadproc.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\arch\win32\apr_arch_utf8.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\arch\win32\apr_private.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\arch\apr_private_common.h
+# End Source File
+# End Group
+# Begin Group "Public Header Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\include\apr.h.in
+# PROP Exclude_From_Build 1
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr.hnw
+# PROP Exclude_From_Build 1
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr.hw
+
+!IF "$(CFG)" == "apr - Win32 Release"
+
+# Begin Custom Build - Creating apr.h from apr.hw
+InputPath=.\include\apr.hw
+
+".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ type .\include\apr.hw > .\include\apr.h
+
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "apr - Win32 Debug"
+
+# Begin Custom Build - Creating apr.h from apr.hw
+InputPath=.\include\apr.hw
+
+".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ type .\include\apr.hw > .\include\apr.h
+
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "apr - x64 Release"
+
+# Begin Custom Build - Creating apr.h from apr.hw
+InputPath=.\include\apr.hw
+
+".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ type .\include\apr.hw > .\include\apr.h
+
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "apr - x64 Debug"
+
+# Begin Custom Build - Creating apr.h from apr.hw
+InputPath=.\include\apr.hw
+
+".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ type .\include\apr.hw > .\include\apr.h
+
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_allocator.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_atomic.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_dso.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_env.h
+# End Source File
+# Begin Source File
+
+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
+
+".\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.\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
+
+".\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.\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 - x64 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.\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
+
+".\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\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
+
+SOURCE=.\include\apr_file_io.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_fnmatch.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_general.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_getopt.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_global_mutex.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_hash.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_inherit.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_lib.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_mmap.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_network_io.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_poll.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_pools.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_portable.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_proc_mutex.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_random.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_ring.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_shm.h
+# End Source File
+# Begin Source File
+
+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
+
+SOURCE=.\include\apr_support.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_tables.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_thread_cond.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_thread_mutex.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_thread_proc.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_thread_rwlock.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_time.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_user.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_version.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\include\apr_want.h
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/apr.dsw b/apr.dsw
new file mode 100644
index 0000000..6d67f34
--- /dev/null
+++ b/apr.dsw
@@ -0,0 +1,101 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "apr"=".\apr.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "aprapp"=".\build\aprapp.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name preaprapp
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "libapr"=".\libapr.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "libaprapp"=".\build\libaprapp.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name prelibaprapp
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "preaprapp"=".\build\preaprapp.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name apr
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "prelibaprapp"=".\build\prelibaprapp.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+ Begin Project Dependency
+ Project_Dep_Name libapr
+ End Project Dependency
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/apr.mak b/apr.mak
new file mode 100644
index 0000000..43657a0
--- /dev/null
+++ b/apr.mak
@@ -0,0 +1,1380 @@
+# 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 - 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 - 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
+
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "apr - Win32 Release"
+
+OUTDIR=.\LibR
+INTDIR=.\LibR
+# Begin Custom Macros
+OutDir=.\LibR
+# End Custom Macros
+
+ALL : ".\include\apr.h" ".\include\apr_escape.h" "$(OUTDIR)\apr-1.lib"
+
+
+CLEAN :
+ -@erase "$(INTDIR)\apr-1.idb"
+ -@erase "$(INTDIR)\apr-1.pdb"
+ -@erase "$(INTDIR)\apr_atomic.obj"
+ -@erase "$(INTDIR)\apr_atomic64.obj"
+ -@erase "$(INTDIR)\apr_cpystrn.obj"
+ -@erase "$(INTDIR)\apr_cstr.obj"
+ -@erase "$(INTDIR)\apr_encode.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)\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 "$(INTDIR)\wakeup.obj"
+ -@erase "$(OUTDIR)\apr-1.lib"
+ -@erase ".\include\apr.h"
+
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /I "./include/private" /D "NDEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\apr-1" /FD /c
+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)\apr_atomic64.obj" \
+ "$(INTDIR)\dso.obj" \
+ "$(INTDIR)\apr_encode.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)\socket_util.obj" \
+ "$(INTDIR)\sockets.obj" \
+ "$(INTDIR)\sockopt.obj" \
+ "$(INTDIR)\apr_getpass.obj" \
+ "$(INTDIR)\poll.obj" \
+ "$(INTDIR)\pollcb.obj" \
+ "$(INTDIR)\pollset.obj" \
+ "$(INTDIR)\select.obj" \
+ "$(INTDIR)\wakeup.obj" \
+ "$(INTDIR)\apr_random.obj" \
+ "$(INTDIR)\sha2.obj" \
+ "$(INTDIR)\sha2_glue.obj" \
+ "$(INTDIR)\shm.obj" \
+ "$(INTDIR)\apr_cpystrn.obj" \
+ "$(INTDIR)\apr_cstr.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_skiplist.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" ".\include\apr_escape.h" "$(OUTDIR)\apr-1.lib"
+
+
+CLEAN :
+ -@erase "$(INTDIR)\apr-1.idb"
+ -@erase "$(INTDIR)\apr-1.pdb"
+ -@erase "$(INTDIR)\apr_atomic.obj"
+ -@erase "$(INTDIR)\apr_atomic64.obj"
+ -@erase "$(INTDIR)\apr_cpystrn.obj"
+ -@erase "$(INTDIR)\apr_cstr.obj"
+ -@erase "$(INTDIR)\apr_encode.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)\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 "$(INTDIR)\wakeup.obj"
+ -@erase "$(OUTDIR)\apr-1.lib"
+ -@erase ".\include\apr.h"
+
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /I "./include/private" /D "_DEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\apr-1" /FD /EHsc /c
+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)\apr_atomic64.obj" \
+ "$(INTDIR)\dso.obj" \
+ "$(INTDIR)\apr_encode.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)\socket_util.obj" \
+ "$(INTDIR)\sockets.obj" \
+ "$(INTDIR)\sockopt.obj" \
+ "$(INTDIR)\apr_getpass.obj" \
+ "$(INTDIR)\poll.obj" \
+ "$(INTDIR)\pollcb.obj" \
+ "$(INTDIR)\pollset.obj" \
+ "$(INTDIR)\select.obj" \
+ "$(INTDIR)\wakeup.obj" \
+ "$(INTDIR)\apr_random.obj" \
+ "$(INTDIR)\sha2.obj" \
+ "$(INTDIR)\sha2_glue.obj" \
+ "$(INTDIR)\shm.obj" \
+ "$(INTDIR)\apr_cpystrn.obj" \
+ "$(INTDIR)\apr_cstr.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_skiplist.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" ".\include\apr_escape.h" "$(OUTDIR)\apr-1.lib"
+
+
+CLEAN :
+ -@erase "$(INTDIR)\apr-1.idb"
+ -@erase "$(INTDIR)\apr-1.pdb"
+ -@erase "$(INTDIR)\apr_atomic.obj"
+ -@erase "$(INTDIR)\apr_atomic64.obj"
+ -@erase "$(INTDIR)\apr_cpystrn.obj"
+ -@erase "$(INTDIR)\apr_cstr.obj"
+ -@erase "$(INTDIR)\apr_encode.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)\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 "$(INTDIR)\wakeup.obj"
+ -@erase "$(OUTDIR)\apr-1.lib"
+ -@erase ".\include\apr.h"
+
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP_PROJ=/nologo /MD /W3 /Zi /O2 /Oy- /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /I "./include/private" /D "NDEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\apr-1" /FD /c
+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)\apr_atomic64.obj" \
+ "$(INTDIR)\dso.obj" \
+ "$(INTDIR)\apr_encode.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)\socket_util.obj" \
+ "$(INTDIR)\sockets.obj" \
+ "$(INTDIR)\sockopt.obj" \
+ "$(INTDIR)\apr_getpass.obj" \
+ "$(INTDIR)\poll.obj" \
+ "$(INTDIR)\pollcb.obj" \
+ "$(INTDIR)\pollset.obj" \
+ "$(INTDIR)\select.obj" \
+ "$(INTDIR)\wakeup.obj" \
+ "$(INTDIR)\apr_random.obj" \
+ "$(INTDIR)\sha2.obj" \
+ "$(INTDIR)\sha2_glue.obj" \
+ "$(INTDIR)\shm.obj" \
+ "$(INTDIR)\apr_cpystrn.obj" \
+ "$(INTDIR)\apr_cstr.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_skiplist.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" ".\include\apr_escape.h" "$(OUTDIR)\apr-1.lib"
+
+
+CLEAN :
+ -@erase "$(INTDIR)\apr-1.idb"
+ -@erase "$(INTDIR)\apr-1.pdb"
+ -@erase "$(INTDIR)\apr_atomic.obj"
+ -@erase "$(INTDIR)\apr_atomic64.obj"
+ -@erase "$(INTDIR)\apr_cpystrn.obj"
+ -@erase "$(INTDIR)\apr_cstr.obj"
+ -@erase "$(INTDIR)\apr_encode.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)\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 "$(INTDIR)\wakeup.obj"
+ -@erase "$(OUTDIR)\apr-1.lib"
+ -@erase ".\include\apr.h"
+ -@erase ".\include\apr_escape_test_char.h"
+
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP_PROJ=/nologo /MDd /W3 /Zi /Od /I "./include" /I "./include/arch" /I "./include/arch/win32" /I "./include/arch/unix" /I "./include/private" /D "_DEBUG" /D "APR_DECLARE_STATIC" /D "WIN32" /D "WINNT" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\apr-1" /FD /EHsc /c
+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)\apr_atomic64.obj" \
+ "$(INTDIR)\dso.obj" \
+ "$(INTDIR)\apr_encode.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)\socket_util.obj" \
+ "$(INTDIR)\sockets.obj" \
+ "$(INTDIR)\sockopt.obj" \
+ "$(INTDIR)\apr_getpass.obj" \
+ "$(INTDIR)\poll.obj" \
+ "$(INTDIR)\pollcb.obj" \
+ "$(INTDIR)\pollset.obj" \
+ "$(INTDIR)\select.obj" \
+ "$(INTDIR)\wakeup.obj" \
+ "$(INTDIR)\apr_random.obj" \
+ "$(INTDIR)\sha2.obj" \
+ "$(INTDIR)\sha2_glue.obj" \
+ "$(INTDIR)\shm.obj" \
+ "$(INTDIR)\apr_cpystrn.obj" \
+ "$(INTDIR)\apr_cstr.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_skiplist.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
+
+.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) $<
+<<
+
+
+!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 - x64 Release" || "$(CFG)" == "apr - x64 Debug"
+SOURCE=.\atomic\win32\apr_atomic.c
+
+"$(INTDIR)\apr_atomic.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\atomic\win32\apr_atomic64.c
+
+"$(INTDIR)\apr_atomic64.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\dso\win32\dso.c
+
+"$(INTDIR)\dso.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\encoding\apr_encode.c
+
+"$(INTDIR)\apr_encode.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\encoding\apr_escape.c
+
+"$(INTDIR)\apr_escape.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\buffer.c
+
+"$(INTDIR)\buffer.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\unix\copy.c
+
+"$(INTDIR)\copy.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\dir.c
+
+"$(INTDIR)\dir.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\unix\fileacc.c
+
+"$(INTDIR)\fileacc.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\filedup.c
+
+"$(INTDIR)\filedup.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\filepath.c
+
+"$(INTDIR)\filepath.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\unix\filepath_util.c
+
+"$(INTDIR)\filepath_util.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\filestat.c
+
+"$(INTDIR)\filestat.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\filesys.c
+
+"$(INTDIR)\filesys.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\flock.c
+
+"$(INTDIR)\flock.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\unix\fullrw.c
+
+"$(INTDIR)\fullrw.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\unix\mktemp.c
+
+"$(INTDIR)\mktemp.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\open.c
+
+"$(INTDIR)\open.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\pipe.c
+
+"$(INTDIR)\pipe.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\readwrite.c
+
+"$(INTDIR)\readwrite.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\win32\seek.c
+
+"$(INTDIR)\seek.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\file_io\unix\tempdir.c
+
+"$(INTDIR)\tempdir.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\locks\win32\proc_mutex.c
+
+"$(INTDIR)\proc_mutex.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\locks\win32\thread_cond.c
+
+"$(INTDIR)\thread_cond.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\locks\win32\thread_mutex.c
+
+"$(INTDIR)\thread_mutex.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\locks\win32\thread_rwlock.c
+
+"$(INTDIR)\thread_rwlock.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\memory\unix\apr_pools.c
+
+"$(INTDIR)\apr_pools.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\win32\apr_app.c
+SOURCE=.\misc\win32\charset.c
+
+"$(INTDIR)\charset.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\win32\env.c
+
+"$(INTDIR)\env.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\unix\errorcodes.c
+
+"$(INTDIR)\errorcodes.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\unix\getopt.c
+
+"$(INTDIR)\getopt.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\win32\internal.c
+
+"$(INTDIR)\internal.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\win32\misc.c
+
+"$(INTDIR)\misc.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\unix\otherchild.c
+
+"$(INTDIR)\otherchild.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\win32\rand.c
+
+"$(INTDIR)\rand.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\win32\start.c
+
+"$(INTDIR)\start.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\win32\utf8.c
+
+"$(INTDIR)\utf8.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\misc\unix\version.c
+
+"$(INTDIR)\version.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\mmap\unix\common.c
+
+"$(INTDIR)\common.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\mmap\win32\mmap.c
+
+"$(INTDIR)\mmap.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\network_io\unix\inet_ntop.c
+
+"$(INTDIR)\inet_ntop.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\network_io\unix\inet_pton.c
+
+"$(INTDIR)\inet_pton.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\network_io\unix\multicast.c
+
+"$(INTDIR)\multicast.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\network_io\win32\sendrecv.c
+
+"$(INTDIR)\sendrecv.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\network_io\unix\sockaddr.c
+
+"$(INTDIR)\sockaddr.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\network_io\unix\socket_util.c
+
+"$(INTDIR)\socket_util.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\network_io\win32\sockets.c
+
+"$(INTDIR)\sockets.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\network_io\win32\sockopt.c
+
+"$(INTDIR)\sockopt.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\passwd\apr_getpass.c
+
+"$(INTDIR)\apr_getpass.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\poll\unix\poll.c
+
+"$(INTDIR)\poll.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\poll\unix\pollcb.c
+
+"$(INTDIR)\pollcb.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\poll\unix\pollset.c
+
+"$(INTDIR)\pollset.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\poll\unix\select.c
+
+"$(INTDIR)\select.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\poll\unix\wakeup.c
+
+"$(INTDIR)\wakeup.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\random\unix\apr_random.c
+
+"$(INTDIR)\apr_random.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\random\unix\sha2.c
+
+"$(INTDIR)\sha2.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\random\unix\sha2_glue.c
+
+"$(INTDIR)\sha2_glue.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\shmem\win32\shm.c
+
+"$(INTDIR)\shm.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\strings\apr_cpystrn.c
+
+"$(INTDIR)\apr_cpystrn.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\strings\apr_cstr.c
+
+"$(INTDIR)\apr_cstr.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\strings\apr_fnmatch.c
+
+"$(INTDIR)\apr_fnmatch.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\strings\apr_snprintf.c
+
+"$(INTDIR)\apr_snprintf.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\strings\apr_strings.c
+
+"$(INTDIR)\apr_strings.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\strings\apr_strnatcmp.c
+
+"$(INTDIR)\apr_strnatcmp.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\strings\apr_strtok.c
+
+"$(INTDIR)\apr_strtok.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\tables\apr_hash.c
+
+"$(INTDIR)\apr_hash.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\tables\apr_skiplist.c
+
+"$(INTDIR)\apr_skiplist.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\tables\apr_tables.c
+
+"$(INTDIR)\apr_tables.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\threadproc\win32\proc.c
+
+"$(INTDIR)\proc.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\threadproc\win32\signals.c
+
+"$(INTDIR)\signals.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\threadproc\win32\thread.c
+
+"$(INTDIR)\thread.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\threadproc\win32\threadpriv.c
+
+"$(INTDIR)\threadpriv.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\time\win32\time.c
+
+"$(INTDIR)\time.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\time\win32\timestr.c
+
+"$(INTDIR)\timestr.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\user\win32\groupinfo.c
+
+"$(INTDIR)\groupinfo.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\user\win32\userinfo.c
+
+"$(INTDIR)\userinfo.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\include\apr.hw
+
+!IF "$(CFG)" == "apr - Win32 Release"
+
+InputPath=.\include\apr.hw
+
+".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ <<tempfile.bat
+ @echo off
+ type .\include\apr.hw > .\include\apr.h
+<<
+
+
+!ELSEIF "$(CFG)" == "apr - Win32 Debug"
+
+InputPath=.\include\apr.hw
+
+".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ <<tempfile.bat
+ @echo off
+ type .\include\apr.hw > .\include\apr.h
+<<
+
+
+!ELSEIF "$(CFG)" == "apr - x64 Release"
+
+InputPath=.\include\apr.hw
+
+".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ <<tempfile.bat
+ @echo off
+ type .\include\apr.hw > .\include\apr.h
+<<
+
+
+!ELSEIF "$(CFG)" == "apr - x64 Debug"
+
+InputPath=.\include\apr.hw
+
+".\include\apr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ <<tempfile.bat
+ @echo off
+ type .\include\apr.hw > .\include\apr.h
+<<
+
+
+!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)"
+ <<tempfile.bat
+ @echo off
+ 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
+<<
+
+
+!ELSEIF "$(CFG)" == "apr - Win32 Debug"
+
+InputPath=.\include\apr_escape.h
+
+".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ <<tempfile.bat
+ @echo off
+ 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
+<<
+
+
+!ELSEIF "$(CFG)" == "apr - x64 Release"
+
+InputPath=.\include\apr_escape.h
+
+".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ <<tempfile.bat
+ @echo off
+ 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
+<<
+
+
+!ELSEIF "$(CFG)" == "apr - x64 Debug"
+
+InputPath=.\include\apr_escape.h
+
+".\include\apr_escape_test_char.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ <<tempfile.bat
+ @echo off
+ 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
+<<
+
+
+!ENDIF
+
+
+!ENDIF
+
diff --git a/apr.pc.in b/apr.pc.in
new file mode 100644
index 0000000..318a81e
--- /dev/null
+++ b/apr.pc.in
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+APR_MAJOR_VERSION=@APR_MAJOR_VERSION@
+includedir=@includedir@
+
+Name: APR
+Description: The Apache Portable Runtime library
+Version: @APR_DOTTED_VERSION@
+Libs: -L${libdir} -l@APR_LIBNAME@ @EXTRA_LIBS@
+Cflags: @EXTRA_CPPFLAGS@ @EXTRA_CFLAGS@ -I${includedir}
diff --git a/apr.spec b/apr.spec
new file mode 100644
index 0000000..e272d63
--- /dev/null
+++ b/apr.spec
@@ -0,0 +1,100 @@
+
+%define aprver 1
+
+Summary: Apache Portable Runtime library
+Name: apr
+Version: 1.7.0
+Release: 1
+License: Apache Software License
+Group: System Environment/Libraries
+URL: http://apr.apache.org/
+Source0: http://www.apache.org/dist/apr/%{name}-%{version}.tar.bz2
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
+BuildRequires: autoconf, libtool, doxygen, libuuid-devel, python
+
+%description
+The mission of the Apache Portable Runtime (APR) is to provide a
+free library of C data structures and routines, forming a system
+portability layer to as many operating systems as possible,
+including Unices, MS Win32, BeOS and OS/2.
+
+%package devel
+Group: Development/Libraries
+Summary: APR library development kit
+Requires: apr = %{version}
+
+%description devel
+This package provides the support files which can be used to
+build applications using the APR library. The mission of the
+Apache Portable Runtime (APR) is to provide a free library of
+C data structures and routines.
+
+%prep
+%setup -q
+
+%build
+# regenerate configure script etc.
+./buildconf
+%configure \
+ --prefix=/usr \
+ --includedir=%{_includedir}/apr-%{aprver} \
+ --with-installbuilddir=%{_libdir}/apr/build-%{aprver} \
+ --with-devrandom=/dev/urandom \
+ CC=gcc CXX=g++
+make %{?_smp_mflags} && make dox
+
+%check
+# Run non-interactive tests
+pushd test
+make %{?_smp_mflags} all CFLAGS=-fno-strict-aliasing
+make check || exit 1
+popd
+
+%install
+rm -rf $RPM_BUILD_ROOT
+make install DESTDIR=$RPM_BUILD_ROOT
+
+# Move docs to more convenient location
+mv docs/dox/html html
+
+# Unpackaged files:
+rm -f $RPM_BUILD_ROOT%{_libdir}/apr.exp
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%files
+%defattr(-,root,root,-)
+%doc CHANGES LICENSE NOTICE
+%{_libdir}/libapr-%{aprver}.so.*
+
+%files devel
+%defattr(-,root,root,-)
+%doc docs/APRDesign.html docs/canonical_filenames.html
+%doc docs/incomplete_types docs/non_apr_programs
+%doc html
+%{_bindir}/apr*config
+%{_libdir}/libapr-%{aprver}.*a
+%{_libdir}/libapr-%{aprver}.so
+%dir %{_libdir}/apr
+%dir %{_libdir}/apr/build-%{aprver}
+%{_libdir}/apr/build-%{aprver}/*
+%{_libdir}/pkgconfig/apr-%{aprver}.pc
+%dir %{_includedir}/apr-%{aprver}
+%{_includedir}/apr-%{aprver}/*.h
+
+%changelog
+* Sat Aug 30 2008 Graham Leggett <minfrin@sharp.fm> 1.3.3
+- update to depend on the bzip2 binary
+- build depends on python
+
+* Tue Jun 22 2004 Graham Leggett <minfrin@sharp.fm> 1.0.0-1
+- update to support v1.0.0 of APR
+
+* Tue Jun 22 2004 Graham Leggett <minfrin@sharp.fm> 1.0.0-1
+- derived from Fedora Core apr.spec
+
diff --git a/atomic/netware/apr_atomic.c b/atomic/netware/apr_atomic.c
new file mode 100644
index 0000000..9c3df80
--- /dev/null
+++ b/atomic/netware/apr_atomic.c
@@ -0,0 +1,78 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_arch_atomic.h"
+
+#include <stdlib.h>
+
+APR_DECLARE(apr_status_t) apr_atomic_init(apr_pool_t *pool)
+{
+#if defined (NEED_ATOMICS_GENERIC64)
+ return apr__atomic_generic64_init(p);
+#else
+ return APR_SUCCESS;
+#endif
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_add32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ return atomic_xchgadd((unsigned long *)mem,(unsigned long)val);
+}
+
+APR_DECLARE(void) apr_atomic_sub32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ atomic_sub((unsigned long *)mem,(unsigned long)val);
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_inc32(volatile apr_uint32_t *mem)
+{
+ return atomic_xchgadd((unsigned long *)mem, 1);
+}
+
+APR_DECLARE(void) apr_atomic_set32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ *mem = val;
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_read32(volatile apr_uint32_t *mem)
+{
+ return *mem;
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_cas32(volatile apr_uint32_t *mem, apr_uint32_t with,apr_uint32_t cmp)
+{
+ return atomic_cmpxchg((unsigned long *)mem,(unsigned long)cmp,(unsigned long)with);
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_xchg32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ return atomic_xchg((unsigned long *)mem,(unsigned long)val);
+}
+
+APR_DECLARE(int) apr_atomic_dec32(volatile apr_uint32_t *mem)
+{
+ return (atomic_xchgadd((unsigned long *)mem, 0xFFFFFFFF) - 1);
+}
+
+APR_DECLARE(void *) apr_atomic_casptr(volatile void **mem, void *with, const void *cmp)
+{
+ return (void*)atomic_cmpxchg((unsigned long *)mem,(unsigned long)cmp,(unsigned long)with);
+}
+
+APR_DECLARE(void*) apr_atomic_xchgptr(volatile void **mem, void *with)
+{
+ return (void*)atomic_xchg((unsigned long *)mem,(unsigned long)with);
+}
diff --git a/atomic/os390/atomic.c b/atomic/os390/atomic.c
new file mode 100644
index 0000000..e6a1693
--- /dev/null
+++ b/atomic/os390/atomic.c
@@ -0,0 +1,139 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_arch_atomic.h"
+
+#include <stdlib.h>
+
+apr_status_t apr_atomic_init(apr_pool_t *p)
+{
+#if defined (NEED_ATOMICS_GENERIC64)
+ return apr__atomic_generic64_init(p);
+#else
+ return APR_SUCCESS;
+#endif
+}
+
+apr_uint32_t apr_atomic_add32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ apr_uint32_t old, new_val;
+
+ old = *mem; /* old is automatically updated on cs failure */
+ do {
+ new_val = old + val;
+ } while (__cs(&old, (cs_t *)mem, new_val));
+ return old;
+}
+
+void apr_atomic_sub32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ apr_uint32_t old, new_val;
+
+ old = *mem; /* old is automatically updated on cs failure */
+ do {
+ new_val = old - val;
+ } while (__cs(&old, (cs_t *)mem, new_val));
+}
+
+apr_uint32_t apr_atomic_inc32(volatile apr_uint32_t *mem)
+{
+ return apr_atomic_add32(mem, 1);
+}
+
+int apr_atomic_dec32(volatile apr_uint32_t *mem)
+{
+ apr_uint32_t old, new_val;
+
+ old = *mem; /* old is automatically updated on cs failure */
+ do {
+ new_val = old - 1;
+ } while (__cs(&old, (cs_t *)mem, new_val));
+
+ return new_val != 0;
+}
+
+apr_uint32_t apr_atomic_read32(volatile apr_uint32_t *mem)
+{
+ return *mem;
+}
+
+void apr_atomic_set32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ *mem = val;
+}
+
+apr_uint32_t apr_atomic_cas32(volatile apr_uint32_t *mem, apr_uint32_t swap,
+ apr_uint32_t cmp)
+{
+ apr_uint32_t old = cmp;
+
+ __cs(&old, (cs_t *)mem, swap);
+ return old; /* old is automatically updated from mem on cs failure */
+}
+
+#if APR_SIZEOF_VOIDP == 4
+void *apr_atomic_casptr(volatile void **mem_ptr,
+ void *swap_ptr,
+ const void *cmp_ptr)
+{
+ __cs1(&cmp_ptr, /* automatically updated from mem on __cs1 failure */
+ mem_ptr, /* set from swap when __cs1 succeeds */
+ &swap_ptr);
+ return (void *)cmp_ptr;
+}
+#elif APR_SIZEOF_VOIDP == 8
+void *apr_atomic_casptr(volatile void **mem_ptr,
+ void *swap_ptr,
+ const void *cmp_ptr)
+{
+ __csg(&cmp_ptr, /* automatically updated from mem on __csg failure */
+ mem_ptr, /* set from swap when __csg succeeds */
+ &swap_ptr);
+ return (void *)cmp_ptr;
+}
+#else
+#error APR_SIZEOF_VOIDP value not supported
+#endif /* APR_SIZEOF_VOIDP */
+
+apr_uint32_t apr_atomic_xchg32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ apr_uint32_t old, new_val;
+
+ old = *mem; /* old is automatically updated on cs failure */
+ do {
+ new_val = val;
+ } while (__cs(&old, (cs_t *)mem, new_val));
+
+ return old;
+}
+
+APR_DECLARE(void*) apr_atomic_xchgptr(volatile void **mem_ptr, void *new_ptr)
+{
+ void *old_ptr;
+
+ old_ptr = *(void **)mem_ptr; /* old is automatically updated on cs failure */
+#if APR_SIZEOF_VOIDP == 4
+ do {
+ } while (__cs1(&old_ptr, mem_ptr, &new_ptr));
+#elif APR_SIZEOF_VOIDP == 8
+ do {
+ } while (__csg(&old_ptr, mem_ptr, &new_ptr));
+#else
+#error APR_SIZEOF_VOIDP value not supported
+#endif /* APR_SIZEOF_VOIDP */
+
+ return old_ptr;
+}
diff --git a/atomic/unix/builtins.c b/atomic/unix/builtins.c
new file mode 100644
index 0000000..745acf1
--- /dev/null
+++ b/atomic/unix/builtins.c
@@ -0,0 +1,81 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_arch_atomic.h"
+
+#ifdef USE_ATOMICS_BUILTINS
+
+APR_DECLARE(apr_status_t) apr_atomic_init(apr_pool_t *p)
+{
+ return APR_SUCCESS;
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_read32(volatile apr_uint32_t *mem)
+{
+ return *mem;
+}
+
+APR_DECLARE(void) apr_atomic_set32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ *mem = val;
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_add32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ return __sync_fetch_and_add(mem, val);
+}
+
+APR_DECLARE(void) apr_atomic_sub32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ __sync_fetch_and_sub(mem, val);
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_inc32(volatile apr_uint32_t *mem)
+{
+ return __sync_fetch_and_add(mem, 1);
+}
+
+APR_DECLARE(int) apr_atomic_dec32(volatile apr_uint32_t *mem)
+{
+ return __sync_sub_and_fetch(mem, 1);
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_cas32(volatile apr_uint32_t *mem, apr_uint32_t with,
+ apr_uint32_t cmp)
+{
+ return __sync_val_compare_and_swap(mem, cmp, with);
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_xchg32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ __sync_synchronize();
+
+ return __sync_lock_test_and_set(mem, val);
+}
+
+APR_DECLARE(void*) apr_atomic_casptr(volatile void **mem, void *with, const void *cmp)
+{
+ return (void*) __sync_val_compare_and_swap(mem, cmp, with);
+}
+
+APR_DECLARE(void*) apr_atomic_xchgptr(volatile void **mem, void *with)
+{
+ __sync_synchronize();
+
+ return (void*) __sync_lock_test_and_set(mem, with);
+}
+
+#endif /* USE_ATOMICS_BUILTINS */
diff --git a/atomic/unix/builtins64.c b/atomic/unix/builtins64.c
new file mode 100644
index 0000000..4a4b685
--- /dev/null
+++ b/atomic/unix/builtins64.c
@@ -0,0 +1,64 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_arch_atomic.h"
+
+#ifdef USE_ATOMICS_BUILTINS
+
+APR_DECLARE(apr_uint64_t) apr_atomic_read64(volatile apr_uint64_t *mem)
+{
+ return *mem;
+}
+
+APR_DECLARE(void) apr_atomic_set64(volatile apr_uint64_t *mem, apr_uint64_t val)
+{
+ *mem = val;
+}
+
+APR_DECLARE(apr_uint64_t) apr_atomic_add64(volatile apr_uint64_t *mem, apr_uint64_t val)
+{
+ return __sync_fetch_and_add(mem, val);
+}
+
+APR_DECLARE(void) apr_atomic_sub64(volatile apr_uint64_t *mem, apr_uint64_t val)
+{
+ __sync_fetch_and_sub(mem, val);
+}
+
+APR_DECLARE(apr_uint64_t) apr_atomic_inc64(volatile apr_uint64_t *mem)
+{
+ return __sync_fetch_and_add(mem, 1);
+}
+
+APR_DECLARE(int) apr_atomic_dec64(volatile apr_uint64_t *mem)
+{
+ return __sync_sub_and_fetch(mem, 1);
+}
+
+APR_DECLARE(apr_uint64_t) apr_atomic_cas64(volatile apr_uint64_t *mem, apr_uint64_t with,
+ apr_uint64_t cmp)
+{
+ return __sync_val_compare_and_swap(mem, cmp, with);
+}
+
+APR_DECLARE(apr_uint64_t) apr_atomic_xchg64(volatile apr_uint64_t *mem, apr_uint64_t val)
+{
+ __sync_synchronize();
+
+ return __sync_lock_test_and_set(mem, val);
+}
+
+#endif /* USE_ATOMICS_BUILTINS */
diff --git a/atomic/unix/ia32.c b/atomic/unix/ia32.c
new file mode 100644
index 0000000..cdb7a52
--- /dev/null
+++ b/atomic/unix/ia32.c
@@ -0,0 +1,131 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_arch_atomic.h"
+
+#ifdef USE_ATOMICS_IA32
+
+APR_DECLARE(apr_status_t) apr_atomic_init(apr_pool_t *p)
+{
+#if defined (NEED_ATOMICS_GENERIC64)
+ return apr__atomic_generic64_init(p);
+#else
+ return APR_SUCCESS;
+#endif
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_read32(volatile apr_uint32_t *mem)
+{
+ return *mem;
+}
+
+APR_DECLARE(void) apr_atomic_set32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ *mem = val;
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_add32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ asm volatile ("lock; xaddl %0,%1"
+ : "=r" (val), "=m" (*mem)
+ : "0" (val), "m" (*mem)
+ : "memory", "cc");
+ return val;
+}
+
+APR_DECLARE(void) apr_atomic_sub32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ asm volatile ("lock; subl %1, %0"
+ : /* no output */
+ : "m" (*(mem)), "r" (val)
+ : "memory", "cc");
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_inc32(volatile apr_uint32_t *mem)
+{
+ return apr_atomic_add32(mem, 1);
+}
+
+APR_DECLARE(int) apr_atomic_dec32(volatile apr_uint32_t *mem)
+{
+ unsigned char prev;
+
+ asm volatile ("lock; decl %0; setnz %1"
+ : "=m" (*mem), "=qm" (prev)
+ : "m" (*mem)
+ : "memory");
+
+ return prev;
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_cas32(volatile apr_uint32_t *mem, apr_uint32_t with,
+ apr_uint32_t cmp)
+{
+ apr_uint32_t prev;
+
+ asm volatile ("lock; cmpxchgl %1, %2"
+ : "=a" (prev)
+ : "r" (with), "m" (*(mem)), "0"(cmp)
+ : "memory", "cc");
+ return prev;
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_xchg32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ apr_uint32_t prev = val;
+
+ asm volatile ("xchgl %0, %1"
+ : "=r" (prev), "+m" (*mem)
+ : "0" (prev));
+ return prev;
+}
+
+APR_DECLARE(void*) apr_atomic_casptr(volatile void **mem, void *with, const void *cmp)
+{
+ void *prev;
+#if APR_SIZEOF_VOIDP == 4
+ asm volatile ("lock; cmpxchgl %2, %1"
+ : "=a" (prev), "=m" (*mem)
+ : "r" (with), "m" (*mem), "0" (cmp));
+#elif APR_SIZEOF_VOIDP == 8
+ asm volatile ("lock; cmpxchgq %q2, %1"
+ : "=a" (prev), "=m" (*mem)
+ : "r" ((unsigned long)with), "m" (*mem),
+ "0" ((unsigned long)cmp));
+#else
+#error APR_SIZEOF_VOIDP value not supported
+#endif
+ return prev;
+}
+
+APR_DECLARE(void*) apr_atomic_xchgptr(volatile void **mem, void *with)
+{
+ void *prev;
+#if APR_SIZEOF_VOIDP == 4
+ asm volatile ("xchgl %2, %1"
+ : "=a" (prev), "+m" (*mem)
+ : "0" (with));
+#elif APR_SIZEOF_VOIDP == 8
+ asm volatile ("xchgq %q2, %1"
+ : "=a" (prev), "+m" (*mem)
+ : "0" (with));
+#else
+#error APR_SIZEOF_VOIDP value not supported
+#endif
+ return prev;
+}
+
+#endif /* USE_ATOMICS_IA32 */
diff --git a/atomic/unix/mutex.c b/atomic/unix/mutex.c
new file mode 100644
index 0000000..45bc5e2
--- /dev/null
+++ b/atomic/unix/mutex.c
@@ -0,0 +1,206 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_arch_atomic.h"
+#include "apr_thread_mutex.h"
+
+#ifdef USE_ATOMICS_GENERIC
+
+#include <stdlib.h>
+
+#if APR_HAS_THREADS
+# define DECLARE_MUTEX_LOCKED(name, mem) \
+ apr_thread_mutex_t *name = mutex_hash(mem)
+# define MUTEX_UNLOCK(name) \
+ do { \
+ if (apr_thread_mutex_unlock(name) != APR_SUCCESS) \
+ abort(); \
+ } while (0)
+#else
+# define DECLARE_MUTEX_LOCKED(name, mem)
+# define MUTEX_UNLOCK(name)
+# warning Be warned: using stubs for all atomic operations
+#endif
+
+#if APR_HAS_THREADS
+
+static apr_thread_mutex_t **hash_mutex;
+
+#define NUM_ATOMIC_HASH 7
+/* shift by 2 to get rid of alignment issues */
+#define ATOMIC_HASH(x) (unsigned int)(((unsigned long)(x)>>2)%(unsigned int)NUM_ATOMIC_HASH)
+
+static apr_status_t atomic_cleanup(void *data)
+{
+ if (hash_mutex == data)
+ hash_mutex = NULL;
+
+ return APR_SUCCESS;
+}
+
+APR_DECLARE(apr_status_t) apr_atomic_init(apr_pool_t *p)
+{
+ int i;
+ apr_status_t rv;
+
+ if (hash_mutex != NULL)
+ return APR_SUCCESS;
+
+ hash_mutex = apr_palloc(p, sizeof(apr_thread_mutex_t*) * NUM_ATOMIC_HASH);
+ apr_pool_cleanup_register(p, hash_mutex, atomic_cleanup,
+ apr_pool_cleanup_null);
+
+ for (i = 0; i < NUM_ATOMIC_HASH; i++) {
+ rv = apr_thread_mutex_create(&(hash_mutex[i]),
+ APR_THREAD_MUTEX_DEFAULT, p);
+ if (rv != APR_SUCCESS) {
+ return rv;
+ }
+ }
+
+ return apr__atomic_generic64_init(p);
+}
+
+static APR_INLINE apr_thread_mutex_t *mutex_hash(volatile apr_uint32_t *mem)
+{
+ apr_thread_mutex_t *mutex = hash_mutex[ATOMIC_HASH(mem)];
+
+ if (apr_thread_mutex_lock(mutex) != APR_SUCCESS) {
+ abort();
+ }
+
+ return mutex;
+}
+
+#else
+
+APR_DECLARE(apr_status_t) apr_atomic_init(apr_pool_t *p)
+{
+ return apr__atomic_generic64_init(p);
+}
+
+#endif /* APR_HAS_THREADS */
+
+APR_DECLARE(apr_uint32_t) apr_atomic_read32(volatile apr_uint32_t *mem)
+{
+ return *mem;
+}
+
+APR_DECLARE(void) apr_atomic_set32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ DECLARE_MUTEX_LOCKED(mutex, mem);
+
+ *mem = val;
+
+ MUTEX_UNLOCK(mutex);
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_add32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ apr_uint32_t old_value;
+ DECLARE_MUTEX_LOCKED(mutex, mem);
+
+ old_value = *mem;
+ *mem += val;
+
+ MUTEX_UNLOCK(mutex);
+
+ return old_value;
+}
+
+APR_DECLARE(void) apr_atomic_sub32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ DECLARE_MUTEX_LOCKED(mutex, mem);
+ *mem -= val;
+ MUTEX_UNLOCK(mutex);
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_inc32(volatile apr_uint32_t *mem)
+{
+ return apr_atomic_add32(mem, 1);
+}
+
+APR_DECLARE(int) apr_atomic_dec32(volatile apr_uint32_t *mem)
+{
+ apr_uint32_t new;
+ DECLARE_MUTEX_LOCKED(mutex, mem);
+
+ (*mem)--;
+ new = *mem;
+
+ MUTEX_UNLOCK(mutex);
+
+ return new;
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_cas32(volatile apr_uint32_t *mem, apr_uint32_t with,
+ apr_uint32_t cmp)
+{
+ apr_uint32_t prev;
+ DECLARE_MUTEX_LOCKED(mutex, mem);
+
+ prev = *mem;
+ if (prev == cmp) {
+ *mem = with;
+ }
+
+ MUTEX_UNLOCK(mutex);
+
+ return prev;
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_xchg32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ apr_uint32_t prev;
+ DECLARE_MUTEX_LOCKED(mutex, mem);
+
+ prev = *mem;
+ *mem = val;
+
+ MUTEX_UNLOCK(mutex);
+
+ return prev;
+}
+
+APR_DECLARE(void*) apr_atomic_casptr(volatile void **mem, void *with, const void *cmp)
+{
+ void *prev;
+ DECLARE_MUTEX_LOCKED(mutex, *mem);
+
+ prev = *(void **)mem;
+ if (prev == cmp) {
+ *mem = with;
+ }
+
+ MUTEX_UNLOCK(mutex);
+
+ return prev;
+}
+
+APR_DECLARE(void*) apr_atomic_xchgptr(volatile void **mem, void *with)
+{
+ void *prev;
+ DECLARE_MUTEX_LOCKED(mutex, *mem);
+
+ prev = *(void **)mem;
+ *mem = with;
+
+ MUTEX_UNLOCK(mutex);
+
+ return prev;
+}
+
+#endif /* USE_ATOMICS_GENERIC */
diff --git a/atomic/unix/mutex64.c b/atomic/unix/mutex64.c
new file mode 100644
index 0000000..9fc44af
--- /dev/null
+++ b/atomic/unix/mutex64.c
@@ -0,0 +1,178 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_arch_atomic.h"
+#include "apr_thread_mutex.h"
+
+#if defined(USE_ATOMICS_GENERIC) || defined (NEED_ATOMICS_GENERIC64)
+
+#include <stdlib.h>
+
+#if APR_HAS_THREADS
+# define DECLARE_MUTEX_LOCKED(name, mem) \
+ apr_thread_mutex_t *name = mutex_hash(mem)
+# define MUTEX_UNLOCK(name) \
+ do { \
+ if (apr_thread_mutex_unlock(name) != APR_SUCCESS) \
+ abort(); \
+ } while (0)
+#else
+# define DECLARE_MUTEX_LOCKED(name, mem)
+# define MUTEX_UNLOCK(name)
+# warning Be warned: using stubs for all atomic operations
+#endif
+
+#if APR_HAS_THREADS
+
+static apr_thread_mutex_t **hash_mutex;
+
+#define NUM_ATOMIC_HASH 7
+/* shift by 2 to get rid of alignment issues */
+#define ATOMIC_HASH(x) (unsigned int)(((unsigned long)(x)>>2)%(unsigned int)NUM_ATOMIC_HASH)
+
+static apr_status_t atomic_cleanup(void *data)
+{
+ if (hash_mutex == data)
+ hash_mutex = NULL;
+
+ return APR_SUCCESS;
+}
+
+apr_status_t apr__atomic_generic64_init(apr_pool_t *p)
+{
+ int i;
+ apr_status_t rv;
+
+ if (hash_mutex != NULL)
+ return APR_SUCCESS;
+
+ hash_mutex = apr_palloc(p, sizeof(apr_thread_mutex_t*) * NUM_ATOMIC_HASH);
+ apr_pool_cleanup_register(p, hash_mutex, atomic_cleanup,
+ apr_pool_cleanup_null);
+
+ for (i = 0; i < NUM_ATOMIC_HASH; i++) {
+ rv = apr_thread_mutex_create(&(hash_mutex[i]),
+ APR_THREAD_MUTEX_DEFAULT, p);
+ if (rv != APR_SUCCESS) {
+ return rv;
+ }
+ }
+
+ return APR_SUCCESS;
+}
+
+static APR_INLINE apr_thread_mutex_t *mutex_hash(volatile apr_uint64_t *mem)
+{
+ apr_thread_mutex_t *mutex = hash_mutex[ATOMIC_HASH(mem)];
+
+ if (apr_thread_mutex_lock(mutex) != APR_SUCCESS) {
+ abort();
+ }
+
+ return mutex;
+}
+
+#else
+
+apr_status_t apr__atomic_generic64_init(apr_pool_t *p)
+{
+ return APR_SUCCESS;
+}
+
+#endif /* APR_HAS_THREADS */
+
+APR_DECLARE(apr_uint64_t) apr_atomic_read64(volatile apr_uint64_t *mem)
+{
+ return *mem;
+}
+
+APR_DECLARE(void) apr_atomic_set64(volatile apr_uint64_t *mem, apr_uint64_t val)
+{
+ DECLARE_MUTEX_LOCKED(mutex, mem);
+
+ *mem = val;
+
+ MUTEX_UNLOCK(mutex);
+}
+
+APR_DECLARE(apr_uint64_t) apr_atomic_add64(volatile apr_uint64_t *mem, apr_uint64_t val)
+{
+ apr_uint64_t old_value;
+ DECLARE_MUTEX_LOCKED(mutex, mem);
+
+ old_value = *mem;
+ *mem += val;
+
+ MUTEX_UNLOCK(mutex);
+
+ return old_value;
+}
+
+APR_DECLARE(void) apr_atomic_sub64(volatile apr_uint64_t *mem, apr_uint64_t val)
+{
+ DECLARE_MUTEX_LOCKED(mutex, mem);
+ *mem -= val;
+ MUTEX_UNLOCK(mutex);
+}
+
+APR_DECLARE(apr_uint64_t) apr_atomic_inc64(volatile apr_uint64_t *mem)
+{
+ return apr_atomic_add64(mem, 1);
+}
+
+APR_DECLARE(int) apr_atomic_dec64(volatile apr_uint64_t *mem)
+{
+ apr_uint64_t new;
+ DECLARE_MUTEX_LOCKED(mutex, mem);
+
+ (*mem)--;
+ new = *mem;
+
+ MUTEX_UNLOCK(mutex);
+
+ return new;
+}
+
+APR_DECLARE(apr_uint64_t) apr_atomic_cas64(volatile apr_uint64_t *mem, apr_uint64_t with,
+ apr_uint64_t cmp)
+{
+ apr_uint64_t prev;
+ DECLARE_MUTEX_LOCKED(mutex, mem);
+
+ prev = *mem;
+ if (prev == cmp) {
+ *mem = with;
+ }
+
+ MUTEX_UNLOCK(mutex);
+
+ return prev;
+}
+
+APR_DECLARE(apr_uint64_t) apr_atomic_xchg64(volatile apr_uint64_t *mem, apr_uint64_t val)
+{
+ apr_uint64_t prev;
+ DECLARE_MUTEX_LOCKED(mutex, mem);
+
+ prev = *mem;
+ *mem = val;
+
+ MUTEX_UNLOCK(mutex);
+
+ return prev;
+}
+
+#endif /* USE_ATOMICS_GENERIC64 */
diff --git a/atomic/unix/ppc.c b/atomic/unix/ppc.c
new file mode 100644
index 0000000..1823fe8
--- /dev/null
+++ b/atomic/unix/ppc.c
@@ -0,0 +1,211 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_arch_atomic.h"
+
+#ifdef USE_ATOMICS_PPC
+
+#ifdef PPC405_ERRATA
+# define PPC405_ERR77_SYNC " sync\n"
+#else
+# define PPC405_ERR77_SYNC
+#endif
+
+APR_DECLARE(apr_status_t) apr_atomic_init(apr_pool_t *p)
+{
+#if defined (NEED_ATOMICS_GENERIC64)
+ return apr__atomic_generic64_init(p);
+#else
+ return APR_SUCCESS;
+#endif
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_read32(volatile apr_uint32_t *mem)
+{
+ return *mem;
+}
+
+APR_DECLARE(void) apr_atomic_set32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ *mem = val;
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_add32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ apr_uint32_t prev, temp;
+
+ asm volatile ("1:\n" /* lost reservation */
+ " lwarx %0,0,%3\n" /* load and reserve */
+ " add %1,%0,%4\n" /* add val and prev */
+ PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
+ " stwcx. %1,0,%3\n" /* store new value */
+ " bne- 1b\n" /* loop if lost */
+ : "=&r" (prev), "=&r" (temp), "=m" (*mem)
+ : "b" (mem), "r" (val)
+ : "cc", "memory");
+
+ return prev;
+}
+
+APR_DECLARE(void) apr_atomic_sub32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ apr_uint32_t temp;
+
+ asm volatile ("1:\n" /* lost reservation */
+ " lwarx %0,0,%2\n" /* load and reserve */
+ " subf %0,%3,%0\n" /* subtract val */
+ PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
+ " stwcx. %0,0,%2\n" /* store new value */
+ " bne- 1b\n" /* loop if lost */
+ : "=&r" (temp), "=m" (*mem)
+ : "b" (mem), "r" (val)
+ : "cc", "memory");
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_inc32(volatile apr_uint32_t *mem)
+{
+ apr_uint32_t prev;
+
+ asm volatile ("1:\n" /* lost reservation */
+ " lwarx %0,0,%2\n" /* load and reserve */
+ " addi %0,%0,1\n" /* add immediate */
+ PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
+ " stwcx. %0,0,%2\n" /* store new value */
+ " bne- 1b\n" /* loop if lost */
+ " subi %0,%0,1\n" /* return old value */
+ : "=&b" (prev), "=m" (*mem)
+ : "b" (mem), "m" (*mem)
+ : "cc", "memory");
+
+ return prev;
+}
+
+APR_DECLARE(int) apr_atomic_dec32(volatile apr_uint32_t *mem)
+{
+ apr_uint32_t prev;
+
+ asm volatile ("1:\n" /* lost reservation */
+ " lwarx %0,0,%2\n" /* load and reserve */
+ " subi %0,%0,1\n" /* subtract immediate */
+ PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
+ " stwcx. %0,0,%2\n" /* store new value */
+ " bne- 1b\n" /* loop if lost */
+ : "=&b" (prev), "=m" (*mem)
+ : "b" (mem), "m" (*mem)
+ : "cc", "memory");
+
+ return prev;
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_cas32(volatile apr_uint32_t *mem, apr_uint32_t with,
+ apr_uint32_t cmp)
+{
+ apr_uint32_t prev;
+
+ asm volatile ("1:\n" /* lost reservation */
+ " lwarx %0,0,%1\n" /* load and reserve */
+ " cmpw %0,%3\n" /* compare operands */
+ " bne- exit_%=\n" /* skip if not equal */
+ PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
+ " stwcx. %2,0,%1\n" /* store new value */
+ " bne- 1b\n" /* loop if lost */
+ "exit_%=:\n" /* not equal */
+ : "=&r" (prev)
+ : "b" (mem), "r" (with), "r" (cmp)
+ : "cc", "memory");
+
+ return prev;
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_xchg32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ apr_uint32_t prev;
+
+ asm volatile ("1:\n" /* lost reservation */
+ " lwarx %0,0,%1\n" /* load and reserve */
+ PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
+ " stwcx. %2,0,%1\n" /* store new value */
+ " bne- 1b" /* loop if lost */
+ : "=&r" (prev)
+ : "b" (mem), "r" (val)
+ : "cc", "memory");
+
+ return prev;
+}
+
+APR_DECLARE(void*) apr_atomic_casptr(volatile void **mem, void *with, const void *cmp)
+{
+ void *prev;
+#if APR_SIZEOF_VOIDP == 4
+ asm volatile ("1:\n" /* lost reservation */
+ " lwarx %0,0,%1\n" /* load and reserve */
+ " cmpw %0,%3\n" /* compare operands */
+ " bne- 2f\n" /* skip if not equal */
+ PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
+ " stwcx. %2,0,%1\n" /* store new value */
+ " bne- 1b\n" /* loop if lost */
+ "2:\n" /* not equal */
+ : "=&r" (prev)
+ : "b" (mem), "r" (with), "r" (cmp)
+ : "cc", "memory");
+#elif APR_SIZEOF_VOIDP == 8
+ asm volatile ("1:\n" /* lost reservation */
+ " ldarx %0,0,%1\n" /* load and reserve */
+ " cmpd %0,%3\n" /* compare operands */
+ " bne- 2f\n" /* skip if not equal */
+ PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
+ " stdcx. %2,0,%1\n" /* store new value */
+ " bne- 1b\n" /* loop if lost */
+ "2:\n" /* not equal */
+ : "=&r" (prev)
+ : "b" (mem), "r" (with), "r" (cmp)
+ : "cc", "memory");
+#else
+#error APR_SIZEOF_VOIDP value not supported
+#endif
+ return prev;
+}
+
+APR_DECLARE(void*) apr_atomic_xchgptr(volatile void **mem, void *with)
+{
+ void *prev;
+#if APR_SIZEOF_VOIDP == 4
+ asm volatile ("1:\n" /* lost reservation */
+ " lwarx %0,0,%1\n" /* load and reserve */
+ PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
+ " stwcx. %2,0,%1\n" /* store new value */
+ " bne- 1b\n" /* loop if lost */
+ " isync\n" /* memory barrier */
+ : "=&r" (prev)
+ : "b" (mem), "r" (with)
+ : "cc", "memory");
+#elif APR_SIZEOF_VOIDP == 8
+ asm volatile ("1:\n" /* lost reservation */
+ " ldarx %0,0,%1\n" /* load and reserve */
+ PPC405_ERR77_SYNC /* ppc405 Erratum 77 */
+ " stdcx. %2,0,%1\n" /* store new value */
+ " bne- 1b\n" /* loop if lost */
+ " isync\n" /* memory barrier */
+ : "=&r" (prev)
+ : "b" (mem), "r" (with)
+ : "cc", "memory");
+#else
+#error APR_SIZEOF_VOIDP value not supported
+#endif
+ return prev;
+}
+
+#endif /* USE_ATOMICS_PPC */
diff --git a/atomic/unix/s390.c b/atomic/unix/s390.c
new file mode 100644
index 0000000..ae5d040
--- /dev/null
+++ b/atomic/unix/s390.c
@@ -0,0 +1,159 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_arch_atomic.h"
+
+#ifdef USE_ATOMICS_S390
+
+APR_DECLARE(apr_status_t) apr_atomic_init(apr_pool_t *p)
+{
+#if defined (NEED_ATOMICS_GENERIC64)
+ return apr__atomic_generic64_init(p);
+#else
+ return APR_SUCCESS;
+#endif
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_read32(volatile apr_uint32_t *mem)
+{
+ return *mem;
+}
+
+APR_DECLARE(void) apr_atomic_set32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ *mem = val;
+}
+
+static APR_INLINE apr_uint32_t atomic_add(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ apr_uint32_t prev = *mem, temp;
+
+ asm volatile ("loop_%=:\n"
+ " lr %1,%0\n"
+ " alr %1,%3\n"
+ " cs %0,%1,%2\n"
+ " jl loop_%=\n"
+ : "+d" (prev), "+d" (temp), "=Q" (*mem)
+ : "d" (val), "m" (*mem)
+ : "cc", "memory");
+
+ return prev;
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_add32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ return atomic_add(mem, val);
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_inc32(volatile apr_uint32_t *mem)
+{
+ return atomic_add(mem, 1);
+}
+
+static APR_INLINE apr_uint32_t atomic_sub(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ apr_uint32_t prev = *mem, temp;
+
+ asm volatile ("loop_%=:\n"
+ " lr %1,%0\n"
+ " slr %1,%3\n"
+ " cs %0,%1,%2\n"
+ " jl loop_%=\n"
+ : "+d" (prev), "+d" (temp), "=Q" (*mem)
+ : "d" (val), "m" (*mem)
+ : "cc", "memory");
+
+ return temp;
+}
+
+APR_DECLARE(void) apr_atomic_sub32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ atomic_sub(mem, val);
+}
+
+APR_DECLARE(int) apr_atomic_dec32(volatile apr_uint32_t *mem)
+{
+ return atomic_sub(mem, 1);
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_cas32(volatile apr_uint32_t *mem, apr_uint32_t with,
+ apr_uint32_t cmp)
+{
+ asm volatile (" cs %0,%2,%1\n"
+ : "+d" (cmp), "=Q" (*mem)
+ : "d" (with), "m" (*mem)
+ : "cc", "memory");
+
+ return cmp;
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_xchg32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ apr_uint32_t prev = *mem;
+
+ asm volatile ("loop_%=:\n"
+ " cs %0,%2,%1\n"
+ " jl loop_%=\n"
+ : "+d" (prev), "=Q" (*mem)
+ : "d" (val), "m" (*mem)
+ : "cc", "memory");
+
+ return prev;
+}
+
+APR_DECLARE(void*) apr_atomic_casptr(volatile void **mem, void *with, const void *cmp)
+{
+ void *prev = (void *) cmp;
+#if APR_SIZEOF_VOIDP == 4
+ asm volatile (" cs %0,%2,%1\n"
+ : "+d" (prev), "=Q" (*mem)
+ : "d" (with), "m" (*mem)
+ : "cc", "memory");
+#elif APR_SIZEOF_VOIDP == 8
+ asm volatile (" csg %0,%2,%1\n"
+ : "+d" (prev), "=Q" (*mem)
+ : "d" (with), "m" (*mem)
+ : "cc", "memory");
+#else
+#error APR_SIZEOF_VOIDP value not supported
+#endif
+ return prev;
+}
+
+APR_DECLARE(void*) apr_atomic_xchgptr(volatile void **mem, void *with)
+{
+ void *prev = (void *) *mem;
+#if APR_SIZEOF_VOIDP == 4
+ asm volatile ("loop_%=:\n"
+ " cs %0,%2,%1\n"
+ " jl loop_%=\n"
+ : "+d" (prev), "=Q" (*mem)
+ : "d" (with), "m" (*mem)
+ : "cc", "memory");
+#elif APR_SIZEOF_VOIDP == 8
+ asm volatile ("loop_%=:\n"
+ " csg %0,%2,%1\n"
+ " jl loop_%=\n"
+ : "+d" (prev), "=Q" (*mem)
+ : "d" (with), "m" (*mem)
+ : "cc", "memory");
+#else
+#error APR_SIZEOF_VOIDP value not supported
+#endif
+ return prev;
+}
+
+#endif /* USE_ATOMICS_S390 */
diff --git a/atomic/unix/solaris.c b/atomic/unix/solaris.c
new file mode 100644
index 0000000..9bc2de2
--- /dev/null
+++ b/atomic/unix/solaris.c
@@ -0,0 +1,83 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr_arch_atomic.h"
+
+#ifdef USE_ATOMICS_SOLARIS
+
+#include <atomic.h>
+
+APR_DECLARE(apr_status_t) apr_atomic_init(apr_pool_t *p)
+{
+#if defined (NEED_ATOMICS_GENERIC64)
+ return apr__atomic_generic64_init(p);
+#else
+ return APR_SUCCESS;
+#endif
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_read32(volatile apr_uint32_t *mem)
+{
+ return *mem;
+}
+
+APR_DECLARE(void) apr_atomic_set32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ *mem = val;
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_add32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ return atomic_add_32_nv(mem, val) - val;
+}
+
+APR_DECLARE(void) apr_atomic_sub32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ atomic_add_32(mem, -val);
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_inc32(volatile apr_uint32_t *mem)
+{
+ return atomic_inc_32_nv(mem) - 1;
+}
+
+APR_DECLARE(int) apr_atomic_dec32(volatile apr_uint32_t *mem)
+{
+ return atomic_dec_32_nv(mem);
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_cas32(volatile apr_uint32_t *mem, apr_uint32_t with,
+ apr_uint32_t cmp)
+{
+ return atomic_cas_32(mem, cmp, with);
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_xchg32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+ return atomic_swap_32(mem, val);
+}
+
+APR_DECLARE(void*) apr_atomic_casptr(volatile void **mem, void *with, const void *cmp)
+{
+ return atomic_cas_ptr(mem, (void*) cmp, with);
+}
+
+APR_DECLARE(void*) apr_atomic_xchgptr(volatile void **mem, void *with)
+{
+ return atomic_swap_ptr(mem, with);
+}
+
+#endif /* USE_ATOMICS_SOLARIS */
diff --git a/atomic/win32/apr_atomic.c b/atomic/win32/apr_atomic.c
new file mode 100644
index 0000000..b29ea59
--- /dev/null
+++ b/atomic/win32/apr_atomic.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.
+ */
+
+#include "apr_arch_atomic.h"
+
+APR_DECLARE(apr_status_t) apr_atomic_init(apr_pool_t *p)
+{
+#if defined (NEED_ATOMICS_GENERIC64)
+ return apr__atomic_generic64_init(p);
+#else
+ return APR_SUCCESS;
+#endif
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_add32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+#if (defined(_M_IA64) || defined(_M_AMD64))
+ return InterlockedExchangeAdd(mem, val);
+#else
+ return InterlockedExchangeAdd((long *)mem, val);
+#endif
+}
+
+/* Of course we want the 2's compliment of the unsigned value, val */
+#ifdef _MSC_VER
+#pragma warning(disable: 4146)
+#endif
+
+APR_DECLARE(void) apr_atomic_sub32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+#if (defined(_M_IA64) || defined(_M_AMD64))
+ InterlockedExchangeAdd(mem, -val);
+#else
+ InterlockedExchangeAdd((long *)mem, -val);
+#endif
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_inc32(volatile apr_uint32_t *mem)
+{
+ /* we return old value, win32 returns new value :( */
+#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED)
+ return InterlockedIncrement(mem) - 1;
+#else
+ return InterlockedIncrement((long *)mem) - 1;
+#endif
+}
+
+APR_DECLARE(int) apr_atomic_dec32(volatile apr_uint32_t *mem)
+{
+#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED)
+ return InterlockedDecrement(mem);
+#else
+ return InterlockedDecrement((long *)mem);
+#endif
+}
+
+APR_DECLARE(void) apr_atomic_set32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED)
+ InterlockedExchange(mem, val);
+#else
+ InterlockedExchange((long*)mem, val);
+#endif
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_read32(volatile apr_uint32_t *mem)
+{
+ return *mem;
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_cas32(volatile apr_uint32_t *mem, apr_uint32_t with,
+ apr_uint32_t cmp)
+{
+#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED)
+ return InterlockedCompareExchange(mem, with, cmp);
+#else
+ return InterlockedCompareExchange((long*)mem, with, cmp);
+#endif
+}
+
+APR_DECLARE(void *) apr_atomic_casptr(volatile void **mem, void *with, const void *cmp)
+{
+#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED)
+ return InterlockedCompareExchangePointer((void* volatile*)mem, with, (void*)cmp);
+#else
+ return InterlockedCompareExchangePointer((void**)mem, with, (void*)cmp);
+#endif
+}
+
+APR_DECLARE(apr_uint32_t) apr_atomic_xchg32(volatile apr_uint32_t *mem, apr_uint32_t val)
+{
+#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED)
+ return InterlockedExchange(mem, val);
+#else
+ return InterlockedExchange((long *)mem, val);
+#endif
+}
+
+APR_DECLARE(void*) apr_atomic_xchgptr(volatile void **mem, void *with)
+{
+ return InterlockedExchangePointer((void**)mem, with);
+}
diff --git a/atomic/win32/apr_atomic64.c b/atomic/win32/apr_atomic64.c
new file mode 100644
index 0000000..a5acc94
--- /dev/null
+++ b/atomic/win32/apr_atomic64.c
@@ -0,0 +1,94 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "apr.h"
+#include "apr_atomic.h"
+#include "apr_thread_mutex.h"
+
+APR_DECLARE(apr_uint64_t) apr_atomic_add64(volatile apr_uint64_t *mem, apr_uint64_t val)
+{
+#if (defined(_M_IA64) || defined(_M_AMD64))
+ return InterlockedExchangeAdd64(mem, val);
+#else
+ return InterlockedExchangeAdd64((long *)mem, val);
+#endif
+}
+
+/* Of course we want the 2's compliment of the unsigned value, val */
+#ifdef _MSC_VER
+#pragma warning(disable: 4146)
+#endif
+
+APR_DECLARE(void) apr_atomic_sub64(volatile apr_uint64_t *mem, apr_uint64_t val)
+{
+#if (defined(_M_IA64) || defined(_M_AMD64))
+ InterlockedExchangeAdd64(mem, -val);
+#else
+ InterlockedExchangeAdd64((long *)mem, -val);
+#endif
+}
+
+APR_DECLARE(apr_uint64_t) apr_atomic_inc64(volatile apr_uint64_t *mem)
+{
+ /* we return old value, win64 returns new value :( */
+#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED)
+ return InterlockedIncrement64(mem) - 1;
+#else
+ return InterlockedIncrement64((long *)mem) - 1;
+#endif
+}
+
+APR_DECLARE(int) apr_atomic_dec64(volatile apr_uint64_t *mem)
+{
+#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED)
+ return InterlockedDecrement64(mem);
+#else
+ return InterlockedDecrement64((long *)mem);
+#endif
+}
+
+APR_DECLARE(void) apr_atomic_set64(volatile apr_uint64_t *mem, apr_uint64_t val)
+{
+#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED)
+ InterlockedExchange64(mem, val);
+#else
+ InterlockedExchange64((long*)mem, val);
+#endif
+}
+
+APR_DECLARE(apr_uint64_t) apr_atomic_read64(volatile apr_uint64_t *mem)
+{
+ return *mem;
+}
+
+APR_DECLARE(apr_uint64_t) apr_atomic_cas64(volatile apr_uint64_t *mem, apr_uint64_t with,
+ apr_uint64_t cmp)
+{
+#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED)
+ return InterlockedCompareExchange64(mem, with, cmp);
+#else
+ return InterlockedCompareExchange64((long*)mem, with, cmp);
+#endif
+}
+
+APR_DECLARE(apr_uint64_t) apr_atomic_xchg64(volatile apr_uint64_t *mem, apr_uint64_t val)
+{
+#if (defined(_M_IA64) || defined(_M_AMD64)) && !defined(RC_INVOKED)
+ return InterlockedExchange64(mem, val);
+#else
+ return InterlockedExchange64((long *)mem, val);
+#endif
+}
diff --git a/build-outputs.mk b/build-outputs.mk
new file mode 100644
index 0000000..5694556
--- /dev/null
+++ b/build-outputs.mk
@@ -0,0 +1,328 @@
+# DO NOT EDIT. AUTOMATICALLY GENERATED.
+
+encoding/apr_encode.lo: encoding/apr_encode.c .make.dirs include/apr_allocator.h include/apr_encode.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_time.h include/apr_want.h
+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_time.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_time.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_time.h include/apr_want.h
+strings/apr_cstr.lo: strings/apr_cstr.c .make.dirs include/apr_allocator.h include/apr_cstr.h include/apr_errno.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_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
+strings/apr_snprintf.lo: strings/apr_snprintf.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_lib.h include/apr_network_io.h include/apr_perms_set.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
+strings/apr_strings.lo: strings/apr_strings.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_time.h include/apr_want.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_time.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_time.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_perms_set.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_time.h include/apr_want.h
+
+OBJECTS_all = encoding/apr_encode.lo encoding/apr_escape.lo passwd/apr_getpass.lo strings/apr_cpystrn.lo strings/apr_cstr.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_perms_set.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
+
+OBJECTS_dso_unix = dso/unix/dso.lo
+
+file_io/unix/buffer.lo: file_io/unix/buffer.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_general.h include/apr_pools.h include/apr_thread_mutex.h include/apr_time.h include/apr_want.h
+file_io/unix/copy.lo: file_io/unix/copy.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_tables.h include/apr_thread_mutex.h include/apr_time.h include/apr_user.h include/apr_want.h
+file_io/unix/dir.lo: file_io/unix/dir.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_perms_set.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
+file_io/unix/fileacc.lo: file_io/unix/fileacc.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_time.h include/apr_want.h
+file_io/unix/filedup.lo: file_io/unix/filedup.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_perms_set.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
+file_io/unix/filepath.lo: file_io/unix/filepath.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_strings.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/filepath_util.lo: file_io/unix/filepath_util.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_tables.h include/apr_thread_mutex.h include/apr_time.h include/apr_want.h
+file_io/unix/filestat.lo: file_io/unix/filestat.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_strings.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/flock.lo: file_io/unix/flock.c .make.dirs
+file_io/unix/fullrw.lo: file_io/unix/fullrw.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_tables.h include/apr_thread_mutex.h include/apr_time.h include/apr_user.h include/apr_want.h
+file_io/unix/mktemp.lo: file_io/unix/mktemp.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_perms_set.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
+file_io/unix/open.lo: file_io/unix/open.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_perms_set.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
+file_io/unix/pipe.lo: file_io/unix/pipe.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_perms_set.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
+file_io/unix/readwrite.lo: file_io/unix/readwrite.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_network_io.h include/apr_perms_set.h include/apr_pools.h include/apr_strings.h include/apr_support.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/seek.lo: file_io/unix/seek.c .make.dirs
+file_io/unix/tempdir.lo: file_io/unix/tempdir.c .make.dirs 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
+
+OBJECTS_file_io_unix = file_io/unix/buffer.lo file_io/unix/copy.lo file_io/unix/dir.lo file_io/unix/fileacc.lo file_io/unix/filedup.lo file_io/unix/filepath.lo file_io/unix/filepath_util.lo file_io/unix/filestat.lo file_io/unix/flock.lo file_io/unix/fullrw.lo file_io/unix/mktemp.lo file_io/unix/open.lo file_io/unix/pipe.lo file_io/unix/readwrite.lo file_io/unix/seek.lo file_io/unix/tempdir.lo
+
+locks/unix/global_mutex.lo: locks/unix/global_mutex.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_perms_set.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
+locks/unix/proc_mutex.lo: locks/unix/proc_mutex.c .make.dirs include/apr_allocator.h include/apr_atomic.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_time.h include/apr_want.h
+locks/unix/thread_cond.lo: locks/unix/thread_cond.c .make.dirs
+locks/unix/thread_mutex.lo: locks/unix/thread_mutex.c .make.dirs include/apr_want.h
+locks/unix/thread_rwlock.lo: locks/unix/thread_rwlock.c .make.dirs
+
+OBJECTS_locks_unix = locks/unix/global_mutex.lo locks/unix/proc_mutex.lo locks/unix/thread_cond.lo locks/unix/thread_mutex.lo locks/unix/thread_rwlock.lo
+
+memory/unix/apr_pools.lo: memory/unix/apr_pools.c .make.dirs 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_perms_set.h include/apr_pools.h include/apr_portable.h include/apr_proc_mutex.h include/apr_shm.h include/apr_strings.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
+
+OBJECTS_memory_unix = memory/unix/apr_pools.lo
+
+misc/unix/charset.lo: misc/unix/charset.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_perms_set.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/unix/env.lo: misc/unix/env.c .make.dirs include/apr_allocator.h include/apr_env.h include/apr_errno.h include/apr_general.h include/apr_pools.h include/apr_strings.h include/apr_thread_mutex.h include/apr_time.h include/apr_want.h
+misc/unix/errorcodes.lo: misc/unix/errorcodes.c .make.dirs include/apr_allocator.h include/apr_dso.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_time.h include/apr_want.h
+misc/unix/getopt.lo: misc/unix/getopt.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_time.h include/apr_want.h
+misc/unix/otherchild.lo: misc/unix/otherchild.c .make.dirs
+misc/unix/rand.lo: misc/unix/rand.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_general.h include/apr_pools.h include/apr_thread_mutex.h include/apr_time.h include/apr_want.h
+misc/unix/start.lo: misc/unix/start.c .make.dirs include/apr_allocator.h include/apr_atomic.h include/apr_errno.h include/apr_general.h include/apr_pools.h include/apr_signal.h include/apr_thread_mutex.h include/apr_time.h include/apr_want.h
+misc/unix/version.lo: misc/unix/version.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_general.h include/apr_pools.h include/apr_thread_mutex.h include/apr_time.h include/apr_version.h include/apr_want.h
+
+OBJECTS_misc_unix = misc/unix/charset.lo misc/unix/env.lo misc/unix/errorcodes.lo misc/unix/getopt.lo misc/unix/otherchild.lo misc/unix/rand.lo misc/unix/start.lo misc/unix/version.lo
+
+mmap/unix/common.lo: mmap/unix/common.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_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
+mmap/unix/mmap.lo: mmap/unix/mmap.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_mmap.h include/apr_network_io.h include/apr_perms_set.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
+
+OBJECTS_mmap_unix = mmap/unix/common.lo mmap/unix/mmap.lo
+
+network_io/unix/inet_ntop.lo: network_io/unix/inet_ntop.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_time.h include/apr_want.h
+network_io/unix/inet_pton.lo: network_io/unix/inet_pton.c .make.dirs
+network_io/unix/multicast.lo: network_io/unix/multicast.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_perms_set.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
+network_io/unix/sendrecv.lo: network_io/unix/sendrecv.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_network_io.h include/apr_perms_set.h include/apr_pools.h include/apr_support.h include/apr_tables.h include/apr_thread_mutex.h include/apr_time.h include/apr_user.h include/apr_want.h
+network_io/unix/sockaddr.lo: network_io/unix/sockaddr.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_time.h include/apr_want.h
+network_io/unix/socket_util.lo: network_io/unix/socket_util.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_network_io.h include/apr_perms_set.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/unix/sockets.lo: network_io/unix/sockets.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_perms_set.h include/apr_pools.h include/apr_portable.h include/apr_proc_mutex.h include/apr_shm.h include/apr_strings.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
+network_io/unix/sockopt.lo: network_io/unix/sockopt.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_time.h include/apr_want.h
+
+OBJECTS_network_io_unix = network_io/unix/inet_ntop.lo network_io/unix/inet_pton.lo network_io/unix/multicast.lo network_io/unix/sendrecv.lo network_io/unix/sockaddr.lo network_io/unix/socket_util.lo network_io/unix/sockets.lo network_io/unix/sockopt.lo
+
+poll/unix/epoll.lo: poll/unix/epoll.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_perms_set.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/kqueue.lo: poll/unix/kqueue.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_perms_set.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/poll.lo: poll/unix/poll.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_perms_set.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/pollcb.lo: poll/unix/pollcb.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_perms_set.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/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_perms_set.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_perms_set.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_perms_set.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/wakeup.lo: poll/unix/wakeup.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_perms_set.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_perms_set.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 poll/unix/wakeup.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_perms_set.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
+random/unix/sha2_glue.lo: random/unix/sha2_glue.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_perms_set.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
+
+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_hash.h include/apr_pools.h include/apr_strings.h include/apr_thread_mutex.h include/apr_time.h include/apr_user.h include/apr_want.h
+
+OBJECTS_shmem_unix = shmem/unix/shm.lo
+
+support/unix/waitio.lo: support/unix/waitio.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_network_io.h include/apr_perms_set.h include/apr_poll.h include/apr_pools.h include/apr_support.h include/apr_tables.h include/apr_thread_mutex.h include/apr_time.h include/apr_user.h include/apr_want.h
+
+OBJECTS_support_unix = support/unix/waitio.lo
+
+threadproc/unix/proc.lo: threadproc/unix/proc.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_perms_set.h include/apr_pools.h include/apr_portable.h include/apr_proc_mutex.h include/apr_random.h include/apr_shm.h include/apr_signal.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
+threadproc/unix/procsup.lo: threadproc/unix/procsup.c .make.dirs
+threadproc/unix/signals.lo: threadproc/unix/signals.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_general.h include/apr_pools.h include/apr_signal.h include/apr_strings.h include/apr_thread_mutex.h include/apr_time.h include/apr_want.h
+threadproc/unix/thread.lo: threadproc/unix/thread.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_perms_set.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
+threadproc/unix/threadpriv.lo: threadproc/unix/threadpriv.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_perms_set.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_threadproc_unix = threadproc/unix/proc.lo threadproc/unix/procsup.lo threadproc/unix/signals.lo threadproc/unix/thread.lo threadproc/unix/threadpriv.lo
+
+time/unix/time.lo: time/unix/time.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_lib.h include/apr_network_io.h include/apr_perms_set.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
+time/unix/timestr.lo: time/unix/timestr.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_lib.h include/apr_network_io.h include/apr_perms_set.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_time_unix = time/unix/time.lo time/unix/timestr.lo
+
+user/unix/groupinfo.lo: user/unix/groupinfo.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_perms_set.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
+user/unix/userinfo.lo: user/unix/userinfo.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_perms_set.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
+
+OBJECTS_user_unix = user/unix/groupinfo.lo user/unix/userinfo.lo
+
+atomic/unix/builtins.lo: atomic/unix/builtins.c .make.dirs
+atomic/unix/builtins64.lo: atomic/unix/builtins64.c .make.dirs
+atomic/unix/ia32.lo: atomic/unix/ia32.c .make.dirs
+atomic/unix/mutex.lo: atomic/unix/mutex.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_general.h include/apr_pools.h include/apr_thread_mutex.h include/apr_time.h include/apr_want.h
+atomic/unix/mutex64.lo: atomic/unix/mutex64.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_general.h include/apr_pools.h include/apr_thread_mutex.h include/apr_time.h include/apr_want.h
+atomic/unix/ppc.lo: atomic/unix/ppc.c .make.dirs
+atomic/unix/s390.lo: atomic/unix/s390.c .make.dirs
+atomic/unix/solaris.lo: atomic/unix/solaris.c .make.dirs
+
+OBJECTS_atomic_unix = atomic/unix/builtins.lo atomic/unix/builtins64.lo atomic/unix/ia32.lo atomic/unix/mutex.lo atomic/unix/mutex64.lo atomic/unix/ppc.lo atomic/unix/s390.lo atomic/unix/solaris.lo
+
+OBJECTS_unix = $(OBJECTS_all) $(OBJECTS_atomic_unix) $(OBJECTS_dso_unix) $(OBJECTS_file_io_unix) $(OBJECTS_locks_unix) $(OBJECTS_memory_unix) $(OBJECTS_misc_unix) $(OBJECTS_mmap_unix) $(OBJECTS_network_io_unix) $(OBJECTS_poll_unix) $(OBJECTS_random_unix) $(OBJECTS_shmem_unix) $(OBJECTS_support_unix) $(OBJECTS_threadproc_unix) $(OBJECTS_time_unix) $(OBJECTS_user_unix)
+
+dso/aix/dso.lo: dso/aix/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_perms_set.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_dso_aix = dso/aix/dso.lo
+
+OBJECTS_aix = $(OBJECTS_all) $(OBJECTS_atomic_unix) $(OBJECTS_dso_aix) $(OBJECTS_file_io_unix) $(OBJECTS_locks_unix) $(OBJECTS_memory_unix) $(OBJECTS_misc_unix) $(OBJECTS_mmap_unix) $(OBJECTS_network_io_unix) $(OBJECTS_poll_unix) $(OBJECTS_random_unix) $(OBJECTS_shmem_unix) $(OBJECTS_support_unix) $(OBJECTS_threadproc_unix) $(OBJECTS_time_unix) $(OBJECTS_user_unix)
+
+dso/beos/dso.lo: dso/beos/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_perms_set.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_dso_beos = dso/beos/dso.lo
+
+locks/beos/proc_mutex.lo: locks/beos/proc_mutex.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_perms_set.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
+locks/beos/thread_cond.lo: locks/beos/thread_cond.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_perms_set.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
+locks/beos/thread_mutex.lo: locks/beos/thread_mutex.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_perms_set.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
+locks/beos/thread_rwlock.lo: locks/beos/thread_rwlock.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_perms_set.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
+
+OBJECTS_locks_beos = locks/beos/proc_mutex.lo locks/beos/thread_cond.lo locks/beos/thread_mutex.lo locks/beos/thread_rwlock.lo
+
+network_io/beos/sendrecv.lo: network_io/beos/sendrecv.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_general.h include/apr_pools.h include/apr_thread_mutex.h include/apr_time.h include/apr_want.h
+network_io/beos/socketcommon.lo: network_io/beos/socketcommon.c .make.dirs
+
+OBJECTS_network_io_beos = network_io/beos/sendrecv.lo network_io/beos/socketcommon.lo
+
+shmem/beos/shm.lo: shmem/beos/shm.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_lib.h include/apr_network_io.h include/apr_perms_set.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
+
+OBJECTS_shmem_beos = shmem/beos/shm.lo
+
+threadproc/beos/apr_proc_stub.lo: threadproc/beos/apr_proc_stub.c .make.dirs
+threadproc/beos/proc.lo: threadproc/beos/proc.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_time.h include/apr_want.h
+threadproc/beos/thread.lo: threadproc/beos/thread.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_perms_set.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
+threadproc/beos/threadpriv.lo: threadproc/beos/threadpriv.c .make.dirs
+threadproc/beos/threadproc_common.lo: threadproc/beos/threadproc_common.c .make.dirs
+
+OBJECTS_threadproc_beos = threadproc/beos/apr_proc_stub.lo threadproc/beos/proc.lo threadproc/beos/thread.lo threadproc/beos/threadpriv.lo threadproc/beos/threadproc_common.lo
+
+OBJECTS_beos = $(OBJECTS_all) $(OBJECTS_atomic_unix) $(OBJECTS_dso_beos) $(OBJECTS_file_io_unix) $(OBJECTS_locks_beos) $(OBJECTS_memory_unix) $(OBJECTS_misc_unix) $(OBJECTS_mmap_unix) $(OBJECTS_network_io_beos) $(OBJECTS_poll_unix) $(OBJECTS_random_unix) $(OBJECTS_shmem_beos) $(OBJECTS_support_unix) $(OBJECTS_threadproc_beos) $(OBJECTS_time_unix) $(OBJECTS_user_unix)
+
+dso/os2/dso.lo: dso/os2/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_perms_set.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
+
+OBJECTS_dso_os2 = dso/os2/dso.lo
+
+file_io/os2/buffer.lo: file_io/os2/buffer.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_general.h include/apr_pools.h include/apr_thread_mutex.h include/apr_time.h include/apr_want.h
+file_io/os2/copy.lo: file_io/os2/copy.c .make.dirs
+file_io/os2/dir.lo: file_io/os2/dir.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_lib.h include/apr_network_io.h include/apr_perms_set.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
+file_io/os2/dir_make_recurse.lo: file_io/os2/dir_make_recurse.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_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
+file_io/os2/fileacc.lo: file_io/os2/fileacc.c .make.dirs
+file_io/os2/filedup.lo: file_io/os2/filedup.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_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
+file_io/os2/filepath.lo: file_io/os2/filepath.c .make.dirs
+file_io/os2/filepath_util.lo: file_io/os2/filepath_util.c .make.dirs
+file_io/os2/filestat.lo: file_io/os2/filestat.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_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
+file_io/os2/filesys.lo: file_io/os2/filesys.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_time.h include/apr_want.h
+file_io/os2/flock.lo: file_io/os2/flock.c .make.dirs
+file_io/os2/fullrw.lo: file_io/os2/fullrw.c .make.dirs
+file_io/os2/maperrorcode.lo: file_io/os2/maperrorcode.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_tables.h include/apr_thread_mutex.h include/apr_time.h include/apr_user.h include/apr_want.h
+file_io/os2/mktemp.lo: file_io/os2/mktemp.c .make.dirs
+file_io/os2/open.lo: file_io/os2/open.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_lib.h include/apr_network_io.h include/apr_perms_set.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
+file_io/os2/pipe.lo: file_io/os2/pipe.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_lib.h include/apr_network_io.h include/apr_perms_set.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
+file_io/os2/readwrite.lo: file_io/os2/readwrite.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_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
+file_io/os2/seek.lo: file_io/os2/seek.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_lib.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/os2/tempdir.lo: file_io/os2/tempdir.c .make.dirs
+
+OBJECTS_file_io_os2 = file_io/os2/buffer.lo file_io/os2/copy.lo file_io/os2/dir.lo file_io/os2/dir_make_recurse.lo file_io/os2/fileacc.lo file_io/os2/filedup.lo file_io/os2/filepath.lo file_io/os2/filepath_util.lo file_io/os2/filestat.lo file_io/os2/filesys.lo file_io/os2/flock.lo file_io/os2/fullrw.lo file_io/os2/maperrorcode.lo file_io/os2/mktemp.lo file_io/os2/open.lo file_io/os2/pipe.lo file_io/os2/readwrite.lo file_io/os2/seek.lo file_io/os2/tempdir.lo
+
+locks/os2/proc_mutex.lo: locks/os2/proc_mutex.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_lib.h include/apr_network_io.h include/apr_perms_set.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
+locks/os2/thread_cond.lo: locks/os2/thread_cond.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_lib.h include/apr_network_io.h include/apr_perms_set.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
+locks/os2/thread_mutex.lo: locks/os2/thread_mutex.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_lib.h include/apr_network_io.h include/apr_perms_set.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
+locks/os2/thread_rwlock.lo: locks/os2/thread_rwlock.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_lib.h include/apr_network_io.h include/apr_perms_set.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
+
+OBJECTS_locks_os2 = locks/os2/proc_mutex.lo locks/os2/thread_cond.lo locks/os2/thread_mutex.lo locks/os2/thread_rwlock.lo
+
+network_io/os2/inet_ntop.lo: network_io/os2/inet_ntop.c .make.dirs
+network_io/os2/inet_pton.lo: network_io/os2/inet_pton.c .make.dirs
+network_io/os2/os2calls.lo: network_io/os2/os2calls.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_lib.h include/apr_network_io.h include/apr_perms_set.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
+network_io/os2/sendrecv.lo: network_io/os2/sendrecv.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_lib.h include/apr_network_io.h include/apr_perms_set.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/os2/sendrecv_udp.lo: network_io/os2/sendrecv_udp.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_lib.h include/apr_network_io.h include/apr_perms_set.h include/apr_pools.h include/apr_support.h include/apr_tables.h include/apr_thread_mutex.h include/apr_time.h include/apr_user.h include/apr_want.h
+network_io/os2/sockaddr.lo: network_io/os2/sockaddr.c .make.dirs
+network_io/os2/socket_util.lo: network_io/os2/socket_util.c .make.dirs
+network_io/os2/sockets.lo: network_io/os2/sockets.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_lib.h include/apr_network_io.h include/apr_perms_set.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
+network_io/os2/sockopt.lo: network_io/os2/sockopt.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_lib.h include/apr_network_io.h include/apr_perms_set.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
+
+OBJECTS_network_io_os2 = network_io/os2/inet_ntop.lo network_io/os2/inet_pton.lo network_io/os2/os2calls.lo network_io/os2/sendrecv.lo network_io/os2/sendrecv_udp.lo network_io/os2/sockaddr.lo network_io/os2/socket_util.lo network_io/os2/sockets.lo network_io/os2/sockopt.lo
+
+poll/os2/poll.lo: poll/os2/poll.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_network_io.h include/apr_perms_set.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
+poll/os2/pollset.lo: poll/os2/pollset.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_network_io.h include/apr_perms_set.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
+
+OBJECTS_poll_os2 = poll/os2/poll.lo poll/os2/pollset.lo
+
+shmem/os2/shm.lo: shmem/os2/shm.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_lib.h include/apr_network_io.h include/apr_perms_set.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
+
+OBJECTS_shmem_os2 = shmem/os2/shm.lo
+
+threadproc/os2/proc.lo: threadproc/os2/proc.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_lib.h include/apr_network_io.h include/apr_perms_set.h include/apr_pools.h include/apr_portable.h include/apr_proc_mutex.h include/apr_shm.h include/apr_signal.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
+threadproc/os2/signals.lo: threadproc/os2/signals.c .make.dirs
+threadproc/os2/thread.lo: threadproc/os2/thread.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_lib.h include/apr_network_io.h include/apr_perms_set.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
+threadproc/os2/threadpriv.lo: threadproc/os2/threadpriv.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_lib.h include/apr_network_io.h include/apr_perms_set.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_threadproc_os2 = threadproc/os2/proc.lo threadproc/os2/signals.lo threadproc/os2/thread.lo threadproc/os2/threadpriv.lo
+
+OBJECTS_os2 = $(OBJECTS_all) $(OBJECTS_atomic_unix) $(OBJECTS_dso_os2) $(OBJECTS_file_io_os2) $(OBJECTS_locks_os2) $(OBJECTS_memory_unix) $(OBJECTS_misc_unix) $(OBJECTS_mmap_unix) $(OBJECTS_network_io_os2) $(OBJECTS_poll_os2) $(OBJECTS_random_unix) $(OBJECTS_shmem_os2) $(OBJECTS_support_unix) $(OBJECTS_threadproc_os2) $(OBJECTS_time_unix) $(OBJECTS_user_unix)
+
+dso/os390/dso.lo: dso/os390/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_perms_set.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
+
+OBJECTS_dso_os390 = dso/os390/dso.lo
+
+atomic/os390/atomic.lo: atomic/os390/atomic.c .make.dirs
+
+OBJECTS_atomic_os390 = atomic/os390/atomic.lo
+
+OBJECTS_os390 = $(OBJECTS_all) $(OBJECTS_atomic_os390) $(OBJECTS_dso_os390) $(OBJECTS_file_io_unix) $(OBJECTS_locks_unix) $(OBJECTS_memory_unix) $(OBJECTS_misc_unix) $(OBJECTS_mmap_unix) $(OBJECTS_network_io_unix) $(OBJECTS_poll_unix) $(OBJECTS_random_unix) $(OBJECTS_shmem_unix) $(OBJECTS_support_unix) $(OBJECTS_threadproc_unix) $(OBJECTS_time_unix) $(OBJECTS_user_unix)
+
+dso/win32/dso.lo: dso/win32/dso.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_time.h include/apr_want.h
+
+OBJECTS_dso_win32 = dso/win32/dso.lo
+
+file_io/win32/buffer.lo: file_io/win32/buffer.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_general.h include/apr_pools.h include/apr_thread_mutex.h include/apr_time.h include/apr_want.h
+file_io/win32/dir.lo: file_io/win32/dir.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_perms_set.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
+file_io/win32/filedup.lo: file_io/win32/filedup.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_strings.h include/apr_tables.h include/apr_thread_mutex.h include/apr_time.h include/apr_user.h include/apr_want.h
+file_io/win32/filepath.lo: file_io/win32/filepath.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_time.h include/apr_want.h
+file_io/win32/filestat.lo: file_io/win32/filestat.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_strings.h include/apr_tables.h include/apr_thread_mutex.h include/apr_time.h include/apr_user.h include/apr_want.h
+file_io/win32/filesys.lo: file_io/win32/filesys.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_time.h include/apr_want.h
+file_io/win32/flock.lo: file_io/win32/flock.c .make.dirs
+file_io/win32/open.lo: file_io/win32/open.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_perms_set.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
+file_io/win32/pipe.lo: file_io/win32/pipe.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_escape.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
+file_io/win32/readwrite.lo: file_io/win32/readwrite.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_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
+file_io/win32/seek.lo: file_io/win32/seek.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_tables.h include/apr_thread_mutex.h include/apr_time.h include/apr_user.h include/apr_want.h
+
+OBJECTS_file_io_win32 = file_io/unix/copy.lo file_io/unix/fileacc.lo file_io/unix/filepath_util.lo file_io/unix/fullrw.lo file_io/unix/mktemp.lo file_io/unix/tempdir.lo file_io/win32/buffer.lo file_io/win32/dir.lo file_io/win32/filedup.lo file_io/win32/filepath.lo file_io/win32/filestat.lo file_io/win32/filesys.lo file_io/win32/flock.lo file_io/win32/open.lo file_io/win32/pipe.lo file_io/win32/readwrite.lo file_io/win32/seek.lo
+
+locks/win32/proc_mutex.lo: locks/win32/proc_mutex.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_perms_set.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
+locks/win32/thread_cond.lo: locks/win32/thread_cond.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_perms_set.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
+locks/win32/thread_mutex.lo: locks/win32/thread_mutex.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_perms_set.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
+locks/win32/thread_rwlock.lo: locks/win32/thread_rwlock.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_perms_set.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
+
+OBJECTS_locks_win32 = locks/win32/proc_mutex.lo locks/win32/thread_cond.lo locks/win32/thread_mutex.lo locks/win32/thread_rwlock.lo
+
+misc/win32/charset.lo: misc/win32/charset.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_perms_set.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.lo: misc/win32/env.c .make.dirs include/apr_allocator.h include/apr_env.h include/apr_errno.h include/apr_general.h include/apr_pools.h include/apr_strings.h include/apr_thread_mutex.h include/apr_time.h include/apr_want.h
+misc/win32/internal.lo: misc/win32/internal.c .make.dirs
+misc/win32/misc.lo: misc/win32/misc.c .make.dirs include/apr_errno.h include/apr_lib.h
+misc/win32/rand.lo: misc/win32/rand.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_perms_set.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
+misc/win32/start.lo: misc/win32/start.c .make.dirs include/apr_allocator.h include/apr_errno.h include/apr_general.h include/apr_pools.h include/apr_signal.h include/apr_thread_mutex.h include/apr_time.h include/apr_want.h
+misc/win32/utf8.lo: misc/win32/utf8.c .make.dirs include/apr_errno.h
+
+OBJECTS_misc_win32 = misc/unix/errorcodes.lo misc/unix/getopt.lo misc/unix/otherchild.lo misc/unix/version.lo misc/win32/charset.lo misc/win32/env.lo misc/win32/internal.lo misc/win32/misc.lo misc/win32/rand.lo misc/win32/start.lo misc/win32/utf8.lo
+
+mmap/win32/mmap.lo: mmap/win32/mmap.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_mmap.h include/apr_network_io.h include/apr_perms_set.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
+
+OBJECTS_mmap_win32 = mmap/unix/common.lo mmap/win32/mmap.lo
+
+network_io/win32/sendrecv.lo: network_io/win32/sendrecv.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_lib.h include/apr_network_io.h include/apr_perms_set.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.lo: network_io/win32/sockets.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_lib.h include/apr_network_io.h include/apr_perms_set.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
+network_io/win32/sockopt.lo: network_io/win32/sockopt.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_network_io.h include/apr_perms_set.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
+
+OBJECTS_network_io_win32 = network_io/unix/inet_ntop.lo network_io/unix/inet_pton.lo network_io/unix/multicast.lo network_io/unix/sockaddr.lo network_io/unix/socket_util.lo network_io/win32/sendrecv.lo network_io/win32/sockets.lo network_io/win32/sockopt.lo
+
+shmem/win32/shm.lo: shmem/win32/shm.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_perms_set.h include/apr_pools.h include/apr_shm.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
+
+OBJECTS_shmem_win32 = shmem/win32/shm.lo
+
+threadproc/win32/proc.lo: threadproc/win32/proc.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_lib.h include/apr_network_io.h include/apr_perms_set.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
+threadproc/win32/signals.lo: threadproc/win32/signals.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_perms_set.h include/apr_pools.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
+threadproc/win32/thread.lo: threadproc/win32/thread.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_lib.h include/apr_network_io.h include/apr_perms_set.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
+threadproc/win32/threadpriv.lo: threadproc/win32/threadpriv.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_lib.h include/apr_network_io.h include/apr_perms_set.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_threadproc_win32 = threadproc/win32/proc.lo threadproc/win32/signals.lo threadproc/win32/thread.lo threadproc/win32/threadpriv.lo
+
+time/win32/time.lo: time/win32/time.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_lib.h include/apr_network_io.h include/apr_perms_set.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
+time/win32/timestr.lo: time/win32/timestr.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_perms_set.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
+
+OBJECTS_time_win32 = time/win32/time.lo time/win32/timestr.lo
+
+user/win32/groupinfo.lo: user/win32/groupinfo.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_perms_set.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
+user/win32/userinfo.lo: user/win32/userinfo.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_perms_set.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
+
+OBJECTS_user_win32 = user/win32/groupinfo.lo user/win32/userinfo.lo
+
+atomic/win32/apr_atomic.lo: atomic/win32/apr_atomic.c .make.dirs
+atomic/win32/apr_atomic64.lo: atomic/win32/apr_atomic64.c .make.dirs 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_time.h include/apr_want.h
+
+OBJECTS_atomic_win32 = atomic/win32/apr_atomic.lo atomic/win32/apr_atomic64.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_cstr.h $(top_srcdir)/include/apr_dso.h $(top_srcdir)/include/apr_encode.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_perms_set.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 = encoding passwd strings tables dso/unix file_io/unix locks/unix memory/unix misc/unix mmap/unix network_io/unix poll/unix random/unix shmem/unix support/unix threadproc/unix time/unix user/unix atomic/unix dso/aix dso/beos locks/beos network_io/beos shmem/beos threadproc/beos dso/os2 file_io/os2 locks/os2 network_io/os2 poll/os2 shmem/os2 threadproc/os2 dso/os390 atomic/os390 dso/win32 file_io/win32 locks/win32 misc/win32 mmap/win32 network_io/win32 shmem/win32 threadproc/win32 time/win32 user/win32 atomic/win32 $(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 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
+ @echo timestamp > $@
diff --git a/build.conf b/build.conf
new file mode 100644
index 0000000..eecadba
--- /dev/null
+++ b/build.conf
@@ -0,0 +1,29 @@
+#
+# Configuration file for APR. Used by APR/build/gen-build.py
+#
+
+[options]
+
+# paths to platform-independent .c files to build
+paths =
+ encoding/*.c
+ passwd/*.c
+ strings/*.c
+ tables/*.c
+
+# directories that have platform-specific code in them. the resulting
+# pattern will be: SUBDIR/PLATFORM/*.c
+platform_dirs =
+ dso file_io locks memory misc mmap network_io poll random
+ shmem support threadproc time user atomic
+
+# all the public headers
+headers = include/*.h
+
+# aplibtool is manually built by the configure process
+# build/aplibtool.c
+
+# we have a recursive makefile for the test files (for now)
+# test/*.c
+
+dsp = libapr.dsp
diff --git a/build/MakeEtags b/build/MakeEtags
new file mode 100755
index 0000000..cf1a486
--- /dev/null
+++ b/build/MakeEtags
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+# This file illustrates how to generate a useful TAGS file via etags
+# for emacs. This should be invoked from the top source directory i.e.:
+# > build/MakeEtags
+# and will create a TAGS file in the top source directory.
+
+# This script falls under the Apache License.
+# See http://www.apache.org/docs/LICENSE
+
+# Once you have created ./TAGS in emacs you'll need to setup
+# tag-table-alist with an entry to assure it finds the single ./TAGS
+# file from the many source directories. Something along these lines:
+# (setq tag-table-alist
+# '(("/home/me/work/apr-x.y/" . "/home/me/work/apr-x.y/")
+# ("/home/me/work/apr-util-x.y/" . "/home/me/work/apr-util-x.y/")
+# ("/home/me/work/httpd-x.y/" . "/home/me/work/httpd-x.y/")
+# ))
+
+# This requires a special version of etags, i.e. the
+# one called "Exuberant ctags" available at:
+# http://ctags.sourceforge.net/
+# Once that is setup you'll need to point to the
+# executable here:
+
+etags=${ETAGS-etags}
+
+# Exuberant etags is necessary since it can ignore some defined symbols
+# that obscure the function signatures.
+
+ignore=AP_DECLARE,AP_DECLARE_NONSTD,__declspec,APR_DECLARE,APR_DECLARE_NONSTD
+ignore=$ignore,APU_DECLARE,APU_DECLARE_NONSTD
+
+# Create an etags file at the root of the source
+# tree, then create symbol links to it from each
+# directory in the source tree. By passing etags
+# absolute pathnames we get a tag file that is
+# NOT portable when we move the directory tree.
+
+find . -name '*.[ch]' -print | $etags -I "$ignore" -L -
+
diff --git a/build/NWGNUenvironment.inc b/build/NWGNUenvironment.inc
new file mode 100644
index 0000000..6f65a16
--- /dev/null
+++ b/build/NWGNUenvironment.inc
@@ -0,0 +1,365 @@
+#
+# Setup needed Tools and Libraries
+#
+
+ifeq "$(wildcard $(APR_WORK)/build/NWGNUcustom.inc)" "$(APR_WORK)/build/NWGNUcustom.inc"
+include $(APR_WORK)/build/NWGNUcustom.inc
+CUSTOM_INI = $(AP_WORK)/NWGNUcustom.ini
+endif
+
+ifndef VERBOSE
+.SILENT:
+endif
+
+#
+# Treat like an include
+#
+ifndef EnvironmentDefined
+
+#
+# simple macros for parsing makefiles
+#
+EOLIST:=
+EMPTY :=
+COMMA := ,
+SPACE := $(EMPTY) $(EMPTY)
+
+#
+# Base environment
+#
+
+# Try and handle case issues
+ifndef NOVELLLIBC
+ifdef NovellLibC
+NOVELLLIBC = $(NovellLibC)
+endif
+endif
+
+ifndef NOVELLLIBC
+NOVELLLIBC = C:/novell/ndk/libc
+endif
+ifneq "$(wildcard $(NOVELLLIBC)/include/ndkvers.h)" "$(NOVELLLIBC)/include/ndkvers.h"
+$(error NOVELLLIBC does not point to a valid Novell LIBC SDK)
+endif
+
+ifndef LDAPSDK
+LDAPSDK = C:/novell/ndk/cldapsdk/NetWare/libc
+endif
+ifneq "$(wildcard $(LDAPSDK)/inc/ldap.h)" "$(LDAPSDK)/inc/ldap.h"
+$(error LDAPSDK does not point to a valid Novell CLDAP SDK)
+endif
+
+ifdef EXPATSDK
+ifeq "$(wildcard $(EXPATSDK)/include/expat.h)" "$(EXPATSDK)/include/expat.h"
+EXPAT_IMP = $(EXPATSDK)/imports/expatlbc.imp
+EXPAT_INC = $(EXPATSDK)/include
+EXPAT_LIB = $(EXPATSDK)/lib/expat.lib
+EXPAT_NLM = EXPATLBC
+else
+$(error EXPATSDK does not point to a valid EXPAT SDK)
+endif
+endif
+ifdef EXPATSRC
+ifeq "$(wildcard $(EXPATSRC)/lib/xmlparse.c)" "$(EXPATSRC)/lib/xmlparse.c"
+EXPAT_INC = $(EXPATSRC)/lib
+EXPAT_LIB = $(EXPATSRC)/lib/$(OBJDIR)/expat.lib
+else
+$(error EXPATSRC does not point to a valid EXPAT source tree)
+endif
+endif
+ifndef EXPAT_INC
+EXPATSRC = $(APUXML)/expat
+EXPAT_INC = $(EXPATSRC)/lib
+EXPAT_LIB = $(EXPATSRC)/lib/$(OBJDIR)/expat.lib
+endif
+
+ifndef METROWERKS
+METROWERKS = $(ProgramFiles)\Metrowerks\CodeWarrior
+endif
+
+# If LM_LICENSE_FILE isn't defined, define a variable that can be used to
+# restart make with it defined
+ifndef LM_LICENSE_FILE
+NO_LICENSE_FILE = NO_LICENSE_FILE
+endif
+
+#
+# Set the Release type that you want to build, possible values are:
+#
+# debug - full debug switches are set
+# noopt - normal switches are set
+# release - optimization switches are set (default)
+
+ifdef reltype
+RELEASE = $(reltype)
+endif
+
+ifdef RELTYPE
+RELEASE = $(RELTYPE)
+endif
+
+ifdef debug
+RELEASE = debug
+endif
+
+ifdef DEBUG
+RELEASE = debug
+endif
+
+ifdef noopt
+RELEASE = noopt
+endif
+
+ifdef NOOPT
+RELEASE = noopt
+endif
+
+ifdef optimized
+RELEASE = release
+endif
+
+ifdef OPTIMIZED
+RELEASE = release
+endif
+
+ifndef RELEASE
+RELEASE = release
+endif
+
+ifeq "$(strip $(RELEASE))" "optimized"
+RELEASE = release
+endif
+
+OBJDIR = obj_$(RELEASE)
+
+#
+# Setup compiler information
+#
+
+# MetroWerks NLM tools
+CC = mwccnlm
+CPP = mwccnlm
+LINK = mwldnlm
+LIB = mwldnlm -type library -w nocmdline
+WIN_CC = mwcc
+
+# Setup build tools
+AWK = awk
+
+#
+# Declare Command and tool macros here
+#
+
+ifeq ($(findstring /sh,$(SHELL)),/sh)
+DEL = rm -f $1
+RMDIR = rm -rf $1
+MKDIR = mkdir -p $1
+COPY = cp -av $1 $2
+COPYR = cp -ar $1 $2
+ECHONL = echo ""
+DL = '
+CAT = cat
+else
+ifeq "$(OS)" "Windows_NT"
+DEL = $(shell if exist $(subst /,\,$1) del /q /f 2>NUL $(subst /,\,$1))
+RMDIR = $(shell if exist $(subst /,\,$1)\NUL rd /q /s 2>NUL $(subst /,\,$1))
+else
+DEL = $(shell if exist $(subst /,\,$1) del 2>NUL $(subst /,\,$1))
+RMDIR = $(shell if exist $(subst /,\,$1)\NUL deltree /y 2>NUL $(subst /,\,$1))
+endif
+ECHONL = $(ComSpec) /c echo.
+MKDIR = $(shell if not exist $(subst /,\,$1)\NUL md 2>NUL $(subst /,\,$1))
+COPY = copy /y 2>NUL $(subst /,\,$1) $(subst /,\,$2)
+COPYR = xcopy /y /e 2>NUL $(subst /,\,$1) $(subst /,\,$2)
+CAT = type
+endif
+
+ifdef IPV6
+ifndef USE_STDSOCKETS
+USE_STDSOCKETS=1
+endif
+endif
+
+NOVI = $(NOVELLLIBC)/imports
+PRELUDE = $(NOVI)/libcpre.o
+
+INCDIRS = $(NOVELLLIBC)/include;
+
+DEFINES = -DNETWARE
+ifdef USE_STDSOCKETS
+DEFINES += -DUSE_BSD_SOCKETS
+else
+DEFINES += -DUSE_WINSOCK
+INCDIRS += $(NOVELLLIBC)/include/winsock;
+endif
+ifndef DEBUG
+DEFINES += -DNDEBUG
+endif
+
+ifdef USE_STDSOCKETS
+VERSION_SKT = (BSDSOCK)
+else
+VERSION_SKT = (WINSOCK)
+endif
+
+# MetroWerks static Libraries
+CLIB3S = $(METROWERKS)/Novell Support/Metrowerks Support/Libraries/Runtime/mwcrtl.lib
+MATH3S =
+PLIB3S = $(METROWERKS)/Novell Support/Metrowerks Support/Libraries/MSL C++/MWCPP.lib
+
+ifeq "$(OS)" "Windows_NT"
+# MetroWerks Win32 build flags to create build tools
+MWCW_MSL = "$(METROWERKS)/MSL"
+MWCW_W32 = "$(METROWERKS)/Win32-x86 Support"
+CC_FOR_BUILD = $(WIN_CC)
+CFLAGS_FOR_BUILD = -O2 -gccinc -nodefaults -proc 586 -w off
+CFLAGS_FOR_BUILD += -ir $(MWCW_MSL) -ir $(MWCW_W32) -lr $(MWCW_MSL) -lr $(MWCW_W32)
+CFLAGS_FOR_BUILD += -lMSL_All_x86.lib -lkernel32.lib -luser32.lib
+else
+# GNUC build flags to create build tools
+CC_FOR_BUILD = gcc
+CFLAGS_FOR_BUILD = -Wall -O2
+endif
+
+# Base compile flags
+# and prefix or precompiled header added here.
+
+# The default flags are as follows:
+#
+# -c compile only, no link
+# -gccinc search directory of referencing file first for #includes
+# -Cpp_exceptions off disable C++ exceptions
+# -RTTI off disable C++ run-time typing information
+# -align 4 align on 4 byte bounderies
+# -w nocmdline disable command-line driver/parser warnings
+# -proc PII generate code base on Pentium II instruction set
+# -inst mmx use MMX extensions (not used)
+
+CFLAGS = -c -w nocmdline -gccinc -Cpp_exceptions off -RTTI off -align 4 -proc PII
+
+ifdef CC_MAX_ERRORS
+CFLAGS += -maxerrors $(CC_MAX_ERRORS)
+else
+CFLAGS += -maxerrors 1
+endif
+
+ifeq "$(REQUIRE_PROTOTYPES)" "1"
+CFLAGS += -r
+endif
+
+# -g generate debugging information
+# -O0 level 0 optimizations
+ifeq "$(RELEASE)" "debug"
+CFLAGS += -g -O0
+endif
+
+# -O4,p level 4 optimizations, optimize for speed
+ifeq "$(RELEASE)" "release"
+CFLAGS += -O4,p
+endif
+
+# -prefix apr_arch_pre_nw.h #include apr_arch_pre_nw.h for all files
+CFLAGS += -prefix apr_arch_pre_nw.h
+
+
+ifneq ($(findstring /sh,$(SHELL)),/sh)
+PATH:=$(PATH);$(METROWERKS)\bin;$(METROWERKS)\Other Metrowerks Tools\Command Line Tools
+endif
+
+#
+# Declare major project deliverables output directories here
+#
+
+ifdef DEST
+INSTALL = $(DEST)
+ifeq (\, $(findstring \,$(INSTALL)))
+INSTDIRS = $(DEST)
+endif
+endif
+
+ifdef dest
+INSTALL = $(dest)
+ifeq (\, $(findstring \,$(INSTALL)))
+INSTDIRS = $(dest)
+endif
+endif
+
+ifndef INSTALL
+INSTALL = $(APR_WORK)/Dist
+INSTDIRS = $(APR_WORK)/Dist
+BASEDIR = Apr
+endif
+
+# Add support for building IPV6 alongside
+ifneq "$(IPV6)" ""
+DEFINES += -DNW_BUILD_IPV6
+# INCDIRS := $(NOVELLLIBC)/include/winsock/IPV6;$(INCDIRS)
+
+ifneq "$(findstring IPV6,$(OBJDIR))" "IPV6"
+OBJDIR := $(OBJDIR)_IPV6
+endif
+
+ifneq "$(findstring IPV6,$(INSTALL))" "IPV6"
+INSTALL := $(INSTALL)_IPV6
+endif
+
+ifneq "$(findstring IPV6,$(INSTDIRS))" "IPV6"
+INSTDIRS := $(INSTDIRS)_IPV6
+endif
+
+endif
+
+ifdef DEST
+
+ifndef BASEDIR
+BASEDIR = Apache2
+endif
+
+endif
+
+INSTALLBASE := $(INSTALL)/$(BASEDIR)
+
+INSTDEVDIRS := \
+ $(INSTDIRS) \
+ $(INSTALLBASE) \
+ $(INSTALLBASE)/include \
+ $(INSTALLBASE)/lib \
+ $(INSTALLBASE)/bin
+
+INSTDIRS += \
+ $(INSTALLBASE)
+
+#
+# Common directories
+#
+
+APR = $(subst \,/,$(APR_WORK))
+APU = $(subst \,/,$(APU_WORK))
+APRBUILD = $(APR)/build
+APULDAP = $(APU)/ldap
+APUXML = $(APU)/xml
+APRTEST = $(APR)/test
+APUTEST = $(APU)/test
+
+#
+# Internal Libraries
+#
+
+APRLIB = $(APR)/$(OBJDIR)/aprlib.lib
+APULIB = $(APU)/$(OBJDIR)/apulib.lib
+APULDAPLIB = $(APULDAP)/$(OBJDIR)/apuldap.lib
+APUXMLLIB = $(APUXML)/$(OBJDIR)/apuxml.lib
+
+#
+# Additional general defines
+#
+
+EnvironmentDefined = 1
+endif # ifndef EnvironmentDefined
+
+# This is always set so that it will show up in lower directories
+
+ifdef Path
+Path = $(PATH)
+endif
+
diff --git a/build/NWGNUhead.inc b/build/NWGNUhead.inc
new file mode 100644
index 0000000..fbfc3ec
--- /dev/null
+++ b/build/NWGNUhead.inc
@@ -0,0 +1,96 @@
+#
+# Obtain the global build environment
+#
+
+include $(APR_WORK)/build/NWGNUenvironment.inc
+
+#
+# Define base targets and rules
+#
+
+TARGETS = libs nlms install clobber_libs clobber_nlms clean installdev
+
+.PHONY : $(TARGETS) default all help $(NO_LICENSE_FILE)
+
+# Here is where we will use the NO_LICENSE_FILE variable to see if we need to
+# restart the make with it defined
+
+ifdef NO_LICENSE_FILE
+
+default: NO_LICENSE_FILE
+
+all: NO_LICENSE_FILE
+
+install :: NO_LICENSE_FILE
+
+installdev :: NO_LICENSE_FILE
+
+NO_LICENSE_FILE :
+ $(MAKE) $(MAKECMDGOALS) -f NWGNUmakefile RELEASE=$(RELEASE) DEST="$(INSTALL)" LM_LICENSE_FILE="$(METROWERKS)/license.dat"
+
+else # LM_LICENSE_FILE must be defined so use the real targets
+
+default: $(SUBDIRS) libs nlms
+
+all: $(SUBDIRS) libs nlms install
+
+$(TARGETS) :: $(SUBDIRS)
+
+endif #NO_LICENSE_FILE check
+
+help :
+ @echo $(DL)targets for RELEASE=$(RELEASE):$(DL)
+ @echo $(DL)(default) . . . . libs nlms$(DL)
+ @echo $(DL)all . . . . . . . does everything (libs nlms install)$(DL)
+ @echo $(DL)libs. . . . . . . builds all libs$(DL)
+ @echo $(DL)nlms. . . . . . . builds all nlms$(DL)
+ @echo $(DL)install . . . . . builds libs and nlms and copies install files to$(DL)
+ @echo $(DL) "$(INSTALL)"$(DL)
+ @echo $(DL)installdev. . . . copies headers and files needed for development to$(DL)
+ @echo $(DL) "$(INSTALL)"$(DL)
+ @echo $(DL)clean . . . . . . deletes $(OBJDIR) dirs, *.err, and *.map$(DL)
+ @echo $(DL)clobber_all . . . deletes all possible output from the make$(DL)
+ @echo $(DL)clobber_install . deletes all files in $(INSTALL)$(DL)
+ @$(ECHONL)
+ @echo $(DL)Multiple targets can be used on a single make command line -$(DL)
+ @echo $(DL)(i.e. $(MAKE) clean all)$(DL)
+ @$(ECHONL)
+ @echo $(DL)You can also specify RELEASE=debug, RELEASE=noopt, or RELEASE=release$(DL)
+ @echo $(DL)The default is RELEASE=release$(DL)
+
+clobber_all :: clean clobber_install
+
+clobber_install ::
+ $(call RMDIR,$(INSTALL))
+
+#
+# build recursive targets
+#
+
+$(SUBDIRS) : FORCE
+ifneq "$(MAKECMDGOALS)" "clean"
+ifneq "$(findstring clobber_,$(MAKECMDGOALS))" "clobber_"
+ @$(ECHONL)
+ @echo Building $(CURDIR)/$@
+endif
+endif
+ $(MAKE) -C $@ $(MAKECMDGOALS) -f NWGNUmakefile RELEASE=$(RELEASE) DEST="$(INSTALL)" LM_LICENSE_FILE="$(LM_LICENSE_FILE)"
+ @$(ECHONL)
+
+FORCE : ;
+
+#
+# Standard targets
+#
+
+clean :: $(SUBDIRS) $(APRTEST)
+ @echo Cleaning up $(CURDIR)
+ $(call RMDIR,$(OBJDIR))
+ $(call DEL,*.err)
+ $(call DEL,*.map)
+ $(call DEL,*.tmp)
+# $(call DEL,*.d)
+
+$(OBJDIR) ::
+ $(call MKDIR,$@)
+
diff --git a/build/NWGNUmakefile b/build/NWGNUmakefile
new file mode 100644
index 0000000..2421ff8
--- /dev/null
+++ b/build/NWGNUmakefile
@@ -0,0 +1,101 @@
+#
+# Declare the sub-directories to be built here
+#
+
+SUBDIRS = \
+ $(EOLIST)
+
+#
+# Get the 'head' of the build environment. This includes default targets and
+# paths to tools
+#
+
+include $(APR_WORK)/build/NWGNUhead.inc
+
+#
+# build this level's files
+
+FILES_prebuild_headers = \
+ $(APR)/include/apr.h \
+ $(APU)/include/apu.h \
+ $(APU)/include/apu_want.h \
+ $(APU)/include/apr_ldap.h \
+ $(APU)/include/private/apu_config.h \
+ $(APU)/include/private/apu_select_dbm.h \
+ $(APUXML)/expat/lib/expat_config.h \
+ $(APR)/include/private/apr_escape_test_char.h \
+ $(EOLIST)
+
+nlms :: $(APR)/aprlib.imp
+
+$(APR)/aprlib.imp : make_nw_export.awk nw_export.i
+ @echo $(DL)GEN $@$(DL)
+ $(AWK) -v EXPPREFIX=APR$(VERSION_MAJMIN) -f $^ >$@
+
+nw_export.i : nw_export.inc $(APU)/build/nw_apu_export.inc $(FILES_prebuild_headers) cc.opt
+ @echo $(DL)GEN $@$(DL)
+ $(CC) $< @cc.opt
+
+cc.opt : NWGNUmakefile $(APR_WORK)/build/NWGNUenvironment.inc $(APR_WORK)/build/NWGNUhead.inc $(APRBUILD)/NWGNUtail.inc $(CUSTOM_INI)
+ @echo $(DL)-P$(DL)> $@
+ @echo $(DL)-EP$(DL)>> $@
+ @echo $(DL)-nosyspath$(DL)>> $@
+ @echo $(DL)-w nocmdline$(DL)>> $@
+ @echo $(DL)$(DEFINES) -DGENEXPORTS$(DL)>> $@
+ @echo $(DL)-I$(APR)/include$(DL)>> $@
+ @echo $(DL)-I$(APR)/include/arch/netware$(DL)>> $@
+ @echo $(DL)-I$(APR)/include/arch/unix$(DL)>> $@
+ @echo $(DL)-I$(APU)/include$(DL)>> $@
+ @echo $(DL)-I$(APU)/include/private$(DL)>> $@
+ @echo $(DL)-I$(APU)/build$(DL)>> $@
+ @echo $(DL)-ir $(NOVELLLIBC)$(DL)>> $@
+ifneq "$(LDAPSDK)" ""
+ @echo $(DL)-ir $(LDAPSDK)$(DL)>> $@
+endif
+
+
+ifndef WITH_LDAP
+WITH_LDAP = $(shell $(AWK) '/^\#define APR_HAS_LDAP /{print $$3}' $(APU)/include/apr_ldap.hnw)
+endif
+
+$(APU)/include/apr_ldap.h: $(APR)/build/nw_make_header.awk $(APU)/include/apr_ldap.hnw
+ @echo $(DL)Creating $@$(DL)
+ $(AWK) -v WITH_LDAP=$(WITH_LDAP) -f $^ >$@
+
+%.h: %.hnw
+ @echo $(DL)Creating $@$(DL)
+ $(call COPY,$<,$@)
+
+%.h: %.hw
+ @echo $(DL)Creating $@$(DL)
+ $(call COPY,$<,$@)
+
+$(APR)/include/private/apr_escape_test_char.h: gen_test_char.exe $(APR)/tools/gen_test_char.c
+ @echo $(DL)GEN $@$(DL)
+ $< > $@
+
+%.exe: $(APR)/tools/%.c
+ @echo $(DL)Creating Build Helper $@$(DL)
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -DCROSS_COMPILE $< -o $@
+
+#
+# You can use this target if all that is needed is to copy files to the
+# installation area
+#
+install :: nlms FORCE
+
+clean ::
+ $(call DEL,nw_export.i)
+ $(call DEL,cc.opt)
+ $(call DEL,NWGNUversion.inc)
+ $(call DEL,$(APR)/aprlib.imp)
+ $(foreach file,$(FILES_prebuild_headers),$(call DEL,$(file)))
+ $(call DEL,gen_test_char.exe)
+
+#
+# Include the 'tail' makefile that has targets that depend on variables defined
+# in this makefile
+#
+
+include $(APRBUILD)/NWGNUtail.inc
+
diff --git a/build/NWGNUtail.inc b/build/NWGNUtail.inc
new file mode 100644
index 0000000..3fd6859
--- /dev/null
+++ b/build/NWGNUtail.inc
@@ -0,0 +1,373 @@
+#
+# This contains final targets and should be included at the end of any
+# NWGNUmakefile file
+#
+
+#
+# If we are going to create an nlm, make sure we have assigned variables to
+# use during the link.
+#
+ifndef NLM_NAME
+NLM_NAME = $(TARGET_nlm)
+endif
+
+ifndef NLM_DESCRIPTION
+NLM_DESCRIPTION = $(NLM_NAME)
+endif
+
+ifndef NLM_THREAD_NAME
+NLM_THREAD_NAME = $(NLM_NAME) Thread
+endif
+
+ifndef NLM_SCREEN_NAME
+NLM_SCREEN_NAME = DEFAULT
+endif
+
+ifndef NLM_COPYRIGHT
+NLM_COPYRIGHT = Licensed under the Apache License, Version 2.0
+endif
+
+ifeq "$(NLM_FLAGS)" ""
+NLM_FLAGS = AUTOUNLOAD, PSEUDOPREEMPTION
+endif
+
+ifeq "$(NLM_STACK_SIZE)" ""
+NLM_STACK_SIZE = 65536
+endif
+
+ifeq "$(NLM_ENTRY_SYM)" ""
+NLM_ENTRY_SYM = _LibCPrelude
+endif
+
+ifeq "$(NLM_EXIT_SYM)" ""
+NLM_EXIT_SYM = _LibCPostlude
+endif
+
+ifeq "$(NLM_VERSION)" ""
+NLM_VERSION = $(VERSION)
+endif
+
+#
+# Create dependency lists based on the files available
+#
+
+
+CCOPT_DEPENDS = \
+ $(APRBUILD)/NWGNUhead.inc \
+ $(APRBUILD)/NWGNUenvironment.inc \
+ $(APRBUILD)/NWGNUtail.inc \
+ NWGNUmakefile \
+ $(CUSTOM_INI) \
+ $(EOLIST)
+
+CPPOPT_DEPENDS = \
+ $(APRBUILD)/NWGNUhead.inc \
+ $(APRBUILD)/NWGNUenvironment.inc \
+ $(APRBUILD)/NWGNUtail.inc \
+ NWGNUmakefile \
+ $(CUSTOM_INI) \
+ $(EOLIST)
+
+$(NLM_NAME)_LINKOPT_DEPENDS = \
+ $(TARGET_lib) \
+ $(APRBUILD)/NWGNUenvironment.inc \
+ NWGNUmakefile \
+ $(APRBUILD)/NWGNUtail.inc \
+ $(CUSTOM_INI) \
+ $(VERSION_INC) \
+ $(EOLIST)
+
+ifeq "$(words $(strip $(TARGET_lib)))" "1"
+LIB_NAME = $(basename $(notdir $(TARGET_lib)))
+$(LIB_NAME)_LIBLST_DEPENDS = \
+ $(FILES_lib_objs) \
+ $(APRBUILD)/NWGNUenvironment.inc \
+ NWGNUmakefile \
+ $(APRBUILD)/NWGNUtail.inc \
+ $(CUSTOM_INI) \
+ $(EOLIST)
+endif
+
+ifeq "$(wildcard NWGNU$(LIB_NAME))" "NWGNU$(LIB_NAME)"
+$(LIB_NAME)_LIBLST_DEPENDS += NWGNU$(LIB_NAME)
+endif
+
+ifeq "$(wildcard NWGNU$(NLM_NAME))" "NWGNU$(NLM_NAME)"
+$(NLM_NAME)_LINKOPT_DEPENDS += NWGNU$(NLM_NAME)
+CCOPT_DEPENDS += NWGNU$(NLM_NAME)
+CPPOPT_DEPENDS += NWGNU$(NLM_NAME)
+endif
+
+#
+# Generic compiler rules
+#
+
+ifneq "$(MAKECMDGOALS)" "clean"
+ifneq "$(findstring clobber_,$(MAKECMDGOALS))" "clobber_"
+$(APRBUILD)/NWGNUversion.inc : $(APRBUILD)/nw_ver.awk $(APR)/include/apr_version.h
+# @echo Generating $@
+ @echo GEN $@
+ @$(AWK) -f $^ > $@
+
+-include $(APRBUILD)/NWGNUversion.inc
+
+ifneq "$(strip $(VERSION_STR))" ""
+VERSION_INC = $(APRBUILD)/NWGNUversion.inc
+else
+VERSION = 1,5,0
+VERSION_STR = 1.5.0
+VERSION_MAJMIN = 15
+endif
+endif
+endif
+
+ifeq "$(words $(strip $(TARGET_nlm)))" "1"
+INCLUDE_BLDCMDS = 1
+CCOPT_NAME = $(NLM_NAME)
+endif
+
+ifeq "$(words $(strip $(TARGET_lib)))" "1"
+INCLUDE_BLDCMDS = 1
+CCOPT_NAME = $(LIB_NAME)
+endif
+
+ifeq "$(INCLUDE_BLDCMDS)" "1"
+
+$(OBJDIR)/%.o: %.c $(OBJDIR)/$(CCOPT_NAME)_cc.opt
+# @echo Compiling $<
+ @echo $(DL)CC $<$(DL)
+ $(CC) -o $@ $< @$(word 2, $^)
+
+$(OBJDIR)/$(CCOPT_NAME)_cc.opt: $(CCOPT_DEPENDS)
+ $(call DEL,$@)
+ifdef VERBOSE
+ @echo $(DL)CCOPT_DEPENDS=$^$(DL)
+endif
+# @echo Generating $@
+ @echo $(DL)GEN $@$(DL)
+ifneq "$(strip $(CFLAGS))" ""
+ @echo $(DL)$(CFLAGS)$(DL)>> $@
+endif
+ifneq "$(strip $(XCFLAGS))" ""
+ @echo $(DL)$(XCFLAGS)$(DL)>> $@
+endif
+ifneq "$(strip $(XINCDIRS))" ""
+ @echo $(DL)$(foreach xincdir,$(strip $(subst ;,$(SPACE),$(XINCDIRS))),-I$(xincdir))$(DL)>> $@
+endif
+ifneq "$(strip $(INCDIRS))" ""
+ @echo $(DL)$(foreach incdir,$(strip $(subst ;,$(SPACE),$(INCDIRS))),-I$(incdir))$(DL)>> $@
+endif
+ifneq "$(strip $(DEFINES))" ""
+ @echo $(DL)$(DEFINES)$(DL)>> $@
+endif
+ifneq "$(strip $(XDEFINES))" ""
+ @echo $(DL)$(XDEFINES)$(DL)>> $@
+endif
+
+$(OBJDIR)/%.o: %.cpp $(OBJDIR)/$(CCOPT_NAME)_cpp.opt
+# @echo Compiling $<
+ @echo $(DL)CPP $<$(DL)
+ $(CCP) -o $@ $< @$(word 2, $^)
+
+$(OBJDIR)/$(CCOPT_NAME)_cpp.opt: $(CPPOPT_DEPENDS)
+ $(call DEL,$@)
+ifdef VERBOSE
+ @echo $(DL)CPPOPT_DEPENDS=$^$(DL)
+endif
+# @echo Generating $@
+ @echo $(DL)GEN $@$(DL)
+ifneq "$(strip $(CFLAGS))" ""
+ @echo $(DL)$(CFLAGS)$(DL)>> $@
+endif
+ifneq "$(strip $(XCFLAGS))" ""
+ @echo $(DL)$(XCFLAGS)$(DL)>> $@
+endif
+ifneq "$(strip $(XINCDIRS))" ""
+ @echo $(DL)$(foreach xincdir,$(strip $(subst ;,$(SPACE),$(XINCDIRS))),-I$(xincdir))$(DL)>> $@
+endif
+ifneq "$(strip $(INCDIRS))" ""
+ @echo $(DL)$(foreach incdir,$(strip $(subst ;,$(SPACE),$(INCDIRS))),-I$(incdir))$(DL)>> $@
+endif
+ifneq "$(strip $(DEFINES))" ""
+ @echo $(DL)$(DEFINES)$(DL)>> $@
+endif
+ifneq "$(strip $(XDEFINES))" ""
+ @echo $(DL)$(XDEFINES)$(DL)>> $@
+endif
+
+endif # one target nlm or lib
+
+#
+# Rules to build libraries
+#
+
+# If we only have one target library then build it
+
+ifeq "$(words $(strip $(TARGET_lib)))" "1"
+
+$(TARGET_lib) : $(OBJDIR)/$(LIB_NAME)_lib.lst
+ $(call DEL,$@)
+# @echo Generating $@
+ @echo $(DL)AR $@$(DL)
+ $(LIB) -o $@ @$<
+
+$(OBJDIR)/aprlib_lib.lst: $(aprlib_LIBLST_DEPENDS)
+ $(call DEL,$@)
+ifneq "$(strip $(FILES_lib_objs))" ""
+# @echo Generating $@
+ @echo $(DL)GEN $@$(DL)
+ifdef VERBOSE
+ @echo $(DL)FILES_lib_objs=$(words $(FILES_lib_objs))$(DL)
+endif
+ @echo $(DL)$(wordlist 1, 20, $(FILES_lib_objs))$(DL)>> $@
+ @echo $(DL)$(wordlist 21, 40, $(FILES_lib_objs))$(DL)>> $@
+ @echo $(DL)$(wordlist 41, 60, $(FILES_lib_objs))$(DL)>> $@
+ @echo $(DL)$(wordlist 61, 80, $(FILES_lib_objs))$(DL)>> $@
+endif
+
+$(OBJDIR)/%_lib.lst: $($(LIB_NAME)_LIBLST_DEPENDS)
+ $(call DEL,$@)
+ifneq "$(strip $(FILES_lib_objs))" ""
+# @echo Generating $@
+ @echo $(DL)GEN $@$(DL)
+ifdef VERBOSE
+ @echo FILES_lib_objs=$(words $(FILES_lib_objs))
+endif
+ @echo $(DL)$(FILES_lib_objs)$(DL)>> $@
+endif
+
+else # We must have more than one target library so load the individual makefiles
+
+$(OBJDIR)/%.lib: NWGNU% $(APRBUILD)/NWGNUhead.inc $(APRBUILD)/NWGNUtail.inc $(APRBUILD)/NWGNUenvironment.inc FORCE
+ @echo $(DL)Calling $<$(DL)
+ $(MAKE) -f $< $(MAKECMDGOALS) RELEASE=$(RELEASE)
+
+endif
+
+#
+# Rules to build nlms.
+#
+
+# If we only have one target NLM then build it
+ifeq "$(words $(strip $(TARGET_nlm)))" "1"
+
+$(TARGET_nlm) : $(FILES_nlm_objs) $(FILES_nlm_libs) $(OBJDIR)/$(NLM_NAME)_link.opt
+# @echo Linking $@
+ @echo $(DL)LINK $@$(DL)
+ $(LINK) @$(OBJDIR)/$(NLM_NAME)_link.opt
+
+# This will force the link option file to be rebuilt if we change the
+# corresponding makefile
+
+$(OBJDIR)/$(NLM_NAME)_link.opt : $($(NLM_NAME)_LINKOPT_DEPENDS)
+ $(call DEL,$@)
+ $(call DEL,$(@:.opt=.def))
+# @echo Generating $@
+ @echo $(DL)GEN $@$(DL)
+ @echo $(DL)# Do not edit this file - it is created by make!$(DL) > $@
+ @echo $(DL)# All your changes will be lost!!$(DL)>> $@
+ @echo $(DL)-warnings off$(DL)>> $@
+ @echo $(DL)-zerobss$(DL)>> $@
+ @echo $(DL)-o $(TARGET_nlm)$(DL)>> $@
+ifneq "$(FILE_nlm_copyright)" ""
+ @-$(CAT) $(FILE_nlm_copyright) >> $@
+endif
+ifeq "$(RELEASE)" "debug"
+ @echo $(DL)-g$(DL)>> $@
+ @echo $(DL)-sym internal$(DL)>> $@
+ @echo $(DL)-sym codeview4$(DL)>> $@
+ @echo $(DL)-osym $(OBJDIR)/$(NLM_NAME).sym$(DL)>> $@
+else
+ @echo $(DL)-sym internal$(DL)>> $@
+endif
+ @echo $(DL)-l $(APR)/$(OBJDIR)$(DL)>> $@
+ @echo $(DL)-l $(APU)/$(OBJDIR)$(DL)>> $@
+ @echo $(DL)-l $(APULDAP)/$(OBJDIR)$(DL)>> $@
+ @echo $(DL)-l $(APUXML)/$(OBJDIR)$(DL)>> $@
+ @echo $(DL)-l $(APR)/misc/netware$(DL)>> $@
+ @echo $(DL)-l $(APR)$(DL)>> $@
+ @echo $(DL)-l "$(METROWERKS)/Novell Support/Metrowerks Support/Libraries/Runtime"$(DL)>> $@
+ @echo $(DL)-l "$(METROWERKS)/Novell Support/Metrowerks Support/Libraries/MSL C++"$(DL)>> $@
+ifneq "$(IPV6)" ""
+ @echo $(DL)-l $(NOVELLLIBC)/include/winsock/IPV6$(DL)>> $@
+endif
+ @echo $(DL)-l $(NOVELLLIBC)/imports$(DL)>> $@
+ifneq "$(LDAPSDK)" ""
+ @echo $(DL)-l $(LDAPSDK)/imports$(DL)>> $@
+endif
+ @echo $(DL)-nodefaults$(DL)>> $@
+ @echo $(DL)-map $(OBJDIR)/$(NLM_NAME).map$(DL)>> $@
+ifneq "$(strip $(XLFLAGS))" ""
+ @echo $(DL)$(XLFLAGS)$(DL)>> $@
+endif
+ifneq "$(strip $(FILES_nlm_objs))" ""
+ @echo $(DL)$(foreach objfile,$(strip $(FILES_nlm_objs)),$(objfile))$(DL)>> $@
+endif
+ifneq "$(FILES_nlm_libs)" ""
+ @echo $(DL)$(foreach libfile, $(notdir $(strip $(FILES_nlm_libs))),-l$(libfile))$(DL)>> $@
+endif
+ @echo $(DL)-commandfile $(@:.opt=.def)$(DL)>> $@
+ @echo $(DL)# Do not edit this file - it is created by make!$(DL)> $(@:.opt=.def)
+ @echo $(DL)# All your changes will be lost!!$(DL)>> $(@:.opt=.def)
+ifneq "$(FILE_nlm_msg)" ""
+ @echo $(DL)Messages $(FILE_nlm_msg)$(DL)>> $(@:.opt=.def)
+endif
+ifneq "$(FILE_nlm_hlp)" ""
+ @echo $(DL)Help $(FILE_nlm_hlp)$(DL)>> $(@:.opt=.def)
+endif
+ifeq "$(FILE_nlm_copyright)" ""
+ @echo $(DL)copyright "$(NLM_COPYRIGHT)"$(DL)>> $(@:.opt=.def)
+endif
+ @echo $(DL)description "$(NLM_DESCRIPTION)"$(DL)>> $(@:.opt=.def)
+ @echo $(DL)threadname "$(NLM_THREAD_NAME)"$(DL)>> $(@:.opt=.def)
+ @echo $(DL)screenname "$(NLM_SCREEN_NAME)"$(DL)>> $(@:.opt=.def)
+ @echo $(DL)stacksize $(subst K,000,$(subst k,K,$(strip $(NLM_STACK_SIZE))))$(DL)>> $(@:.opt=.def)
+ @echo $(DL)version $(NLM_VERSION) $(DL)>> $(@:.opt=.def)
+ @echo $(DL)$(strip $(NLM_FLAGS))$(DL)>> $(@:.opt=.def)
+ @echo $(DL)start $(NLM_ENTRY_SYM)$(DL)>> $(@:.opt=.def)
+ @echo $(DL)exit $(NLM_EXIT_SYM)$(DL)>> $(@:.opt=.def)
+ifneq "$(NLM_CHECK_SYM)" ""
+ @echo $(DL)check $(NLM_CHECK_SYM)$(DL)>> $(@:.opt=.def)
+endif
+ifneq "$(FILES_nlm_modules)" ""
+ @echo $(DL)module $(foreach module,$(subst $(SPACE),$(COMMA),$(strip $(FILES_nlm_modules))),$(module))$(DL)>> $(@:.opt=.def)
+endif
+ifneq "$(FILES_nlm_Ximports)" ""
+ @echo $(DL)import $(foreach import,$(subst $(SPACE),$(COMMA),$(strip $(FILES_nlm_Ximports))),$(import))$(DL)>> $(@:.opt=.def)
+endif
+ifneq "$(FILES_nlm_exports)" ""
+ @echo $(DL)export $(foreach export,$(subst $(SPACE),$(COMMA),$(strip $(FILES_nlm_exports))),$(export))$(DL)>> $(@:.opt=.def)
+endif
+# if APACHE_UNIPROC is defined, don't include XDCData
+ifndef APACHE_UNIPROC
+ifneq "$(string $(XDCDATA))" ""
+ @echo $(DL)xdcdata $(XDCDATA)$(DL)>> $(@:.opt=.def)
+else
+ @echo $(DL)xdcdata apr.xdc$(DL)>> $(@:.opt=.def)
+endif
+endif
+
+else # more than one target so look for individual makefiles.
+
+# Only include these if NO_LICENSE_FILE isn't set to prevent excessive
+# recursion
+
+ifndef NO_LICENSE_FILE
+
+$(OBJDIR)/%.nlm: NWGNU% $(APRBUILD)/NWGNUhead.inc $(APRBUILD)/NWGNUtail.inc $(APRBUILD)/NWGNUenvironment.inc $(CUSTOM_INI) $(VERSION_INC) FORCE
+ @echo $(DL)Calling $<$(DL)
+ $(MAKE) -f $< $(MAKECMDGOALS) RELEASE=$(RELEASE)
+ @$(ECHONL)
+
+else
+
+$(TARGET_nlm):
+
+endif # NO_LICENSE_FILE
+
+endif # multiple targets
+
+$(INSTDIRS) ::
+ $(call MKDIR,$@)
+
+
diff --git a/build/PrintPath b/build/PrintPath
new file mode 100755
index 0000000..2a2b48b
--- /dev/null
+++ b/build/PrintPath
@@ -0,0 +1,130 @@
+#!/bin/sh
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+# Look for program[s] somewhere in $PATH.
+#
+# Options:
+# -s
+# Do not print out full pathname. (silent)
+# -pPATHNAME
+# Look in PATHNAME instead of $PATH
+#
+# Usage:
+# PrintPath [-s] [-pPATHNAME] program [program ...]
+#
+# Initially written by Jim Jagielski for the Apache configuration mechanism
+# (with kudos to Kernighan/Pike)
+
+##
+# Some "constants"
+##
+pathname=$PATH
+echo="yes"
+
+##
+# Find out what OS we are running for later on
+##
+os=`(uname) 2>/dev/null`
+
+##
+# Parse command line
+##
+for args in $*
+do
+ case $args in
+ -s ) echo="no" ;;
+ -p* ) pathname="`echo $args | sed 's/^..//'`" ;;
+ * ) programs="$programs $args" ;;
+ esac
+done
+
+##
+# Now we make the adjustments required for OS/2 and everyone
+# else :)
+#
+# First of all, all OS/2 programs have the '.exe' extension.
+# Next, we adjust PATH (or what was given to us as PATH) to
+# be whitespace separated directories.
+# Finally, we try to determine the best flag to use for
+# test/[] to look for an executable file. OS/2 just has '-r'
+# but with other OSs, we do some funny stuff to check to see
+# if test/[] knows about -x, which is the prefered flag.
+##
+
+if [ "x$os" = "xOS/2" ]
+then
+ ext=".exe"
+ pathname=`echo -E $pathname |
+ sed 's/^;/.;/
+ s/;;/;.;/g
+ s/;$/;./
+ s/;/ /g
+ s/\\\\/\\//g' `
+ test_exec_flag="-r"
+else
+ ext="" # No default extensions
+ pathname=`echo $pathname |
+ sed 's/^:/.:/
+ s/::/:.:/g
+ s/:$/:./
+ s/:/ /g' `
+ # Here is how we test to see if test/[] can handle -x
+ testfile="pp.t.$$"
+
+ cat > $testfile <<ENDTEST
+#!/bin/sh
+if [ -x / ] || [ -x /bin ] || [ -x /bin/ls ]; then
+ exit 0
+fi
+exit 1
+ENDTEST
+
+ if `/bin/sh $testfile 2>/dev/null`; then
+ test_exec_flag="-x"
+ else
+ test_exec_flag="-r"
+ fi
+ rm -f $testfile
+fi
+
+for program in $programs
+do
+ for path in $pathname
+ do
+ if [ $test_exec_flag $path/${program}${ext} ] && \
+ [ ! -d $path/${program}${ext} ]; then
+ if [ "x$echo" = "xyes" ]; then
+ echo $path/${program}${ext}
+ fi
+ exit 0
+ fi
+
+# Next try without extension (if one was used above)
+ if [ "x$ext" != "x" ]; then
+ if [ $test_exec_flag $path/${program} ] && \
+ [ ! -d $path/${program} ]; then
+ if [ "x$echo" = "xyes" ]; then
+ echo $path/${program}
+ fi
+ exit 0
+ fi
+ fi
+ done
+done
+exit 1
+
diff --git a/build/aplibtool.c b/build/aplibtool.c
new file mode 100644
index 0000000..b5c6c3f
--- /dev/null
+++ b/build/aplibtool.c
@@ -0,0 +1,750 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <stdio.h>
+#include <process.h>
+#include <string.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <dirent.h>
+
+typedef char bool;
+#define false 0
+#define true (!false)
+
+bool silent = false;
+bool shared = false;
+bool export_all = false;
+enum mode_t { mCompile, mLink, mInstall };
+enum output_type_t { otGeneral, otObject, otProgram, otStaticLibrary, otDynamicLibrary };
+
+#ifdef __EMX__
+# define SHELL_CMD "sh"
+# define CC "gcc"
+# define GEN_EXPORTS "emxexp"
+# define DEF2IMPLIB_CMD "emximp"
+# define SHARE_SW "-Zdll -Zmtd"
+# define USE_OMF true
+# define TRUNCATE_DLL_NAME
+# define DYNAMIC_LIB_EXT "dll"
+# define EXE_EXT ".exe"
+
+# if USE_OMF
+ /* OMF is the native format under OS/2 */
+# define STATIC_LIB_EXT "lib"
+# define OBJECT_EXT "obj"
+# define LIBRARIAN "emxomfar"
+# else
+ /* but the alternative, a.out, can fork() which is sometimes necessary */
+# define STATIC_LIB_EXT "a"
+# define OBJECT_EXT "o"
+# define LIBRARIAN "ar"
+# endif
+#endif
+
+
+typedef struct {
+ char *arglist[1024];
+ int num_args;
+ enum mode_t mode;
+ enum output_type_t output_type;
+ char *output_name;
+ char *stub_name;
+ char *tmp_dirs[1024];
+ int num_tmp_dirs;
+ char *obj_files[1024];
+ int num_obj_files;
+} cmd_data_t;
+
+void parse_args(int argc, char *argv[], cmd_data_t *cmd_data);
+bool parse_long_opt(char *arg, cmd_data_t *cmd_data);
+int parse_short_opt(char *arg, cmd_data_t *cmd_data);
+bool parse_input_file_name(char *arg, cmd_data_t *cmd_data);
+bool parse_output_file_name(char *arg, cmd_data_t *cmd_data);
+void post_parse_fixup(cmd_data_t *cmd_data);
+bool explode_static_lib(char *lib, cmd_data_t *cmd_data);
+int execute_command(cmd_data_t *cmd_data);
+char *shell_esc(const char *str);
+void cleanup_tmp_dirs(cmd_data_t *cmd_data);
+void generate_def_file(cmd_data_t *cmd_data);
+char *nameof(char *fullpath);
+char *truncate_dll_name(char *path);
+
+
+int main(int argc, char *argv[])
+{
+ int rc;
+ cmd_data_t cmd_data;
+
+ memset(&cmd_data, 0, sizeof(cmd_data));
+ cmd_data.mode = mCompile;
+ cmd_data.output_type = otGeneral;
+
+ parse_args(argc, argv, &cmd_data);
+ rc = execute_command(&cmd_data);
+
+ if (rc == 0 && cmd_data.stub_name) {
+ fopen(cmd_data.stub_name, "w");
+ }
+
+ cleanup_tmp_dirs(&cmd_data);
+ return rc;
+}
+
+
+
+void parse_args(int argc, char *argv[], cmd_data_t *cmd_data)
+{
+ int a;
+ char *arg;
+ bool argused;
+
+ for (a=1; a < argc; a++) {
+ arg = argv[a];
+ argused = false;
+
+ if (arg[0] == '-') {
+ if (arg[1] == '-') {
+ argused = parse_long_opt(arg + 2, cmd_data);
+ } else if (arg[1] == 'o' && a+1 < argc) {
+ cmd_data->arglist[cmd_data->num_args++] = arg;
+ arg = argv[++a];
+ argused = parse_output_file_name(arg, cmd_data);
+ } else {
+ int num_used = parse_short_opt(arg + 1, cmd_data);
+ argused = num_used > 0;
+
+ if (num_used > 1) {
+ a += num_used - 1;
+ }
+ }
+ } else {
+ argused = parse_input_file_name(arg, cmd_data);
+ }
+
+ if (!argused) {
+ cmd_data->arglist[cmd_data->num_args++] = arg;
+ }
+ }
+
+ post_parse_fixup(cmd_data);
+}
+
+
+
+bool parse_long_opt(char *arg, cmd_data_t *cmd_data)
+{
+ char *equal_pos = strchr(arg, '=');
+ char var[50];
+ char value[500];
+
+ if (equal_pos) {
+ strncpy(var, arg, equal_pos - arg);
+ var[equal_pos - arg] = 0;
+ strcpy(value, equal_pos + 1);
+ } else {
+ strcpy(var, arg);
+ }
+
+ if (strcmp(var, "silent") == 0) {
+ silent = true;
+ } else if (strcmp(var, "mode") == 0) {
+ if (strcmp(value, "compile") == 0) {
+ cmd_data->mode = mCompile;
+ cmd_data->output_type = otObject;
+ }
+
+ if (strcmp(value, "link") == 0) {
+ cmd_data->mode = mLink;
+ }
+
+ if (strcmp(value, "install") == 0) {
+ cmd_data->mode = mInstall;
+ }
+ } else if (strcmp(var, "shared") == 0) {
+ shared = true;
+ } else if (strcmp(var, "export-all") == 0) {
+ export_all = true;
+ } else {
+ return false;
+ }
+
+ return true;
+}
+
+
+
+int parse_short_opt(char *arg, cmd_data_t *cmd_data)
+{
+ if (strcmp(arg, "export-dynamic") == 0) {
+ return 1;
+ }
+
+ if (strcmp(arg, "module") == 0) {
+ return 1;
+ }
+
+ if (strcmp(arg, "Zexe") == 0) {
+ return 1;
+ }
+
+ if (strcmp(arg, "avoid-version") == 0) {
+ return 1;
+ }
+
+ if (strcmp(arg, "prefer-pic") == 0) {
+ return 1;
+ }
+
+ if (strcmp(arg, "prefer-non-pic") == 0) {
+ return 1;
+ }
+
+ if (strcmp(arg, "version-info") == 0 ) {
+ return 2;
+ }
+
+ if (strcmp(arg, "no-install") == 0) {
+ return 1;
+ }
+
+ return 0;
+}
+
+
+
+bool parse_input_file_name(char *arg, cmd_data_t *cmd_data)
+{
+ char *ext = strrchr(arg, '.');
+ char *name = strrchr(arg, '/');
+ char *newarg;
+
+ if (!ext) {
+ return false;
+ }
+
+ ext++;
+
+ if (name == NULL) {
+ name = strrchr(arg, '\\');
+
+ if (name == NULL) {
+ name = arg;
+ } else {
+ name++;
+ }
+ } else {
+ name++;
+ }
+
+ if (strcmp(ext, "lo") == 0) {
+ newarg = (char *)malloc(strlen(arg) + 10);
+ strcpy(newarg, arg);
+ strcpy(newarg + (ext - arg), OBJECT_EXT);
+ cmd_data->arglist[cmd_data->num_args++] = newarg;
+ cmd_data->obj_files[cmd_data->num_obj_files++] = newarg;
+ return true;
+ }
+
+ if (strcmp(ext, "la") == 0) {
+ newarg = (char *)malloc(strlen(arg) + 10);
+ strcpy(newarg, arg);
+ newarg[pathlen] = 0;
+ strcat(newarg, ".libs/");
+
+ if (strncmp(name, "lib", 3) == 0) {
+ name += 3;
+ }
+
+ strcat(newarg, name);
+ ext = strrchr(newarg, '.') + 1;
+
+ if (shared && cmd_data->mode == mInstall) {
+ strcpy(ext, DYNAMIC_LIB_EXT);
+ newarg = truncate_dll_name(newarg);
+ } else {
+ strcpy(ext, STATIC_LIB_EXT);
+ }
+
+ cmd_data->arglist[cmd_data->num_args++] = newarg;
+ return true;
+ }
+
+ if (strcmp(ext, "c") == 0) {
+ if (cmd_data->stub_name == NULL) {
+ cmd_data->stub_name = (char *)malloc(strlen(arg) + 4);
+ strcpy(cmd_data->stub_name, arg);
+ strcpy(strrchr(cmd_data->stub_name, '.') + 1, "lo");
+ }
+ }
+
+ if (strcmp(name, CC) == 0 || strcmp(name, CC EXE_EXT) == 0) {
+ if (cmd_data->output_type == otGeneral) {
+ cmd_data->output_type = otObject;
+ }
+ }
+
+ return false;
+}
+
+
+
+bool parse_output_file_name(char *arg, cmd_data_t *cmd_data)
+{
+ char *name = strrchr(arg, '/');
+ char *ext = strrchr(arg, '.');
+ char *newarg = NULL, *newext;
+
+ if (name == NULL) {
+ name = strrchr(arg, '\\');
+
+ if (name == NULL) {
+ name = arg;
+ } else {
+ name++;
+ }
+ } else {
+ name++;
+ }
+
+ if (!ext) {
+ cmd_data->stub_name = arg;
+ cmd_data->output_type = otProgram;
+ newarg = (char *)malloc(strlen(arg) + 5);
+ strcpy(newarg, arg);
+ strcat(newarg, EXE_EXT);
+ cmd_data->arglist[cmd_data->num_args++] = newarg;
+ cmd_data->output_name = newarg;
+ return true;
+ }
+
+ ext++;
+
+ if (strcmp(ext, "la") == 0) {
+ cmd_data->stub_name = arg;
+ cmd_data->output_type = shared ? otDynamicLibrary : otStaticLibrary;
+ newarg = (char *)malloc(strlen(arg) + 10);
+ mkdir(".libs", 0);
+ strcpy(newarg, ".libs/");
+
+ if (strncmp(arg, "lib", 3) == 0) {
+ arg += 3;
+ }
+
+ strcat(newarg, arg);
+ newext = strrchr(newarg, '.') + 1;
+ strcpy(newext, shared ? DYNAMIC_LIB_EXT : STATIC_LIB_EXT);
+
+#ifdef TRUNCATE_DLL_NAME
+ if (shared) {
+ newarg = truncate_dll_name(newarg);
+ }
+#endif
+
+ cmd_data->arglist[cmd_data->num_args++] = newarg;
+ cmd_data->output_name = newarg;
+ return true;
+ }
+
+ if (strcmp(ext, "lo") == 0) {
+ cmd_data->stub_name = arg;
+ cmd_data->output_type = otObject;
+ newarg = (char *)malloc(strlen(arg) + 2);
+ strcpy(newarg, arg);
+ ext = strrchr(newarg, '.') + 1;
+ strcpy(ext, OBJECT_EXT);
+ cmd_data->arglist[cmd_data->num_args++] = newarg;
+ cmd_data->output_name = newarg;
+ return true;
+ }
+
+ return false;
+}
+
+
+
+void post_parse_fixup(cmd_data_t *cmd_data)
+{
+ int a;
+ char *arg;
+ char *ext;
+
+ if (cmd_data->output_type == otStaticLibrary && cmd_data->mode == mLink) {
+ /* We do a real hatchet job on the args when making a static library
+ * removing all compiler switches & any other cruft that ar won't like
+ * We also need to explode any libraries listed
+ */
+
+ for (a=0; a < cmd_data->num_args; a++) {
+ arg = cmd_data->arglist[a];
+
+ if (arg) {
+ ext = strrchr(arg, '.');
+
+ if (ext) {
+ ext++;
+ }
+
+ if (arg[0] == '-') {
+ cmd_data->arglist[a] = NULL;
+
+ if (strcmp(arg, "-rpath") == 0 && a+1 < cmd_data->num_args) {
+ cmd_data->arglist[a+1] = NULL;
+ }
+
+ if (strcmp(arg, "-R") == 0 && a+1 < cmd_data->num_args) {
+ cmd_data->arglist[a+1] = NULL;
+ }
+
+ if (strcmp(arg, "-version-info") == 0 && a+1 < cmd_data->num_args) {
+ cmd_data->arglist[a+1] = NULL;
+ }
+
+ if (strcmp(arg, "-Zstack") == 0 && a+1 < cmd_data->num_args) {
+ cmd_data->arglist[a+1] = NULL;
+ }
+
+ if (strcmp(arg, "-o") == 0) {
+ a++;
+ }
+ }
+
+ if (strcmp(arg, CC) == 0 || strcmp(arg, CC EXE_EXT) == 0) {
+ cmd_data->arglist[a] = LIBRARIAN " cr";
+ }
+
+ if (ext) {
+ if (strcmp(ext, "h") == 0 || strcmp(ext, "c") == 0) {
+ /* ignore source files, they don't belong in a library */
+ cmd_data->arglist[a] = NULL;
+ }
+
+ if (strcmp(ext, STATIC_LIB_EXT) == 0) {
+ cmd_data->arglist[a] = NULL;
+ explode_static_lib(arg, cmd_data);
+ }
+ }
+ }
+ }
+ }
+
+ if (cmd_data->output_type == otDynamicLibrary) {
+ for (a=0; a < cmd_data->num_args; a++) {
+ arg = cmd_data->arglist[a];
+
+ if (arg) {
+ if (strcmp(arg, "-rpath") == 0 && a+1 < cmd_data->num_args) {
+ cmd_data->arglist[a] = NULL;
+ cmd_data->arglist[a+1] = NULL;
+ }
+ }
+ }
+
+ if (export_all) {
+ generate_def_file(cmd_data);
+ }
+ }
+
+#if USE_OMF
+ if (cmd_data->output_type == otObject ||
+ cmd_data->output_type == otProgram ||
+ cmd_data->output_type == otDynamicLibrary) {
+ cmd_data->arglist[cmd_data->num_args++] = "-Zomf";
+ }
+#endif
+
+ if (shared && (cmd_data->output_type == otObject || cmd_data->output_type == otDynamicLibrary)) {
+ cmd_data->arglist[cmd_data->num_args++] = SHARE_SW;
+ }
+}
+
+
+
+int execute_command(cmd_data_t *cmd_data)
+{
+ int target = 0;
+ char *command;
+ int a, total_len = 0;
+ char *args[4];
+
+ for (a=0; a < cmd_data->num_args; a++) {
+ if (cmd_data->arglist[a]) {
+ total_len += strlen(cmd_data->arglist[a]) + 1;
+ }
+ }
+
+ command = (char *)malloc( total_len );
+ command[0] = 0;
+
+ for (a=0; a < cmd_data->num_args; a++) {
+ if (cmd_data->arglist[a]) {
+ strcat(command, cmd_data->arglist[a]);
+ strcat(command, " ");
+ }
+ }
+
+ command[strlen(command)-1] = 0;
+
+ if (!silent) {
+ puts(command);
+ }
+
+ cmd_data->num_args = target;
+ cmd_data->arglist[cmd_data->num_args] = NULL;
+ command = shell_esc(command);
+
+ args[0] = SHELL_CMD;
+ args[1] = "-c";
+ args[2] = command;
+ args[3] = NULL;
+ return spawnvp(P_WAIT, args[0], args);
+}
+
+
+
+char *shell_esc(const char *str)
+{
+ char *cmd;
+ unsigned char *d;
+ const unsigned char *s;
+
+ cmd = (char *)malloc(2 * strlen(str) + 1);
+ d = (unsigned char *)cmd;
+ s = (const unsigned char *)str;
+
+ for (; *s; ++s) {
+ if (*s == '"' || *s == '\\') {
+ *d++ = '\\';
+ }
+ *d++ = *s;
+ }
+
+ *d = '\0';
+ return cmd;
+}
+
+
+
+bool explode_static_lib(char *lib, cmd_data_t *cmd_data)
+{
+ char tmpdir[1024];
+ char savewd[1024];
+ char cmd[1024];
+ char *name;
+ DIR *dir;
+ struct dirent *entry;
+
+ strcpy(tmpdir, lib);
+ strcat(tmpdir, ".exploded");
+
+ mkdir(tmpdir, 0);
+ cmd_data->tmp_dirs[cmd_data->num_tmp_dirs++] = strdup(tmpdir);
+ getcwd(savewd, sizeof(savewd));
+
+ if (chdir(tmpdir) != 0)
+ return false;
+
+ strcpy(cmd, LIBRARIAN " x ");
+ name = strrchr(lib, '/');
+
+ if (name) {
+ name++;
+ } else {
+ name = lib;
+ }
+
+ strcat(cmd, "../");
+ strcat(cmd, name);
+ system(cmd);
+ chdir(savewd);
+ dir = opendir(tmpdir);
+
+ while ((entry = readdir(dir)) != NULL) {
+ if (entry->d_name[0] != '.') {
+ strcpy(cmd, tmpdir);
+ strcat(cmd, "/");
+ strcat(cmd, entry->d_name);
+ cmd_data->arglist[cmd_data->num_args++] = strdup(cmd);
+ }
+ }
+
+ closedir(dir);
+ return true;
+}
+
+
+
+void cleanup_tmp_dir(char *dirname)
+{
+ DIR *dir;
+ struct dirent *entry;
+ char fullname[1024];
+
+ dir = opendir(dirname);
+
+ if (dir == NULL)
+ return;
+
+ while ((entry = readdir(dir)) != NULL) {
+ if (entry->d_name[0] != '.') {
+ strcpy(fullname, dirname);
+ strcat(fullname, "/");
+ strcat(fullname, entry->d_name);
+ remove(fullname);
+ }
+ }
+
+ rmdir(dirname);
+}
+
+
+
+void cleanup_tmp_dirs(cmd_data_t *cmd_data)
+{
+ int d;
+
+ for (d=0; d < cmd_data->num_tmp_dirs; d++) {
+ cleanup_tmp_dir(cmd_data->tmp_dirs[d]);
+ }
+}
+
+
+
+void generate_def_file(cmd_data_t *cmd_data)
+{
+ char def_file[1024];
+ char implib_file[1024];
+ char *ext;
+ FILE *hDef;
+ char *export_args[1024];
+ int num_export_args = 0;
+ char *cmd;
+ int cmd_size = 0;
+ int a;
+
+ if (cmd_data->output_name) {
+ strcpy(def_file, cmd_data->output_name);
+ strcat(def_file, ".def");
+ hDef = fopen(def_file, "w");
+
+ if (hDef != NULL) {
+ fprintf(hDef, "LIBRARY '%s' INITINSTANCE\n", nameof(cmd_data->output_name));
+ fprintf(hDef, "DATA NONSHARED\n");
+ fprintf(hDef, "EXPORTS\n");
+ fclose(hDef);
+
+ for (a=0; a < cmd_data->num_obj_files; a++) {
+ cmd_size += strlen(cmd_data->obj_files[a]) + 1;
+ }
+
+ cmd_size += strlen(GEN_EXPORTS) + strlen(def_file) + 3;
+ cmd = (char *)malloc(cmd_size);
+ strcpy(cmd, GEN_EXPORTS);
+
+ for (a=0; a < cmd_data->num_obj_files; a++) {
+ strcat(cmd, " ");
+ strcat(cmd, cmd_data->obj_files[a] );
+ }
+
+ strcat(cmd, ">>");
+ strcat(cmd, def_file);
+ puts(cmd);
+ export_args[num_export_args++] = SHELL_CMD;
+ export_args[num_export_args++] = "-c";
+ export_args[num_export_args++] = cmd;
+ export_args[num_export_args++] = NULL;
+ spawnvp(P_WAIT, export_args[0], export_args);
+ cmd_data->arglist[cmd_data->num_args++] = strdup(def_file);
+
+ /* Now make an import library for the dll */
+ num_export_args = 0;
+ export_args[num_export_args++] = DEF2IMPLIB_CMD;
+ export_args[num_export_args++] = "-o";
+
+ strcpy(implib_file, ".libs/");
+ strcat(implib_file, cmd_data->stub_name);
+ ext = strrchr(implib_file, '.');
+
+ if (ext)
+ *ext = 0;
+
+ strcat(implib_file, ".");
+ strcat(implib_file, STATIC_LIB_EXT);
+
+ export_args[num_export_args++] = implib_file;
+ export_args[num_export_args++] = def_file;
+ export_args[num_export_args++] = NULL;
+ spawnvp(P_WAIT, export_args[0], export_args);
+ }
+ }
+}
+
+
+
+/* returns just a file's name without path or extension */
+char *nameof(char *fullpath)
+{
+ char buffer[1024];
+ char *ext;
+ char *name = strrchr(fullpath, '/');
+
+ if (name == NULL) {
+ name = strrchr(fullpath, '\\');
+ }
+
+ if (name == NULL) {
+ name = fullpath;
+ } else {
+ name++;
+ }
+
+ strcpy(buffer, name);
+ ext = strrchr(buffer, '.');
+
+ if (ext) {
+ *ext = 0;
+ return strdup(buffer);
+ }
+
+ return name;
+}
+
+
+
+char *truncate_dll_name(char *path)
+{
+ /* Cut DLL name down to 8 characters after removing any mod_ prefix */
+ char *tmppath = strdup(path);
+ char *newname = strrchr(tmppath, '/') + 1;
+ char *ext = strrchr(tmppath, '.');
+ int len;
+
+ if (ext == NULL)
+ return tmppath;
+
+ len = ext - newname;
+
+ if (strncmp(newname, "mod_", 4) == 0) {
+ strcpy(newname, newname + 4);
+ len -= 4;
+ }
+
+ if (len > 8) {
+ strcpy(newname + 8, strchr(newname, '.'));
+ }
+
+ return tmppath;
+}
diff --git a/build/apr_common.m4 b/build/apr_common.m4
new file mode 100644
index 0000000..f4e2dfd
--- /dev/null
+++ b/build/apr_common.m4
@@ -0,0 +1,1023 @@
+dnl -------------------------------------------------------- -*- autoconf -*-
+dnl Licensed to the Apache Software Foundation (ASF) under one or more
+dnl contributor license agreements. See the NOTICE file distributed with
+dnl this work for additional information regarding copyright ownership.
+dnl The ASF licenses this file to You under the Apache License, Version 2.0
+dnl (the "License"); you may not use this file except in compliance with
+dnl the License. You may obtain a copy of the License at
+dnl
+dnl http://www.apache.org/licenses/LICENSE-2.0
+dnl
+dnl Unless required by applicable law or agreed to in writing, software
+dnl distributed under the License is distributed on an "AS IS" BASIS,
+dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+dnl See the License for the specific language governing permissions and
+dnl limitations under the License.
+
+dnl
+dnl apr_common.m4: APR's general-purpose autoconf macros
+dnl
+
+dnl
+dnl APR_CONFIG_NICE(filename)
+dnl
+dnl Saves a snapshot of the configure command-line for later reuse
+dnl
+AC_DEFUN([APR_CONFIG_NICE], [
+ rm -f $1
+ cat >$1<<EOF
+#! /bin/sh
+#
+# Created by configure
+
+EOF
+ if test -n "$CC"; then
+ echo "CC=\"$CC\"; export CC" >> $1
+ fi
+ if test -n "$CFLAGS"; then
+ echo "CFLAGS=\"$CFLAGS\"; export CFLAGS" >> $1
+ fi
+ if test -n "$CPPFLAGS"; then
+ echo "CPPFLAGS=\"$CPPFLAGS\"; export CPPFLAGS" >> $1
+ fi
+ if test -n "$LDFLAGS"; then
+ echo "LDFLAGS=\"$LDFLAGS\"; export LDFLAGS" >> $1
+ fi
+ if test -n "$LTFLAGS"; then
+ echo "LTFLAGS=\"$LTFLAGS\"; export LTFLAGS" >> $1
+ fi
+ if test -n "$LIBS"; then
+ echo "LIBS=\"$LIBS\"; export LIBS" >> $1
+ fi
+ if test -n "$INCLUDES"; then
+ echo "INCLUDES=\"$INCLUDES\"; export INCLUDES" >> $1
+ fi
+ if test -n "$NOTEST_CFLAGS"; then
+ echo "NOTEST_CFLAGS=\"$NOTEST_CFLAGS\"; export NOTEST_CFLAGS" >> $1
+ fi
+ if test -n "$NOTEST_CPPFLAGS"; then
+ echo "NOTEST_CPPFLAGS=\"$NOTEST_CPPFLAGS\"; export NOTEST_CPPFLAGS" >> $1
+ fi
+ if test -n "$NOTEST_LDFLAGS"; then
+ echo "NOTEST_LDFLAGS=\"$NOTEST_LDFLAGS\"; export NOTEST_LDFLAGS" >> $1
+ fi
+ if test -n "$NOTEST_LIBS"; then
+ echo "NOTEST_LIBS=\"$NOTEST_LIBS\"; export NOTEST_LIBS" >> $1
+ fi
+
+ # Retrieve command-line arguments.
+ eval "set x $[0] $ac_configure_args"
+ shift
+
+ for arg
+ do
+ APR_EXPAND_VAR(arg, $arg)
+ echo "\"[$]arg\" \\" >> $1
+ done
+ echo '"[$]@"' >> $1
+ chmod +x $1
+])dnl
+
+dnl APR_MKDIR_P_CHECK(fallback-mkdir-p)
+dnl checks whether mkdir -p works
+AC_DEFUN([APR_MKDIR_P_CHECK], [
+ AC_CACHE_CHECK(for working mkdir -p, ac_cv_mkdir_p,[
+ test -d conftestdir && rm -rf conftestdir
+ mkdir -p conftestdir/somedir >/dev/null 2>&1
+ if test -d conftestdir/somedir; then
+ ac_cv_mkdir_p=yes
+ else
+ ac_cv_mkdir_p=no
+ fi
+ rm -rf conftestdir
+ ])
+ if test "$ac_cv_mkdir_p" = "yes"; then
+ mkdir_p="mkdir -p"
+ else
+ mkdir_p="$1"
+ fi
+])
+
+dnl
+dnl APR_SUBDIR_CONFIG(dir [, sub-package-cmdline-args, args-to-drop])
+dnl
+dnl dir: directory to find configure in
+dnl sub-package-cmdline-args: arguments to add to the invocation (optional)
+dnl args-to-drop: arguments to drop from the invocation (optional)
+dnl
+dnl Note: This macro relies on ac_configure_args being set properly.
+dnl
+dnl The args-to-drop argument is shoved into a case statement, so
+dnl multiple arguments can be separated with a |.
+dnl
+dnl Note: Older versions of autoconf do not single-quote args, while 2.54+
+dnl places quotes around every argument. So, if you want to drop the
+dnl argument called --enable-layout, you must pass the third argument as:
+dnl [--enable-layout=*|\'--enable-layout=*]
+dnl
+dnl Trying to optimize this is left as an exercise to the reader who wants
+dnl to put up with more autoconf craziness. I give up.
+dnl
+AC_DEFUN([APR_SUBDIR_CONFIG], [
+ # save our work to this point; this allows the sub-package to use it
+ AC_CACHE_SAVE
+
+ echo "configuring package in $1 now"
+ ac_popdir=`pwd`
+ apr_config_subdirs="$1"
+ test -d $1 || $mkdir_p $1
+ ac_abs_srcdir=`(cd $srcdir/$1 && pwd)`
+ cd $1
+
+changequote(, )dnl
+ # A "../" for each directory in /$config_subdirs.
+ ac_dots=`echo $apr_config_subdirs|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'`
+changequote([, ])dnl
+
+ # Make the cache file pathname absolute for the subdirs
+ # required to correctly handle subdirs that might actually
+ # be symlinks
+ case "$cache_file" in
+ /*) # already absolute
+ ac_sub_cache_file=$cache_file ;;
+ *) # Was relative path.
+ ac_sub_cache_file="$ac_popdir/$cache_file" ;;
+ esac
+
+ ifelse($3, [], [apr_configure_args=$ac_configure_args],[
+ apr_configure_args=
+ apr_sep=
+ for apr_configure_arg in $ac_configure_args
+ do
+ case "$apr_configure_arg" in
+ $3)
+ continue ;;
+ esac
+ apr_configure_args="$apr_configure_args$apr_sep'$apr_configure_arg'"
+ apr_sep=" "
+ done
+ ])
+
+ dnl autoconf doesn't add --silent to ac_configure_args; explicitly pass it
+ test "x$silent" = "xyes" && apr_configure_args="$apr_configure_args --silent"
+
+ dnl AC_CONFIG_SUBDIRS silences option warnings, emulate this for 2.62
+ apr_configure_args="--disable-option-checking $apr_configure_args"
+
+ dnl The eval makes quoting arguments work - specifically the second argument
+ dnl where the quoting mechanisms used is "" rather than [].
+ dnl
+ dnl We need to execute another shell because some autoconf/shell combinations
+ dnl will choke after doing repeated APR_SUBDIR_CONFIG()s. (Namely Solaris
+ dnl and autoconf-2.54+)
+ if eval $SHELL $ac_abs_srcdir/configure $apr_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_abs_srcdir $2
+ then :
+ echo "$1 configured properly"
+ else
+ echo "configure failed for $1"
+ exit 1
+ fi
+
+ cd $ac_popdir
+
+ # grab any updates from the sub-package
+ AC_CACHE_LOAD
+])dnl
+
+dnl
+dnl APR_SAVE_THE_ENVIRONMENT(variable_name)
+dnl
+dnl Stores the variable (usually a Makefile macro) for later restoration
+dnl
+AC_DEFUN([APR_SAVE_THE_ENVIRONMENT], [
+ apr_ste_save_$1="$$1"
+])dnl
+
+dnl
+dnl APR_RESTORE_THE_ENVIRONMENT(variable_name, prefix_)
+dnl
+dnl Uses the previously saved variable content to figure out what configure
+dnl has added to the variable, moving the new bits to prefix_variable_name
+dnl and restoring the original variable contents. This makes it possible
+dnl for a user to override configure when it does something stupid.
+dnl
+AC_DEFUN([APR_RESTORE_THE_ENVIRONMENT], [
+dnl Check whether $apr_ste_save_$1 is empty or
+dnl only whitespace. The verbatim "X" is token number 1,
+dnl the following whitespace will be ignored.
+set X $apr_ste_save_$1
+if test ${#} -eq 1; then
+ $2$1="$$1"
+ $1=
+else
+ if test "x$apr_ste_save_$1" = "x$$1"; then
+ $2$1=
+ else
+ $2$1=`echo "$$1" | sed -e "s%${apr_ste_save_$1}%%"`
+ $1="$apr_ste_save_$1"
+ fi
+fi
+if test "x$silent" != "xyes"; then
+ echo " restoring $1 to \"$$1\""
+ echo " setting $2$1 to \"$$2$1\""
+fi
+AC_SUBST($2$1)
+])dnl
+
+dnl
+dnl APR_SETIFNULL(variable, value)
+dnl
+dnl Set variable iff it's currently null
+dnl
+AC_DEFUN([APR_SETIFNULL], [
+ if test -z "$$1"; then
+ test "x$silent" != "xyes" && echo " setting $1 to \"$2\""
+ $1="$2"
+ fi
+])dnl
+
+dnl
+dnl APR_SETVAR(variable, value)
+dnl
+dnl Set variable no matter what
+dnl
+AC_DEFUN([APR_SETVAR], [
+ test "x$silent" != "xyes" && echo " forcing $1 to \"$2\""
+ $1="$2"
+])dnl
+
+dnl
+dnl APR_ADDTO(variable, value)
+dnl
+dnl Add value to variable
+dnl
+AC_DEFUN([APR_ADDTO], [
+ if test "x$$1" = "x"; then
+ test "x$silent" != "xyes" && echo " setting $1 to \"$2\""
+ $1="$2"
+ else
+ apr_addto_bugger="$2"
+ for i in $apr_addto_bugger; do
+ apr_addto_duplicate="0"
+ for j in $$1; 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 $1"
+ $1="$$1 $i"
+ fi
+ done
+ fi
+])dnl
+
+dnl
+dnl APR_REMOVEFROM(variable, value)
+dnl
+dnl Remove a value from a variable
+dnl
+AC_DEFUN([APR_REMOVEFROM], [
+ if test "x$$1" = "x$2"; then
+ test "x$silent" != "xyes" && echo " nulling $1"
+ $1=""
+ else
+ apr_new_bugger=""
+ apr_removed=0
+ for i in $$1; do
+ if test "x$i" != "x$2"; then
+ apr_new_bugger="$apr_new_bugger $i"
+ else
+ apr_removed=1
+ fi
+ done
+ if test $apr_removed = "1"; then
+ test "x$silent" != "xyes" && echo " removed \"$2\" from $1"
+ $1=$apr_new_bugger
+ fi
+ fi
+]) dnl
+
+dnl
+dnl APR_CHECK_DEFINE_FILES( symbol, header_file [header_file ...] )
+dnl
+AC_DEFUN([APR_CHECK_DEFINE_FILES], [
+ AC_CACHE_CHECK([for $1 in $2],ac_cv_define_$1,[
+ ac_cv_define_$1=no
+ for curhdr in $2
+ do
+ AC_EGREP_CPP(YES_IS_DEFINED, [
+#include <$curhdr>
+#ifdef $1
+YES_IS_DEFINED
+#endif
+ ], ac_cv_define_$1=yes)
+ done
+ ])
+ if test "$ac_cv_define_$1" = "yes"; then
+ AC_DEFINE(HAVE_$1, 1, [Define if $1 is defined])
+ fi
+])
+
+
+dnl
+dnl APR_CHECK_DEFINE(symbol, header_file)
+dnl
+AC_DEFUN([APR_CHECK_DEFINE], [
+ AC_CACHE_CHECK([for $1 in $2],ac_cv_define_$1,[
+ AC_EGREP_CPP(YES_IS_DEFINED, [
+#include <$2>
+#ifdef $1
+YES_IS_DEFINED
+#endif
+ ], ac_cv_define_$1=yes, ac_cv_define_$1=no)
+ ])
+ if test "$ac_cv_define_$1" = "yes"; then
+ AC_DEFINE(HAVE_$1, 1, [Define if $1 is defined in $2])
+ fi
+])
+
+dnl
+dnl APR_CHECK_APR_DEFINE( symbol )
+dnl
+AC_DEFUN([APR_CHECK_APR_DEFINE], [
+apr_old_cppflags=$CPPFLAGS
+CPPFLAGS="$CPPFLAGS $INCLUDES"
+AC_EGREP_CPP(YES_IS_DEFINED, [
+#include <apr.h>
+#if $1
+YES_IS_DEFINED
+#endif
+], ac_cv_define_$1=yes, ac_cv_define_$1=no)
+CPPFLAGS=$apr_old_cppflags
+])
+
+dnl APR_CHECK_FILE(filename); set ac_cv_file_filename to
+dnl "yes" if 'filename' is readable, else "no".
+dnl @deprecated! - use AC_CHECK_FILE instead
+AC_DEFUN([APR_CHECK_FILE], [
+dnl Pick a safe variable name
+define([apr_cvname], ac_cv_file_[]translit([$1], [./+-], [__p_]))
+AC_CACHE_CHECK([for $1], [apr_cvname],
+[if test -r $1; then
+ apr_cvname=yes
+ else
+ apr_cvname=no
+ fi])
+])
+
+define(APR_IFALLYES,[dnl
+ac_rc=yes
+for ac_spec in $1; do
+ ac_type=`echo "$ac_spec" | sed -e 's/:.*$//'`
+ ac_item=`echo "$ac_spec" | sed -e 's/^.*://'`
+ case $ac_type in
+ header )
+ ac_item=`echo "$ac_item" | sed 'y%./+-%__p_%'`
+ ac_var="ac_cv_header_$ac_item"
+ ;;
+ file )
+ ac_item=`echo "$ac_item" | sed 'y%./+-%__p_%'`
+ ac_var="ac_cv_file_$ac_item"
+ ;;
+ func ) ac_var="ac_cv_func_$ac_item" ;;
+ struct ) ac_var="ac_cv_struct_$ac_item" ;;
+ define ) ac_var="ac_cv_define_$ac_item" ;;
+ custom ) ac_var="$ac_item" ;;
+ esac
+ eval "ac_val=\$$ac_var"
+ if test ".$ac_val" != .yes; then
+ ac_rc=no
+ break
+ fi
+done
+if test ".$ac_rc" = .yes; then
+ :
+ $2
+else
+ :
+ $3
+fi
+])
+
+
+define(APR_BEGIN_DECISION,[dnl
+ac_decision_item='$1'
+ac_decision_msg='FAILED'
+ac_decision=''
+])
+
+
+AC_DEFUN([APR_DECIDE],[dnl
+dnl Define the flag (or not) in apr_private.h via autoheader
+AH_TEMPLATE($1, [Define if $2 will be used])
+ac_decision='$1'
+ac_decision_msg='$2'
+ac_decision_$1=yes
+ac_decision_$1_msg='$2'
+])
+
+
+define(APR_DECISION_OVERRIDE,[dnl
+ ac_decision=''
+ for ac_item in $1; 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
+])
+
+
+define(APR_DECISION_FORCE,[dnl
+ac_decision="$1"
+eval "ac_decision_msg=\"\$ac_decision_${ac_decision}_msg\""
+])
+
+
+define(APR_END_DECISION,[dnl
+if test ".$ac_decision" = .; then
+ echo "[$]0:Error: decision on $ac_decision_item failed" 1>&2
+ exit 1
+else
+ if test ".$ac_decision_msg" = .; then
+ ac_decision_msg="$ac_decision"
+ fi
+ AC_DEFINE_UNQUOTED(${ac_decision_item})
+ AC_MSG_RESULT([decision on $ac_decision_item... $ac_decision_msg])
+fi
+])
+
+
+dnl
+dnl APR_CHECK_SIZEOF_EXTENDED(INCLUDES, TYPE [, CROSS_SIZE])
+dnl
+dnl A variant of AC_CHECK_SIZEOF which allows the checking of
+dnl sizes of non-builtin types
+dnl
+AC_DEFUN([APR_CHECK_SIZEOF_EXTENDED],
+[changequote(<<, >>)dnl
+dnl The name to #define.
+define(<<AC_TYPE_NAME>>, translit(sizeof_$2, [a-z *], [A-Z_P]))dnl
+dnl The cache variable name.
+define(<<AC_CV_NAME>>, translit(ac_cv_sizeof_$2, [ *], [_p]))dnl
+changequote([, ])dnl
+AC_MSG_CHECKING(size of $2)
+AC_CACHE_VAL(AC_CV_NAME,
+[AC_TRY_RUN([#include <stdio.h>
+$1
+#ifdef WIN32
+#define binmode "b"
+#else
+#define binmode
+#endif
+main()
+{
+ FILE *f=fopen("conftestval", "w" binmode);
+ if (!f) exit(1);
+ fprintf(f, "%d\n", sizeof($2));
+ exit(0);
+}], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, ifelse([$3],,,
+AC_CV_NAME=$3))])dnl
+AC_MSG_RESULT($AC_CV_NAME)
+AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [The size of ]$2)
+undefine([AC_TYPE_NAME])dnl
+undefine([AC_CV_NAME])dnl
+])
+
+
+dnl
+dnl APR_TRY_COMPILE_NO_WARNING(INCLUDES, FUNCTION-BODY,
+dnl [ACTIONS-IF-NO-WARNINGS], [ACTIONS-IF-WARNINGS])
+dnl
+dnl Tries a compile test with warnings activated so that the result
+dnl is false if the code doesn't compile cleanly. For compilers
+dnl where it is not known how to activate a "fail-on-error" mode,
+dnl it is undefined which of the sets of actions will be run.
+dnl
+AC_DEFUN([APR_TRY_COMPILE_NO_WARNING],
+[apr_save_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $CFLAGS_WARN"
+ if test "$ac_cv_prog_gcc" = "yes"; then
+ CFLAGS="$CFLAGS -Werror"
+ fi
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [#include "confdefs.h"
+ ]
+ [[$1]]
+ [int main(int argc, const char *const *argv) {]
+ [[$2]]
+ [ return 0; }]
+ )], [CFLAGS=$apr_save_CFLAGS
+$3], [CFLAGS=$apr_save_CFLAGS
+$4])
+])
+
+dnl
+dnl APR_CHECK_STRERROR_R_RC
+dnl
+dnl Decide which style of retcode is used by this system's
+dnl strerror_r(). It either returns int (0 for success, -1
+dnl for failure), or it returns a pointer to the error
+dnl string.
+dnl
+dnl
+AC_DEFUN([APR_CHECK_STRERROR_R_RC], [
+AC_MSG_CHECKING(for type of return code from strerror_r)
+AC_TRY_RUN([
+#include <errno.h>
+#include <string.h>
+#include <stdio.h>
+main()
+{
+ char buf[1024];
+ if (strerror_r(ERANGE, buf, sizeof buf) < 1) {
+ exit(0);
+ }
+ else {
+ exit(1);
+ }
+}], [
+ ac_cv_strerror_r_rc_int=yes ], [
+ ac_cv_strerror_r_rc_int=no ], [
+ ac_cv_strerror_r_rc_int=no ] )
+if test "x$ac_cv_strerror_r_rc_int" = xyes; then
+ AC_DEFINE(STRERROR_R_RC_INT, 1, [Define if strerror returns int])
+ msg="int"
+else
+ msg="pointer"
+fi
+AC_MSG_RESULT([$msg])
+] )
+
+dnl
+dnl APR_CHECK_DIRENT_INODE
+dnl
+dnl Decide if d_fileno or d_ino are available in the dirent
+dnl structure on this platform. Single UNIX Spec says d_ino,
+dnl BSD uses d_fileno. Undef to find the real beast.
+dnl
+AC_DEFUN([APR_CHECK_DIRENT_INODE], [
+AC_CACHE_CHECK([for inode member of struct dirent], apr_cv_dirent_inode, [
+apr_cv_dirent_inode=no
+AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <dirent.h>
+],[
+#ifdef d_ino
+#undef d_ino
+#endif
+struct dirent de; de.d_fileno;
+], apr_cv_dirent_inode=d_fileno)
+if test "$apr_cv_dirent_inode" = "no"; then
+AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <dirent.h>
+],[
+#ifdef d_fileno
+#undef d_fileno
+#endif
+struct dirent de; de.d_ino;
+], apr_cv_dirent_inode=d_ino)
+fi
+])
+if test "$apr_cv_dirent_inode" != "no"; then
+ AC_DEFINE_UNQUOTED(DIRENT_INODE, $apr_cv_dirent_inode,
+ [Define if struct dirent has an inode member])
+fi
+])
+
+dnl
+dnl APR_CHECK_DIRENT_TYPE
+dnl
+dnl Decide if d_type is available in the dirent structure
+dnl on this platform. Not part of the Single UNIX Spec.
+dnl Note that this is worthless without DT_xxx macros, so
+dnl look for one while we are at it.
+dnl
+AC_DEFUN([APR_CHECK_DIRENT_TYPE], [
+AC_CACHE_CHECK([for file type member of struct dirent], apr_cv_dirent_type,[
+apr_cv_dirent_type=no
+AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <dirent.h>
+],[
+struct dirent de; de.d_type = DT_REG;
+], apr_cv_dirent_type=d_type)
+])
+if test "$apr_cv_dirent_type" != "no"; then
+ AC_DEFINE_UNQUOTED(DIRENT_TYPE, $apr_cv_dirent_type,
+ [Define if struct dirent has a d_type member])
+fi
+])
+
+dnl the following is a newline, a space, a tab, and a backslash (the
+dnl backslash is used by the shell to skip newlines, but m4 sees it;
+dnl treat it like whitespace).
+dnl WARNING: don't reindent these lines, or the space/tab will be lost!
+define([apr_whitespace],[
+ \])
+
+dnl
+dnl APR_COMMA_ARGS(ARG1 ...)
+dnl convert the whitespace-separated arguments into comman-separated
+dnl arguments.
+dnl
+dnl APR_FOREACH(CODE-BLOCK, ARG1, ARG2, ...)
+dnl subsitute CODE-BLOCK for each ARG[i]. "eachval" will be set to ARG[i]
+dnl within each iteration.
+dnl
+changequote({,})
+define({APR_COMMA_ARGS},{patsubst([$}{1],[[}apr_whitespace{]+],[,])})
+define({APR_FOREACH},
+ {ifelse($}{2,,,
+ [define([eachval],
+ $}{2)$}{1[]APR_FOREACH([$}{1],
+ builtin([shift],
+ builtin([shift], $}{@)))])})
+changequote([,])
+
+dnl APR_FLAG_HEADERS(HEADER-FILE ... [, FLAG-TO-SET ] [, "yes" ])
+dnl we set FLAG-TO-SET to 1 if we find HEADER-FILE, otherwise we set to 0
+dnl if FLAG-TO-SET is null, we automagically determine it's name
+dnl by changing all "/" to "_" in the HEADER-FILE and dropping
+dnl all "." and "-" chars. If the 3rd parameter is "yes" then instead of
+dnl setting to 1 or 0, we set FLAG-TO-SET to yes or no.
+dnl
+AC_DEFUN([APR_FLAG_HEADERS], [
+AC_CHECK_HEADERS($1)
+for aprt_i in $1
+do
+ ac_safe=`echo "$aprt_i" | sed 'y%./+-%__p_%'`
+ aprt_2=`echo "$aprt_i" | sed -e 's%/%_%g' -e 's/\.//g' -e 's/-//g'`
+ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ eval "ifelse($2,,$aprt_2,$2)=ifelse($3,yes,yes,1)"
+ else
+ eval "ifelse($2,,$aprt_2,$2)=ifelse($3,yes,no,0)"
+ fi
+done
+])
+
+dnl APR_FLAG_FUNCS(FUNC ... [, FLAG-TO-SET] [, "yes" ])
+dnl if FLAG-TO-SET is null, we automagically determine it's name
+dnl prepending "have_" to the function name in FUNC, otherwise
+dnl we use what's provided as FLAG-TO-SET. If the 3rd parameter
+dnl is "yes" then instead of setting to 1 or 0, we set FLAG-TO-SET
+dnl to yes or no.
+dnl
+AC_DEFUN([APR_FLAG_FUNCS], [
+AC_CHECK_FUNCS($1)
+for aprt_j in $1
+do
+ aprt_3="have_$aprt_j"
+ if eval "test \"`echo '$ac_cv_func_'$aprt_j`\" = yes"; then
+ eval "ifelse($2,,$aprt_3,$2)=ifelse($3,yes,yes,1)"
+ else
+ eval "ifelse($2,,$aprt_3,$2)=ifelse($3,yes,no,0)"
+ fi
+done
+])
+
+dnl Iteratively interpolate the contents of the second argument
+dnl until interpolation offers no new result. Then assign the
+dnl final result to $1.
+dnl
+dnl Example:
+dnl
+dnl foo=1
+dnl bar='${foo}/2'
+dnl baz='${bar}/3'
+dnl APR_EXPAND_VAR(fraz, $baz)
+dnl $fraz is now "1/2/3"
+dnl
+AC_DEFUN([APR_EXPAND_VAR], [
+ap_last=
+ap_cur="$2"
+while test "x${ap_cur}" != "x${ap_last}";
+do
+ ap_last="${ap_cur}"
+ ap_cur=`eval "echo ${ap_cur}"`
+done
+$1="${ap_cur}"
+])
+
+dnl
+dnl Removes the value of $3 from the string in $2, strips of any leading
+dnl slashes, and returns the value in $1.
+dnl
+dnl Example:
+dnl orig_path="${prefix}/bar"
+dnl APR_PATH_RELATIVE(final_path, $orig_path, $prefix)
+dnl $final_path now contains "bar"
+AC_DEFUN([APR_PATH_RELATIVE], [
+ap_stripped=`echo $2 | sed -e "s#^$3##"`
+# check if the stripping was successful
+if test "x$2" != "x${ap_stripped}"; then
+ # it was, so strip of any leading slashes
+ $1="`echo ${ap_stripped} | sed -e 's#^/*##'`"
+else
+ # it wasn't so return the original
+ $1="$2"
+fi
+])
+
+dnl APR_HELP_STRING(LHS, RHS)
+dnl Autoconf 2.50 can not handle substr correctly. It does have
+dnl AC_HELP_STRING, so let's try to call it if we can.
+dnl Note: this define must be on one line so that it can be properly returned
+dnl as the help string. When using this macro with a multi-line RHS, ensure
+dnl that you surround the macro invocation with []s
+AC_DEFUN([APR_HELP_STRING], [ifelse(regexp(AC_ACVERSION, 2\.1), -1, AC_HELP_STRING([$1],[$2]),[ ][$1] substr([ ],len($1))[$2])])
+
+dnl
+dnl APR_LAYOUT(configlayout, layoutname [, extravars])
+dnl
+AC_DEFUN([APR_LAYOUT], [
+ if test ! -f $srcdir/config.layout; then
+ echo "** Error: Layout file $srcdir/config.layout not found"
+ echo "** Error: Cannot use undefined layout '$LAYOUT'"
+ exit 1
+ fi
+ # Catch layout names including a slash which will otherwise
+ # confuse the heck out of the sed script.
+ case $2 in
+ */*)
+ echo "** Error: $2 is not a valid layout name"
+ exit 1 ;;
+ esac
+ pldconf=./config.pld
+ changequote({,})
+ sed -e "1s/[ ]*<[lL]ayout[ ]*$2[ ]*>[ ]*//;1t" \
+ -e "1,/[ ]*<[lL]ayout[ ]*$2[ ]*>[ ]*/d" \
+ -e '/[ ]*<\/Layout>[ ]*/,$d' \
+ -e "s/^[ ]*//g" \
+ -e "s/:[ ]*/=\'/g" \
+ -e "s/[ ]*$/'/g" \
+ $1 > $pldconf
+ layout_name=$2
+ if test ! -s $pldconf; then
+ echo "** Error: unable to find layout $layout_name"
+ exit 1
+ fi
+ . $pldconf
+ rm $pldconf
+ for var in prefix exec_prefix bindir sbindir libexecdir mandir \
+ sysconfdir datadir includedir localstatedir runtimedir \
+ logfiledir libdir installbuilddir libsuffix $3; do
+ eval "val=\"\$$var\""
+ case $val in
+ *+)
+ val=`echo $val | sed -e 's;\+$;;'`
+ eval "$var=\"\$val\""
+ autosuffix=yes
+ ;;
+ *)
+ autosuffix=no
+ ;;
+ esac
+ val=`echo $val | sed -e 's:\(.\)/*$:\1:'`
+ val=`echo $val | sed -e 's:[\$]\([a-z_]*\):${\1}:g'`
+ if test "$autosuffix" = "yes"; then
+ if echo $val | grep apache >/dev/null; then
+ addtarget=no
+ else
+ addtarget=yes
+ fi
+ if test "$addtarget" = "yes"; then
+ val="$val/apache2"
+ fi
+ fi
+ eval "$var='$val'"
+ done
+ changequote([,])
+])dnl
+
+dnl
+dnl APR_ENABLE_LAYOUT(default layout name [, extra vars])
+dnl
+AC_DEFUN([APR_ENABLE_LAYOUT], [
+AC_ARG_ENABLE(layout,
+[ --enable-layout=LAYOUT],[
+ LAYOUT=$enableval
+])
+
+if test -z "$LAYOUT"; then
+ LAYOUT="$1"
+fi
+APR_LAYOUT($srcdir/config.layout, $LAYOUT, $2)
+
+AC_MSG_CHECKING(for chosen layout)
+AC_MSG_RESULT($layout_name)
+])
+
+
+dnl
+dnl APR_PARSE_ARGUMENTS
+dnl a reimplementation of autoconf's argument parser,
+dnl used here to allow us to co-exist layouts and argument based
+dnl set ups.
+AC_DEFUN([APR_PARSE_ARGUMENTS], [
+ac_prev=
+# Retrieve the command-line arguments. The eval is needed because
+# the arguments are quoted to preserve accuracy.
+eval "set x $ac_configure_args"
+shift
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ ac_optarg=`expr "x$ac_option" : 'x[[^=]]*=\(.*\)'`
+
+ case $ac_option in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir="$ac_optarg" ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir="$ac_optarg" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix="$ac_optarg" ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir="$ac_optarg" ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir="$ac_optarg" ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir="$ac_optarg" ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir="$ac_optarg" ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir="$ac_optarg" ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir="$ac_optarg" ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix="$ac_optarg" ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir="$ac_optarg" ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir="$ac_optarg" ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir="$ac_optarg" ;;
+
+ esac
+done
+
+# Be sure to have absolute paths.
+for ac_var in exec_prefix prefix
+do
+ eval ac_val=$`echo $ac_var`
+ case $ac_val in
+ [[\\/$]]* | ?:[[\\/]]* | NONE | '' ) ;;
+ *) AC_MSG_ERROR([expected an absolute path for --$ac_var: $ac_val]);;
+ esac
+done
+
+])dnl
+
+dnl
+dnl APR_CHECK_DEPEND
+dnl
+dnl Determine what program we can use to generate .deps-style dependencies
+dnl
+AC_DEFUN([APR_CHECK_DEPEND], [
+dnl Try to determine what depend program we can use
+dnl All GCC-variants should have -MM.
+dnl If not, then we can check on those, too.
+if test "$GCC" = "yes"; then
+ MKDEP='$(CC) -MM'
+else
+ rm -f conftest.c
+dnl <sys/types.h> should be available everywhere!
+ cat > conftest.c <<EOF
+#include <sys/types.h>
+ int main() { return 0; }
+EOF
+ MKDEP="true"
+ for i in "$CC -MM" "$CC -M" "$CPP -MM" "$CPP -M" "cpp -M"; do
+ AC_MSG_CHECKING([if $i can create proper make dependencies])
+ if $i conftest.c 2>/dev/null | grep 'conftest.o: conftest.c' >/dev/null; then
+ MKDEP=$i
+ AC_MSG_RESULT(yes)
+ break;
+ fi
+ AC_MSG_RESULT(no)
+ done
+ rm -f conftest.c
+fi
+
+AC_SUBST(MKDEP)
+])
+
+dnl
+dnl APR_CHECK_TYPES_FMT_COMPATIBLE(TYPE-1, TYPE-2, FMT-TAG,
+dnl [ACTION-IF-TRUE], [ACTION-IF-FALSE])
+dnl
+dnl Try to determine whether two types are the same and accept the given
+dnl printf formatter (bare token, e.g. literal d, ld, etc).
+dnl
+AC_DEFUN([APR_CHECK_TYPES_FMT_COMPATIBLE], [
+define([apr_cvname], apr_cv_typematch_[]translit([$1], [ ], [_])_[]translit([$2], [ ], [_])_[][$3])
+AC_CACHE_CHECK([whether $1 and $2 use fmt %$3], apr_cvname, [
+APR_TRY_COMPILE_NO_WARNING([#include <sys/types.h>
+#include <stdio.h>
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
+], [
+ $1 chk1, *ptr1;
+ $2 chk2, *ptr2 = &chk1;
+ ptr1 = &chk2;
+ *ptr1 = *ptr2 = 0;
+ printf("%$3 %$3", chk1, chk2);
+], [apr_cvname=yes], [apr_cvname=no])])
+if test "$apr_cvname" = "yes"; then
+ :
+ $4
+else
+ :
+ $5
+fi
+])
+
+dnl
+dnl APR_CHECK_TYPES_COMPATIBLE(TYPE-1, TYPE-2, [ACTION-IF-TRUE])
+dnl
+dnl Try to determine whether two types are the same. Only works
+dnl for gcc and icc.
+dnl
+dnl @deprecated @see APR_CHECK_TYPES_FMT_COMPATIBLE
+dnl
+AC_DEFUN([APR_CHECK_TYPES_COMPATIBLE], [
+define([apr_cvname], apr_cv_typematch_[]translit([$1], [ ], [_])_[]translit([$2], [ ], [_]))
+AC_CACHE_CHECK([whether $1 and $2 are the same], apr_cvname, [
+AC_TRY_COMPILE(AC_INCLUDES_DEFAULT, [
+ int foo[0 - !__builtin_types_compatible_p($1, $2)];
+], [apr_cvname=yes
+$3], [apr_cvname=no])])
+])
diff --git a/build/apr_hints.m4 b/build/apr_hints.m4
new file mode 100644
index 0000000..fd3d33d
--- /dev/null
+++ b/build/apr_hints.m4
@@ -0,0 +1,522 @@
+dnl -------------------------------------------------------- -*- autoconf -*-
+dnl Licensed to the Apache Software Foundation (ASF) under one or more
+dnl contributor license agreements. See the NOTICE file distributed with
+dnl this work for additional information regarding copyright ownership.
+dnl The ASF licenses this file to You under the Apache License, Version 2.0
+dnl (the "License"); you may not use this file except in compliance with
+dnl the License. You may obtain a copy of the License at
+dnl
+dnl http://www.apache.org/licenses/LICENSE-2.0
+dnl
+dnl Unless required by applicable law or agreed to in writing, software
+dnl distributed under the License is distributed on an "AS IS" BASIS,
+dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+dnl See the License for the specific language governing permissions and
+dnl limitations under the License.
+
+dnl -----------------------------------------------------------------
+dnl apr_hints.m4: APR's autoconf macros for platform-specific hints
+dnl
+dnl We preload various configure settings depending
+dnl on previously obtained platform knowledge.
+dnl We allow all settings to be overridden from
+dnl the command-line.
+dnl
+dnl We maintain the "format" that we've used
+dnl under 1.3.x, so we don't exactly follow
+dnl what is "recommended" by autoconf.
+
+dnl
+dnl APR_PRELOAD
+dnl
+dnl Preload various ENV/makefile params such as CC, CFLAGS, etc
+dnl based on outside knowledge
+dnl
+dnl Generally, we force the setting of CC, and add flags
+dnl to CFLAGS, CPPFLAGS, LIBS and LDFLAGS.
+dnl
+AC_DEFUN(APR_PRELOAD, [
+if test "x$apr_preload_done" != "xyes" ; then
+
+ apr_preload_done="yes"
+
+ echo "Applying APR hints file rules for $host"
+
+ case "$host" in
+ *mint)
+ APR_ADDTO(CPPFLAGS, [-DMINT -D_GNU_SOURCE])
+ ;;
+ *MPE/iX*)
+ APR_ADDTO(CPPFLAGS, [-DMPE -D_POSIX_SOURCE -D_SOCKET_SOURCE])
+ APR_ADDTO(LIBS, [-lsvipc -lcurses])
+ APR_ADDTO(LDFLAGS, [-Xlinker \"-WL,cap=ia,ba,ph;nmstack=1024000\"])
+ ;;
+ *-apple-aux3*)
+ APR_ADDTO(CPPFLAGS, [-DAUX3 -D_POSIX_SOURCE])
+ APR_ADDTO(LIBS, [-lposix -lbsd])
+ APR_ADDTO(LDFLAGS, [-s])
+ APR_SETVAR(SHELL, [/bin/ksh])
+ ;;
+ *-ibm-aix*)
+ APR_ADDTO(CPPFLAGS, [-U__STR__ -D_THREAD_SAFE])
+ dnl _USR_IRS gets us the hstrerror() proto in netdb.h
+ case $host in
+ *-ibm-aix4.3)
+ APR_ADDTO(CPPFLAGS, [-D_USE_IRS])
+ ;;
+ *-ibm-aix5*)
+ APR_ADDTO(CPPFLAGS, [-D_USE_IRS])
+ ;;
+ *-ibm-aix4.3.*)
+ APR_ADDTO(CPPFLAGS, [-D_USE_IRS])
+ ;;
+ esac
+ dnl If using xlc, remember it, and give it the right options.
+ if $CC 2>&1 | grep 'xlc' > /dev/null; then
+ APR_SETIFNULL(AIX_XLC, [yes])
+ APR_ADDTO(CFLAGS, [-qHALT=E])
+ fi
+ APR_SETIFNULL(apr_sysvsem_is_global, [yes])
+ APR_SETIFNULL(apr_lock_method, [USE_SYSVSEM_SERIALIZE])
+ case $host in
+ *-ibm-aix3* | *-ibm-aix4.1.*)
+ ;;
+ *)
+ APR_ADDTO(LDFLAGS, [-Wl,-brtl])
+ ;;
+ esac
+ ;;
+ *-apollo-*)
+ APR_ADDTO(CPPFLAGS, [-DAPOLLO])
+ ;;
+ *-dg-dgux*)
+ APR_ADDTO(CPPFLAGS, [-DDGUX])
+ ;;
+ *-os2*)
+ APR_SETVAR(SHELL, [sh])
+ APR_SETIFNULL(apr_gethostbyname_is_thread_safe, [yes])
+ APR_SETIFNULL(apr_gethostbyaddr_is_thread_safe, [yes])
+ APR_SETIFNULL(apr_getservbyname_is_thread_safe, [yes])
+ ;;
+ *-hi-hiux)
+ APR_ADDTO(CPPFLAGS, [-DHIUX])
+ ;;
+ *-hp-hpux11.*)
+ APR_ADDTO(CPPFLAGS, [-DHPUX11 -D_REENTRANT -D_HPUX_SOURCE])
+ ;;
+ *-hp-hpux10.*)
+ case $host in
+ *-hp-hpux10.01)
+dnl # We know this is a problem in 10.01.
+dnl # Not a problem in 10.20. Otherwise, who knows?
+ APR_ADDTO(CPPFLAGS, [-DSELECT_NEEDS_CAST])
+ ;;
+ esac
+ APR_ADDTO(CPPFLAGS, [-D_REENTRANT])
+ ;;
+ *-hp-hpux*)
+ APR_ADDTO(CPPFLAGS, [-DHPUX -D_REENTRANT])
+ ;;
+ *-linux*)
+ APR_ADDTO(CPPFLAGS, [-DLINUX -D_REENTRANT -D_GNU_SOURCE])
+ ;;
+ *-lynx-lynxos)
+ APR_ADDTO(CPPFLAGS, [-D__NO_INCLUDE_WARN__ -DLYNXOS])
+ APR_ADDTO(LIBS, [-lbsd])
+ ;;
+ *486-*-bsdi*)
+ APR_ADDTO(CFLAGS, [-m486])
+ ;;
+ *-*-bsdi*)
+ case $host in
+ *bsdi4.1)
+ APR_ADDTO(CFLAGS, [-D_REENTRANT])
+ ;;
+ esac
+ ;;
+ *-openbsd*)
+ APR_ADDTO(CPPFLAGS, [-D_POSIX_THREADS])
+ # binding to an ephemeral port fails on OpenBSD so override
+ # the test for O_NONBLOCK inheritance across accept().
+ APR_SETIFNULL(ac_cv_o_nonblock_inherited, [yes])
+ ;;
+ *-netbsd*)
+ APR_ADDTO(CPPFLAGS, [-DNETBSD])
+ # fcntl() lies about O_NONBLOCK on an accept()ed socket (PR kern/26950)
+ APR_SETIFNULL(ac_cv_o_nonblock_inherited, [yes])
+ ;;
+ *-freebsd*)
+ APR_SETIFNULL(apr_lock_method, [USE_FLOCK_SERIALIZE])
+ if test -x /sbin/sysctl; then
+ os_version=`/sbin/sysctl -n kern.osreldate`
+ else
+ os_version=000000
+ fi
+ # 502102 is when libc_r switched to libpthread (aka libkse).
+ if test $os_version -ge "502102"; then
+ apr_cv_pthreads_cflags="none"
+ apr_cv_pthreads_lib="-lpthread"
+ else
+ APR_ADDTO(CPPFLAGS, [-D_THREAD_SAFE -D_REENTRANT])
+ APR_SETIFNULL(enable_threads, [no])
+ fi
+ # prevent use of KQueue before FreeBSD 4.8
+ if test $os_version -lt "480000"; then
+ APR_SETIFNULL(ac_cv_func_kqueue, no)
+ fi
+ ;;
+ *-k*bsd*-gnu)
+ APR_ADDTO(CPPFLAGS, [-D_REENTRANT -D_GNU_SOURCE])
+ ;;
+ *-gnu*|*-GNU*)
+ APR_ADDTO(CPPFLAGS, [-D_REENTRANT -D_GNU_SOURCE -DHURD])
+ ;;
+ *-next-nextstep*)
+ APR_SETIFNULL(CFLAGS, [-O])
+ APR_ADDTO(CPPFLAGS, [-DNEXT])
+ ;;
+ *-next-openstep*)
+ APR_SETIFNULL(CFLAGS, [-O])
+ APR_ADDTO(CPPFLAGS, [-DNEXT])
+ ;;
+ *-apple-rhapsody*)
+ APR_ADDTO(CPPFLAGS, [-DRHAPSODY])
+ ;;
+ *-apple-darwin*)
+ APR_ADDTO(CPPFLAGS, [-DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK])
+ APR_SETIFNULL(apr_posixsem_is_global, [yes])
+ case $host in
+ *-apple-darwin[[1-9]].*)
+ # APR's use of kqueue has triggered kernel panics for some
+ # 10.5.x (Darwin 9.x) users when running the entire test suite.
+ # In 10.4.x, use of kqueue would cause the socket tests to hang.
+ # 10.6+ (Darwin 10.x is supposed to fix the KQueue issues
+ APR_SETIFNULL(ac_cv_func_kqueue, [no])
+ APR_SETIFNULL(ac_cv_func_poll, [no]) # See issue 34332
+ ;;
+ *-apple-darwin1?.*)
+ APR_ADDTO(CPPFLAGS, [-DDARWIN_10])
+ ;;
+ esac
+ ;;
+ *-dec-osf*)
+ APR_ADDTO(CPPFLAGS, [-DOSF1])
+ # process-shared mutexes don't seem to work in Tru64 5.0
+ APR_SETIFNULL(apr_cv_process_shared_works, [no])
+ ;;
+ *-nto-qnx*)
+ ;;
+ *-qnx)
+ APR_ADDTO(CPPFLAGS, [-DQNX])
+ APR_ADDTO(LIBS, [-N128k -lunix])
+ ;;
+ *-qnx32)
+ APR_ADDTO(CPPFLAGS, [-DQNX])
+ APR_ADDTO(CFLAGS, [-mf -3])
+ APR_ADDTO(LIBS, [-N128k -lunix])
+ ;;
+ *-isc4*)
+ APR_ADDTO(CPPFLAGS, [-posix -DISC])
+ APR_ADDTO(LDFLAGS, [-posix])
+ APR_ADDTO(LIBS, [-linet])
+ ;;
+ *-sco3.2v[[234]]*)
+ APR_ADDTO(CPPFLAGS, [-DSCO -D_REENTRANT])
+ if test "$GCC" = "no"; then
+ APR_ADDTO(CFLAGS, [-Oacgiltz])
+ fi
+ APR_ADDTO(LIBS, [-lPW -lmalloc])
+ ;;
+ *-sco3.2v5*)
+ APR_ADDTO(CPPFLAGS, [-DSCO5 -D_REENTRANT])
+ ;;
+ *-sco_sv*|*-SCO_SV*)
+ APR_ADDTO(CPPFLAGS, [-DSCO -D_REENTRANT])
+ APR_ADDTO(LIBS, [-lPW -lmalloc])
+ ;;
+ *-solaris2*)
+ PLATOSVERS=`echo $host | sed 's/^.*solaris2.//'`
+ APR_ADDTO(CPPFLAGS, [-DSOLARIS2=$PLATOSVERS -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT])
+ if test $PLATOSVERS -eq 10; then
+ # pthread_mutex_timedlock is broken on Solaris 10.
+ # It can block without timeout in case of EDEADLK.
+ APR_SETIFNULL(ac_cv_func_pthread_mutex_timedlock, [no])
+ fi
+ if test $PLATOSVERS -ge 10; then
+ APR_SETIFNULL(apr_lock_method, [USE_PROC_PTHREAD_SERIALIZE])
+ else
+ APR_SETIFNULL(apr_lock_method, [USE_FCNTL_SERIALIZE])
+ fi
+ # readdir64_r error handling seems broken on Solaris (at least
+ # up till 2.8) -- it will return -1 at end-of-directory.
+ APR_SETIFNULL(ac_cv_func_readdir64_r, [no])
+ ;;
+ *-sunos4*)
+ APR_ADDTO(CPPFLAGS, [-DSUNOS4])
+ ;;
+ *-unixware1)
+ APR_ADDTO(CPPFLAGS, [-DUW=100])
+ ;;
+ *-unixware2)
+ APR_ADDTO(CPPFLAGS, [-DUW=200])
+ APR_ADDTO(LIBS, [-lgen])
+ ;;
+ *-unixware211)
+ APR_ADDTO(CPPFLAGS, [-DUW=211])
+ APR_ADDTO(LIBS, [-lgen])
+ ;;
+ *-unixware212)
+ APR_ADDTO(CPPFLAGS, [-DUW=212])
+ APR_ADDTO(LIBS, [-lgen])
+ ;;
+ *-unixware7)
+ APR_ADDTO(CPPFLAGS, [-DUW=700])
+ APR_ADDTO(LIBS, [-lgen])
+ ;;
+ maxion-*-sysv4*)
+ APR_ADDTO(CPPFLAGS, [-DSVR4])
+ APR_ADDTO(LIBS, [-lc -lgen])
+ ;;
+ *-*-powermax*)
+ APR_ADDTO(CPPFLAGS, [-DSVR4])
+ APR_ADDTO(LIBS, [-lgen])
+ ;;
+ TPF)
+ APR_ADDTO(CPPFLAGS, [-DTPF -D_POSIX_SOURCE])
+ ;;
+ bs2000*-siemens-sysv*)
+ APR_SETIFNULL(CFLAGS, [-O])
+ APR_ADDTO(CPPFLAGS, [-DSVR4 -D_XPG_IV -D_KMEMUSER])
+ APR_ADDTO(LIBS, [-lsocket])
+ APR_SETIFNULL(enable_threads, [no])
+ ;;
+ *-siemens-sysv4*)
+ APR_ADDTO(CPPFLAGS, [-DSVR4 -D_XPG_IV -DHAS_DLFCN -DUSE_MMAP_FILES -DUSE_SYSVSEM_SERIALIZED_ACCEPT])
+ APR_ADDTO(LIBS, [-lc])
+ ;;
+ pyramid-pyramid-svr4)
+ APR_ADDTO(CPPFLAGS, [-DSVR4 -DNO_LONG_DOUBLE])
+ APR_ADDTO(LIBS, [-lc])
+ ;;
+ DS/90\ 7000-*-sysv4*)
+ APR_ADDTO(CPPFLAGS, [-DUXPDS])
+ ;;
+ *-tandem-sysv4*)
+ APR_ADDTO(CPPFLAGS, [-DSVR4])
+ ;;
+ *-ncr-sysv4)
+ APR_ADDTO(CPPFLAGS, [-DSVR4 -DMPRAS])
+ APR_ADDTO(LIBS, [-lc -L/usr/ucblib -lucb])
+ ;;
+ *-sysv4*)
+ APR_ADDTO(CPPFLAGS, [-DSVR4])
+ APR_ADDTO(LIBS, [-lc])
+ ;;
+ 88k-encore-sysv4)
+ APR_ADDTO(CPPFLAGS, [-DSVR4 -DENCORE])
+ APR_ADDTO(LIBS, [-lPW])
+ ;;
+ *-uts*)
+ PLATOSVERS=`echo $host | sed 's/^.*,//'`
+ case $PLATOSVERS in
+ 2*) APR_ADDTO(CPPFLAGS, [-DUTS21])
+ APR_ADDTO(CFLAGS, [-Xa -eft])
+ APR_ADDTO(LIBS, [-lbsd -la])
+ ;;
+ *) APR_ADDTO(CPPFLAGS, [-DSVR4])
+ APR_ADDTO(CFLAGS, [-Xa])
+ ;;
+ esac
+ ;;
+ *-ultrix)
+ APR_ADDTO(CPPFLAGS, [-DULTRIX])
+ APR_SETVAR(SHELL, [/bin/sh5])
+ ;;
+ *powerpc-tenon-machten*)
+ APR_ADDTO(LDFLAGS, [-Xlstack=0x14000 -Xldelcsect])
+ ;;
+ *-machten*)
+ APR_ADDTO(LDFLAGS, [-stack 0x14000])
+ ;;
+ *convex-v11*)
+ APR_ADDTO(CPPFLAGS, [-DCONVEXOS11])
+ APR_SETIFNULL(CFLAGS, [-O1])
+ APR_ADDTO(CFLAGS, [-ext])
+ ;;
+ i860-intel-osf1)
+ APR_ADDTO(CPPFLAGS, [-DPARAGON])
+ ;;
+ *-sequent-ptx2.*.*)
+ APR_ADDTO(CPPFLAGS, [-DSEQUENT=20])
+ APR_ADDTO(CFLAGS, [-Wc,-pw])
+ APR_ADDTO(LIBS, [-linet -lc -lseq])
+ ;;
+ *-sequent-ptx4.0.*)
+ APR_ADDTO(CPPFLAGS, [-DSEQUENT=40])
+ APR_ADDTO(CFLAGS, [-Wc,-pw])
+ APR_ADDTO(LIBS, [-linet -lc])
+ ;;
+ *-sequent-ptx4.[[123]].*)
+ APR_ADDTO(CPPFLAGS, [-DSEQUENT=41])
+ APR_ADDTO(CFLAGS, [-Wc,-pw])
+ APR_ADDTO(LIBS, [-lc])
+ ;;
+ *-sequent-ptx4.4.*)
+ APR_ADDTO(CPPFLAGS, [-DSEQUENT=44])
+ APR_ADDTO(CFLAGS, [-Wc,-pw])
+ APR_ADDTO(LIBS, [-lc])
+ ;;
+ *-sequent-ptx4.5.*)
+ APR_ADDTO(CPPFLAGS, [-DSEQUENT=45])
+ APR_ADDTO(CFLAGS, [-Wc,-pw])
+ APR_ADDTO(LIBS, [-lc])
+ ;;
+ *-sequent-ptx5.0.*)
+ APR_ADDTO(CPPFLAGS, [-DSEQUENT=50])
+ APR_ADDTO(CFLAGS, [-Wc,-pw])
+ APR_ADDTO(LIBS, [-lc])
+ ;;
+ *NEWS-OS*)
+ APR_ADDTO(CPPFLAGS, [-DNEWSOS])
+ ;;
+ *-riscix)
+ APR_ADDTO(CPPFLAGS, [-DRISCIX])
+ APR_SETIFNULL(CFLAGS, [-O])
+ ;;
+ *-irix*)
+ APR_ADDTO(CPPFLAGS, [-D_POSIX_THREAD_SAFE_FUNCTIONS])
+ ;;
+ *beos*)
+ APR_ADDTO(CPPFLAGS, [-DBEOS])
+ PLATOSVERS=`uname -r`
+ APR_SETIFNULL(apr_process_lock_is_global, [yes])
+ case $PLATOSVERS in
+ 5.0.4)
+ APR_ADDTO(LDFLAGS, [-L/boot/beos/system/lib])
+ APR_ADDTO(LIBS, [-lbind -lsocket])
+ APR_ADDTO(CPPFLAGS,[-DBONE7])
+ ;;
+ 5.1)
+ APR_ADDTO(LDFLAGS, [-L/boot/beos/system/lib])
+ APR_ADDTO(LIBS, [-lbind -lsocket])
+ ;;
+ esac
+ APR_ADDTO(CPPFLAGS, [-DSIGPROCMASK_SETS_THREAD_MASK])
+ ;;
+ 4850-*.*)
+ APR_ADDTO(CPPFLAGS, [-DSVR4 -DMPRAS])
+ APR_ADDTO(LIBS, [-lc -L/usr/ucblib -lucb])
+ ;;
+ drs6000*)
+ APR_ADDTO(CPPFLAGS, [-DSVR4])
+ APR_ADDTO(LIBS, [-lc -L/usr/ucblib -lucb])
+ ;;
+ m88k-*-CX/SX|CYBER)
+ APR_ADDTO(CPPFLAGS, [-D_CX_SX])
+ APR_ADDTO(CFLAGS, [-Xa])
+ ;;
+ *-tandem-oss)
+ APR_ADDTO(CPPFLAGS, [-D_TANDEM_SOURCE -D_XOPEN_SOURCE_EXTENDED=1])
+ ;;
+ *-ibm-os390)
+ APR_SETIFNULL(apr_lock_method, [USE_SYSVSEM_SERIALIZE])
+ APR_SETIFNULL(apr_sysvsem_is_global, [yes])
+ APR_SETIFNULL(apr_gethostbyname_is_thread_safe, [yes])
+ APR_SETIFNULL(apr_gethostbyaddr_is_thread_safe, [yes])
+ APR_SETIFNULL(apr_getservbyname_is_thread_safe, [yes])
+ AC_DEFINE(HAVE_ZOS_PTHREADS, 1, [Define for z/OS pthread API nuances])
+ APR_ADDTO(CPPFLAGS, [-U_NO_PROTO -DSIGPROCMASK_SETS_THREAD_MASK -DTCP_NODELAY=1])
+ ;;
+ *-ibm-as400)
+ APR_SETIFNULL(apr_lock_method, [USE_SYSVSEM_SERIALIZE])
+ APR_SETIFNULL(apr_process_lock_is_global, [yes])
+ APR_SETIFNULL(apr_gethostbyname_is_thread_safe, [yes])
+ APR_SETIFNULL(apr_gethostbyaddr_is_thread_safe, [yes])
+ APR_SETIFNULL(apr_getservbyname_is_thread_safe, [yes])
+ ;;
+ *mingw*)
+ APR_ADDTO(INTERNAL_CPPFLAGS, -DBINPATH=$apr_builddir/test/.libs)
+ APR_ADDTO(CPPFLAGS, [-DWIN32 -D__MSVCRT__])
+ APR_ADDTO(LDFLAGS, [-Wl,--enable-auto-import,--subsystem,console])
+ APR_SETIFNULL(have_unicode_fs, [1])
+ APR_SETIFNULL(have_proc_invoked, [1])
+ APR_SETIFNULL(apr_lock_method, [win32])
+ APR_SETIFNULL(apr_process_lock_is_global, [yes])
+ APR_SETIFNULL(apr_cv_use_lfs64, [yes])
+ APR_SETIFNULL(apr_cv_osuuid, [yes])
+ APR_SETIFNULL(apr_cv_tcp_nodelay_with_cork, [no])
+ APR_SETIFNULL(apr_thread_func, [__stdcall])
+ APR_SETIFNULL(ac_cv_o_nonblock_inherited, [yes])
+ APR_SETIFNULL(ac_cv_tcp_nodelay_inherited, [yes])
+ APR_SETIFNULL(ac_cv_file__dev_zero, [no])
+ APR_SETIFNULL(ac_cv_func_setpgrp_void, [no])
+ APR_SETIFNULL(ac_cv_func_mmap, [yes])
+ APR_SETIFNULL(ac_cv_define_sockaddr_in6, [yes])
+ APR_SETIFNULL(ac_cv_working_getaddrinfo, [yes])
+ APR_SETIFNULL(ac_cv_working_getnameinfo, [yes])
+ APR_SETIFNULL(ac_cv_func_gai_strerror, [yes])
+ case $host in
+ *mingw32*)
+ APR_SETIFNULL(apr_has_xthread_files, [1])
+ APR_SETIFNULL(apr_has_user, [1])
+ APR_SETIFNULL(apr_procattr_user_set_requires_password, [1])
+ dnl The real function is TransmitFile(), not sendfile(), but
+ dnl this bypasses the Linux/Solaris/AIX/etc. test and enables
+ dnl the TransmitFile() implementation.
+ APR_SETIFNULL(ac_cv_func_sendfile, [yes])
+ ;;
+ *mingwce)
+ APR_SETIFNULL(apr_has_xthread_files, [0])
+ APR_SETIFNULL(apr_has_user, [0])
+ APR_SETIFNULL(apr_procattr_user_set_requires_password, [0])
+ APR_SETIFNULL(ac_cv_func_sendfile, [no])
+ ;;
+ esac
+ ;;
+ esac
+
+fi
+])
+
+dnl
+dnl APR_CC_HINTS
+dnl
+dnl Allows us to provide a default choice of compiler which
+dnl the user can override.
+AC_DEFUN(APR_CC_HINTS, [
+case "$host" in
+ *-apple-aux3*)
+ APR_SETIFNULL(CC, [gcc])
+ ;;
+ bs2000*-siemens-sysv*)
+ APR_SETIFNULL(CC, [c89 -XLLML -XLLMK -XL -Kno_integer_overflow])
+ ;;
+ *convex-v11*)
+ APR_SETIFNULL(CC, [cc])
+ ;;
+ *-ibm-os390)
+ APR_SETIFNULL(CC, [cc])
+ ;;
+ *-ibm-as400)
+ APR_SETIFNULL(CC, [icc])
+ ;;
+ *-isc4*)
+ APR_SETIFNULL(CC, [gcc])
+ ;;
+ m88k-*-CX/SX|CYBER)
+ APR_SETIFNULL(CC, [cc])
+ ;;
+ *-next-openstep*)
+ APR_SETIFNULL(CC, [cc])
+ ;;
+ *-qnx32)
+ APR_SETIFNULL(CC, [cc -F])
+ ;;
+ *-tandem-oss)
+ APR_SETIFNULL(CC, [c89])
+ ;;
+ TPF)
+ APR_SETIFNULL(CC, [c89])
+ ;;
+esac
+])
diff --git a/build/apr_network.m4 b/build/apr_network.m4
new file mode 100644
index 0000000..2488982
--- /dev/null
+++ b/build/apr_network.m4
@@ -0,0 +1,994 @@
+dnl -------------------------------------------------------- -*- autoconf -*-
+dnl Licensed to the Apache Software Foundation (ASF) under one or more
+dnl contributor license agreements. See the NOTICE file distributed with
+dnl this work for additional information regarding copyright ownership.
+dnl The ASF licenses this file to You under the Apache License, Version 2.0
+dnl (the "License"); you may not use this file except in compliance with
+dnl the License. You may obtain a copy of the License at
+dnl
+dnl http://www.apache.org/licenses/LICENSE-2.0
+dnl
+dnl Unless required by applicable law or agreed to in writing, software
+dnl distributed under the License is distributed on an "AS IS" BASIS,
+dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+dnl See the License for the specific language governing permissions and
+dnl limitations under the License.
+
+dnl -----------------------------------------------------------------
+dnl apr_network.m4: APR's autoconf macros for testing network support
+dnl
+
+dnl
+dnl check for type in_addr
+dnl
+AC_DEFUN(APR_TYPE_IN_ADDR,[
+ AC_CACHE_CHECK(for type in_addr, ac_cv_type_in_addr,[
+ AC_TRY_COMPILE([
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_WINSOCK2_H
+#include <winsock2.h>
+#endif
+],[
+ struct in_addr arg;
+ arg.s_addr = htonl(INADDR_ANY);
+], [ ac_cv_type_in_addr="yes"] , [
+ac_cv_type_in_addr="no"])
+])
+])
+
+dnl
+dnl check for working getaddrinfo()
+dnl
+dnl Note that if the system doesn't have gai_strerror(), we
+dnl can't use getaddrinfo() because we can't get strings
+dnl describing the error codes.
+dnl
+AC_DEFUN([APR_CHECK_WORKING_GETADDRINFO], [
+ AC_CACHE_CHECK(for working getaddrinfo, ac_cv_working_getaddrinfo,[
+ AC_TRY_RUN( [
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+
+int main(void) {
+ struct addrinfo hints, *ai;
+ int error;
+
+ memset(&hints, 0, sizeof(hints));
+ hints.ai_family = AF_UNSPEC;
+ hints.ai_socktype = SOCK_STREAM;
+ error = getaddrinfo("127.0.0.1", NULL, &hints, &ai);
+ if (error) {
+ exit(1);
+ }
+ if (ai->ai_addr->sa_family != AF_INET) {
+ exit(1);
+ }
+ exit(0);
+}
+],[
+ ac_cv_working_getaddrinfo="yes"
+],[
+ ac_cv_working_getaddrinfo="no"
+],[
+ ac_cv_working_getaddrinfo="yes"
+])])
+if test "$ac_cv_working_getaddrinfo" = "yes"; then
+ if test "$ac_cv_func_gai_strerror" != "yes"; then
+ ac_cv_working_getaddrinfo="no"
+ else
+ AC_DEFINE(HAVE_GETADDRINFO, 1, [Define if getaddrinfo exists and works well enough for APR])
+ fi
+fi
+])
+
+dnl Check whether the AI_ADDRCONFIG flag can be used with getaddrinfo
+AC_DEFUN([APR_CHECK_GETADDRINFO_ADDRCONFIG], [
+ AC_CACHE_CHECK(for working AI_ADDRCONFIG, apr_cv_gai_addrconfig, [
+ AC_TRY_RUN([
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+
+int main(int argc, char **argv) {
+ struct addrinfo hints, *ai;
+
+ memset(&hints, 0, sizeof(hints));
+ hints.ai_family = AF_UNSPEC;
+ hints.ai_socktype = SOCK_STREAM;
+ hints.ai_flags = AI_ADDRCONFIG;
+ return getaddrinfo("localhost", NULL, &hints, &ai) != 0;
+}], [apr_cv_gai_addrconfig=yes],
+ [apr_cv_gai_addrconfig=no],
+ [apr_cv_gai_addrconfig=no])])
+
+if test $apr_cv_gai_addrconfig = yes; then
+ AC_DEFINE(HAVE_GAI_ADDRCONFIG, 1, [Define if getaddrinfo accepts the AI_ADDRCONFIG flag])
+fi
+])
+
+dnl
+dnl check for working getnameinfo()
+dnl
+AC_DEFUN([APR_CHECK_WORKING_GETNAMEINFO], [
+ AC_CACHE_CHECK(for working getnameinfo, ac_cv_working_getnameinfo,[
+ AC_TRY_RUN( [
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+
+int main(void) {
+ struct sockaddr_in sa;
+ char hbuf[256];
+ int error;
+
+ sa.sin_family = AF_INET;
+ sa.sin_port = 0;
+ sa.sin_addr.s_addr = inet_addr("127.0.0.1");
+#ifdef SIN6_LEN
+ sa.sin_len = sizeof(sa);
+#endif
+
+ error = getnameinfo((const struct sockaddr *)&sa, sizeof(sa),
+ hbuf, 256, NULL, 0,
+ NI_NUMERICHOST);
+ if (error) {
+ exit(1);
+ } else {
+ exit(0);
+ }
+}
+],[
+ ac_cv_working_getnameinfo="yes"
+],[
+ ac_cv_working_getnameinfo="no"
+],[
+ ac_cv_working_getnameinfo="yes"
+])])
+if test "$ac_cv_working_getnameinfo" = "yes"; then
+ AC_DEFINE(HAVE_GETNAMEINFO, 1, [Define if getnameinfo exists])
+fi
+])
+
+dnl
+dnl check for negative error codes for getaddrinfo()
+dnl
+AC_DEFUN([APR_CHECK_NEGATIVE_EAI], [
+ AC_CACHE_CHECK(for negative error codes for getaddrinfo, ac_cv_negative_eai,[
+ AC_TRY_RUN( [
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+
+int main(void) {
+ if (EAI_ADDRFAMILY < 0) {
+ exit(0);
+ }
+ exit(1);
+}
+],[
+ ac_cv_negative_eai="yes"
+],[
+ ac_cv_negative_eai="no"
+],[
+ ac_cv_negative_eai="no"
+])])
+if test "$ac_cv_negative_eai" = "yes"; then
+ AC_DEFINE(NEGATIVE_EAI, 1, [Define if EAI_ error codes from getaddrinfo are negative])
+fi
+])
+
+dnl
+dnl Checks the definition of gethostbyname_r and gethostbyaddr_r
+dnl which are different for glibc, solaris and assorted other operating
+dnl systems
+dnl
+dnl Note that this test is executed too early to see if we have all of
+dnl the headers.
+AC_DEFUN([APR_CHECK_GETHOSTBYNAME_R_STYLE], [
+
+dnl Try and compile a glibc2 gethostbyname_r piece of code, and set the
+dnl style of the routines to glibc2 on success
+AC_CACHE_CHECK([style of gethostbyname_r routine], ac_cv_gethostbyname_r_style,
+APR_TRY_COMPILE_NO_WARNING([
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+],[
+int tmp = gethostbyname_r((const char *) 0, (struct hostent *) 0,
+ (char *) 0, 0, (struct hostent **) 0, &tmp);
+/* use tmp to suppress the warning */
+tmp=0;
+], ac_cv_gethostbyname_r_style=glibc2, ac_cv_gethostbyname_r_style=none))
+
+if test "$ac_cv_gethostbyname_r_style" = "glibc2"; then
+ AC_DEFINE(GETHOSTBYNAME_R_GLIBC2, 1, [Define if gethostbyname_r has the glibc style])
+fi
+
+AC_CACHE_CHECK([3rd argument to the gethostbyname_r routines], ac_cv_gethostbyname_r_arg,
+APR_TRY_COMPILE_NO_WARNING([
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+],[
+int tmp = gethostbyname_r((const char *) 0, (struct hostent *) 0,
+ (struct hostent_data *) 0);
+/* use tmp to suppress the warning */
+tmp=0;
+], ac_cv_gethostbyname_r_arg=hostent_data, ac_cv_gethostbyname_r_arg=char))
+
+if test "$ac_cv_gethostbyname_r_arg" = "hostent_data"; then
+ AC_DEFINE(GETHOSTBYNAME_R_HOSTENT_DATA, 1, [Define if gethostbyname_r has the hostent_data for the third argument])
+fi
+])
+
+dnl
+dnl Checks the definition of getservbyname_r
+dnl which are different for glibc, solaris and assorted other operating
+dnl systems
+dnl
+dnl Note that this test is executed too early to see if we have all of
+dnl the headers.
+AC_DEFUN([APR_CHECK_GETSERVBYNAME_R_STYLE], [
+
+dnl Try and compile a glibc2 getservbyname_r piece of code, and set the
+dnl style of the routines to glibc2 on success
+AC_CACHE_CHECK([style of getservbyname_r routine], ac_cv_getservbyname_r_style, [
+APR_TRY_COMPILE_NO_WARNING([
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+],[
+int tmp = getservbyname_r((const char *) 0, (const char *) 0,
+ (struct servent *) 0, (char *) 0, 0,
+ (struct servent **) 0);
+/* use tmp to suppress the warning */
+tmp=0;
+], ac_cv_getservbyname_r_style=glibc2, ac_cv_getservbyname_r_style=none)
+
+if test "$ac_cv_getservbyname_r_style" = "none"; then
+ dnl Try and compile a Solaris getservbyname_r piece of code, and set the
+ dnl style of the routines to solaris on success
+ APR_TRY_COMPILE_NO_WARNING([
+ #ifdef HAVE_SYS_TYPES_H
+ #include <sys/types.h>
+ #endif
+ #ifdef HAVE_NETINET_IN_H
+ #include <netinet/in.h>
+ #endif
+ #ifdef HAVE_ARPA_INET_H
+ #include <arpa/inet.h>
+ #endif
+ #ifdef HAVE_NETDB_H
+ #include <netdb.h>
+ #endif
+ #ifdef HAVE_STDLIB_H
+ #include <stdlib.h>
+ #endif
+ ],[
+ struct servent *tmp = getservbyname_r((const char *) 0, (const char *) 0,
+ (struct servent *) 0, (char *) 0, 0);
+ /* use tmp to suppress the warning */
+ tmp=NULL;
+ ], ac_cv_getservbyname_r_style=solaris, ac_cv_getservbyname_r_style=none)
+fi
+
+if test "$ac_cv_getservbyname_r_style" = "none"; then
+ dnl Try and compile a OSF/1 getservbyname_r piece of code, and set the
+ dnl style of the routines to osf1 on success
+ APR_TRY_COMPILE_NO_WARNING([
+ #ifdef HAVE_SYS_TYPES_H
+ #include <sys/types.h>
+ #endif
+ #ifdef HAVE_NETINET_IN_H
+ #include <netinet/in.h>
+ #endif
+ #ifdef HAVE_ARPA_INET_H
+ #include <arpa/inet.h>
+ #endif
+ #ifdef HAVE_NETDB_H
+ #include <netdb.h>
+ #endif
+ #ifdef HAVE_STDLIB_H
+ #include <stdlib.h>
+ #endif
+ ],[
+ int tmp = getservbyname_r((const char *) 0, (const char *) 0,
+ (struct servent *) 0, (struct servent_data *) 0);
+ /* use tmp to suppress the warning */
+ tmp=0;
+ ], ac_cv_getservbyname_r_style=osf1, ac_cv_getservbyname_r_style=none)
+fi
+])
+
+if test "$ac_cv_getservbyname_r_style" = "glibc2"; then
+ AC_DEFINE(GETSERVBYNAME_R_GLIBC2, 1, [Define if getservbyname_r has the glibc style])
+elif test "$ac_cv_getservbyname_r_style" = "solaris"; then
+ AC_DEFINE(GETSERVBYNAME_R_SOLARIS, 1, [Define if getservbyname_r has the Solaris style])
+elif test "$ac_cv_getservbyname_r_style" = "osf1"; then
+ AC_DEFINE(GETSERVBYNAME_R_OSF1, 1, [Define if getservbyname_r has the OSF/1 style])
+fi
+])
+
+dnl
+dnl see if TCP_NODELAY setting is inherited from listening sockets
+dnl
+AC_DEFUN([APR_CHECK_TCP_NODELAY_INHERITED], [
+ AC_CACHE_CHECK(if TCP_NODELAY setting is inherited from listening sockets, ac_cv_tcp_nodelay_inherited,[
+ AC_TRY_RUN( [
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_TCP_H
+#include <netinet/tcp.h>
+#endif
+#ifndef HAVE_SOCKLEN_T
+typedef int socklen_t;
+#endif
+int main(void) {
+ int listen_s, connected_s, client_s;
+ int listen_port, rc;
+ struct sockaddr_in sa;
+ socklen_t sa_len;
+ socklen_t option_len;
+ int option;
+
+ listen_s = socket(AF_INET, SOCK_STREAM, 0);
+ if (listen_s < 0) {
+ perror("socket");
+ exit(1);
+ }
+ option = 1;
+ rc = setsockopt(listen_s, IPPROTO_TCP, TCP_NODELAY, &option, sizeof option);
+ if (rc < 0) {
+ perror("setsockopt TCP_NODELAY");
+ exit(1);
+ }
+ memset(&sa, 0, sizeof sa);
+ sa.sin_family = AF_INET;
+#ifdef BEOS
+ sa.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
+#endif
+ /* leave port 0 to get ephemeral */
+ rc = bind(listen_s, (struct sockaddr *)&sa, sizeof sa);
+ if (rc < 0) {
+ perror("bind for ephemeral port");
+ exit(1);
+ }
+ /* find ephemeral port */
+ sa_len = sizeof(sa);
+ rc = getsockname(listen_s, (struct sockaddr *)&sa, &sa_len);
+ if (rc < 0) {
+ perror("getsockname");
+ exit(1);
+ }
+ listen_port = sa.sin_port;
+ rc = listen(listen_s, 5);
+ if (rc < 0) {
+ perror("listen");
+ exit(1);
+ }
+ client_s = socket(AF_INET, SOCK_STREAM, 0);
+ if (client_s < 0) {
+ perror("socket");
+ exit(1);
+ }
+ memset(&sa, 0, sizeof sa);
+ sa.sin_family = AF_INET;
+ sa.sin_port = listen_port;
+#ifdef BEOS
+ sa.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
+#endif
+ /* leave sin_addr all zeros to use loopback */
+ rc = connect(client_s, (struct sockaddr *)&sa, sizeof sa);
+ if (rc < 0) {
+ perror("connect");
+ exit(1);
+ }
+ sa_len = sizeof sa;
+ connected_s = accept(listen_s, (struct sockaddr *)&sa, &sa_len);
+ if (connected_s < 0) {
+ perror("accept");
+ exit(1);
+ }
+ option_len = sizeof option;
+ rc = getsockopt(connected_s, IPPROTO_TCP, TCP_NODELAY, &option, &option_len);
+ if (rc < 0) {
+ perror("getsockopt");
+ exit(1);
+ }
+ if (!option) {
+ fprintf(stderr, "TCP_NODELAY is not set in the child.\n");
+ exit(1);
+ }
+ return 0;
+}
+],[
+ ac_cv_tcp_nodelay_inherited="yes"
+],[
+ ac_cv_tcp_nodelay_inherited="no"
+],[
+ ac_cv_tcp_nodelay_inherited="yes"
+])])
+if test "$ac_cv_tcp_nodelay_inherited" = "yes"; then
+ tcp_nodelay_inherited=1
+else
+ tcp_nodelay_inherited=0
+fi
+])
+
+dnl
+dnl Determine whether TCP_NODELAY and TCP_CORK can both be set
+dnl on a TCP socket.
+dnl
+AC_DEFUN([APR_CHECK_TCP_NODELAY_WITH_CORK], [
+AC_CACHE_CHECK([whether TCP_NODELAY and TCP_CORK can both be enabled],
+[apr_cv_tcp_nodelay_with_cork],
+[AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_TCP_H
+#include <netinet/tcp.h>
+#endif
+#include <stdio.h>
+#include <stdlib.h>
+]], [[
+ int fd, flag, rc;
+
+ fd = socket(AF_INET, SOCK_STREAM, 0);
+ if (fd < 0) {
+ exit(1);
+ }
+
+ flag = 1;
+ rc = setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &flag, sizeof flag);
+ if (rc < 0) {
+ perror("setsockopt TCP_NODELAY");
+ exit(2);
+ }
+
+ flag = 1;
+ rc = setsockopt(fd, IPPROTO_TCP, TCP_CORK, &flag, sizeof flag);
+ if (rc < 0) {
+ perror("setsockopt TCP_CORK");
+ exit(3);
+ }
+
+ exit(0);
+]])], [apr_cv_tcp_nodelay_with_cork=yes], [apr_cv_tcp_nodelay_with_cork=no])])
+
+if test "$apr_cv_tcp_nodelay_with_cork" = "yes"; then
+ AC_DEFINE([HAVE_TCP_NODELAY_WITH_CORK], 1,
+ [Define if TCP_NODELAY and TCP_CORK can be enabled at the same time])
+fi
+])
+
+
+dnl
+dnl see if O_NONBLOCK setting is inherited from listening sockets
+dnl
+AC_DEFUN([APR_CHECK_O_NONBLOCK_INHERITED], [
+ AC_CACHE_CHECK(if O_NONBLOCK setting is inherited from listening sockets, ac_cv_o_nonblock_inherited,[
+ AC_TRY_RUN( [
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+#ifdef HAVE_STDIO_H
+#include <stdio.h>
+#endif
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_TCP_H
+#include <netinet/tcp.h>
+#endif
+#ifndef HAVE_SOCKLEN_T
+typedef int socklen_t;
+#endif
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+int main(void) {
+ int listen_s, connected_s, client_s;
+ 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) {
+ perror("socket");
+ exit(1);
+ }
+ memset(&sa, 0, sizeof sa);
+ sa.sin_family = AF_INET;
+#ifdef BEOS
+ sa.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
+#endif
+ /* leave port 0 to get ephemeral */
+ rc = bind(listen_s, (struct sockaddr *)&sa, sizeof sa);
+ if (rc < 0) {
+ perror("bind for ephemeral port");
+ exit(1);
+ }
+ /* find ephemeral port */
+ sa_len = sizeof(sa);
+ rc = getsockname(listen_s, (struct sockaddr *)&sa, &sa_len);
+ if (rc < 0) {
+ perror("getsockname");
+ exit(1);
+ }
+ listen_port = sa.sin_port;
+ rc = listen(listen_s, 5);
+ if (rc < 0) {
+ perror("listen");
+ exit(1);
+ }
+ rc = fcntl(listen_s, F_SETFL, O_NONBLOCK);
+ if (rc < 0) {
+ perror("fcntl(F_SETFL)");
+ exit(1);
+ }
+ client_s = socket(AF_INET, SOCK_STREAM, 0);
+ if (client_s < 0) {
+ perror("socket");
+ exit(1);
+ }
+ memset(&sa, 0, sizeof sa);
+ sa.sin_family = AF_INET;
+ sa.sin_port = listen_port;
+#ifdef BEOS
+ sa.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
+#endif
+ /* leave sin_addr all zeros to use loopback */
+ rc = connect(client_s, (struct sockaddr *)&sa, sizeof sa);
+ if (rc < 0) {
+ perror("connect");
+ exit(1);
+ }
+ sa_len = sizeof sa;
+ /* 1 second select timeout */
+ tv.tv_sec = 1;
+ tv.tv_usec = 0;
+ /* Set up fd set */
+ FD_ZERO(&fds);
+ FD_SET(listen_s, &fds);
+ /* Wait for socket to become readable */
+ rc = select(listen_s + 1, &fds, NULL, NULL, &tv);
+ if (rc < 0) {
+ perror("select");
+ exit(1);
+ }
+ if (rc == 0) {
+ fprintf(stderr, "Socket failed to become readable (timeout)\n");
+ exit(1);
+ }
+ if (!FD_ISSET(listen_s, &fds)) {
+ fprintf(stderr, "Socket failed to become readable (selected another fd)\n");
+ exit(1);
+ }
+ connected_s = accept(listen_s, (struct sockaddr *)&sa, &sa_len);
+ if (connected_s < 0) {
+ perror("accept");
+ exit(1);
+ }
+ rc = fcntl(connected_s, F_GETFL, 0);
+ if (rc < 0) {
+ perror("fcntl(F_GETFL)");
+ exit(1);
+ }
+ if (!(rc & O_NONBLOCK)) {
+ fprintf(stderr, "O_NONBLOCK is not set in the child.\n");
+ exit(1);
+ }
+ return 0;
+}
+],[
+ ac_cv_o_nonblock_inherited="yes"
+],[
+ ac_cv_o_nonblock_inherited="no"
+],[
+ ac_cv_o_nonblock_inherited="yes"
+])])
+if test "$ac_cv_o_nonblock_inherited" = "yes"; then
+ o_nonblock_inherited=1
+else
+ o_nonblock_inherited=0
+fi
+])
+
+dnl
+dnl check for socklen_t, fall back to unsigned int
+dnl
+AC_DEFUN([APR_CHECK_SOCKLEN_T], [
+AC_CACHE_CHECK(for socklen_t, ac_cv_socklen_t,[
+AC_TRY_COMPILE([
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+],[
+socklen_t foo = (socklen_t) 0;
+],[
+ ac_cv_socklen_t=yes
+],[
+ ac_cv_socklen_t=no
+])
+])
+
+if test "$ac_cv_socklen_t" = "yes"; then
+ AC_DEFINE(HAVE_SOCKLEN_T, 1, [Whether you have socklen_t])
+fi
+])
+
+
+AC_DEFUN([APR_CHECK_INET_ADDR], [
+AC_CACHE_CHECK(for inet_addr, ac_cv_func_inet_addr,[
+AC_TRY_COMPILE([
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+],[
+inet_addr("127.0.0.1");
+],[
+ ac_cv_func_inet_addr=yes
+],[
+ ac_cv_func_inet_addr=no
+])
+])
+
+if test "$ac_cv_func_inet_addr" = "yes"; then
+ have_inet_addr=1
+else
+ have_inet_addr=0
+fi
+])
+
+
+AC_DEFUN([APR_CHECK_INET_NETWORK], [
+AC_CACHE_CHECK(for inet_network, ac_cv_func_inet_network,[
+AC_TRY_COMPILE([
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+],[
+inet_network("127.0.0.1");
+],[
+ ac_cv_func_inet_network=yes
+],[
+ ac_cv_func_inet_network=no
+])
+])
+
+if test "$ac_cv_func_inet_network" = "yes"; then
+ have_inet_network=1
+else
+ have_inet_network=0
+fi
+])
+
+dnl Check for presence of struct sockaddr_storage.
+AC_DEFUN([APR_CHECK_SOCKADDR_STORAGE], [
+AC_CACHE_CHECK(for sockaddr_storage, apr_cv_define_sockaddr_storage,[
+AC_TRY_COMPILE([
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+],[struct sockaddr_storage sa;],
+[apr_cv_define_sockaddr_storage=yes],
+[apr_cv_define_sockaddr_storage=no])])
+
+if test "$apr_cv_define_sockaddr_storage" = "yes"; then
+ have_sa_storage=1
+else
+ have_sa_storage=0
+fi
+AC_SUBST(have_sa_storage)
+])
+
+dnl Check for presence of struct sockaddr_in6.
+AC_DEFUN([APR_CHECK_SOCKADDR_IN6], [
+AC_CACHE_CHECK(for sockaddr_in6, ac_cv_define_sockaddr_in6,[
+AC_TRY_COMPILE([
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+],[
+struct sockaddr_in6 sa;
+],[
+ ac_cv_define_sockaddr_in6=yes
+],[
+ ac_cv_define_sockaddr_in6=no
+])
+])
+
+if test "$ac_cv_define_sockaddr_in6" = "yes"; then
+ have_sockaddr_in6=1
+else
+ have_sockaddr_in6=0
+fi
+])
+
+dnl Check for presence of struct sockaddr_un.
+AC_DEFUN([APR_CHECK_SOCKADDR_UN], [
+AC_CACHE_CHECK(for sockaddr_un, ac_cv_define_sockaddr_un,[
+AC_TRY_COMPILE([
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+],[
+struct sockaddr_un sa;
+],[
+ ac_cv_define_sockaddr_un=yes
+],[
+ ac_cv_define_sockaddr_un=no
+])
+])
+
+if test "$ac_cv_define_sockaddr_un" = "yes"; then
+ have_sockaddr_un=1
+else
+ have_sockaddr_un=0
+fi
+AC_SUBST(have_sockaddr_un)
+])
+
+dnl
+dnl APR_H_ERRNO_COMPILE_CHECK
+dnl
+AC_DEFUN([APR_H_ERRNO_COMPILE_CHECK], [
+ if test x$1 != x; then
+ CPPFLAGS="-D$1 $CPPFLAGS"
+ fi
+ AC_TRY_COMPILE([
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+],[
+int h_e = h_errno;
+],[
+ if test x$1 != x; then
+ ac_cv_h_errno_cppflags="$1"
+ else
+ ac_cv_h_errno_cppflags=yes
+ fi
+],[
+ ac_cv_h_errno_cppflags=no
+])])
+
+
+dnl
+dnl APR_CHECK_SCTP
+dnl
+dnl check for presence of SCTP protocol support
+dnl
+AC_DEFUN([APR_CHECK_SCTP],
+[
+ AC_CACHE_CHECK([whether SCTP is supported], [apr_cv_sctp], [
+ AC_TRY_RUN([
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_SCTP_H
+#include <netinet/sctp.h>
+#endif
+#ifdef HAVE_NETINET_SCTP_UIO_H
+#include <netinet/sctp_uio.h>
+#endif
+#include <stdlib.h>
+int main(void) {
+ int s, opt = 1;
+ if ((s = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP)) < 0)
+ exit(1);
+ if (setsockopt(s, IPPROTO_SCTP, SCTP_NODELAY, &opt, sizeof(int)) < 0)
+ exit(2);
+ exit(0);
+}], [apr_cv_sctp=yes], [apr_cv_sctp=no], [apr_cv_sctp=no])])
+
+if test "$apr_cv_sctp" = "yes"; then
+ have_sctp=1
+else
+ have_sctp=0
+fi
+])
+
+dnl APR_CHECK_MCAST: check for multicast interfaces
+AC_DEFUN([APR_CHECK_MCAST], [
+AC_CACHE_CHECK([for struct ip_mreq], [apr_cv_struct_ipmreq], [
+AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <netinet/in.h>
+], [
+ struct ip_mreq mip;
+ mip.imr_interface.s_addr = INADDR_ANY;
+], [apr_cv_struct_ipmreq=yes], [apr_cv_struct_ipmreq=no], [apr_cv_struct_ipmreq=yes])])
+
+if test $apr_cv_struct_ipmreq = yes; then
+ AC_DEFINE([HAVE_STRUCT_IPMREQ], 1, [Define if struct impreq was found])
+fi
+])
+
+dnl
+dnl APR_CHECK_H_ERRNO_FLAG
+dnl
+dnl checks which flags are necessary for <netdb.h> to define h_errno
+dnl
+AC_DEFUN([APR_CHECK_H_ERRNO_FLAG], [
+ AC_MSG_CHECKING([for h_errno in netdb.h])
+ AC_CACHE_VAL(ac_cv_h_errno_cppflags,[
+ APR_H_ERRNO_COMPILE_CHECK
+ if test "$ac_cv_h_errno_cppflags" = "no"; then
+ ac_save="$CPPFLAGS"
+ for flag in _XOPEN_SOURCE_EXTENDED; do
+ APR_H_ERRNO_COMPILE_CHECK($flag)
+ if test "$ac_cv_h_errno_cppflags" != "no"; then
+ break
+ fi
+ done
+ CPPFLAGS="$ac_save"
+ fi
+ ])
+ if test "$ac_cv_h_errno_cppflags" != "no"; then
+ if test "$ac_cv_h_errno_cppflags" != "yes"; then
+ CPPFLAGS="-D$ac_cv_h_errno_cppflags $CPPFLAGS"
+ AC_MSG_RESULT([yes, with -D$ac_cv_h_errno_cppflags])
+ else
+ AC_MSG_RESULT([$ac_cv_h_errno_cppflags])
+ fi
+ else
+ AC_MSG_RESULT([$ac_cv_h_errno_cppflags])
+ fi
+])
+
+
+AC_DEFUN([APR_EBCDIC], [
+ AC_CACHE_CHECK([whether system uses EBCDIC],ac_cv_ebcdic,[
+ AC_TRY_RUN( [
+int main(void) {
+ return (unsigned char)'A' != (unsigned char)0xC1;
+}
+],[
+ ac_cv_ebcdic="yes"
+],[
+ ac_cv_ebcdic="no"
+],[
+ ac_cv_ebcdic="no"
+])])
+ if test "$ac_cv_ebcdic" = "yes"; then
+ apr_charset_ebcdic=1
+ else
+ apr_charset_ebcdic=0
+ fi
+ AC_SUBST(apr_charset_ebcdic)
+])
+
diff --git a/build/apr_rules.mk.in b/build/apr_rules.mk.in
new file mode 100644
index 0000000..ac376d6
--- /dev/null
+++ b/build/apr_rules.mk.in
@@ -0,0 +1,212 @@
+# 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.
+#
+#
+
+#
+# rules.mk: standard rules for APR
+#
+
+@SET_MAKE@
+
+#
+# Configuration variables
+#
+apr_builddir=@apr_builddir@
+apr_builders=@apr_builders@
+top_builddir=@apr_builddir@
+
+# Some layouts require knowing what version we are at.
+APR_MAJOR_VERSION=@APR_MAJOR_VERSION@
+APR_DOTTED_VERSION=@APR_DOTTED_VERSION@
+
+CC=@CC@
+RM=@RM@
+AWK=@AWK@
+SHELL=@SHELL@
+LIBTOOL=@LIBTOOL@
+
+# compilation and linking flags that are supposed to be set only by the user.
+# configure adds to them for tests, but we restore them at the end.
+#
+CFLAGS=@CFLAGS@
+CPPFLAGS=@CPPFLAGS@
+LDFLAGS=@LDFLAGS@
+LIBS=@LIBS@
+DEFS=@DEFS@
+
+# anything added to the standard flags by configure is moved to EXTRA_*
+# at the end of the process.
+#
+EXTRA_CFLAGS=@EXTRA_CFLAGS@
+EXTRA_CPPFLAGS=@EXTRA_CPPFLAGS@
+EXTRA_LDFLAGS=@EXTRA_LDFLAGS@
+EXTRA_LIBS=@EXTRA_LIBS@
+EXTRA_INCLUDES=@EXTRA_INCLUDES@
+
+# CPPFLAGS which are used only while building APR itself
+#
+INTERNAL_CPPFLAGS=@INTERNAL_CPPFLAGS@
+
+# NOTEST_* are flags and libraries that can be added by the user without
+# causing them to be used in configure tests (necessary for things like
+# -Werror and other strict warnings that maintainers like to use).
+#
+NOTEST_CFLAGS=@NOTEST_CFLAGS@
+NOTEST_CPPFLAGS=@NOTEST_CPPFLAGS@
+NOTEST_LDFLAGS=@NOTEST_LDFLAGS@
+NOTEST_LIBS=@NOTEST_LIBS@
+
+# Finally, combine all of the flags together in the proper order so that
+# the user-defined flags can always override the configure ones, if needed.
+# Note that includes are listed after the flags because -I options have
+# left-to-right precedence and CPPFLAGS may include user-defined overrides.
+#
+ALL_CFLAGS = $(EXTRA_CFLAGS) $(NOTEST_CFLAGS) $(CFLAGS)
+ALL_CPPFLAGS = $(DEFS) $(INTERNAL_CPPFLAGS) $(EXTRA_CPPFLAGS) $(NOTEST_CPPFLAGS) $(CPPFLAGS)
+ALL_LDFLAGS = $(EXTRA_LDFLAGS) $(NOTEST_LDFLAGS) $(LDFLAGS)
+ALL_LIBS = $(LIBS) $(NOTEST_LIBS) $(EXTRA_LIBS)
+ALL_INCLUDES = $(INCLUDES) $(EXTRA_INCLUDES)
+
+LTFLAGS = @LTFLAGS@
+LT_LDFLAGS = @LT_LDFLAGS@
+
+# The set of object files that will be linked into the target library.
+# The build-outputs.mk specifies a different set for each platform. The
+# configure script will select the appropriate set.
+#
+OBJECTS = @OBJECTS_PLATFORM@
+
+#
+# Basic macro setup
+#
+COMPILE = $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(ALL_INCLUDES)
+LT_COMPILE = @lt_compile@
+
+LINK = @link@
+
+APR_MKDIR = $(apr_builders)/mkdir.sh
+APR_MKEXPORT = $(AWK) -f $(apr_builders)/make_exports.awk
+APR_MKVAREXPORT = $(AWK) -f $(apr_builders)/make_var_export.awk
+MKDEP = @MKDEP@
+
+#
+# Standard build rules
+#
+all: all-recursive
+depend: depend-recursive
+clean: clean-recursive
+distclean: distclean-recursive
+extraclean: extraclean-recursive
+
+install: all-recursive
+
+
+all-recursive depend-recursive:
+ @otarget=`echo $@ | sed s/-recursive//`; \
+ list='$(SOURCE_DIRS)'; \
+ for i in $$list; do \
+ if test -f "$$i/Makefile"; then \
+ target="$$otarget"; \
+ echo "Making $$target in $$i"; \
+ if test "$$i" = "."; then \
+ made_local=yes; \
+ target="local-$$target"; \
+ fi; \
+ (cd $$i && $(MAKE) $$target) || exit 1; \
+ fi; \
+ done; \
+ if test "$$otarget" = "all" && test -z "$(TARGETS)"; then \
+ made_local=yes; \
+ fi; \
+ if test "$$made_local" != "yes"; then \
+ $(MAKE) "local-$$otarget" || exit 1; \
+ fi
+
+clean-recursive distclean-recursive extraclean-recursive:
+ @otarget=`echo $@ | sed s/-recursive//`; \
+ list='$(CLEAN_SUBDIRS)'; \
+ for i in $$list; do \
+ if test -f "$$i/Makefile"; then \
+ target="$$otarget"; \
+ echo "Making $$target in $$i"; \
+ if test "$$i" = "."; then \
+ made_local=yes; \
+ target="local-$$target"; \
+ fi; \
+ (cd $$i && $(MAKE) $$target); \
+ fi; \
+ done; \
+ if test "$$otarget" = "all" && test -z "$(TARGETS)"; then \
+ made_local=yes; \
+ fi; \
+ if test "$$made_local" != "yes"; then \
+ $(MAKE) "local-$$otarget"; \
+ fi
+
+# autoconf 2.5x is creating a 'autom4te.cache' directory
+# In case someone ran autoconf by hand, get rid of that directory
+# as well.
+local-clean: x-local-clean
+ @list='. $(SOURCE_DIRS)'; \
+ for i in $$list; do \
+ echo $(RM) -f $$i/*.o $$i/*.lo $$i/*.a $$i/*.la $$i/*.so $$i/*.obj; \
+ $(RM) -f $$i/*.o $$i/*.lo $$i/*.a $$i/*.la $$i/*.so $$i/*.obj; \
+ echo $(RM) -rf $$i/.libs; \
+ $(RM) -rf $$i/.libs; \
+ done
+ $(RM) -f $(CLEAN_TARGETS) $(PROGRAMS)
+ $(RM) -rf autom4te.cache
+
+local-distclean: local-clean x-local-distclean
+ $(RM) -f Makefile $(DISTCLEAN_TARGETS)
+
+local-extraclean: local-distclean x-local-extraclean
+ @if test -n "$(EXTRACLEAN_TARGETS)"; then \
+ echo $(RM) -f $(EXTRACLEAN_TARGETS) ; \
+ $(RM) -f $(EXTRACLEAN_TARGETS) ; \
+ fi
+
+local-all: $(TARGETS)
+
+local-depend: x-local-depend
+ @if test -n "`ls $(srcdir)/*.c 2> /dev/null`"; then \
+ $(RM) -f .deps; \
+ list='$(srcdir)/*.c'; \
+ for i in $$list; do \
+ $(MKDEP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) $$i | sed 's/\.o:/.lo:/' >> .deps; \
+ done; \
+ fi
+
+# to be filled in by the actual Makefile
+x-local-depend x-local-clean x-local-distclean x-local-extraclean:
+
+#
+# Implicit rules for creating outputs from input files
+#
+.SUFFIXES:
+.SUFFIXES: .c .lo .o
+
+.c.o:
+ $(COMPILE) -c $<
+
+.c.lo:
+ $(LT_COMPILE)
+
+.PHONY: all all-recursive local-all install \
+ depend depend-recursive local-depend x-local-depend \
+ clean clean-recursive local-clean x-local-clean \
+ distclean distclean-recursive local-distclean x-local-distclean \
+ extraclean extraclean-recursive local-extraclean x-local-extraclean
diff --git a/build/apr_threads.m4 b/build/apr_threads.m4
new file mode 100644
index 0000000..6895c3a
--- /dev/null
+++ b/build/apr_threads.m4
@@ -0,0 +1,314 @@
+dnl -------------------------------------------------------- -*- autoconf -*-
+dnl Licensed to the Apache Software Foundation (ASF) under one or more
+dnl contributor license agreements. See the NOTICE file distributed with
+dnl this work for additional information regarding copyright ownership.
+dnl The ASF licenses this file to You under the Apache License, Version 2.0
+dnl (the "License"); you may not use this file except in compliance with
+dnl the License. You may obtain a copy of the License at
+dnl
+dnl http://www.apache.org/licenses/LICENSE-2.0
+dnl
+dnl Unless required by applicable law or agreed to in writing, software
+dnl distributed under the License is distributed on an "AS IS" BASIS,
+dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+dnl See the License for the specific language governing permissions and
+dnl limitations under the License.
+
+dnl -----------------------------------------------------------------
+dnl apr_threads.m4: APR's autoconf macros for testing thread support
+dnl
+
+dnl
+dnl APR_CHECK_PTHREADS_H([ ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
+dnl
+dnl gcc issues warnings when parsing AIX 4.3.3's pthread.h
+dnl which causes autoconf to incorrectly conclude that
+dnl pthreads is not available.
+dnl Turn off warnings if we're using gcc.
+dnl
+AC_DEFUN(APR_CHECK_PTHREADS_H, [
+ if test "$GCC" = "yes"; then
+ SAVE_FL="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -w"
+ AC_CHECK_HEADERS(pthread.h, [ $1 ] , [ $2 ] )
+ CPPFLAGS="$SAVE_FL"
+ else
+ AC_CHECK_HEADERS(pthread.h, [ $1 ] , [ $2 ] )
+ fi
+])dnl
+
+
+dnl
+dnl APR_CHECK_PTHREAD_GETSPECIFIC_TWO_ARGS
+dnl
+AC_DEFUN(APR_CHECK_PTHREAD_GETSPECIFIC_TWO_ARGS, [
+AC_CACHE_CHECK(whether pthread_getspecific takes two arguments, ac_cv_pthread_getspecific_two_args,[
+AC_TRY_COMPILE([
+#include <pthread.h>
+],[
+pthread_key_t key;
+void *tmp;
+pthread_getspecific(key,&tmp);
+],[
+ ac_cv_pthread_getspecific_two_args=yes
+],[
+ ac_cv_pthread_getspecific_two_args=no
+])
+])
+
+if test "$ac_cv_pthread_getspecific_two_args" = "yes"; then
+ AC_DEFINE(PTHREAD_GETSPECIFIC_TAKES_TWO_ARGS, 1, [Define if pthread_getspecific() has two args])
+fi
+])dnl
+
+
+dnl
+dnl APR_CHECK_PTHREAD_ATTR_GETDETACHSTATE_ONE_ARG
+dnl
+AC_DEFUN(APR_CHECK_PTHREAD_ATTR_GETDETACHSTATE_ONE_ARG, [
+AC_CACHE_CHECK(whether pthread_attr_getdetachstate takes one argument, ac_cv_pthread_attr_getdetachstate_one_arg,[
+AC_TRY_COMPILE([
+#include <pthread.h>
+],[
+pthread_attr_t *attr;
+pthread_attr_getdetachstate(attr);
+],[
+ ac_cv_pthread_attr_getdetachstate_one_arg=yes
+],[
+ ac_cv_pthread_attr_getdetachstate_one_arg=no
+])
+])
+
+if test "$ac_cv_pthread_attr_getdetachstate_one_arg" = "yes"; then
+ AC_DEFINE(PTHREAD_ATTR_GETDETACHSTATE_TAKES_ONE_ARG, 1, [Define if pthread_attr_getdetachstate() has one arg])
+fi
+])dnl
+
+
+dnl
+dnl APR_PTHREADS_TRY_RUN(actions-if-success)
+dnl
+dnl Try running a program which uses pthreads, executing the
+dnl actions-if-success commands on success.
+dnl
+AC_DEFUN(APR_PTHREADS_TRY_RUN, [
+AC_TRY_RUN( [
+#include <pthread.h>
+#include <stddef.h>
+
+void *thread_routine(void *data) {
+ return data;
+}
+
+int main() {
+ pthread_t thd;
+ pthread_mutexattr_t mattr;
+ pthread_once_t once_init = PTHREAD_ONCE_INIT;
+ int data = 1;
+ pthread_mutexattr_init(&mattr);
+ return pthread_create(&thd, NULL, thread_routine, &data);
+} ], [apr_p_t_r=yes], [apr_p_t_r=no], [apr_p_t_r=no])
+
+if test $apr_p_t_r = yes; then
+ $1
+fi
+
+])dnl
+
+
+dnl
+dnl APR_PTHREADS_CHECK()
+dnl
+dnl Try to find a way to enable POSIX threads. Sets the
+dnl pthreads_working variable to "yes" on success.
+dnl
+AC_DEFUN([APR_PTHREADS_CHECK], [
+
+AC_CACHE_CHECK([for CFLAGS needed for pthreads], [apr_cv_pthreads_cflags],
+[apr_ptc_cflags=$CFLAGS
+ for flag in none -kthread -pthread -pthreads -mt -mthreads -Kthread -threads; do
+ CFLAGS=$apr_ptc_cflags
+ test "x$flag" != "xnone" && CFLAGS="$CFLAGS $flag"
+ APR_PTHREADS_TRY_RUN([
+ apr_cv_pthreads_cflags="$flag"
+ break
+ ])
+ done
+ CFLAGS=$apr_ptc_cflags
+])
+
+if test -n "$apr_cv_pthreads_cflags"; then
+ pthreads_working=yes
+ if test "x$apr_cv_pthreads_cflags" != "xnone"; then
+ APR_ADDTO(CFLAGS,[$apr_cv_pthreads_cflags])
+ fi
+fi
+
+# The CFLAGS may or may not be sufficient to ensure that libapr
+# depends on the pthreads library: some versions of libtool
+# drop -pthread when passed on the link line; some versions of
+# gcc ignore -pthread when linking a shared object. So always
+# try and add the relevant library to LIBS too.
+
+AC_CACHE_CHECK([for LIBS needed for pthreads], [apr_cv_pthreads_lib], [
+ apr_ptc_libs=$LIBS
+ for lib in -lpthread -lpthreads -lc_r; do
+ LIBS="$apr_ptc_libs $lib"
+ APR_PTHREADS_TRY_RUN([
+ apr_cv_pthreads_lib=$lib
+ break
+ ])
+ done
+ LIBS=$apr_ptc_libs
+])
+
+if test -n "$apr_cv_pthreads_lib"; then
+ pthreads_working=yes
+ APR_ADDTO(LIBS,[$apr_cv_pthreads_lib])
+fi
+
+if test "$pthreads_working" = "yes"; then
+ threads_result="POSIX Threads found"
+else
+ threads_result="POSIX Threads not found"
+fi
+])dnl
+
+dnl
+dnl APR_PTHREADS_CHECK_SAVE
+dnl APR_PTHREADS_CHECK_RESTORE
+dnl
+dnl Save the global environment variables that might be modified during
+dnl the checks for threading support so that they can restored if the
+dnl result is not what the caller wanted.
+dnl
+AC_DEFUN(APR_PTHREADS_CHECK_SAVE, [
+ apr_pthsv_CFLAGS="$CFLAGS"
+ apr_pthsv_LIBS="$LIBS"
+])dnl
+
+AC_DEFUN(APR_PTHREADS_CHECK_RESTORE, [
+ CFLAGS="$apr_pthsv_CFLAGS"
+ LIBS="$apr_pthsv_LIBS"
+])dnl
+
+dnl
+dnl APR_CHECK_SIGWAIT_ONE_ARG
+dnl
+AC_DEFUN([APR_CHECK_SIGWAIT_ONE_ARG], [
+ AC_CACHE_CHECK(whether sigwait takes one argument,ac_cv_sigwait_one_arg,[
+ AC_TRY_COMPILE([
+#if defined(__NETBSD__) || defined(DARWIN)
+ /* When using the unproven-pthreads package, we need to pull in this
+ * header to get a prototype for sigwait(). Else things will fail later
+ * on. XXX Should probably be fixed in the unproven-pthreads package.
+ * Darwin is declaring sigwait() in the wrong place as well.
+ */
+#include <pthread.h>
+#endif
+#include <signal.h>
+],[
+ sigset_t set;
+
+ sigwait(&set);
+],[
+ ac_cv_sigwait_one_arg=yes
+],[
+ ac_cv_sigwait_one_arg=no
+])])
+ if test "$ac_cv_sigwait_one_arg" = "yes"; then
+ AC_DEFINE(SIGWAIT_TAKES_ONE_ARG,1,[ ])
+ fi
+])
+
+dnl Check for recursive mutex support (per SUSv3).
+AC_DEFUN([APR_CHECK_PTHREAD_RECURSIVE_MUTEX], [
+ AC_CACHE_CHECK([for recursive mutex support], [apr_cv_mutex_recursive],
+[AC_TRY_RUN([#include <sys/types.h>
+#include <pthread.h>
+#include <stdlib.h>
+
+int main() {
+ pthread_mutexattr_t attr;
+ pthread_mutex_t m;
+
+ exit (pthread_mutexattr_init(&attr)
+ || pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE)
+ || pthread_mutex_init(&m, &attr));
+}], [apr_cv_mutex_recursive=yes], [apr_cv_mutex_recursive=no],
+[apr_cv_mutex_recursive=no])])
+
+if test "$apr_cv_mutex_recursive" = "yes"; then
+ AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], 1,
+ [Define if recursive pthread mutexes are available])
+fi
+])
+
+dnl Check for robust process-shared mutex support
+AC_DEFUN([APR_CHECK_PTHREAD_ROBUST_SHARED_MUTEX], [
+AC_CACHE_CHECK([for robust cross-process mutex support],
+[apr_cv_mutex_robust_shared],
+[AC_TRY_RUN([
+#include <sys/types.h>
+#include <pthread.h>
+#include <stdlib.h>
+
+int main(int argc, char **argv)
+{
+ pthread_mutex_t mutex;
+ pthread_mutexattr_t attr;
+
+ if (pthread_mutexattr_init(&attr))
+ exit(1);
+ if (pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED))
+ exit(2);
+ if (pthread_mutexattr_setrobust(&attr, PTHREAD_MUTEX_ROBUST))
+ exit(3);
+ if (pthread_mutexattr_setprotocol(&attr, PTHREAD_PRIO_INHERIT))
+ exit(4);
+ if (pthread_mutex_init(&mutex, &attr))
+ exit(5);
+ if (pthread_mutexattr_destroy(&attr))
+ exit(6);
+ if (pthread_mutex_destroy(&mutex))
+ exit(7);
+
+ exit(0);
+}], [apr_cv_mutex_robust_shared=yes], [
+AC_TRY_RUN([
+#include <sys/types.h>
+#include <pthread.h>
+#include <stdlib.h>
+
+int main(int argc, char **argv)
+{
+ pthread_mutex_t mutex;
+ pthread_mutexattr_t attr;
+
+ if (pthread_mutexattr_init(&attr))
+ exit(1);
+ if (pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED))
+ exit(2);
+ if (pthread_mutexattr_setrobust_np(&attr, PTHREAD_MUTEX_ROBUST_NP))
+ exit(3);
+ if (pthread_mutexattr_setprotocol(&attr, PTHREAD_PRIO_INHERIT))
+ exit(4);
+ if (pthread_mutex_init(&mutex, &attr))
+ exit(5);
+ if (pthread_mutexattr_destroy(&attr))
+ exit(6);
+ if (pthread_mutex_destroy(&mutex))
+ exit(7);
+
+ exit(0);
+}], [apr_cv_mutex_robust_shared=np], [apr_cv_mutex_robust_shared=no])
+])])
+
+if test "$apr_cv_mutex_robust_shared" = "yes"; then
+ AC_DEFINE([HAVE_PTHREAD_MUTEX_ROBUST], 1,
+ [Define if cross-process robust mutexes are available])
+elif test "$apr_cv_mutex_robust_shared" = "np"; then
+ AC_DEFINE([HAVE_PTHREAD_MUTEX_ROBUST_NP], 1,
+ [Define if non-posix/portable cross-process robust mutexes are available])
+fi
+])
diff --git a/build/apr_win32.m4 b/build/apr_win32.m4
new file mode 100644
index 0000000..f981374
--- /dev/null
+++ b/build/apr_win32.m4
@@ -0,0 +1,33 @@
+
+dnl if $2 contains '@dd', links against mingw symbols
+dnl otherwise calls AC_CHECK_LIB
+AC_DEFUN([APR_CHECK_DLL_FUNC],[
+m4_define($1_function_name,m4_substr($2,0,m4_index($2,[@])))
+m4_define($1_function_arglength,m4_substr($2,m4_incr(m4_index($2,[@]))))
+m4_define($1_[function_name]_arglength,m4_substr($2,m4_incr(m4_index($2,[@]))))
+dnl m4_define(apr_check_dll_id,$1_m4_defn($1_function_name))
+
+AC_CACHE_CHECK([for $2 in $1],[ac_cv_lib_$1_]$1_function_name,[
+
+ac_func_search_save_LIBS=$LIBS
+LIBS="$LIBS -l$1"
+
+AC_TRY_LINK([
+#pragma pack(1)
+struct x {
+]m4_for([byte_id], 1, m4_defn([$1_function_name_arglength]), 1,[[ char c]]byte_id;
+)[};
+__stdcall ]$1_function_name[(]struct x[);],[
+struct x s = {0};
+]$1_function_name[(s)],
+[ac_cv_lib_$1_]$1_function_name[=yes],[ac_cv_lib_$1_]$1_function_name[=no])
+LIBS=$ac_func_search_save_LIBS
+])dnl AC_CACHE_CHECK
+
+AS_IF([test $ac_cv_lib_$1_]$1_function_name[ = yes],
+ [m4_default([$3], [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_LIB$1),,Enable if this library is available)
+ LIBS="-l$1 $LIBS"
+])],
+ [$4])dnl
+])
+
diff --git a/build/aprapp.dep b/build/aprapp.dep
new file mode 100644
index 0000000..2379544
--- /dev/null
+++ b/build/aprapp.dep
@@ -0,0 +1,32 @@
+# Microsoft Developer Studio Generated Dependency File, included by aprapp.mak
+
+..\misc\win32\apr_app.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"\
+
diff --git a/build/aprapp.dsp b/build/aprapp.dsp
new file mode 100644
index 0000000..b8b08eb
--- /dev/null
+++ b/build/aprapp.dsp
@@ -0,0 +1,191 @@
+# Microsoft Developer Studio Project File - Name="aprapp" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Static Library" 0x0104
+
+CFG=aprapp - Win32 Release
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "aprapp.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "aprapp.mak" CFG="aprapp - Win32 Release"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "aprapp - Win32 Release" (based on "Win32 (x86) Static Library")
+!MESSAGE "aprapp - Win32 Debug" (based on "Win32 (x86) Static Library")
+!MESSAGE "aprapp - Win32 Release9x" (based on "Win32 (x86) Static Library")
+!MESSAGE "aprapp - Win32 Debug9x" (based on "Win32 (x86) Static Library")
+!MESSAGE "aprapp - x64 Release" (based on "Win32 (x86) Static Library")
+!MESSAGE "aprapp - x64 Debug" (based on "Win32 (x86) Static Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "aprapp - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "..\LibR"
+# PROP BASE Intermediate_Dir "LibR"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\LibR"
+# PROP Intermediate_Dir "LibR"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
+# ADD CPP /nologo /MD /W3 /O2 /Oy- /Zi /I "../include" /I "../include/arch" /I "../include/arch/win32" /I "../include/arch/unix" /D "NDEBUG" /D "WINNT" /D "WIN32" /D "_WINDOWS" /D APR_APP /D "APR_DECLARE_STATIC" /Fo"$(INTDIR)\" /Fd"$(OUTDIR)\aprapp-1" /FD /c
+# ADD BASE RSC /l 0x409
+# ADD RSC /l 0x409
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"..\LibR\aprapp-1.lib"
+
+!ELSEIF "$(CFG)" == "aprapp - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "..\LibD"
+# PROP BASE Intermediate_Dir "LibD"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\LibD"
+# PROP Intermediate_Dir "LibD"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
+# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../include" /I "../include/arch" /I "../include/arch/win32" /I "../include/arch/unix" /D "_DEBUG" /D "WINNT" /D "WIN32" /D "_WINDOWS" /D APR_APP /D "APR_DECLARE_STATIC" /Fo"$(INTDIR)\" /Fd"$(OUTDIR)\aprapp-1" /FD /c
+# ADD BASE RSC /l 0x409
+# ADD RSC /l 0x409
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"..\LibD\aprapp-1.lib"
+
+!ELSEIF "$(CFG)" == "aprapp - Win32 Release9x"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "..\9x\LibR"
+# PROP BASE Intermediate_Dir "9x\LibR"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\9x\LibR"
+# PROP Intermediate_Dir "9x\LibR"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
+# ADD CPP /nologo /MD /W3 /O2 /Oy- /Zi /I "../include" /I "../include/arch" /I "../include/arch/win32" /I "../include/arch/unix" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D APR_APP /D "APR_DECLARE_STATIC" /Fo"$(INTDIR)\" /Fd"$(OUTDIR)\aprapp-1" /FD /c
+# ADD BASE RSC /l 0x409
+# ADD RSC /l 0x409
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"..\9x\LibR\aprapp-1.lib"
+
+!ELSEIF "$(CFG)" == "aprapp - Win32 Debug9x"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "..\9x\LibD"
+# PROP BASE Intermediate_Dir "9x\LibD"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\9x\LibD"
+# PROP Intermediate_Dir "9x\LibD"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
+# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../include" /I "../include/arch" /I "../include/arch/win32" /I "../include/arch/unix" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D APR_APP /D "APR_DECLARE_STATIC" /Fo"$(INTDIR)\" /Fd"$(OUTDIR)\aprapp-1" /FD /c
+# ADD BASE RSC /l 0x409
+# ADD RSC /l 0x409
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"..\9x\LibD\aprapp-1.lib"
+
+!ELSEIF "$(CFG)" == "aprapp - x64 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "..\x64\LibR"
+# PROP BASE Intermediate_Dir "x64\LibR"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\x64\LibR"
+# PROP Intermediate_Dir "x64\LibR"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
+# ADD CPP /nologo /MD /W3 /O2 /Oy- /Zi /I "../include" /I "../include/arch" /I "../include/arch/win32" /I "../include/arch/unix" /D "NDEBUG" /D "WINNT" /D "WIN32" /D "_WINDOWS" /D APR_APP /D "APR_DECLARE_STATIC" /Fo"$(INTDIR)\" /Fd"$(OUTDIR)\aprapp-1" /FD /c
+# ADD BASE RSC /l 0x409
+# ADD RSC /l 0x409
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"..\x64\LibR\aprapp-1.lib"
+
+!ELSEIF "$(CFG)" == "aprapp - x64 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "..\x64\LibD"
+# PROP BASE Intermediate_Dir "x64\LibD"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\x64\LibD"
+# PROP Intermediate_Dir "x64\LibD"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
+# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../include" /I "../include/arch" /I "../include/arch/win32" /I "../include/arch/unix" /D "_DEBUG" /D "WINNT" /D "WIN32" /D "_WINDOWS" /D APR_APP /D "APR_DECLARE_STATIC" /Fo"$(INTDIR)\" /Fd"$(OUTDIR)\aprapp-1" /FD /c
+# ADD BASE RSC /l 0x409
+# ADD RSC /l 0x409
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"..\x64\LibD\aprapp-1.lib"
+
+!ENDIF
+
+# Begin Target
+
+# Name "aprapp - Win32 Release"
+# Name "aprapp - Win32 Debug"
+# Name "aprapp - Win32 Release9x"
+# Name "aprapp - Win32 Debug9x"
+# Name "aprapp - x64 Release"
+# Name "aprapp - x64 Debug"
+# Begin Source File
+
+SOURCE=..\misc\win32\apr_app.c
+# End Source File
+# End Target
+# End Project
diff --git a/build/aprapp.mak b/build/aprapp.mak
new file mode 100644
index 0000000..8246e05
--- /dev/null
+++ b/build/aprapp.mak
@@ -0,0 +1,614 @@
+# Microsoft Developer Studio Generated NMAKE File, Based on aprapp.dsp
+!IF "$(CFG)" == ""
+CFG=aprapp - Win32 Release
+!MESSAGE No configuration specified. Defaulting to aprapp - Win32 Release.
+!ENDIF
+
+!IF "$(CFG)" != "aprapp - Win32 Release" && "$(CFG)" != "aprapp - Win32 Debug" && "$(CFG)" != "aprapp - Win32 Release9x" && "$(CFG)" != "aprapp - Win32 Debug9x" && "$(CFG)" != "aprapp - x64 Release" && "$(CFG)" != "aprapp - 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 "aprapp.mak" CFG="aprapp - Win32 Release"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "aprapp - Win32 Release" (based on "Win32 (x86) Static Library")
+!MESSAGE "aprapp - Win32 Debug" (based on "Win32 (x86) Static Library")
+!MESSAGE "aprapp - Win32 Release9x" (based on "Win32 (x86) Static Library")
+!MESSAGE "aprapp - Win32 Debug9x" (based on "Win32 (x86) Static Library")
+!MESSAGE "aprapp - x64 Release" (based on "Win32 (x86) Static Library")
+!MESSAGE "aprapp - 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)" == "aprapp - Win32 Release"
+
+OUTDIR=.\..\LibR
+INTDIR=.\LibR
+# Begin Custom Macros
+OutDir=.\..\LibR
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0"
+
+ALL : "$(OUTDIR)\aprapp-1.lib"
+
+!ELSE
+
+ALL : "preaprapp - Win32 Release" "$(OUTDIR)\aprapp-1.lib"
+
+!ENDIF
+
+!IF "$(RECURSE)" == "1"
+CLEAN :"preaprapp - Win32 ReleaseCLEAN"
+!ELSE
+CLEAN :
+!ENDIF
+ -@erase "$(INTDIR)\apr_app.obj"
+ -@erase "$(OUTDIR)\aprapp-1.lib"
+ -@erase "..\LibR\aprapp-1.idb"
+ -@erase "..\LibR\aprapp-1.pdb"
+
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+"$(INTDIR)" :
+ if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
+
+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 "WINNT" /D "WIN32" /D "_WINDOWS" /D "APR_APP" /D "APR_DECLARE_STATIC" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\aprapp-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)\aprapp.bsc"
+BSC32_SBRS= \
+
+LIB32=link.exe -lib
+LIB32_FLAGS=/nologo /out:"$(OUTDIR)\aprapp-1.lib"
+LIB32_OBJS= \
+ "$(INTDIR)\apr_app.obj"
+
+"$(OUTDIR)\aprapp-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+ $(LIB32) @<<
+ $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+<<
+
+!ELSEIF "$(CFG)" == "aprapp - Win32 Debug"
+
+OUTDIR=.\..\LibD
+INTDIR=.\LibD
+# Begin Custom Macros
+OutDir=.\..\LibD
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0"
+
+ALL : "$(OUTDIR)\aprapp-1.lib"
+
+!ELSE
+
+ALL : "preaprapp - Win32 Debug" "$(OUTDIR)\aprapp-1.lib"
+
+!ENDIF
+
+!IF "$(RECURSE)" == "1"
+CLEAN :"preaprapp - Win32 DebugCLEAN"
+!ELSE
+CLEAN :
+!ENDIF
+ -@erase "$(INTDIR)\apr_app.obj"
+ -@erase "$(OUTDIR)\aprapp-1.lib"
+ -@erase "..\LibD\aprapp-1.idb"
+ -@erase "..\LibD\aprapp-1.pdb"
+
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+"$(INTDIR)" :
+ if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
+
+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 "WINNT" /D "WIN32" /D "_WINDOWS" /D "APR_APP" /D "APR_DECLARE_STATIC" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\aprapp-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)\aprapp.bsc"
+BSC32_SBRS= \
+
+LIB32=link.exe -lib
+LIB32_FLAGS=/nologo /out:"$(OUTDIR)\aprapp-1.lib"
+LIB32_OBJS= \
+ "$(INTDIR)\apr_app.obj"
+
+"$(OUTDIR)\aprapp-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+ $(LIB32) @<<
+ $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+<<
+
+!ELSEIF "$(CFG)" == "aprapp - Win32 Release9x"
+
+OUTDIR=.\..\9x\LibR
+INTDIR=.\9x\LibR
+# Begin Custom Macros
+OutDir=.\..\9x\LibR
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0"
+
+ALL : "$(OUTDIR)\aprapp-1.lib"
+
+!ELSE
+
+ALL : "preaprapp - Win32 Release9x" "$(OUTDIR)\aprapp-1.lib"
+
+!ENDIF
+
+!IF "$(RECURSE)" == "1"
+CLEAN :"preaprapp - Win32 Release9xCLEAN"
+!ELSE
+CLEAN :
+!ENDIF
+ -@erase "$(INTDIR)\apr_app.obj"
+ -@erase "$(OUTDIR)\aprapp-1.lib"
+ -@erase "..\9x\LibR\aprapp-1.idb"
+ -@erase "..\9x\LibR\aprapp-1.pdb"
+
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+"$(INTDIR)" :
+ if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
+
+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 "WIN32" /D "_WINDOWS" /D "APR_APP" /D "APR_DECLARE_STATIC" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\aprapp-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)\aprapp.bsc"
+BSC32_SBRS= \
+
+LIB32=link.exe -lib
+LIB32_FLAGS=/nologo /out:"$(OUTDIR)\aprapp-1.lib"
+LIB32_OBJS= \
+ "$(INTDIR)\apr_app.obj"
+
+"$(OUTDIR)\aprapp-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+ $(LIB32) @<<
+ $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+<<
+
+!ELSEIF "$(CFG)" == "aprapp - Win32 Debug9x"
+
+OUTDIR=.\..\9x\LibD
+INTDIR=.\9x\LibD
+# Begin Custom Macros
+OutDir=.\..\9x\LibD
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0"
+
+ALL : "$(OUTDIR)\aprapp-1.lib"
+
+!ELSE
+
+ALL : "preaprapp - Win32 Debug9x" "$(OUTDIR)\aprapp-1.lib"
+
+!ENDIF
+
+!IF "$(RECURSE)" == "1"
+CLEAN :"preaprapp - Win32 Debug9xCLEAN"
+!ELSE
+CLEAN :
+!ENDIF
+ -@erase "$(INTDIR)\apr_app.obj"
+ -@erase "$(OUTDIR)\aprapp-1.lib"
+ -@erase "..\9x\LibD\aprapp-1.idb"
+ -@erase "..\9x\LibD\aprapp-1.pdb"
+
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+"$(INTDIR)" :
+ if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
+
+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 "WIN32" /D "_WINDOWS" /D "APR_APP" /D "APR_DECLARE_STATIC" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\aprapp-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)\aprapp.bsc"
+BSC32_SBRS= \
+
+LIB32=link.exe -lib
+LIB32_FLAGS=/nologo /out:"$(OUTDIR)\aprapp-1.lib"
+LIB32_OBJS= \
+ "$(INTDIR)\apr_app.obj"
+
+"$(OUTDIR)\aprapp-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+ $(LIB32) @<<
+ $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+<<
+
+!ELSEIF "$(CFG)" == "aprapp - x64 Release"
+
+OUTDIR=.\..\x64\LibR
+INTDIR=.\x64\LibR
+# Begin Custom Macros
+OutDir=.\..\x64\LibR
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0"
+
+ALL : "$(OUTDIR)\aprapp-1.lib"
+
+!ELSE
+
+ALL : "preaprapp - x64 Release" "$(OUTDIR)\aprapp-1.lib"
+
+!ENDIF
+
+!IF "$(RECURSE)" == "1"
+CLEAN :"preaprapp - x64 ReleaseCLEAN"
+!ELSE
+CLEAN :
+!ENDIF
+ -@erase "$(INTDIR)\apr_app.obj"
+ -@erase "$(OUTDIR)\aprapp-1.lib"
+ -@erase "..\x64\LibR\aprapp-1.idb"
+ -@erase "..\x64\LibR\aprapp-1.pdb"
+
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+"$(INTDIR)" :
+ if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
+
+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 "WINNT" /D "WIN32" /D "_WINDOWS" /D "APR_APP" /D "APR_DECLARE_STATIC" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\aprapp-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)\aprapp.bsc"
+BSC32_SBRS= \
+
+LIB32=link.exe -lib
+LIB32_FLAGS=/nologo /out:"$(OUTDIR)\aprapp-1.lib"
+LIB32_OBJS= \
+ "$(INTDIR)\apr_app.obj"
+
+"$(OUTDIR)\aprapp-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+ $(LIB32) @<<
+ $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+<<
+
+!ELSEIF "$(CFG)" == "aprapp - x64 Debug"
+
+OUTDIR=.\..\x64\LibD
+INTDIR=.\x64\LibD
+# Begin Custom Macros
+OutDir=.\..\x64\LibD
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0"
+
+ALL : "$(OUTDIR)\aprapp-1.lib"
+
+!ELSE
+
+ALL : "preaprapp - x64 Debug" "$(OUTDIR)\aprapp-1.lib"
+
+!ENDIF
+
+!IF "$(RECURSE)" == "1"
+CLEAN :"preaprapp - x64 DebugCLEAN"
+!ELSE
+CLEAN :
+!ENDIF
+ -@erase "$(INTDIR)\apr_app.obj"
+ -@erase "$(OUTDIR)\aprapp-1.lib"
+ -@erase "..\x64\LibD\aprapp-1.idb"
+ -@erase "..\x64\LibD\aprapp-1.pdb"
+
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+"$(INTDIR)" :
+ if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
+
+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 "WINNT" /D "WIN32" /D "_WINDOWS" /D "APR_APP" /D "APR_DECLARE_STATIC" /Fo"$(INTDIR)\\" /Fd"$(OUTDIR)\aprapp-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)\aprapp.bsc"
+BSC32_SBRS= \
+
+LIB32=link.exe -lib
+LIB32_FLAGS=/nologo /out:"$(OUTDIR)\aprapp-1.lib"
+LIB32_OBJS= \
+ "$(INTDIR)\apr_app.obj"
+
+"$(OUTDIR)\aprapp-1.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+ $(LIB32) @<<
+ $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+<<
+
+!ENDIF
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("aprapp.dep")
+!INCLUDE "aprapp.dep"
+!ELSE
+!MESSAGE Warning: cannot find "aprapp.dep"
+!ENDIF
+!ENDIF
+
+
+!IF "$(CFG)" == "aprapp - Win32 Release" || "$(CFG)" == "aprapp - Win32 Debug" || "$(CFG)" == "aprapp - Win32 Release9x" || "$(CFG)" == "aprapp - Win32 Debug9x" || "$(CFG)" == "aprapp - x64 Release" || "$(CFG)" == "aprapp - x64 Debug"
+
+!IF "$(CFG)" == "aprapp - Win32 Release"
+
+"preaprapp - Win32 Release" :
+ cd "."
+ NMAKE /nologo /f NUL
+ cd "."
+
+"preaprapp - Win32 ReleaseCLEAN" :
+ cd "."
+ cd "."
+
+!ELSEIF "$(CFG)" == "aprapp - Win32 Debug"
+
+"preaprapp - Win32 Debug" :
+ cd "."
+ NMAKE /nologo /f NUL
+ cd "."
+
+"preaprapp - Win32 DebugCLEAN" :
+ cd "."
+ cd "."
+
+!ELSEIF "$(CFG)" == "aprapp - Win32 Release9x"
+
+"preaprapp - Win32 Release9x" :
+ cd "."
+ NMAKE /nologo /f NUL
+ cd "."
+
+"preaprapp - Win32 Release9xCLEAN" :
+ cd "."
+ cd "."
+
+!ELSEIF "$(CFG)" == "aprapp - Win32 Debug9x"
+
+"preaprapp - Win32 Debug9x" :
+ cd "."
+ NMAKE /nologo /f NUL
+ cd "."
+
+"preaprapp - Win32 Debug9xCLEAN" :
+ cd "."
+ cd "."
+
+!ELSEIF "$(CFG)" == "aprapp - x64 Release"
+
+"preaprapp - x64 Release" :
+ cd "."
+ NMAKE /nologo /f NUL
+ cd "."
+
+"preaprapp - x64 ReleaseCLEAN" :
+ cd "."
+ cd "."
+
+!ELSEIF "$(CFG)" == "aprapp - x64 Debug"
+
+"preaprapp - x64 Debug" :
+ cd "."
+ NMAKE /nologo /f NUL
+ cd "."
+
+"preaprapp - x64 DebugCLEAN" :
+ cd "."
+ cd "."
+
+!ENDIF
+
+SOURCE=..\misc\win32\apr_app.c
+
+"$(INTDIR)\apr_app.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+
+!ENDIF
+
diff --git a/build/buildcheck.sh b/build/buildcheck.sh
new file mode 100755
index 0000000..76ff8ce
--- /dev/null
+++ b/build/buildcheck.sh
@@ -0,0 +1,70 @@
+#! /bin/sh
+
+echo "buildconf: checking installation..."
+res=0
+
+# any python
+python=${PYTHON-`build/PrintPath python3 python2 python`}
+if test -z "$python"; then
+ echo "buildconf: python not found."
+ echo " You need python installed"
+ echo " to build APR from SVN."
+ res=1
+else
+ py_version=`$python -c 'import sys; print(sys.version)' 2>&1|sed 's/ .*//;q'`
+ echo "buildconf: python version $py_version (ok)"
+fi
+
+# autoconf 2.59 or newer
+ac_version=`${AUTOCONF:-autoconf} --version 2>/dev/null|sed -e 's/^[^0-9]*//;s/[a-z]* *$//;q'`
+if test -z "$ac_version"; then
+ echo "buildconf: autoconf not found."
+ echo " You need autoconf version 2.59 or newer installed"
+ echo " to build APR from SVN."
+ res=1
+else
+ IFS=.; set $ac_version; IFS=' '
+ if test "$1" = "2" -a "$2" -lt "59" || test "$1" -lt "2"; then
+ echo "buildconf: autoconf version $ac_version found."
+ echo " You need autoconf version 2.59 or newer installed"
+ echo " to build APR from SVN."
+ res=1
+ else
+ echo "buildconf: autoconf version $ac_version (ok)"
+ fi
+fi
+
+# Sample libtool --version outputs:
+# ltmain.sh (GNU libtool) 1.3.3 (1.385.2.181 1999/07/02 15:49:11)
+# ltmain.sh (GNU libtool 1.1361 2004/01/02 23:10:52) 1.5a
+# output is multiline from 1.5 onwards
+
+# Require libtool 1.4 or newer
+libtool=`build/PrintPath glibtool1 glibtool libtool libtool15 libtool14`
+lt_pversion=`$libtool --version 2>/dev/null|sed -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'`
+if test -z "$lt_pversion"; then
+ echo "buildconf: libtool not found."
+ echo " You need libtool version 1.4 or newer installed"
+ echo " to build APR from SVN."
+ res=1
+else
+ lt_version=`echo $lt_pversion|sed -e 's/\([a-z]*\)$/.\1/'`
+ IFS=.; set $lt_version; IFS=' '
+ lt_status="good"
+ if test "$1" = "1"; then
+ if test "$2" -lt "4"; then
+ lt_status="bad"
+ fi
+ fi
+ if test $lt_status = "good"; then
+ echo "buildconf: libtool version $lt_pversion (ok)"
+ else
+ echo "buildconf: libtool version $lt_pversion found."
+ echo " You need libtool version 1.4 or newer installed"
+ echo " to build APR from SVN."
+ res=1
+ fi
+fi
+
+exit $res
+
diff --git a/build/config.guess b/build/config.guess
new file mode 100755
index 0000000..0f9b29c
--- /dev/null
+++ b/build/config.guess
@@ -0,0 +1,1493 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright 1992-2019 Free Software Foundation, Inc.
+
+timestamp='2019-01-01'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+#
+# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
+#
+# You can get the latest version of this script from:
+# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+#
+# Please send patches to <config-patches@gnu.org>.
+
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Options:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright 1992-2019 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
+ --help | --h* | -h )
+ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# != 0; then
+ echo "$me: too many arguments$help" >&2
+ exit 1
+fi
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+tmp=
+# shellcheck disable=SC2172
+trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
+
+set_cc_for_build() {
+ : "${TMPDIR=/tmp}"
+ # shellcheck disable=SC2039
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
+ dummy=$tmp/dummy
+ case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
+ ,,) echo "int x;" > "$dummy.c"
+ for driver in cc gcc c89 c99 ; do
+ if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$driver"
+ break
+ fi
+ done
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+ esac
+}
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if test -f /.attbin/uname ; then
+ PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+case "$UNAME_SYSTEM" in
+Linux|GNU|GNU/*)
+ # If the system lacks a compiler, then just pick glibc.
+ # We could probably try harder.
+ LIBC=gnu
+
+ set_cc_for_build
+ cat <<-EOF > "$dummy.c"
+ #include <features.h>
+ #if defined(__UCLIBC__)
+ LIBC=uclibc
+ #elif defined(__dietlibc__)
+ LIBC=dietlibc
+ #else
+ LIBC=gnu
+ #endif
+ EOF
+ eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
+
+ # If ldd exists, use it to detect musl libc.
+ if command -v ldd >/dev/null && \
+ ldd --version 2>&1 | grep -q ^musl
+ then
+ LIBC=musl
+ fi
+ ;;
+esac
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+ # compatibility and a consistent mechanism for selecting the
+ # object file format.
+ #
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
+ UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
+ "/sbin/$sysctl" 2>/dev/null || \
+ "/usr/sbin/$sysctl" 2>/dev/null || \
+ echo unknown)`
+ case "$UNAME_MACHINE_ARCH" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ sh5el) machine=sh5le-unknown ;;
+ earmv*)
+ arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
+ endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
+ machine="${arch}${endian}"-unknown
+ ;;
+ *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+ # to ELF recently (or will in the future) and ABI.
+ case "$UNAME_MACHINE_ARCH" in
+ earm*)
+ os=netbsdelf
+ ;;
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ELF__
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ ;;
+ *)
+ os=netbsd
+ ;;
+ esac
+ # Determine ABI tags.
+ case "$UNAME_MACHINE_ARCH" in
+ earm*)
+ expr='s/^earmv[0-9]/-eabi/;s/eb$//'
+ abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
+ ;;
+ esac
+ # The OS release
+ # Debian GNU/NetBSD machines have a different userland, and
+ # thus, need a distinct triplet. However, they do not need
+ # kernel version information, so it can be replaced with a
+ # suitable tag, in the style of linux-gnu.
+ case "$UNAME_VERSION" in
+ Debian*)
+ release='-gnu'
+ ;;
+ *)
+ release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
+ ;;
+ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "$machine-${os}${release}${abi-}"
+ exit ;;
+ *:Bitrig:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+ echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
+ exit ;;
+ *:OpenBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
+ exit ;;
+ *:LibertyBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
+ echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
+ exit ;;
+ *:MidnightBSD:*:*)
+ echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
+ exit ;;
+ *:ekkoBSD:*:*)
+ echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
+ exit ;;
+ *:SolidBSD:*:*)
+ echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
+ exit ;;
+ macppc:MirBSD:*:*)
+ echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
+ exit ;;
+ *:MirBSD:*:*)
+ echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
+ exit ;;
+ *:Sortix:*:*)
+ echo "$UNAME_MACHINE"-unknown-sortix
+ exit ;;
+ *:Redox:*:*)
+ echo "$UNAME_MACHINE"-unknown-redox
+ exit ;;
+ mips:OSF1:*.*)
+ echo mips-dec-osf1
+ exit ;;
+ alpha:OSF1:*:*)
+ case $UNAME_RELEASE in
+ *4.0)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ ;;
+ *5.*)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
+ # covers most systems running today. This code pipes the CPU
+ # types through head -n 1, so we only detect the type of CPU 0.
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+ UNAME_MACHINE=alpha ;;
+ "EV4.5 (21064)")
+ UNAME_MACHINE=alpha ;;
+ "LCA4 (21066/21068)")
+ UNAME_MACHINE=alpha ;;
+ "EV5 (21164)")
+ UNAME_MACHINE=alphaev5 ;;
+ "EV5.6 (21164A)")
+ UNAME_MACHINE=alphaev56 ;;
+ "EV5.6 (21164PC)")
+ UNAME_MACHINE=alphapca56 ;;
+ "EV5.7 (21164PC)")
+ UNAME_MACHINE=alphapca57 ;;
+ "EV6 (21264)")
+ UNAME_MACHINE=alphaev6 ;;
+ "EV6.7 (21264A)")
+ UNAME_MACHINE=alphaev67 ;;
+ "EV6.8CB (21264C)")
+ UNAME_MACHINE=alphaev68 ;;
+ "EV6.8AL (21264B)")
+ UNAME_MACHINE=alphaev68 ;;
+ "EV6.8CX (21264D)")
+ UNAME_MACHINE=alphaev68 ;;
+ "EV6.9A (21264/EV69A)")
+ UNAME_MACHINE=alphaev69 ;;
+ "EV7 (21364)")
+ UNAME_MACHINE=alphaev7 ;;
+ "EV7.9 (21364A)")
+ UNAME_MACHINE=alphaev79 ;;
+ esac
+ # A Pn.n version is a patched version.
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ exitcode=$?
+ trap '' 0
+ exit $exitcode ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-unknown-sysv4
+ exit ;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo "$UNAME_MACHINE"-unknown-amigaos
+ exit ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo "$UNAME_MACHINE"-unknown-morphos
+ exit ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+ exit ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+ exit ;;
+ *:OS400:*:*)
+ echo powerpc-ibm-os400
+ exit ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix"$UNAME_RELEASE"
+ exit ;;
+ arm*:riscos:*:*|arm*:RISCOS:*:*)
+ echo arm-unknown-riscos
+ exit ;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+ exit ;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+ else
+ echo pyramid-pyramid-bsd
+ fi
+ exit ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit ;;
+ DRS?6000:unix:4.0:6*)
+ echo sparc-icl-nx6
+ exit ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) echo sparc-icl-nx7; exit ;;
+ esac ;;
+ s390x:SunOS:*:*)
+ echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
+ exit ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
+ exit ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
+ exit ;;
+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+ echo i386-pc-auroraux"$UNAME_RELEASE"
+ exit ;;
+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+ set_cc_for_build
+ SUN_ARCH=i386
+ # If there is a compiler, see if it is configured for 64-bit objects.
+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+ # This test works for both compilers.
+ if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ SUN_ARCH=x86_64
+ fi
+ fi
+ echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
+ exit ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
+ exit ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+ UNAME_RELEASE=`uname -v`
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
+ exit ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos"$UNAME_RELEASE"
+ exit ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos"$UNAME_RELEASE"
+ ;;
+ sun4)
+ echo sparc-sun-sunos"$UNAME_RELEASE"
+ ;;
+ esac
+ exit ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos"$UNAME_RELEASE"
+ exit ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
+ # to the lowercase version "mint" (or "freemint"). Finally
+ # the system name "TOS" denotes a system which is actually not
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint"$UNAME_RELEASE"
+ exit ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint"$UNAME_RELEASE"
+ exit ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ echo m68k-atari-mint"$UNAME_RELEASE"
+ exit ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ echo m68k-milan-mint"$UNAME_RELEASE"
+ exit ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ echo m68k-hades-mint"$UNAME_RELEASE"
+ exit ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ echo m68k-unknown-mint"$UNAME_RELEASE"
+ exit ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten"$UNAME_RELEASE"
+ exit ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten"$UNAME_RELEASE"
+ exit ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+ exit ;;
+ RISC*:ULTRIX:*:*)
+ echo mips-dec-ultrix"$UNAME_RELEASE"
+ exit ;;
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix"$UNAME_RELEASE"
+ exit ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ echo clipper-intergraph-clix"$UNAME_RELEASE"
+ exit ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
+#ifdef __cplusplus
+#include <stdio.h> /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+ printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_SVR4)
+ printf ("mips-mips-