httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexei Kosut <>
Subject Re: cvs commit: apache/src CHANGES Configuration.tmpl Makefile.tmpl
Date Wed, 31 Jul 1996 17:58:26 GMT
On Wed, 31 Jul 1996, Robert S. Thau wrote:

>   Q/A SUCKS!
> Seconded.  Thirded, if possible.  I *loathe* Q&A configurations.


A bunch of notes:

1) Jim's "Intelligent Configure" is okay I suppose, but Jim, as Brian
said, stop it already (*grin*). I'd much perfer to have an Apache 1.2 with
the current Configuration in two weeks, than an Apache 1.2 with a revamped
Configuration in six weeks. And a lot of the code has to be revised for
2.0 anyhow.

2) If you want to see a good way of determining what OS you're on, take a
look at the config.guess script that comes with autoconf. They've put a
lot of work into that, it looks like it's capable of determining every OS
under the sun. Yet another reason to use autoconf.

3) The autoconf documentation, in the section about Q&A configuration,
says basically "don't do it, use runtime configuration". At first, this
seemed to me "wha?", but then I realized, it's entirely possible.
All of the CFLAGS options we have, -DSTATUS, -DNO_MMAP, the SOCKS stuff,
it can all be done runtime. How, you ask? I'll tell you:

STATUS is pretty easy. Make a one-time only configuration directive,
(similar to "ServerType") that sets a global variable.  FullStatus, say.
If it's set to "On", use the full scoreboard rec, otherwise use a shorter
version (it would take a bit of jiggering to get the pointer combinations
right, but it's quite possible).

Same thing with NO_MMAP. Make a "DisableMemoryMap" directive or something,
that sets a global variable, and if HAVE_MMAP/HAVE_SHMGET is active, it
checks this global first, and if it's not set, it uses the file-based
thing instead.

Again, same thing with SOCKS. Autoconf can test for the existance of the
SOCKS libraries; if they exist, it can include them and #define a
variable. There can be a "UseSocks" directive that, if this is #defined,
lets you turn on (again, a global variable) that uses Rconnect instead of
connect, etc...

See? No QA neccessary. And you can change all the options without

-- Alexei Kosut <>            The Apache HTTP Server

View raw message