Fix work keepalive and rewrite to named location
[nginx-catap.git] / auto / modules
blob7d164e572041e22bb69e9acae7ae4f0d7cd37d21
2 # Copyright (C) Igor Sysoev
5 if [ $EVENT_SELECT = NO -a $EVENT_FOUND = NO ]; then
6     EVENT_SELECT=YES
7 fi
9 if [ $EVENT_SELECT = YES ]; then
10     have=NGX_HAVE_SELECT . auto/have
11     CORE_SRCS="$CORE_SRCS $SELECT_SRCS"
12     EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE"
16 if [ $EVENT_POLL = NO -a $EVENT_FOUND = NO ]; then
17     EVENT_POLL=YES
20 if [ $EVENT_POLL = YES ]; then
21     have=NGX_HAVE_POLL . auto/have
22     CORE_SRCS="$CORE_SRCS $POLL_SRCS"
23     EVENT_MODULES="$EVENT_MODULES $POLL_MODULE"
27 if [ $NGX_TEST_BUILD_DEVPOLL = YES ]; then
28     have=NGX_HAVE_DEVPOLL . auto/have
29     have=NGX_TEST_BUILD_DEVPOLL . auto/have
30     EVENT_MODULES="$EVENT_MODULES $DEVPOLL_MODULE"
31     CORE_SRCS="$CORE_SRCS $DEVPOLL_SRCS"
35 if [ $NGX_TEST_BUILD_EVENTPORT = YES ]; then
36     have=NGX_HAVE_EVENTPORT . auto/have
37     have=NGX_TEST_BUILD_EVENTPORT . auto/have
38     EVENT_MODULES="$EVENT_MODULES $EVENTPORT_MODULE"
39     CORE_SRCS="$CORE_SRCS $EVENTPORT_SRCS"
42 if [ $NGX_TEST_BUILD_EPOLL = YES ]; then
43     have=NGX_HAVE_EPOLL . auto/have
44     have=NGX_HAVE_EVENTFD . auto/have
45     have=NGX_TEST_BUILD_EPOLL . auto/have
46     EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE"
47     CORE_SRCS="$CORE_SRCS $EPOLL_SRCS"
50 if [ $NGX_TEST_BUILD_RTSIG = YES ]; then
51     have=NGX_HAVE_RTSIG . auto/have
52     have=NGX_TEST_BUILD_RTSIG . auto/have
53     EVENT_MODULES="$EVENT_MODULES $RTSIG_MODULE"
54     CORE_SRCS="$CORE_SRCS $RTSIG_SRCS"
57 if [ $NGX_TEST_BUILD_SOLARIS_SENDFILEV = YES ]; then
58     have=NGX_TEST_BUILD_SOLARIS_SENDFILEV . auto/have
59     CORE_SRCS="$CORE_SRCS $SOLARIS_SENDFILEV_SRCS"
63 if [ $HTTP != YES ]; then
64     have=NGX_CRYPT . auto/nohave
65     CRYPT_LIB=
69 if [ $HTTP_CACHE = YES ]; then
70     USE_MD5=YES
71     have=NGX_HTTP_CACHE . auto/have
72     HTTP_SRCS="$HTTP_SRCS $HTTP_FILE_CACHE_SRCS"
76 if [ $HTTP_SSI = YES ]; then
77     HTTP_POSTPONE=YES
81 if [ $HTTP_ADDITION = YES ]; then
82     HTTP_POSTPONE=YES
86 # the module order is important
87 #     ngx_http_static_module
88 #     ngx_http_gzip_static_module
89 #     ngx_http_dav_module
90 #     ngx_http_autoindex_module
91 #     ngx_http_index_module
92 #     ngx_http_random_index_module
94 #     ngx_http_access_module
95 #     ngx_http_realip_module
98 # the filter order is important
99 #     ngx_http_write_filter
100 #     ngx_http_header_filter
101 #     ngx_http_chunked_filter
102 #     ngx_http_range_header_filter
103 #     ngx_http_gzip_filter
104 #     ngx_http_postpone_filter
105 #     ngx_http_ssi_filter
106 #     ngx_http_charset_filter
107 #         ngx_http_xslt_filter
108 #         ngx_http_image_filter
109 #         ngx_http_sub_filter
110 #         ngx_http_addition_filter
111 #         ngx_http_userid_filter
112 #         ngx_http_headers_filter
113 #     ngx_http_copy_filter
114 #     ngx_http_range_body_filter
115 #     ngx_http_not_modified_filter
117 HTTP_FILTER_MODULES="$HTTP_WRITE_FILTER_MODULE \
118                      $HTTP_HEADER_FILTER_MODULE \
119                      $HTTP_CHUNKED_FILTER_MODULE \
120                      $HTTP_RANGE_HEADER_FILTER_MODULE"
122 if [ $HTTP_GZIP = YES ]; then
123     have=NGX_HTTP_GZIP . auto/have
124     USE_ZLIB=YES
125     HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_GZIP_FILTER_MODULE"
126     HTTP_SRCS="$HTTP_SRCS $HTTP_GZIP_SRCS"
129 if [ $HTTP_POSTPONE = YES ]; then
130     HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_POSTPONE_FILTER_MODULE"
131     HTTP_SRCS="$HTTP_SRCS $HTTP_POSTPONE_FILTER_SRCS"
134 if [ $HTTP_SSI = YES ]; then
135     have=NGX_HTTP_SSI . auto/have
136     HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_SSI_FILTER_MODULE"
137     HTTP_DEPS="$HTTP_DEPS $HTTP_SSI_DEPS"
138     HTTP_SRCS="$HTTP_SRCS $HTTP_SSI_SRCS"
141 if [ $HTTP_CHARSET = YES ]; then
142     HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_CHARSET_FILTER_MODULE"
143     HTTP_SRCS="$HTTP_SRCS $HTTP_CHARSET_SRCS"
146 if [ $HTTP_XSLT = YES ]; then
147     USE_LIBXSLT=YES
148     HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_XSLT_FILTER_MODULE"
149     HTTP_SRCS="$HTTP_SRCS $HTTP_XSLT_SRCS"
152 if [ $HTTP_IMAGE_FILTER = YES ]; then
153     USE_LIBGD=YES
154     HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_IMAGE_FILTER_MODULE"
155     HTTP_SRCS="$HTTP_SRCS $HTTP_IMAGE_SRCS"
158 if [ $HTTP_SUB = YES ]; then
159     HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_SUB_FILTER_MODULE"
160     HTTP_SRCS="$HTTP_SRCS $HTTP_SUB_SRCS"
163 if [ $HTTP_RND = YES ]; then
164     HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_RND_FILTER_MODULE"
165     HTTP_SRCS="$HTTP_SRCS $HTTP_RND_SRCS"
168 if [ $HTTP_ADDITION = YES ]; then
169     HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_ADDITION_FILTER_MODULE"
170     HTTP_SRCS="$HTTP_SRCS $HTTP_ADDITION_SRCS"
173 if [ $HTTP_USERID = YES ]; then
174     HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_USERID_FILTER_MODULE"
175     HTTP_SRCS="$HTTP_SRCS $HTTP_USERID_SRCS"
178 HTTP_MODULES="$HTTP_MODULES $HTTP_STATIC_MODULE"
180 if [ $HTTP_GZIP_STATIC = YES ]; then
181     have=NGX_HTTP_GZIP . auto/have
182     HTTP_MODULES="$HTTP_MODULES $HTTP_GZIP_STATIC_MODULE"
183     HTTP_SRCS="$HTTP_SRCS $HTTP_GZIP_STATIC_SRCS"
186 if [ $HTTP_DAV = YES ]; then
187     have=NGX_HTTP_DAV . auto/have
188     HTTP_MODULES="$HTTP_MODULES $HTTP_DAV_MODULE"
189     HTTP_SRCS="$HTTP_SRCS $HTTP_DAV_SRCS"
192 if [ $HTTP_AUTOINDEX = YES ]; then
193     HTTP_MODULES="$HTTP_MODULES $HTTP_AUTOINDEX_MODULE"
194     HTTP_SRCS="$HTTP_SRCS $HTTP_AUTOINDEX_SRCS"
197 HTTP_MODULES="$HTTP_MODULES $HTTP_INDEX_MODULE"
199 if [ $HTTP_RANDOM_INDEX = YES ]; then
200     HTTP_MODULES="$HTTP_MODULES $HTTP_RANDOM_INDEX_MODULE"
201     HTTP_SRCS="$HTTP_SRCS $HTTP_RANDOM_INDEX_SRCS"
204 if [ $HTTP_AUTH_BASIC = YES ]; then
205     have=NGX_CRYPT . auto/have
206     HTTP_MODULES="$HTTP_MODULES $HTTP_AUTH_BASIC_MODULE"
207     HTTP_SRCS="$HTTP_SRCS $HTTP_AUTH_BASIC_SRCS"
208     CORE_LIBS="$CORE_LIBS $CRYPT_LIB"
211 if [ $HTTP_ACCESS = YES ]; then
212     HTTP_MODULES="$HTTP_MODULES $HTTP_ACCESS_MODULE"
213     HTTP_SRCS="$HTTP_SRCS $HTTP_ACCESS_SRCS"
216 if [ $HTTP_LIMIT_ZONE = YES ]; then
217     HTTP_MODULES="$HTTP_MODULES $HTTP_LIMIT_ZONE_MODULE"
218     HTTP_SRCS="$HTTP_SRCS $HTTP_LIMIT_ZONE_SRCS"
221 if [ $HTTP_LIMIT_VAR = YES ]; then
222     have=NGX_HTTP_LIMIT_VAR . auto/have
223     HTTP_MODULES="$HTTP_MODULES $HTTP_LIMIT_VAR_MODULE"
224     HTTP_SRCS="$HTTP_SRCS $HTTP_LIMIT_VAR_SRCS"
227 if [ $HTTP_LIMIT_REQ = YES ]; then
228     HTTP_MODULES="$HTTP_MODULES $HTTP_LIMIT_REQ_MODULE"
229     HTTP_SRCS="$HTTP_SRCS $HTTP_LIMIT_REQ_SRCS"
232 if [ $HTTP_REALIP = YES ]; then
233     have=NGX_HTTP_REALIP . auto/have
234     HTTP_MODULES="$HTTP_MODULES $HTTP_REALIP_MODULE"
235     HTTP_SRCS="$HTTP_SRCS $HTTP_REALIP_SRCS"
238 if [ $HTTP_STATUS = YES ]; then
239     HTTP_MODULES="$HTTP_MODULES $HTTP_STATUS_MODULE"
240     HTTP_SRCS="$HTTP_SRCS $HTTP_STATUS_SRCS"
243 if [ $HTTP_GEO = YES ]; then
244     have=NGX_HTTP_GEO . auto/have
245     HTTP_MODULES="$HTTP_MODULES $HTTP_GEO_MODULE"
246     HTTP_SRCS="$HTTP_SRCS $HTTP_GEO_SRCS"
249 if [ $HTTP_GEOIP = YES ]; then
250     HTTP_MODULES="$HTTP_MODULES $HTTP_GEOIP_MODULE"
251     HTTP_SRCS="$HTTP_SRCS $HTTP_GEOIP_SRCS"
254 if [ $HTTP_MAP = YES ]; then
255     HTTP_MODULES="$HTTP_MODULES $HTTP_MAP_MODULE"
256     HTTP_SRCS="$HTTP_SRCS $HTTP_MAP_SRCS"
259 if [ $HTTP_SPLIT_CLIENTS = YES ]; then
260     HTTP_MODULES="$HTTP_MODULES $HTTP_SPLIT_CLIENTS_MODULE"
261     HTTP_SRCS="$HTTP_SRCS $HTTP_SPLIT_CLIENTS_SRCS"
264 if [ $HTTP_REFERER = YES ]; then
265     HTTP_MODULES="$HTTP_MODULES $HTTP_REFERER_MODULE"
266     HTTP_SRCS="$HTTP_SRCS $HTTP_REFERER_SRCS"
269 if [ $HTTP_REWRITE = YES -a $USE_PCRE != DISABLED ]; then
270     USE_PCRE=YES
271     HTTP_MODULES="$HTTP_MODULES $HTTP_REWRITE_MODULE"
272     HTTP_SRCS="$HTTP_SRCS $HTTP_REWRITE_SRCS"
275 if [ $HTTP_SSL = YES ]; then
276     USE_OPENSSL=YES
277     have=NGX_HTTP_SSL . auto/have
278     HTTP_MODULES="$HTTP_MODULES $HTTP_SSL_MODULE"
279     HTTP_DEPS="$HTTP_DEPS $HTTP_SSL_DEPS"
280     HTTP_SRCS="$HTTP_SRCS $HTTP_SSL_SRCS"
283 if [ $HTTP_PROXY = YES ]; then
284     have=NGX_HTTP_PROXY . auto/have
285     #USE_MD5=YES
286     HTTP_MODULES="$HTTP_MODULES $HTTP_PROXY_MODULE"
287     HTTP_DEPS="$HTTP_DEPS $HTTP_PROXY_DEPS"
288     HTTP_SRCS="$HTTP_SRCS $HTTP_PROXY_SRCS"
291 if [ $HTTP_FASTCGI = YES ]; then
292     HTTP_MODULES="$HTTP_MODULES $HTTP_FASTCGI_MODULE"
293     HTTP_SRCS="$HTTP_SRCS $HTTP_FASTCGI_SRCS"
296 if [ $HTTP_UWSGI = YES ]; then
297     HTTP_MODULES="$HTTP_MODULES $HTTP_UWSGI_MODULE"
298     HTTP_SRCS="$HTTP_SRCS $HTTP_UWSGI_SRCS"
301 if [ $HTTP_PERL = YES ]; then
302     USE_PERL=YES
303     HTTP_MODULES="$HTTP_MODULES $HTTP_PERL_MODULE"
304     HTTP_INCS="$HTTP_INCS $HTTP_PERL_INCS"
305     HTTP_DEPS="$HTTP_DEPS $HTTP_PERL_DEPS"
306     HTTP_SRCS="$HTTP_SRCS $HTTP_PERL_SRCS"
309 if [ $HTTP_MEMCACHED = YES ]; then
310     HTTP_MODULES="$HTTP_MODULES $HTTP_MEMCACHED_MODULE"
311     HTTP_SRCS="$HTTP_SRCS $HTTP_MEMCACHED_SRCS"
314 if [ $HTTP_EMPTY_GIF = YES ]; then
315     HTTP_MODULES="$HTTP_MODULES $HTTP_EMPTY_GIF_MODULE"
316     HTTP_SRCS="$HTTP_SRCS $HTTP_EMPTY_GIF_SRCS"
319 if [ $HTTP_BROWSER = YES ]; then
320     HTTP_MODULES="$HTTP_MODULES $HTTP_BROWSER_MODULE"
321     HTTP_SRCS="$HTTP_SRCS $HTTP_BROWSER_SRCS"
324 if [ $HTTP_SECURE_LINK = YES ]; then
325     USE_MD5=YES
326     HTTP_MODULES="$HTTP_MODULES $HTTP_SECURE_LINK_MODULE"
327     HTTP_SRCS="$HTTP_SRCS $HTTP_SECURE_LINK_SRCS"
330 if [ $HTTP_DEGRADATION = YES ]; then
331     HTTP_MODULES="$HTTP_MODULES $HTTP_DEGRADATION_MODULE"
332     HTTP_SRCS="$HTTP_SRCS $HTTP_DEGRADATION_SRCS"
335 if [ $HTTP_FLV = YES ]; then
336     HTTP_MODULES="$HTTP_MODULES $HTTP_FLV_MODULE"
337     HTTP_SRCS="$HTTP_SRCS $HTTP_FLV_SRCS"
340 if [ $HTTP_IS_BOT = YES ]; then
341     HTTP_MODULES="$HTTP_MODULES $HTTP_IS_BOT_MODULE"
342     HTTP_SRCS="$HTTP_SRCS $HTTP_IS_BOT_SRCS"
345 if [ $HTTP_UPSTREAM_IP_HASH = YES ]; then
346     HTTP_MODULES="$HTTP_MODULES $HTTP_UPSTREAM_IP_HASH_MODULE"
347     HTTP_SRCS="$HTTP_SRCS $HTTP_UPSTREAM_IP_HASH_SRCS"
350 if [ $HTTP_RESPONSE = YES ]; then
351     HTTP_MODULES="$HTTP_MODULES $HTTP_RESPONSE_MODULE"
352     HTTP_SRCS="$HTTP_SRCS $HTTP_RESPONSE_SRCS"
355 if [ $HTTP_EVAL = YES ]; then
356     HTTP_MODULES="$HTTP_MODULES $HTTP_EVAL_MODULE"
357     HTTP_SRCS="$HTTP_SRCS $HTTP_EVAL_SRCS"
360 if [ $HTTP_UPSTREAM_KEEPALIVE = YES ]; then
361     HTTP_MODULES="$HTTP_MODULES $HTTP_UPSTREAM_KEEPALIVE_MODULE"
362     HTTP_SRCS="$HTTP_SRCS $HTTP_UPSTREAM_KEEPALIVE_SRCS"
365 if [ $HTTP_STUB_STATUS = YES ]; then
366     have=NGX_STAT_STUB . auto/have
367     HTTP_MODULES="$HTTP_MODULES ngx_http_stub_status_module"
368     HTTP_SRCS="$HTTP_SRCS src/http/modules/ngx_http_stub_status_module.c"
371 if [ $NGX_STATUS = YES ]; then
372     if [ $HTTP_STATUS_TXT = YES ]; then
373         have=NGX_STATUS_TXT . auto/have
374         HTTP_MODULES="$HTTP_MODULES $HTTP_STATUS_TXT_MODULE"
375         HTTP_SRCS="$HTTP_SRCS $HTTP_STATUS_TXT_SRCS"
376     fi
377     if [ $HTTP_STATUS_XML = YES ]; then
378         have=NGX_STATUS_XML . auto/have
379         HTTP_MODULES="$HTTP_MODULES $HTTP_STATUS_XML_MODULE"
380         HTTP_SRCS="$HTTP_SRCS $HTTP_STATUS_XML_SRCS"
381     fi
384 if [ $HTTP_STATUS_HEAP = YES ]; then
385     HTTP_MODULES="$HTTP_MODULES $HTTP_STATUS_HEAP_MODULE"
386     HTTP_SRCS="$HTTP_SRCS $HTTP_STATUS_HEAP_SRCS"
389 #if [ -r $NGX_OBJS/auto ]; then
390 #    . $NGX_OBJS/auto
394 if test -n "$NGX_ADDONS"; then
396     echo configuring additional modules
398     for ngx_addon_dir in $NGX_ADDONS
399     do
400         echo "adding module in $ngx_addon_dir"
402         if test -f $ngx_addon_dir/config; then
403             . $ngx_addon_dir/config
405             echo " + $ngx_addon_name was configured"
407         else
408             echo "$0: error: no $ngx_addon_dir/config was found"
409             exit 1
410         fi
411     done
415 if [ $MAIL_SSL = YES ]; then
416     have=NGX_MAIL_SSL . auto/have
417     USE_OPENSSL=YES
421 modules="$CORE_MODULES $EVENT_MODULES"
424 if [ $USE_OPENSSL = YES ]; then
425     modules="$modules $OPENSSL_MODULE"
426     CORE_DEPS="$CORE_DEPS $OPENSSL_DEPS"
427     CORE_SRCS="$CORE_SRCS $OPENSSL_SRCS"
430 if [ $HTTP = YES ]; then
431     modules="$modules $HTTP_MODULES $HTTP_FILTER_MODULES \
432              $HTTP_HEADERS_FILTER_MODULE \
433              $HTTP_AUX_FILTER_MODULES \
434              $HTTP_COPY_FILTER_MODULE \
435              $HTTP_RANGE_BODY_FILTER_MODULE \
436              $HTTP_NOT_MODIFIED_FILTER_MODULE"
438     NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(HTTP_DEPS)"
442 if [ $MAIL = YES ]; then
443     modules="$modules $MAIL_MODULES"
445     if [ $MAIL_SSL = YES ]; then
446         modules="$modules $MAIL_SSL_MODULE"
447         MAIL_DEPS="$MAIL_DEPS $MAIL_SSL_DEPS"
448         MAIL_SRCS="$MAIL_SRCS $MAIL_SSL_SRCS"
449     fi
451     if [ $MAIL_POP3 = YES ]; then
452         modules="$modules $MAIL_POP3_MODULE"
453         MAIL_DEPS="$MAIL_DEPS $MAIL_POP3_DEPS"
454         MAIL_SRCS="$MAIL_SRCS $MAIL_POP3_SRCS"
455     fi
457     if [ $MAIL_IMAP = YES ]; then
458         modules="$modules $MAIL_IMAP_MODULE"
459         MAIL_DEPS="$MAIL_DEPS $MAIL_IMAP_DEPS"
460         MAIL_SRCS="$MAIL_SRCS $MAIL_IMAP_SRCS"
461     fi
463     if [ $MAIL_SMTP = YES ]; then
464         modules="$modules $MAIL_SMTP_MODULE"
465         MAIL_DEPS="$MAIL_DEPS $MAIL_SMTP_DEPS"
466         MAIL_SRCS="$MAIL_SRCS $MAIL_SMTP_SRCS"
467     fi
469     modules="$modules $MAIL_AUTH_HTTP_MODULE"
470     MAIL_SRCS="$MAIL_SRCS $MAIL_AUTH_HTTP_SRCS"
472     modules="$modules $MAIL_PROXY_MODULE"
473     MAIL_SRCS="$MAIL_SRCS $MAIL_PROXY_SRCS"
477 if [ $NGX_GOOGLE_PERFTOOLS = YES ]; then
478     modules="$modules $NGX_GOOGLE_PERFTOOLS_MODULE"
479     NGX_MISC_SRCS="$NGX_MISC_SRCS $NGX_GOOGLE_PERFTOOLS_SRCS"
483 if [ $NGX_CPP_TEST = YES ]; then
484     NGX_MISC_SRCS="$NGX_MISC_SRCS $NGX_CPP_TEST_SRCS"
487 if [ $USE_OBSD_MALLOC = YES ]; then
488     have=OBSD_MALLOC . auto/have
489     USE_JEMALLOC=NO
490     CORE_SRCS="$CORE_SRCS $NGX_OBSD_MALLOC_SRCS"
493 if [ $USE_JEMALLOC = YES ]; then
494     have=JEMALLOC . auto/have
495     USE_OBSD_MALLOC=NO
496     CORE_SRCS="$CORE_SRCS $NGX_JEMALLOC_SRCS"
500 if [ $NGX_STATUS = YES ]; then
501     have=NGX_STATUS . auto/have
502     modules="$modules $NGX_STATUS_MODULE"
503     CORE_SRCS="$CORE_SRCS $NGX_STATUS_SRCS"
504     CORE_DEPS="$CORE_DEPS $NGX_STATUS_DEPS"
508 cat << END                                    > $NGX_MODULES_C
510 #include <ngx_config.h>
511 #include <ngx_core.h>
513 $NGX_PRAGMA
517 for mod in $modules
519     echo "extern ngx_module_t  $mod;"         >> $NGX_MODULES_C
520 done
522 echo                                          >> $NGX_MODULES_C
523 echo 'ngx_module_t *ngx_modules[] = {'        >> $NGX_MODULES_C
525 for mod in $modules
527     echo "    &$mod,"                         >> $NGX_MODULES_C
528 done
530 cat << END                                    >> $NGX_MODULES_C
531     NULL