# Config file for the Apache httpd.

# Configuration.tmpl is the template for Configuration. Configuration should
# be edited to select the modules to be included as well as various flags
# for Makefile.

# The template should only be changed when a new system or module is added,
# or an existing one modified. This will also most likely require some minor
# changes to Configure to recognize those changes.

# There are 5 types of lines here:

# '#' comments, distinguished by having a '#' as the first non-blank character
#
# Makefile options, such as CC=gcc, etc...
#
# Rules, distinguished by having "Rule" at the front. These are used to
# control Configure's behavior as far as how to create Makefile.
#
# Module selection lines, distinguished by having 'AddModule' at the front.
# These list the configured modules, in priority order (highest priority
# last).  They're down at the bottom.
#
# Optional module selection lines, distinguished by having `%Module'
# at the front.  These specify a module that is to be compiled in (but
# not enabled).  The AddModule directive can be used to enable such a
# module.  By default no such modules are defined.


################################################################
# Makefile configuration
#
# These are added to the general flags determined by Configure.
# Edit these to work around Configure if needed. The EXTRA_* family
# will be added to the regular Makefile flags. For example, if you
# want to compile with -Wall, then add that to EXTRA_CFLAGS. These
# will be added to whatever flags Configure determines as appropriate
# and needed for your platform.
#
# You can also set the compiler (CC) and optimization (OPTIM) used here as
# well.  Settings here have priority; If not set, Configure will attempt to
# guess the C compiler, looking for gcc first, then cc.
#
# Optimization note: 
# Be careful when adding optimization flags (like -O3 or -O6) on the OPTIM
# entry, especially when using some GCC variants. Experience showed that using
# these for compiling Apache is risky. If you don't want to see Apache dumping
# core regularly then at most use -O or -O2.
#
# The EXTRA_DEPS can be used to add extra Makefile dependencies to external
# files (for instance third-party libraries) for the httpd target. The effect
# is that httpd is relinked when those files are changed.
#
EXTRA_CFLAGS=
EXTRA_LDFLAGS=
EXTRA_LIBS=
EXTRA_INCLUDES=
EXTRA_DEPS=

#CC=
#CPP=
#OPTIM=
#RANLIB=

################################################################
# Name of the installed Apache HTTP webserver.
#
#TARGET=

################################################################
# Dynamic Shared Object (DSO) support
#
# There is experimental support for compiling the Apache core and
# the Apache modules into dynamic shared object (DSO) files for
# maximum runtime flexibility.
#
# The Configure script currently has only limited built-in
# knowledge on how to compile these DSO files because this is
# heavily platform-dependent. The current state of supported and
# explicitly unsupported platforms can be found in the file 
# "htdocs/manual/dso.html", under "Supported Platforms".
#
# For other platforms where you want to use the DSO mechanism you
# first have to make sure it supports the pragmatic dlopen()
# system call and then you have to provide the appropriate
# compiler and linker flags below to create the DSO files on your
# particular platform.
#
# The placement of the Apache core into a DSO file is triggered
# by the SHARED_CORE rule below while support for building
# individual Apache Modules as DSO files and loading them under
# runtime without recompilation is triggered by `SharedModule'
# commands. To be able to use the latter one first enable the
# module mod_so (see corresponding `AddModule' command below).
# Then enable the DSO feature for particular modules individually
# by replacing their `AddModule' command with `SharedModule' and
# change the filename extension from `.o' to `.so'. 
#
# Sometimes the DSO files need to be linked against other shared
# libraries to explicitly resolve symbols from them when the
# httpd program not already contains references to them. For
# instance when buidling mod_auth_db as a DSO you need to link
# the DSO against the libdb explicity because the Apache kernel
# has no references for this library. But the problem is that
# this "chaining" is not supported on all platforms. Although one
# usually can link a DSO against another DSO without linker
# complains the linkage is not really done on these platforms.
# So, when you receive "unresolved symbol" errors under runtime
# when using the LoadModule directive for a particular module try
# to enable the SHARED_CHAIN rule below.

#CFLAGS_SHLIB=
#LD_SHLIB=
#LDFLAGS_SHLIB=
#LDFLAGS_SHLIB_EXPORT=

Rule SHARED_CORE=default
Rule SHARED_CHAIN=default

################################################################
# Rules configuration
#
# These are used to let Configure know that we want certain
# functions. The format is: Rule RULE=value
#
# At present, only the following RULES are known: WANTHSREGEX, SOCKS4,
# SOCKS5, IRIXNIS, IRIXN32, PARANOID, and DEV_RANDOM.
#
# For all Rules except DEV_RANDOM, if set to "yes", then Configure knows
# we want that capability and does what is required to add it in. If set
# to "default" then Configure makes a "best guess"; if set to anything
# else, or not present, then nothing is done.
#
# SOCKS4:
#  If SOCKS4 is set to 'yes', be sure that you add the socks library
#  location to EXTRA_LIBS, otherwise Configure will assume
#  "-L/usr/local/lib -lsocks"
#
# SOCKS5:
#  If SOCKS5 is set to 'yes', be sure that you add the socks5 library
#  location to EXTRA_LIBS, otherwise Configure will assume
#  "-L/usr/local/lib -lsocks5"
#
# IRIXNIS:
#  Only takes effect if Configure determines that you are running
#  SGI IRIX.  If you are using a (ancient) 4.x version of IRIX, you
#  need this if you are using NIS and Apache needs access to it for
#  things like mod_userdir.  This is not required on 5.x and later
#  and you should not enable it on such systems.
#
# IRIXN32:
#  If you are running a version of IRIX and Configure detects
#  n32 libraries, it will use those instead of the o32 ones.
#
# PARANOID:
#  New with version 1.3, during Configure modules can run
#  pre-programmed shell commands in the same environment that
#  Configure runs in. This allows modules to control how Configure
#  works. Normally, Configure will simply note that a module
#  is performing this function. If PARANOID is set to yes, it will
#  actually print-out the code that the modules execute
#
# EXPAT:
#  Include an Expat implementation into Apache for use by the
#  modules. James Clark's Expat package (expat-lite) is bundled
#  with Apache for the convenience of our users. The EXPAT rule
#  determines which Expat implementation, if any, to use as follows:
#
#  Rule EXPAT=yes       : Use system Expat if available; otherwise
#                         use bundled Expat (lib/expat-lite). If
#                         neither exists the build will fail
#  Rule EXPAT=no        : Don't include Expat at all
#  Rule EXPAT=default   : If Expat can be found at the system or
#                         in lib/expat-lite, use it; otherwise
#                         skip it
# 
# CYGWIN_WINSOCK: 
#  Use Win32 API system calls for socket communication instead 
#  of Cygwin's POSIX.1 wrappers. This avoids the Cygwin specific
#  implementation and uses the Win32 native calls. Should be faster
#  and more reliable for high-load systems.  
# 

Rule SOCKS4=no
Rule SOCKS5=no
Rule IRIXNIS=no
Rule IRIXN32=yes
Rule PARANOID=no
Rule EXPAT=default
Rule CYGWIN_WINSOCK=no 

# DEV_RANDOM:
#  Note: this rule is only used when compiling mod_auth_digest.
#  mod_auth_digest requires a cryptographically strong random seed for its
#  random number generator. It knows two ways of getting this: 1) from
#  a file or device (such as "/dev/random"), or 2) from the truerand
#  library. If this rule is set to 'default' then Configure will choose
#  to use /dev/random if it exists, else /dev/urandom if it exists,
#  else the truerand library. To override this behaviour set DEV_RANDOM
#  either to 'truerand' (to use the library) or to a device or file
#  (e.g. '/dev/urandom'). If the truerand library is selected, Configure
#  will assume "-L/usr/local/lib -lrand".
Rule DEV_RANDOM=default

# The following rules should be set automatically by Configure. However, if
# they are not set by Configure (because we don't know the correct value for
# your platform), or are set incorrectly, you may override them here.
# If you have to do this, please let us know what you set and what your
# platform is, by filling out a problem report form at the Apache web site:
# <http://bugs.apache.org/>.  If your browser is forms-incapable, you
# can get the information to us by sending mail to apache-bugs@apache.org.
#
# WANTHSREGEX:
#  Apache requires a POSIX regex implementation. Henry Spencer's
#  excellent regex package is included with Apache and can be used
#  if desired. If your OS has a decent regex, you can elect to
#  not use this one by setting WANTHSREGEX to 'no' or commenting
#  out the Rule. The "default" action is "yes" unless overruled
#  by OS specifics

Rule WANTHSREGEX=default

################################################################
# Module configuration
#
# Modules are listed in reverse priority order --- the ones that come
# later can override the behavior of those that come earlier.  This
# can have visible effects; for instance, if UserDir followed Alias,
# you couldn't alias out a particular user's home directory.

# The configuration below is what we consider a decent default 
# configuration.  If you want the functionality provided by a particular
# module, remove the "#" sign at the beginning of the line. But remember, 
# the more modules you compile into the server, the larger the executable
# is and the more memory it will take, so if you are unlikely to use the
# functionality of a particular module you might wish to leave it out.

## mod_mmap_static is an experimental module, you almost certainly
## don't need it.  It can make some webservers faster.  No further
## documentation is provided here because you'd be foolish
## to use mod_mmap_static without reading the full documentation.

# AddModule modules/experimental/mod_mmap_static.o

## mod_vhost_alias provides support for mass virtual hosting
## by dynamically changing the document root and CGI directory
## based on the host header or local IP address of the request.
## See "../htdocs/manual/vhosts/mass.html".

# AddModule modules/standard/mod_vhost_alias.o

##
## Config manipulation modules
##
## mod_env sets up additional or restricted environment variables to be
## passed to CGI/SSI scripts.  It is listed first (lowest priority) since
## it does not do per-request stuff.

AddModule modules/standard/mod_env.o

##
## Request logging modules
##

AddModule modules/standard/mod_log_config.o

## Optional modules for NCSA user-agent/referer logging compatibility
## We recommend, however, that you just use the configurable access_log.

# AddModule modules/standard/mod_log_agent.o
# AddModule modules/standard/mod_log_referer.o

##
## Type checking modules
##
## mod_mime_magic determines the type of a file by examining a few bytes
## of it and testing against a database of filetype signatures.  It is
## based on the unix file(1) command.
## mod_mime maps filename extensions to content types, encodings, and
## "magic" type handlers (the latter is obsoleted by mod_actions, and
## don't confuse it with the previous module).
## mod_negotiation allows content selection based on the Accept* headers.

# AddModule modules/standard/mod_mime_magic.o
AddModule modules/standard/mod_mime.o
AddModule modules/standard/mod_negotiation.o

##
## Content delivery modules
##
## The status module allows the server to display current details about 
## how well it is performing and what it is doing.  Consider also enabling 
## the 'ExtendedStatus On' directive to allow full status information.
## Please note that doing so can result in a palpable performance hit.

AddModule modules/standard/mod_status.o

## The Info module displays configuration information for the server and 
## all included modules. It's very useful for debugging.

# AddModule modules/standard/mod_info.o

## mod_include translates server-side include (SSI) statements in text files.
## mod_autoindex handles requests for directories which have no index file
## mod_dir handles requests on directories and directory index files.
## mod_cgi handles CGI scripts.

AddModule modules/standard/mod_include.o
AddModule modules/standard/mod_autoindex.o
AddModule modules/standard/mod_dir.o
AddModule modules/standard/mod_cgi.o

## The asis module implements ".asis" file types, which allow the embedding
## of HTTP headers at the beginning of the document.  mod_imap handles internal 
## imagemaps (no more cgi-bin/imagemap/!).  mod_actions is used to specify 
## CGI scripts which act as "handlers" for particular files, for example to
## automatically convert every GIF to another file type.

AddModule modules/standard/mod_asis.o
AddModule modules/standard/mod_imap.o
AddModule modules/standard/mod_actions.o

##
## URL translation modules.
##

## The Speling module attempts to correct misspellings of URLs that
## users might have entered, namely by checking capitalizations
## or by allowing up to one misspelling (character insertion / omission /
## transposition/typo). This catches the majority of misspelled requests.
## If it finds a match, a "spelling corrected" redirection is returned.

# AddModule modules/standard/mod_speling.o

## The UserDir module for selecting resource directories by user name
## and a common prefix, e.g., /~<user> , /usr/web/<user> , etc.

AddModule modules/standard/mod_userdir.o

## The Alias module provides simple URL translation and redirection.

AddModule modules/standard/mod_alias.o

## The URL rewriting module allows for powerful URI-to-URI and 
## URI-to-filename mapping using a regular expression based 
## rule-controlled rewriting engine.

# AddModule modules/standard/mod_rewrite.o

##
## Access control and authentication modules. 
##
AddModule modules/standard/mod_access.o
AddModule modules/standard/mod_auth.o

## The anon_auth module allows for anonymous-FTP-style username/ 
## password authentication.

# AddModule modules/standard/mod_auth_anon.o

## db_auth and dbm_auth work with Berkeley DB files - make sure there
## is support for DBM files on your system.  You may need to grab the GNU
## "gdbm" package if not and possibly adjust EXTRA_LIBS. (This may be
## done by Configure at a later date)

# AddModule modules/standard/mod_auth_dbm.o
# AddModule modules/standard/mod_auth_db.o

## "digest" implements HTTP Digest Authentication rather than the less 
## secure Basic Auth used by the other modules.  This is the old version.

# AddModule modules/standard/mod_digest.o

## "auth_digest" implements HTTP/1.1 Digest Authentication (RFC 2617)
## rather than the less secure Basic Auth used by the other modules.
## This is an updated version of mod_digest, but it is not as well tested
## and is therefore marked experimental.  Use either the one above, or
## this one below, but not both digest modules.
## Note: if you add this module in then you might also need the
## truerand library (available for example from
## ftp://research.att.com/dist/mab/librand.shar) - see the Rule
## DEV_RANDOM above for more info.
##
## Must be added above (run later than) the proxy module because the
## WWW-Authenticate and Proxy-Authenticate headers are parsed in the
## post-read-request phase and it needs to know if this is a proxy request.

# AddModule modules/experimental/mod_auth_digest.o

## Optional Proxy
##
## The proxy module enables the server to act as a proxy for outside
## http and ftp services. It's not as complete as it could be yet.
## NOTE: You do not want this module UNLESS you are running a proxy;
##       it is not needed for normal (origin server) operation.

# AddModule modules/proxy/libproxy.a

## Optional response header manipulation modules. 
##
## cern_meta mimics the behavior of the CERN web server with regards to 
## metainformation files.  

# AddModule modules/standard/mod_cern_meta.o

## The expires module can apply Expires: headers to resources,
## as a function of access time or modification time.

# AddModule modules/standard/mod_expires.o

## The headers module can set arbitrary HTTP response headers,
## as configured in server, vhost, access.conf or .htaccess configs

# AddModule modules/standard/mod_headers.o

## Miscellaneous modules
##
## mod_usertrack is the new name for mod_cookies.  This module
## uses Netscape cookies to automatically construct and log
## click-trails from Netscape cookies, or compatible clients who
## aren't coming in via proxy.   
##
## You do not need this, or any other module to allow your site
## to use Cookies.  This module is for user tracking only

# AddModule modules/standard/mod_usertrack.o

## The example module, which demonstrates the use of the API.  See
## the file modules/example/README for details.  This module should
## only be used for testing -- DO NOT ENABLE IT on a production server.

# AddModule modules/example/mod_example.o

## mod_log_forensic logs a unique id, the request line and headers
## before processing starts, and again when processing completes. If
## processing does not complete due to a bug or an attack, this can be
## detected from the logs.  See support/check_forensic.
## If mod_unique_id is also included, then this will use its unique ID.
## Note that this must come before mod_unique_id.

# AddModule modules/standard/mod_log_forensic.o

## mod_unique_id generates unique identifiers for each hit, which are
## available in the environment variable UNIQUE_ID.  It may not work on all
## systems, hence it is not included by default.

# AddModule modules/standard/mod_unique_id.o

## mod_so lets you add modules to Apache without recompiling.
## This is an experimental feature at this stage and only supported 
## on a subset of the platforms we generally support. 
## Don't change this entry to a 'SharedModule' variant (Bootstrapping!)

# AddModule modules/standard/mod_so.o

## mod_setenvif lets you set environment variables based on the HTTP header
## fields in the request; this is useful for conditional HTML, for example.
## Since it is also used to detect buggy browsers for workarounds, it
## should be the last (highest priority) module.

AddModule modules/standard/mod_setenvif.o

