NameDateSize

..20-Dec-201682

apr-config.inH A D08-Mar-20156.7 KiB

apr.depH A D08-Mar-201512.8 KiB

apr.dspH A D08-Mar-201517.7 KiB

apr.dswH A D08-Mar-20151.7 KiB

apr.makH A D08-Mar-201544.3 KiB

apr.pc.inH A D08-Mar-2015313

apr.specH A D08-Mar-20152.5 KiB

atomic/H20-Dec-20163

build-outputs.mkH A D08-Mar-201564 KiB

build.confH A D08-Mar-2015619

buildconfH A D08-Mar-20154.3 KiB

CHANGESH A D08-Mar-20159.4 KiB

config.layoutH A D08-Mar-20157.2 KiB

configureH A D08-Mar-2015807.3 KiB

configure.inH A D08-Mar-201578.3 KiB

docs/H20-Dec-20169

dso/H20-Dec-20163

emacs-modeH A D08-Mar-2015488

file_io/H20-Dec-20163

helpers/H20-Dec-20163

include/H20-Dec-201641

libapr.depH A D08-Mar-201512.9 KiB

libapr.dspH A D08-Mar-201522.8 KiB

libapr.makH A D08-Mar-201550.8 KiB

libapr.rcH A D08-Mar-20152 KiB

LICENSEH A D08-Mar-201517.6 KiB

locks/H20-Dec-20163

Makefile.inH A D08-Mar-20154 KiB

Makefile.winH A D08-Mar-20154.8 KiB

memory/H20-Dec-20163

misc/H20-Dec-20163

mmap/H20-Dec-20163

network_io/H20-Dec-20163

NOTICEH A D08-Mar-2015522

NWGNUmakefileH A D08-Mar-20158.5 KiB

passwd/H20-Dec-20163

poll/H20-Dec-20163

random/H20-Dec-20163

READMEH A D08-Mar-20155.5 KiB

shmem/H20-Dec-20163

strings/H20-Dec-20168

support/H20-Dec-20163

tables/H20-Dec-20164

threadproc/H20-Dec-20163

time/H20-Dec-20163

user/H20-Dec-20163

README

1Apache Portable Runtime Library (APR)
2-------------------------------------
3
4   The Apache Portable Runtime Library provides a predictable and
5   consistent interface to underlying platform-specific
6   implementations, with an API to which software developers may code
7   and be assured of predictable if not identical behavior regardless
8   of the platform on which their software is built, relieving them of
9   the need to code special-case conditions to work around or take
10   advantage of platform-specific deficiencies or features.
11
12   APR and its companion libraries are implemented entirely in C
13   and provide a common programming interface across a wide variety
14   of operating system platforms without sacrificing performance.
15   Currently supported platforms include:
16
17     UNIX variants
18     Windows
19     Netware
20     Mac OS X
21     OS/2
22
23   To give a brief overview, the primary core
24   subsystems of APR 1.3 include the following:
25
26     Atomic operations
27     Dynamic Shared Object loading
28     File I/O
29     Locks (mutexes, condition variables, etc)
30     Memory management (high performance allocators)
31     Memory-mapped files
32     Multicast Sockets
33     Network I/O
34     Shared memory
35     Thread and Process management
36     Various data structures (tables, hashes, priority queues, etc)
37
38   For a more complete list, please refer to the following URLs:
39
40     http://apr.apache.org/docs/apr/modules.html
41
42   Users of APR 0.9 should be aware that migrating to the APR 1.x
43   programming interfaces may require some adjustments; APR 1.x is
44   neither source nor binary compatible with earlier APR 0.9 releases.
45   Users of APR 1.x can expect consistent interfaces and binary backwards
46   compatibility throughout the entire APR 1.x release cycle, as defined
47   in our versioning rules:
48
49     http://apr.apache.org/versioning.html
50
51   APR is already used extensively by the Apache HTTP Server
52   version 2 and the Subversion revision control system, to
53   name but a few.  We list all known projects using APR at
54   http://apr.apache.org/projects.html -- so please let us know
55   if you find our libraries useful in your own projects!
56
57
58Using a Subversion Checkout on Unix
59===================================
60
61If you are building APR from SVN, you need to perform a prerequisite
62step.  You must have autoconf, libtool and python installed for this 
63to work.  The prerequisite is simply;
64
65  ./buildconf
66
67If you are building APR from a distribution tarball, buildconf is
68already run for you, and you do not need autoconf, libtool or python
69installed or to run buildconf unless you have patched APR's buildconf 
70inputs (such as configure.in, build.conf, virtually any file within 
71the build/ tree, or you add or remove source files).
72
73Remember when updating from svn that you must rerun ./buildconf again 
74to effect any changes made to the build schema in your fresh update.
75
76
77Configuring and Building APR on Unix
78====================================
79
80Simply;
81
82   ./configure --prefix=/desired/path/of/apr
83   make
84   make test
85   make install
86
87Configure has additional options, ./configure --help will offer you
88those choices.  You may also add CC=compiler CFLAGS="compiler flags"
89etc. prior to the ./configure statement (on the same line).  Please
90be warned, some flags must be passed as part of the CC command,
91itself, in order for autoconf to make the right determinations. Eg.;
92
93  CC="gcc -m64" ./configure --prefix=/desired/path/of/apr
94
95will inform APR that you are compiling to a 64 bit CPU, and autoconf
96must consider that when setting up all of APR's internal and external
97type declarations.
98
99For more verbose output from testall, you may wish to invoke testall
100with the flag;
101
102   cd test
103   ./testall -v
104
105
106Building APR RPM files on Linux
107===============================
108
109Run the following to create SRPMs:
110
111rpmbuild -ts apr-<version>.tar.bz2
112rpmbuild -ts apr-util-<version>.tar.bz2
113
114Run the following to create RPMs (or build from the SRPMs):
115
116rpmbuild -tb apr-<version>.tar.bz2
117rpmbuild -tb apr-util-<version>.tar.bz2
118
119Resolve dependencies as appropriate.
120
121
122Configuring and Building APR on Windows
123=======================================
124
125Using Visual Studio, you can build and run the test validation of APR.
126The Makefile.win make file has a bunch of documentation about it's
127options, but a trivial build is simply;
128
129  nmake -f Makefile.win 
130  nmake -f Makefile.win PREFIX=c:\desired\path\of\apr install
131
132Note you must manually modify the include\apr.hw file before you
133build to change default options, see the #define APR_HAS_... or the
134#define APR_HAVE_... statements.  Be careful, many of these aren't
135appropriate to be modified.  The most common change is 
136
137#define APR_HAVE_IPV6           1
138
139rather than 0 if this build of APR will be used strictly on machines
140with the IPv6 adapter support installed.
141
142It's trivial to include the apr.dsp (for a static library) or the
143libapr.dsp (for a dynamic library) in your own build project, or you
144can load apr.dsw in Visual Studio 2002 (.NET) or later, which will
145convert these for you into apr.sln and associated .vcproj files.
146
147When using APR as a dynamic library, nothing special is required,
148simply link to libapr.lib.  To use it as a static library, simply 
149define APR_DECLARE_STATIC before you include any apr header files 
150in your source, and link to apr.lib instead.
151
152
153Generating Test Coverage information with gcc
154=============================================
155
156If you want to generate test coverage data, use the following steps:
157
158  ./buildconf
159  CFLAGS="-fprofile-arcs -ftest-coverage" ./configure
160  make
161  cd test
162  make
163  ./testall
164  cd ..
165  make gcov
166
167
168