]> granicus.if.org Git - apache/blob - docs/manual/programs/configure.xml
Several improvements:
[apache] / docs / manual / programs / configure.xml
1 <?xml version='1.0' encoding='UTF-8' ?>
2 <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
4 <manualpage metafile="configure.xml.meta">
5 <parentdocument href="./">Programs</parentdocument>
6
7   <title>configure - Configure the source tree</title>
8
9 <summary>
10     <p>The <code>configure</code> script configures the source tree
11     for compiling and installing the Apache HTTP Server on your
12     particular platform. Various options allow the compilation of a
13     server corresponding to your personal requirements.</p>
14
15     <p>This script, included in the root directory of the distribution,
16     is for compilation on Unix and Unix-like systems only. For other
17     platforms, see the <a href="../platform/">platform</a>
18     documentation.</p>
19 </summary>
20
21 <seealso><a href="../install.html">Compiling and Installing</a></seealso>
22
23 <section id="synopsis"><title>Synopsis</title>
24     <p>You should call the <code>configure</code> script from within the
25     root directory of the distribution.</p>
26
27     <p><code><strong>./configure</strong> [<var>OPTION</var>]...
28     [<var>VAR</var>=<var>VALUE</var>]...</code></p>
29
30     <p>To assign environment variables (e.g. <code>CC</code>,
31     <code>CFLAGS</code> ...), specify them as
32     <code><var>VAR</var>=<var>VALUE</var></code>. See <a href="#env">below</a>
33     for descriptions of some of the useful variables.</p>
34 </section>
35
36 <section id="options"><title>Options</title>
37   <ul>
38     <li><a href="#configurationoptions">Configuration options</a></li>
39     <li><a href="#installationdirectories">Installation directories</a></li>
40     <li><a href="#systemtypes">System types</a></li>
41     <li><a href="#optionalfeatures">Optional features</a></li>
42     <li><a href="#supportopt">Options for support programs</a></li>
43   </ul>
44
45   <section id="configurationoptions"><title>Configuration options</title>
46
47     <p>The following options influence the behavior of
48     <code>configure</code> itself.</p>
49
50     <dl>
51       <dt><code>-C</code></dt>
52       <dt><code>--config-cache</code></dt>
53       <dd>This is an alias for <code>--cache-file=config.cache</code></dd>
54
55       <dt><code>--cache-file=<var>FILE</var></code></dt>
56       <dd>The test results will be cached in file <var>FILE</var>.
57         This option is disabled by default.</dd>
58
59       <dt><code>-h</code></dt>
60       <dt><code>--help [short|recursive]</code></dt>
61       <dd>Output the help and exit. With the argument <code>short</code> only
62         options specific to this package will displayed. The argument
63         <code>recursive</code> displays the short help of all the included
64         packages.</dd>
65
66       <dt><code>-n</code></dt>
67       <dt><code>--no-create</code></dt>
68       <dd>The <code>configure</code> script is run normally but does
69         not create output files. This is useful to check the test results
70         before generating makefiles for compilation.</dd>
71
72       <dt><code>-q</code></dt>
73       <dt><code>--quiet</code></dt>
74       <dd>Do not print <code>checking ...</code> messages during the
75         configure process.</dd>
76
77       <dt><code>--srcdir=<var>DIR</var></code></dt>
78       <dd>Defines directory <var>DIR</var> to be the source file directory.
79         Default is the directory, where configure is located, or the parent
80         directory <code>..</code>.</dd>
81
82       <dt><code>--silent</code></dt>
83       <dd>Same as <code>--quiet</code></dd>
84
85       <dt>-V</dt>
86       <dt>--version</dt>
87       <dd>Display copyright information and exit.</dd>
88     </dl>
89   </section>
90
91   <section id="installationdirectories"><title>Installation 
92     directories</title>
93
94     <p>These options define the installation directory. The installation
95       tree depends on the selected layout.</p>
96
97     <dl>
98       <dt><code>--prefix=<var>PREFIX</var></code></dt>
99       <dd>Install architecture-independent files in <var>PREFIX</var>.
100         By default the installation directory is set to
101         <code>/usr/local/apache2</code>.</dd>
102
103       <dt><code>--exec-prefix=<var>EPREFIX</var></code></dt>
104       <dd>Install architecture-dependent files in <var>EPREFIX</var>.
105         By default the installation directory is set to the
106         <var>PREFIX</var> directory.</dd>
107     </dl>
108
109     <p>By default, <code>make install</code> will install all the files in
110       <code>/usr/local/apache2/bin</code>, <code>/usr/local/apache2/lib</code>
111       etc. You can specify an installation prefix other than
112       <code>/usr/local/apache2</code> using <code>--prefix</code>,
113       for instance <code>--prefix=$HOME</code>.</p>
114
115     <section id="layout"><title>Define a directory layout</title>
116       <dl>
117         <dt><code>--enable-layout=<var>LAYOUT</var></code></dt>
118         <dd>Configure the source code and build scripts to assume an
119           installation tree based on the layout <var>LAYOUT</var>. This allows
120           you to separately specify the locations for each type of file within
121           the Apache HTTP Server installation. The <code>config.layout</code>
122           file contains several example configurations, and you can also create
123           your own custom configuration following the examples. The different
124           layouts in this file are grouped into <code>&lt;Layout
125             FOO&gt;...&lt;/Layout&gt;</code> sections and referred to by name as
126           in <code>FOO</code>. The default layout is <code>Apache</code>.</dd>
127       </dl>
128     </section>
129
130     <section id="directoryfinetuning"><title>Fine tuning of the installation
131       directories</title>
132     
133       <p>For better control of the installation directories, use the options
134         below. Please note that the directory defaults are set by
135         <code>autoconf</code> and be overwritten by the corresponding layout
136         setting.</p>
137
138       <dl>
139         <!-- only apr-config and apu-config are installed at bindir.
140         everything else is stored at sbindir. ==> clarify/change this -->
141         <dt><code>--bindir=<var>DIR</var></code></dt>
142         <dd>Install user executables in <var>DIR</var>. The user executables
143           are supporting programs like <code>htpasswd</code>,
144           <code>dbmmanage</code>, etc. which are useful for site
145           administrators. By default <var>DIR</var> is set to
146           <code><var>EPREFIX</var>/bin</code>.</dd>
147
148         <dt><code>--datadir=<var>DIR</var></code></dt>
149         <dd>Install read-only architecture-independent data in <var>DIR</var>.
150           By default <code>datadir</code> is set to
151           <code><var>PREFIX</var>/share</code>. This option is offered by
152           <code>autoconf</code> and currently unused.</dd>
153
154         <dt><code>--includedir=<var>DIR</var></code></dt>
155         <dd>Install C header files in <var>DIR</var>. By default
156           <code>includedir</code> is set to
157           <code><var>EPREFIX</var>/include</code>.</dd>
158
159         <dt><code>--infodir=<var>DIR</var></code></dt>
160         <dd>Install info documentation in <var>DIR</var>.
161           By default <code>infodir</code> is set to
162           <code><var>PREFIX</var>/info</code>. This option is currently
163           unused.</dd>
164         
165         <dt><code>--libdir=<var>DIR</var></code></dt>
166         <dd>Install object code libraries in <var>DIR</var>. By default
167           <code>libdir</code> is set to
168           <code><var>EPREFIX</var>/lib</code>.</dd>
169
170         <dt><code>--libexecdir=<var>DIR</var></code></dt>
171         <dd>Install the program executables (i.e., shared modules) in
172           <var>DIR</var>. By default <code>libexecdir</code> is set to
173           <code><var>EPREFIX</var>/libexec</code>.</dd>
174
175         <dt><code>--localstatedir=<var>DIR</var></code></dt>
176         <dd>Install modifiable single-machine data in <var>DIR</var>.
177           By default <code>localstatedir</code> is set to
178           <code><var>PREFIX</var>/var</code>. This option is offered by
179           <code>autoconf</code> and currently unused.</dd>
180
181         <dt><code>--mandir=<var>DIR</var></code></dt>
182         <dd>Install the man documentation in <var>DIR</var>. By default 
183           <code>mandir</code> is set to
184           <code><var>EPREFIX</var>/man</code>.</dd>
185       
186         <dt><code>--oldincludedir=<var>DIR</var></code></dt>
187         <dd>Install C header files for non-gcc in <var>DIR</var>.
188           By default <code>oldincludedir</code> is set to
189           <code>/usr/include</code>. This option is offered by
190           <code>autoconf</code> and currently unused.</dd>
191         
192         <dt><code>--sbindir=<var>DIR</var></code></dt>
193         <dd>Install the system administrator executables in <var>DIR</var>.
194           Those are server programs like <code>httpd</code>,
195           <code>apachectl</code>, <code>suexec</code>, etc. which are neccessary
196           to run the Apache HTTP Server. By default <code>sbindir</code> is
197           set to <code><var>EPREFIX</var>/sbin</code>.</dd>
198
199         <dt><code>--sharedstatedir=<var>DIR</var></code></dt>
200         <dd>Install modifiable architecture-independent data in <var>DIR</var>.
201           By default <code>sharedstatedir</code> is set to
202           <code><var>PREFIX</var>/com</code>. This option is offered by
203           <code>autoconf</code> and currently unused.</dd>
204
205         <dt><code>--sysconfdir=<var>DIR</var></code></dt>
206         <dd>Install read-only single-machine data like the server configuration
207           files <code>httpd.conf</code>, <code>mime.types</code>, etc. in
208           <var>DIR</var>. By default <code>sysconfdir</code> is set to
209           <code><var>PREFIX</var>/etc</code>.</dd>
210       </dl>        
211     </section>
212   </section>
213   
214   <section id="systemtypes"><title>System types</title>
215
216     <p>These options are used to cross-compile the Apache HTTP Server to run on
217       another system. In normal cases, when building and running the server on
218       the same system, these options are not used.</p>
219
220     <dl>
221       <dt><code>--build=<var>BUILD</var></code></dt>
222       <dd>Defines the system type of the system on which the tools are being
223         built. It defaults to the result of the script
224         <code>config.guess</code>.</dd>
225
226       <dt><code>--host=<var>HOST</var></code></dt>
227       <dd>Defines the system type of the system on which the server will run.
228         <var>HOST</var> defaults to <var>BUILD</var>.</dd>
229
230       <dt><code>--target=<var>TARGET</var></code></dt>
231       <dd>Configure for building compilers for the system type
232         <var>TARGET</var>. It defaults to <var>HOST</var>. This option is
233         offered by <code>autoconf</code> and not necessary for the Apache HTTP
234         Server.</dd>
235     </dl>
236   </section>
237
238   <section id="optionalfeatures"><title>Optional Features</title>
239
240     <p>These options are used to fine tune the features your HTTP server will
241       have.</p>
242
243     <section id="generaloptfeat"><title>General syntax</title>
244       <p>Generally you can use the following syntax to enable or disable a
245         feature:</p>
246
247       <dl>
248         <dt><code>--disable-<var>FEATURE</var></code></dt>
249         <dd>Do not include <var>FEATURE</var>. This is the same as
250           <code>--enable-<var>FEATURE</var>=no</code>.</dd>
251
252         <dt><code>--enable-<var>FEATURE</var>[=<var>ARG</var>]</code></dt>
253         <dd>Include <var>FEATURE</var>. The default value for <var>ARG</var> 
254           is <code>yes</code>.</dd>
255
256         <dt><code>--enable-<var>MODULE</var>=shared</code></dt>
257         <dd>The corresponding module will be build as DSO module.</dd>
258
259         <dt><code>--enable-<var>MODULE</var>=static</code></dt>
260         <dd>By default enabled modules are linked statically. You can force 
261           this explicitly.</dd>
262       </dl>
263
264       <note><title>Note</title>
265         <code>configure</code> will not complain about
266         <code>--enable-<var>foo</var></code> even if <var>foo</var> doesn't
267         exist, so you need to type carefully.
268       </note>
269     </section>
270
271     <!-- to do: add better enable-module descriptions and recommendations -->
272     <section id="enabledmodules"><title>Modules enabled by default</title>
273       <p>Some modules are compiled by default and have to be disabled
274         explicitly. Use the following options to remove discrete modules from
275         the compilation process.</p>
276         
277       <dl>
278         <dt><code>--disable-actions</code></dt>
279         <dd>Disable action triggering on requests, which is provided by
280           <module>mod_actions</module>.</dd>
281
282         <dt><code>--disable-alias</code></dt>
283         <dd>Disable the mapping of requests to different parts of the
284           filesystem, which is provided by <module>mod_alias</module>.</dd>
285
286         <dt><code>--disable-asis</code></dt>
287         <dd>Disable support for as-is filetypes, which is provided by
288           <module>mod_asis</module>.</dd>
289
290         <dt><code>--disable-auth</code></dt>
291         <dd>Disable user-based access control provided  by
292           <module>mod_auth</module>. This module provides for HTTP Basic
293           Authentication, where the usernames and passwords are stored in
294           plain text files.</dd>
295
296         <dt><code>--disable-autoindex</code></dt>
297         <dd>Disable the directory listing functionality provided by
298           <module>mod_autoindex</module>.</dd>
299
300         <dt><code>--disable-access</code></dt>
301         <dd>Disable host-based access control provided by
302           <module>mod_access</module>.</dd>
303
304         <dt><code>--disable-cgi</code></dt>
305         <dd><module>mod_cgi</module>, which provides support for CGI scripts,
306           is enabled by default when using a non-threaded MPM. Use this
307           option to disable CGI support.</dd>
308          
309         <dt><code>--disable-cgid</code></dt>
310         <dd>When using the threaded MPMs <module>worker</module> or
311           <module>perchild</module> support for CGI scripts is provided by
312           <module>mod_cgid</module> by default. To disable CGI support use
313           this option.</dd>
314
315         <dt><code>--disable-charset-lite</code></dt>
316         <dd>Disable character set translation provided by
317           <module>mod_charset_lite</module>. This module will be installed by
318           default only on EBCDIC systems.</dd>
319
320         <dt><code>--disable-dir</code></dt>
321         <dd>Disable directory request handling provided by
322           <module>mod_dir</module>.</dd>
323
324         <dt><code>--disable-env</code></dt>
325         <dd>Enable setting and clearing of environment variables, which is
326           provided by <module>mod_env</module>.</dd>
327
328         <!-- configure mentions enable-http, but disable-http would make much
329         more sense -->
330         <dt><code>--disable-http</code></dt>
331           <dd>Disable the HTTP protocol handling. The <code>http</code>
332             module is a basic one, enabling the server to function as an
333             HTTP server. It is only useful to disable it if you want to use
334             another protocol module instead. <strong>Don't disable this
335             module unless you are really sure what you are doing.</strong>
336             <br/>
337             Note: This module will always be linked statically.</dd> 
338
339         <dt><code>--disable-imap</code></dt>
340         <dd>Disable support for server based imagemaps, which provided by
341           <module>mod_imap</module>.</dd>
342
343         <dt><code>--disable-include</code></dt>
344         <dd>Disable Server Side Includes provided by
345           <module>mod_include</module>.</dd>
346
347         <dt><code>--disable-log-config</code></dt>
348         <dd>Disable the logging configuration provided by
349           <module>mod_log_config</module>. You won't be able to log requests
350           to the server without this module.</dd>
351
352         <dt><code>--disable-mime</code></dt>
353         <dd><module>mod_mime</module> associates the requested filename's
354           extensions with the file's behavior and content (mime-type,
355           language, character set and encoding). Disabling the mapping of
356           file-extensions to MIME is normally not recommended.</dd>
357
358         <dt><code>--disable-negotiation</code></dt>
359         <dd>Disable content negotiation provided by
360           <module>mod_negotiation</module>.</dd>
361
362         <dt><code>--disable-setenvif</code></dt>
363         <dd>Disable support for basing environment variables on headers,
364           which is provided by <module>mod_setenvif</module>.</dd>
365
366         <dt><code>--disable-status</code></dt>
367         <dd>Enable the process/thread monitoring, which is provided by
368           <module>mod_status</module>.</dd>
369
370         <dt><code>--disable-userdir</code></dt>
371         <dd>Disable the mapping of requests to user-specific directories,
372           which is provided by <module>mod_userdir</module>.</dd>
373       </dl>
374     </section>
375
376     <section id="disabledmodules"><title>Modules, disabled by default</title>
377       <p>Some modules are compiled by default and have to be enabled
378         explicitly or by using the keywords <code>most</code> or
379         <code>all</code> (see <code>--enable-mods-shared</code> below for
380         further explanation) to be available. Therefore use the options
381         below.</p>
382
383       <dl>
384         <dt><code>--enable-auth-anon</code></dt>
385         <dd>Enable anonymous user access provided by
386           <module>mod_auth_anon</module>.</dd>
387
388         <dt><code>--enable-auth-dbm</code></dt>
389         <dd><module>mod_auth_dbm</module> provides for HTTP Basic
390           Authentication, where the usernames and passwords are stored in DBM
391           type database files. Use this option to enable the module.</dd>
392
393         <dt><code>--enable-auth-digest</code></dt>
394         <dd>Enable RFC2617 Digest authentication provided by
395           <module>mod_auth_digest</module>. This module uses plain text files
396           to store the credentials.</dd>
397
398         <dt><code>--enable-auth-ldap</code></dt>
399         <dd>Enable LDAP based authentication provided by
400           <module>mod_auth_ldap</module>.</dd>
401           
402         <dt><code>--enable-cache</code></dt>
403         <dd>Enable dynamic file caching provided by
404           <module>mod_cache</module>. This experimental module may be
405           interesting for servers with high load or caching proxy servers. At
406           least one storage management module (e.g.
407           <module>mod_disk_cache</module> or <module>mod_mem_cache</module>)
408           is also necessary.</dd>
409
410         <dt><code>--enable-cern-meta</code></dt>
411         <dd>Enable the CERN-type meta files support provided by
412           <module>mod_cern_meta</module>.</dd>
413
414         <dt><code>--enable-charset-lite</code></dt>
415         <dd>Enable character set translation provided by
416           <module>mod_charset_lite</module>. This module will be installed by
417           default only on EBCDIC systems. On other systems, you have to enable
418           it.</dd>
419
420         <dt><code>--enable-dav</code></dt>
421         <dd>Enable the WebDAV protocol handling provided by
422           <module>mod_dav</module>. Support for filesystem resources is
423           provided by the seperate module <module>mod_dav_fs</module>. This
424           module is also automatically enabled with
425           <code>--enable-dav</code>.<br/>
426           Note: <module>mod_dav</module> can only be used together with the
427           <code>http</code> protocol module.</dd>
428
429         <dt><code>--enable-dav-fs</code></dt>
430         <dd>Enable DAV support for filesystem resources, which is provides by
431           <module>mod_dav_fs</module>. This module is a provider for the
432           <module>mod_dav</module> module, so you should also use
433           <code>--enable-dav</code>.</dd> 
434
435         <dt><code>--enable-deflate</code></dt>
436         <dd>Enable deflate transfer encoding provided by
437           <module>mod_deflate</module>.</dd>
438
439         <dt><code>--enable-disk-cache</code></dt>
440         <dd>Enable disk caching provided by
441           <module>mod_disk_cache</module>.</dd>
442
443         <dt><code>--enable-expires</code></dt>
444         <dd>Enable Expires header control provided by
445           <module>mod_expires</module>.</dd>
446
447         <dt><code>--enable-ext-filter</code></dt>
448         <dd>Enable the external filter support provided by
449           <module>mod_ext_filter</module>.</dd>
450
451         <dt><code>--enable-file-cache</code></dt>
452         <dd>Enable the file cache provided by
453           <module>mod_file_cache</module>.</dd>
454
455         <dt><code>--enable-headers</code></dt>
456         <dd>Enable control of HTTP headers provided by
457           <module>mod_headers</module>.</dd>
458
459         <dt><code>--enable-info</code></dt>
460         <dd>Enable the server information provided by
461           <module>mod_info</module>.</dd>
462
463         <dt><code>--enable-ldap</code></dt>
464         <dd>Enable LDAP caching and connection pooling services provided by
465           <module>mod_ldap</module>.</dd>
466
467         <dt><code>--enable-logio</code></dt>
468         <dd>Enable logging of input and output bytes including headers provided
469           by <module>mod_logio</module>.</dd>
470
471         <dt><code>--enable-mem-cache</code></dt>
472         <dd>Enable memory caching provided by
473           <module>mod_mem_cache</module>.</dd>
474
475         <dt><code>--enable-mime-magic</code></dt>
476         <dd>Enable automatical determining of MIME types, which is provided by
477           <module>mod_mime_magic</module>.</dd>
478
479         <dt><code>--enable-isapi</code></dt>
480         <dd>Enable the isapi extension support provided by
481           <module>mod_isapi</module>.</dd>
482
483         <dt><code>--enable-proxy</code></dt>
484         <dd>Enable the proxy/gateway functionality provided by
485           <module>mod_proxy</module>. The proxying capabilities for
486           <code>CONNECT</code>, <code>FTP</code> and <code>HTTP</code> are
487           provided by the seperate modules <module>mod_proxy_connect</module>,
488           <module>mod_proxy_ftp</module> and <module>mod_proxy_http</module>.
489           These three modules are also automatically enabled with
490           <code>--enable-proxy</code>.</dd>
491
492         <dt><code>--enable-proxy-connect</code></dt>
493         <dd>Enable proxy support for <code>CONNECT</code> request handling,
494           which is provided by <module>mod_proxy_connect</module>. This module
495           is an extension for the <module>mod_proxy</module> module, so you
496           should also use <code>--enable-proxy</code>.</dd>
497
498         <dt><code>--enable-proxy-ftp</code></dt>
499         <dd>Enable proxy support for <code>FTP</code> requests, which is
500           provided by <module>mod_proxy_ftp</module>.. This module
501           is an extension for the <module>mod_proxy</module> module, so you
502           should also use <code>--enable-proxy</code>.</dd>
503
504         <dt><code>--enable-proxy-http</code></dt>
505         <dd>Enable proxy support for <code>HTTP</code> requests, which is
506           provided by <module>mod_proxy_http</module>. This module
507           is an extension for the <module>mod_proxy</module> module, so you
508           should also use <code>--enable-proxy</code>.</dd>
509
510         <dt><code>--enable-rewrite</code></dt>
511         <dd>Enable rule based URL manipulation provided by
512           <module>mod_rewrite</module>.</dd>
513
514         <dt><code>--enable-so</code></dt>
515         <dd>Enable DSO capability provided by <module>mod_so</module>. This
516           module will be automatically enabled if you use the
517           <code>--enable-mods-shared</code> option.</dd>
518
519         <dt><code>--enable-speling</code></dt>
520         <dd>Enable the functionality to correct common URL misspellings, which
521           is provided by <module>mod_spelling</module>.</dd>
522
523         <dt><code>--enable-ssl</code></dt>
524         <dd>Enable support for SSL/TLS provided by
525           <module>mod_ssl</module>.</dd>
526
527         <dt><code>--enable-unique-id</code></dt>
528         <dd>Enable the generation of per-request unique ids, which is provided
529           by <module>mod_unique_id</module>.</dd>
530
531         <dt><code>--enable-usertrack</code></dt>
532         <dd>Enable user-session tracking provided by
533           <module>mod_usertrack</module>.</dd>
534
535         <dt><code>--enable-vhost-alias</code></dt>
536         <dd>Enable mass virtual hosting provided by
537           <module>mod_vhost_alias</module>.</dd>
538       </dl>
539     </section>
540
541     <section id="developermodules"><title>Modules for developers</title>
542       <p>The following modules are useful only for developers and testing
543         purposes and are disabled by default. Use the following options to
544         enable them. If you are not sure whether you need one of these
545         modules, omit them.</p>
546
547       <dl>
548         <!-- module doc needed -->
549         <dt><code>--enable-bucketeer</code></dt>
550         <dd>Enable the manipulation filter for buckets, which is provided by
551           <code>mod_bucketeer</code>.</dd>
552
553         <!-- module doc needed -->
554         <dt><code>--enable-case-filter</code></dt>
555         <dd>Enable the example uppercase conversion output filter support of
556           <code>mod_case_filter</code>.</dd>
557
558         <!-- module doc needed -->
559         <dt><code>--enable-case-filter-in</code></dt>
560         <dd>Enable the example uppercase conversion input filter support of
561           <code>mod_case_filter_in</code>.</dd>
562
563         <dt><code>--enable-echo</code></dt>
564         <dd>Enable the ECHO server provided by
565           <module>mod_echo</module>.</dd>
566
567         <dt><code>--enable-example</code></dt>
568         <dd>Enable the example and demo module
569           <module>mod_example</module>.</dd>
570
571         <!-- module doc needed -->
572         <dt><code>--enable-optional-fn-export</code></dt>
573         <dd>Enable the example for an optional function exporter, which is
574           provided by <code>mod_optional_fn_export</code>.</dd> 
575
576         <!-- module doc needed -->
577         <dt><code>--enable-optional-fn-import</code></dt>
578         <dd>Enable the example for an optional function importer, which is
579           provided by <code>mod_optional_fn_import</code>.</dd>
580
581         <!-- module doc needed -->
582         <dt><code>--enable-optional-hook-export</code></dt>
583         <dd>Enable the example for an optional hook exporter, which is provided
584           by <code>mod_optional_hook_export</code>.</dd>
585
586         <!-- module doc needed -->
587         <dt><code>--enable-optional-hook-import</code></dt>
588         <dd>Enable the example optional hook importer, which is provided by
589           <code>mod_optional_hook_import</code>.</dd>
590       </dl>
591     </section>
592
593     <section id="modules"><title>MPMs and third-party modules</title>
594       <p>To add the necessary Multi Processing Module and additional third-party
595         modules use the following options:</p>
596
597       <dl>
598         <dt><code>--with-module=<var>module-type</var>:<var>module-file</var>
599           </code></dt>
600         <dd><p>Add a third-party module to the list of statically linked
601             modules. The module source file <code><var>module-file</var></code>
602             will be searched in the <code>modules/<var>module-type</var></code>
603             subdirectory of your Apache HTTP server source tree so it has to be
604             placed there before. If it is not found here 
605             <code>configure</code> is considering <var>module-file</var> to be
606             an absolute file path and tries to copy the source file into the
607             <var>module-type</var> subdirectory.</p>
608           <p>This option is useful to add small external modules consisting of
609             one source file. For more complex modules you should read the
610             vendor's documentation.</p>
611           <note><title>Note</title>
612             If you want to build a DSO module instead of a statically linked
613             use <a href="apxs.html">apxs</a>.</note>
614         </dd>
615
616         <dt><code>--with-mpm=MPM</code></dt>
617         <dd>Choose the process model for your server. You have to select
618           exactly one <a href="../mpm.html">Multi-Processing Module</a>.
619           Otherwise the <a href="../mpm.html#defaults">default MPM</a> for
620           your operating system will be taken. Possible MPMs are
621           <module>beos</module>, <module>leader</module>,
622           <module>mpmt_os2</module>, <module>perchild</module>,
623           <module>prefork</module>, <module>threadpool</module> and
624           <module>worker</module>.</dd>
625       </dl>
626     </section>
627
628     <section id="otheroptfeat"><title>Cumulative and other options</title>
629       <dl>
630         <dt><code>--enable-maintainer-mode</code></dt>
631         <dd>Turn on debugging and compile time warnings.</dd>
632
633         <dt><code>--enable-mods-shared=<var>MODULE-LIST</var></code></dt>
634         <dd>
635           <p>Defines a list of modules to be enabled and build as dynamic
636             shared modules. This mean, these module have to be loaded
637             dynamically by using the  <directive
638             module="mod_so">LoadModule</directive> directive.</p>
639           <p><var>MODULE-LIST</var> is a space separated list of modulenames
640             enclosed by quotation marks. The module names are given without the
641             preceding <code>mod_</code>. For example:</p>
642           <example>
643             --enable-mods-shared='headers rewrite dav'
644           </example>
645           <p>Additionally you can use the special keywords <code>all</code> and
646             <code>most</code>. For example,</p>
647           <example>
648             --enable-mods-shared=most
649           </example>
650           <p>will compile most modules and build them as DSO modules.
651             <!-- See <a href="../install/enabledmodules.html">Overview of
652               enabled modules</a> for further information. --></p>
653         </dd>
654                     
655         <dt><code>--enable-modules=<var>MODULE-LIST</var></code></dt>
656         <dd>This option behaves similar to <code>--enable-mods-shared</code>, 
657           but will link the given modules statically. This mean, these modules
658           will always be present while running <code>httpd</code>. They need
659           not be loaded with <directive
660           module="mod_so">LoadModule</directive>.</dd>
661
662         <dt><code>--enable-v4-mapped</code></dt>
663         <dd>Allow IPv6 sockets to handle IPv4 connections.</dd>
664
665         <dt><code>--with-port=<var>PORT</var></code></dt>
666         <dd>This defines the port on which <code>httpd</code> will listen. This
667           port number is used when generating the configuration file
668           <code>httpd.conf</code>. The default is 80.</dd>
669
670         <dt><code>--with-program-name</code></dt>
671         <dd>Define an alternative executable name. The default is
672           <code>httpd</code>.</dd>
673       </dl>
674     </section>
675   </section>
676
677   <section id="packages"><title>Optional packages</title>
678     <p>These options are used to define optional packages.</p>
679
680     <section id="generalpackages"><title>General syntax</title>
681       <p>Generally you can use the following syntax to define an optional
682         package:</p>
683
684       <dl>
685         <dt><code>--with-<var>PACKAGE</var>[=<var>ARG</var>]</code></dt>
686         <dd>Use the package <var>PACKAGE</var>. The default value for
687           <var>ARG</var> is<code>yes</code>.</dd>
688
689         <dt><code>--without-<var>PACKAGE</var></code></dt>
690         <dd>Do not use the package <var>PACKAGE</var>. This is the same as
691           <code>--with-<var>PACKAGE</var>=no</code>. This option is provided by
692           <code>autoconf</code> but not very useful for the Apache HTTP
693           Server.</dd>
694       </dl>
695     </section>
696
697     <!-- options not known are passed to packasges?
698     are there other important options for packages? -->
699
700     <section id="packageopt"><title>Specific packages</title>
701       <dl>
702         <dt><code>--with-apr=<var>DIR</var>|<var>FILE</var></code></dt>
703         <dd>The Apache Portable Runtime (APR) is part of the <code>httpd</code>
704           source distribution and will automatically be build together with the
705           HTTP server. If you want to use an already installed APR instead you
706           have to tell <code>configure</code> the path to the
707           <code>apr-config</code> script. You may set the absolute path and name
708           or the directory to the installed APR. <code>apr-config</code> must
709           exists within this directory or the subdirectory
710           <code>bin</code>.</dd>
711         
712         <dt><code>--with-apr-util=<var>DIR</var>|<var>FILE</var></code></dt>
713         <dd>The Apache Portable Runtime Utilities (APU) are part of the
714           <code>httpd</code> source distribution and will automatically be build
715           together with the HTTP server. If you want to use an already installed
716           APU instead you have to tell <code>configure</code> the path to the
717           <code>apu-config</code> script. You may set the absolute path and name
718           or the directory to the installed APU. <code>apu-config</code> must
719           exists within this directory or the subdirectory
720           <code>bin</code>.</dd>
721
722         <dt><code>--with-ssl=<var>DIR</var></code></dt>
723         <dd>If <module>mod_ssl</module> has been enabled <code>configure</code>
724           searches for an installed OpenSSL. You can set the directory path
725           to the SSL/TLS toolkit instead.</dd>
726
727         <dt><code>--with-z=<var>DIR</var></code></dt>
728         <dd><code>configure</code> searches automatically for an installed
729           <code>zlib</code> library if your source configuration requires one
730           (e.g., when <module>mod_deflate</module> is enabled). You can set the
731           directory path to the compression library instead.</dd>
732       </dl>
733
734       <p>Several features of the Apache HTTP Server, including
735         <module>mod_authn_dbm</module> and <module>mod_rewrite</module>'s DBM
736         <directive module="mod_rewrite">RewriteMap</directive> use simple
737         key/value databases for quick lookups of information. SDBM is included
738         in the APU, so this database is always available. If you would like to
739         use other database types, use the following options to enable
740         them:</p>
741         
742       <dl>
743         <dt><code>--with-gdbm[=<var>path</var>]</code></dt>
744         <dd>If no <var>path</var> is specified, <code>configure</code> will
745           search for the include files and libraries of a GNU DBM
746           installation in the usual search paths. An explicit
747           <var>path</var> will cause <code>configure</code> to look in
748           <code><var>path</var>/lib</code> and
749           <code><var>path</var>/include</code> for the relevant files.
750           Finally, the <var>path</var> may specify specific include and
751           library paths separated by a colon.</dd>
752           
753         <dt><code>--with-ndbm[=<var>path</var>]</code></dt>
754         <dd>Like <code>--with-gdbm</code>, bur searches for a New DBM
755           installation.</dd>
756         
757         <dt><code>--with-berkeley-db[=<var>path</var>]</code></dt>
758         <dd>Like <code>--with-gdbm</code>, but searches for a Berkeley DB
759           installation.</dd>
760       </dl>
761
762       <note><title>Note</title>
763         <p>The DBM options are provided by the APU and passed through to its
764           configuration script. They are useless when using an already
765           installed APU defined by <code>--with-apr-util</code>.</p>
766         <p>You may use more then one DBM implementation together with your
767           HTTP server. The appropriated DBM type will be configured within
768           the runtime configuration at each time.</p>
769       </note>
770     </section>
771   </section>
772   
773   <section id="supportopt"><title>Options for support programs</title>
774     <dl>
775       <dt><code>--enable-static-support</code></dt>
776       <dd>Build a statically linked version of the support binaries. This
777         means, a stand-alone executable will be built with all the necessary
778         libraries integrated. Otherwise the support binaries are linked
779         dynamically by default.</dd>
780
781       <dt><code>--enable-suexec</code></dt>
782       <dd>Use this option to enable <code><a
783             href="suexec.html">suexec</a></code>, which allows you to set uid
784         and gid for spawned processes. Further options to configure
785         <code>suexec</code> are described <a href="#suexec">below</a>.</dd>
786     </dl>
787
788     <p>It is possible to create a statically linked binary of a single
789       support program by using the following options:</p>
790
791     <dl>
792       <dt><code>--enable-static-ab</code></dt>
793       <dd>Build a statically linked version of <code><a
794             href="ab.html">ab</a></code>.</dd>
795
796       <!-- missing documentation for chechgid -->
797       <dt><code>--enable-static-checkgid</code></dt>
798       <dd>Build a statically linked version of <code>checkgid</code>.</dd>
799
800       <!-- missing documentation for htdbm -->
801       <dt><code>--enable-static-htdbm</code></dt>
802       <dd>Build a statically linked version of <code>htdbm</code>.</dd>
803
804       <dt><code>--enable-static-htdigest</code></dt>
805       <dd>Build a statically linked version of <code><a
806             href="htdigest.html">htdigest</a></code>.</dd>
807         
808       <dt><code>--enable-static-htpasswd</code></dt>
809       <dd>Build a statically linked version of <code><a
810             href="htpasswd.html">htpasswd</a></code>.</dd>
811
812       <dt><code>--enable-static-logresolve</code></dt>
813       <dd>Build a statically linked version of <code><a
814             href="logresolve.html">logresolve</a></code>.</dd>
815
816       <dt><code>--enable-static-rotatelogs</code></dt>
817       <dd>Build a statically linked version of <code><a
818             href="rotatelogs.html">rotatelogs</a></code>.</dd>
819     </dl>
820
821     <section id="suexec"><title>suexec configuration options</title>
822       <p>The following options are used to fine tune the behavior of <code><a
823         href="suexec.html">suexec</a></code>. See <a
824         href="suexec.html#install">Configuring and installing suEXEC</a>
825         for further information.</p>
826
827       <dl>
828         <dt><code>--with-suexec-bin</code></dt>
829         <dd>This defines the path to suexec binary. Default is
830           <code>--sbindir</code> (see <a href="directoryfinetuning">Fine
831             tuning of installation directories</a>).</dd>
832
833         <dt><code>--with-suexec-caller</code></dt>
834         <dd>This defines the user allowed to call <code>suexec</code>. It should
835           be the same as the user under which <code>httpd</code> normally
836           runs.</dd>
837
838         <dt><code>--with-suexec-docroot</code></dt>
839         <dd>This defines the directory tree under which <code>suexec</code>
840           access is allowed for executables. Default value is
841           <code>--datadir/htdocs</code>.</dd>
842
843         <dt><code>--with-suexec-gidmin</code></dt>
844         <dd>Define this as the lowest GID allowed to be a target user for
845           <code>suexec</code>. The default value is 100.</dd>
846
847         <dt><code>--with-suexec-logfile</code></dt>
848         <dd>This defines the filename of the <code>suexec</code> logfile. By
849           default the logfile is named <code>suexec_log</code> and located in
850           <code>--logfiledir</code>.</dd>
851
852         <dt><code>--with-suexec-safepath</code></dt>
853         <dd>Define the value of the environment variable <code>PATH</code> to
854           be set for processes started by <code>suexec</code>. Default value is
855           <code>/usr/local/bin:/usr/bin:/bin</code>.</dd>
856
857         <dt><code>--with-suexec-userdir</code></dt>
858         <dd>This defines the subdirectory under the user's directory that
859           contains all executables for which <code>suexec</code> access is
860           allowed. This setting is necessary when you want to use
861           <code>suexec</code> together with user-specific directories (as
862           provided by <module>mod_userdir</module>). The default is
863           <code>public_html</code>.</dd>
864
865         <dt><code>--with-suexec-uidmin</code></dt>
866         <dd>Define this as the lowest UID allowed to be a target user for
867           <code>suexec</code>. The default value is 100.</dd>
868
869         <dt><code>--with-suexec-umask</code></dt>
870         <dd>Set <code>umask</code> for processes started by <code>suexec</code>.
871           It defaults to your system settings.</dd>
872       </dl>
873     </section>
874   </section>
875 </section>
876
877 <section id="env"><title>Environment variables</title>
878   <p>There are some useful environment variables to override the choices made by
879     <code>configure</code> or to help it to find libraries and programs with
880     nonstandard names or locations.</p>
881
882   <!-- are these all useful variables? -->
883   <dl>
884     <dt><code>CC</code></dt>
885     <dd>Define the C compiler command to be used for compilation.</dd>
886
887     <dt><code>CFLAGS</code></dt>
888     <dd>Set C compiler flags you want to use for compilation.</dd>
889
890     <dt><code>CPP</code></dt>
891     <dd>Define the C preprocessor command to be used.</dd>
892
893     <dt><code>CPPFLAGS</code></dt>
894     <dd>Set C/C++ preprocessor flags, e.g. <code>-I<var>includedir</var></code>
895       if you have headers in a nonstandard directory <var>includedir</var>.</dd>
896
897     <dt><code>LDFLAGS</code></dt>
898     <dd>Set linker flags, e.g. <code>-L<var>libdir</var></code> if you have
899       libraries in a nonstandard directory <var>libdir</var>.</dd> 
900   </dl>
901 </section>
902 </manualpage>