PREREQUISITES:

Please see the PREREQUISITES file.  If you are building httpd-apreq-2 
directly from svn, you can generate the list of prerequisites:

            % perl build/version_check.pl


INSTRUCTIONS:

FreeBSD users must substitute "gmake" for "make" below.

Unix build, where libtool/automake/autoconf works:

            % ./configure --with-apache2-apxs=/path/to/apache2/bin/apxs
            % make
  (optional)% make test
            % make install


Or using the CPAN/perlish way (which includes the Apache::Request and
Apache::Cookie modules):

            % perl Makefile.PL --with-apache2-apxs=/path/to/apache2/bin/apxs
            % make
  (optional)% make test
            % make install

Developers and other folks using httpd-apreq-2 directly from svn need to
execute "./buildconf" prior to running "./configure".


Alternately, here's a recipe to install mod_apreq.c as a static apache module:

  1) configure httpd to add mod_apreq.c to its filter modules:

  % cd /path/to/httpd-2.0
  % CPPFLAGS=-I/path/to/httpd-apreq-2/src \
    HTTPD_LDFLAGS=/path/to/httpd-apreq-2/src/libapreq2.la \
    ./configure --with-module=filters:/path/to/httpd-apreq-2/env/mod_apreq.c \
    ...(add usual httpd+apr options here)...

  2) compile and install everything using httpd-apreq-2's build system:

            % cd /path/to/httpd-apreq-2
            % ./configure --with-apache2-src=/path/to/httpd-2.0
            % make
  (optional)% make test
            % make install



Win32 build:
  C:\httpd-apreq-2> perl Makefile.PL
  C:\httpd-apreq-2> nmake
  C:\httpd-apreq-2> nmake test
  C:\httpd-apreq-2> nmake mod_apreq
  C:\httpd-apreq-2> nmake perl_glue
  C:\httpd-apreq-2> nmake perl_test

SVN (Subversion) ACCESS

Development of httpd-apreq-2 can be followed through the svn repository:

  $ svn checkout http://svn.apache.org/repos/asf/httpd/apreq/trunk/ httpd-apreq-2

Developers with commit access must use the https protocol instead;
note that, if you are compiling svn from sources, you must
supply the configure script with the appropriate switch to
enable ssl.

Subversion sources, and binaries for some platforms, may be obtained
through the home page:

     http://subversion.tigris.org/

Documentation on using svn is available at

     http://svnbook.red-bean.com/

In particular,

     http://svnbook.red-bean.com/en/1.0/apa.html

contains a guide for users familiar with cvs.



