This is how I currently build Apache httpd for development and testing.
- The Apache Portable Runtime library. I use trunk from
- The Perl-Compatible Regular Expressions library, either your own build or through your operating system. If you’re on Linux, be sure to install the -dev package as well
Once these are in place, check out the Apache source code from
http://svn.apache.org/repos/asf/httpd/httpd/trunk, cd into the checkout and run
./buildconf --with-apr=/path/to/apr/source-code. Then run configure:
make install. This module complement is what will be exercised by the test harness. The build system will leave the last
./configure invocation in
config.nice, and also install the latter under the build subdirectory when you make install. Isn’t that nice?
To run the test harness, check out
http://svn.apache.org/repos/asf/httpd/test/framework/trunk. Underneath the checkout, find in Apache-Test/lib/Bundle/ApacheTest.pm a list of the Perl modules you need. A number of these will already be on your system. Get what you don’t have from CPAN or your package manager. Also, install
HTTP::DAV and its dependencies which is not on the list but needed to exercise mod_dav. Then run:
t/TEST -httpd /somewhere/convenient/bin/httpd -apxs /somewhere/convenient/bin/apxs
Note your skips and failures. Add Apache modules and Perl modules if you find the list above out of date. Then make your changes to Apache, rebuild and run
t/TEST again. If your new build is in a different installation root, run
make realclean in the framework and set it up again. When your changes to Apache (no longer) cause any tests to fail, propose the change to
email@example.com. If you add new functionality, add new tests. That’s all. Easy.