upstream nginx-0.7.43
[nginx.git] / nginx / auto / modules
1
2 # Copyright (C) Igor Sysoev
3
4
5 if [ $EVENT_SELECT = NO -a $EVENT_FOUND = NO ]; then
6     EVENT_SELECT=YES
7 fi
8
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"
13 fi
14
15
16 if [ $EVENT_POLL = NO -a $EVENT_FOUND = NO ]; then
17     EVENT_POLL=YES
18 fi
19
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"
24 fi
25
26
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"
32 fi
33
34
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"
40 fi
41
42 if [ $NGX_TEST_BUILD_EPOLL = YES ]; then
43     have=NGX_HAVE_EPOLL . auto/have
44     have=NGX_TEST_BUILD_EPOLL . auto/have
45     EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE"
46     CORE_SRCS="$CORE_SRCS $EPOLL_SRCS"
47 fi
48
49 if [ $NGX_TEST_BUILD_RTSIG = YES ]; then
50     have=NGX_HAVE_RTSIG . auto/have
51     have=NGX_TEST_BUILD_RTSIG . auto/have
52     EVENT_MODULES="$EVENT_MODULES $RTSIG_MODULE"
53     CORE_SRCS="$CORE_SRCS $RTSIG_SRCS"
54 fi
55
56 if [ $NGX_TEST_BUILD_SOLARIS_SENDFILEV = YES ]; then
57     have=NGX_TEST_BUILD_SOLARIS_SENDFILEV . auto/have
58     CORE_SRCS="$CORE_SRCS $SOLARIS_SENDFILEV_SRCS"
59 fi
60
61
62 if [ $HTTP != YES ]; then
63     have=NGX_CRYPT . auto/nohave
64     CRYPT_LIB=
65 fi
66
67
68 if [ $HTTP_SSI = YES ]; then
69     HTTP_POSTPONE=YES
70 fi
71
72
73 if [ $HTTP_ADDITION = YES ]; then
74     HTTP_POSTPONE=YES
75 fi
76
77
78 # the module order is important
79 #     ngx_http_static_module
80 #     ngx_http_gzip_static_module
81 #     ngx_http_dav_module
82 #     ngx_http_autoindex_module
83 #     ngx_http_index_module
84 #     ngx_http_random_index_module
85 #
86 #     ngx_http_access_module
87 #     ngx_http_realip_module
88 #
89 #
90 # the filter order is important
91 #     ngx_http_write_filter
92 #     ngx_http_header_filter
93 #     ngx_http_chunked_filter
94 #     ngx_http_range_header_filter
95 #     ngx_http_gzip_filter
96 #     ngx_http_postpone_filter
97 #     ngx_http_charset_filter
98 #     ngx_http_ssi_filter
99 #         ngx_http_xslt_filter
100 #         ngx_http_sub_filter
101 #         ngx_http_addition_filter
102 #         ngx_http_userid_filter
103 #         ngx_http_headers_filter
104 #     ngx_http_copy_filter
105 #     ngx_http_range_body_filter
106 #     ngx_http_not_modified_filter
107
108 HTTP_FILTER_MODULES="$HTTP_WRITE_FILTER_MODULE \
109                      $HTTP_HEADER_FILTER_MODULE \
110                      $HTTP_CHUNKED_FILTER_MODULE \
111                      $HTTP_RANGE_HEADER_FILTER_MODULE"
112
113 if [ $HTTP_GZIP = YES ]; then
114     have=NGX_HTTP_GZIP . auto/have
115     USE_ZLIB=YES
116     HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_GZIP_FILTER_MODULE"
117     HTTP_SRCS="$HTTP_SRCS $HTTP_GZIP_SRCS"
118 fi
119
120 if [ $HTTP_POSTPONE = YES ]; then
121     HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_POSTPONE_FILTER_MODULE"
122     HTTP_SRCS="$HTTP_SRCS $HTTP_POSTPONE_FILTER_SRCS"
123 fi
124
125 if [ $HTTP_CHARSET = YES ]; then
126     have=NGX_HTTP_CHARSET . auto/have
127     HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_CHARSET_FILTER_MODULE"
128     HTTP_SRCS="$HTTP_SRCS $HTTP_CHARSET_SRCS"
129 fi
130
131 if [ $HTTP_SSI = YES ]; then
132     have=NGX_HTTP_SSI . auto/have
133     HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_SSI_FILTER_MODULE"
134     HTTP_DEPS="$HTTP_DEPS $HTTP_SSI_DEPS"
135     HTTP_SRCS="$HTTP_SRCS $HTTP_SSI_SRCS"
136 fi
137
138 if [ $HTTP_XSLT = YES ]; then
139     USE_LIBXSLT=YES
140     HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_XSLT_FILTER_MODULE"
141     HTTP_SRCS="$HTTP_SRCS $HTTP_XSLT_SRCS"
142 fi
143
144 if [ $HTTP_SUB = YES ]; then
145     HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_SUB_FILTER_MODULE"
146     HTTP_SRCS="$HTTP_SRCS $HTTP_SUB_SRCS"
147 fi
148
149 if [ $HTTP_ADDITION = YES ]; then
150     HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_ADDITION_FILTER_MODULE"
151     HTTP_SRCS="$HTTP_SRCS $HTTP_ADDITION_SRCS"
152 fi
153
154 if [ $HTTP_USERID = YES ]; then
155     HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_USERID_FILTER_MODULE"
156     HTTP_SRCS="$HTTP_SRCS $HTTP_USERID_SRCS"
157 fi
158
159 HTTP_MODULES="$HTTP_MODULES $HTTP_STATIC_MODULE"
160
161 if [ $HTTP_GZIP_STATIC = YES ]; then
162     have=NGX_HTTP_GZIP . auto/have
163     HTTP_MODULES="$HTTP_MODULES $HTTP_GZIP_STATIC_MODULE"
164     HTTP_SRCS="$HTTP_SRCS $HTTP_GZIP_STATIC_SRCS"
165 fi
166
167 if [ $HTTP_DAV = YES ]; then
168     have=NGX_HTTP_DAV . auto/have
169     HTTP_MODULES="$HTTP_MODULES $HTTP_DAV_MODULE"
170     HTTP_SRCS="$HTTP_SRCS $HTTP_DAV_SRCS"
171 fi
172
173 if [ $HTTP_AUTOINDEX = YES ]; then
174     have=NGX_HTTP_AUTOINDEX . auto/have
175     HTTP_MODULES="$HTTP_MODULES $HTTP_AUTOINDEX_MODULE"
176     HTTP_SRCS="$HTTP_SRCS $HTTP_AUTOINDEX_SRCS"
177 fi
178
179 HTTP_MODULES="$HTTP_MODULES $HTTP_INDEX_MODULE"
180
181 if [ $HTTP_RANDOM_INDEX = YES ]; then
182     have=NGX_HTTP_RANDOM_INDEX . auto/have
183     HTTP_MODULES="$HTTP_MODULES $HTTP_RANDOM_INDEX_MODULE"
184     HTTP_SRCS="$HTTP_SRCS $HTTP_RANDOM_INDEX_SRCS"
185 fi
186
187 if [ $HTTP_AUTH_BASIC = YES ]; then
188     have=NGX_HTTP_AUTH_BASIC . auto/have
189     have=NGX_CRYPT . auto/have
190     HTTP_MODULES="$HTTP_MODULES $HTTP_AUTH_BASIC_MODULE"
191     HTTP_SRCS="$HTTP_SRCS $HTTP_AUTH_BASIC_SRCS"
192     CORE_LIBS="$CORE_LIBS $CRYPT_LIB"
193 fi
194
195 if [ $HTTP_ACCESS = YES ]; then
196     have=NGX_HTTP_ACCESS . auto/have
197     HTTP_MODULES="$HTTP_MODULES $HTTP_ACCESS_MODULE"
198     HTTP_SRCS="$HTTP_SRCS $HTTP_ACCESS_SRCS"
199 fi
200
201 if [ $HTTP_LIMIT_ZONE = YES ]; then
202     HTTP_MODULES="$HTTP_MODULES $HTTP_LIMIT_ZONE_MODULE"
203     HTTP_SRCS="$HTTP_SRCS $HTTP_LIMIT_ZONE_SRCS"
204 fi
205
206 if [ $HTTP_LIMIT_REQ = YES ]; then
207     HTTP_MODULES="$HTTP_MODULES $HTTP_LIMIT_REQ_MODULE"
208     HTTP_SRCS="$HTTP_SRCS $HTTP_LIMIT_REQ_SRCS"
209 fi
210
211 if [ $HTTP_REALIP = YES ]; then
212     have=NGX_HTTP_REALIP . auto/have
213     HTTP_MODULES="$HTTP_MODULES $HTTP_REALIP_MODULE"
214     HTTP_SRCS="$HTTP_SRCS $HTTP_REALIP_SRCS"
215 fi
216
217 if [ $HTTP_STATUS = YES ]; then
218     have=NGX_HTTP_STATUS . auto/have
219     HTTP_MODULES="$HTTP_MODULES $HTTP_STATUS_MODULE"
220     HTTP_SRCS="$HTTP_SRCS $HTTP_STATUS_SRCS"
221 fi
222
223 if [ $HTTP_GEO = YES ]; then
224     have=NGX_HTTP_GEO . auto/have
225     HTTP_MODULES="$HTTP_MODULES $HTTP_GEO_MODULE"
226     HTTP_SRCS="$HTTP_SRCS $HTTP_GEO_SRCS"
227 fi
228
229 if [ $HTTP_MAP = YES ]; then
230     have=NGX_HTTP_MAP . auto/have
231     HTTP_MODULES="$HTTP_MODULES $HTTP_MAP_MODULE"
232     HTTP_SRCS="$HTTP_SRCS $HTTP_MAP_SRCS"
233 fi
234
235 if [ $HTTP_REFERER = YES ]; then
236     HTTP_MODULES="$HTTP_MODULES $HTTP_REFERER_MODULE"
237     HTTP_SRCS="$HTTP_SRCS $HTTP_REFERER_SRCS"
238 fi
239
240 if [ $HTTP_REWRITE = YES -a $USE_PCRE != DISABLED ]; then
241     have=NGX_HTTP_REWRITE . auto/have
242     USE_PCRE=YES
243     HTTP_MODULES="$HTTP_MODULES $HTTP_REWRITE_MODULE"
244     HTTP_SRCS="$HTTP_SRCS $HTTP_REWRITE_SRCS"
245 fi
246
247 if [ $HTTP_SSL = YES ]; then
248     USE_OPENSSL=YES
249     have=NGX_HTTP_SSL . auto/have
250     HTTP_MODULES="$HTTP_MODULES $HTTP_SSL_MODULE"
251     HTTP_DEPS="$HTTP_DEPS $HTTP_SSL_DEPS"
252     HTTP_SRCS="$HTTP_SRCS $HTTP_SSL_SRCS"
253 fi
254
255 if [ $HTTP_PROXY = YES ]; then
256     have=NGX_HTTP_PROXY . auto/have
257     #USE_MD5=YES
258     HTTP_MODULES="$HTTP_MODULES $HTTP_PROXY_MODULE"
259     HTTP_DEPS="$HTTP_DEPS $HTTP_PROXY_DEPS"
260     HTTP_SRCS="$HTTP_SRCS $HTTP_PROXY_SRCS"
261 fi
262
263 if [ $HTTP_FASTCGI = YES ]; then
264     HTTP_MODULES="$HTTP_MODULES $HTTP_FASTCGI_MODULE"
265     HTTP_SRCS="$HTTP_SRCS $HTTP_FASTCGI_SRCS"
266 fi
267
268 if [ $HTTP_PERL = YES ]; then
269     USE_PERL=YES
270     have=NGX_HTTP_PERL . auto/have
271     HTTP_MODULES="$HTTP_MODULES $HTTP_PERL_MODULE"
272     HTTP_INCS="$HTTP_INCS $HTTP_PERL_INCS"
273     HTTP_DEPS="$HTTP_DEPS $HTTP_PERL_DEPS"
274     HTTP_SRCS="$HTTP_SRCS $HTTP_PERL_SRCS"
275 fi
276
277 if [ $HTTP_MEMCACHED = YES ]; then
278     HTTP_MODULES="$HTTP_MODULES $HTTP_MEMCACHED_MODULE"
279     HTTP_SRCS="$HTTP_SRCS $HTTP_MEMCACHED_SRCS"
280 fi
281
282 if [ $HTTP_EMPTY_GIF = YES ]; then
283     HTTP_MODULES="$HTTP_MODULES $HTTP_EMPTY_GIF_MODULE"
284     HTTP_SRCS="$HTTP_SRCS $HTTP_EMPTY_GIF_SRCS"
285 fi
286
287 if [ $HTTP_BROWSER = YES ]; then
288     HTTP_MODULES="$HTTP_MODULES $HTTP_BROWSER_MODULE"
289     HTTP_SRCS="$HTTP_SRCS $HTTP_BROWSER_SRCS"
290 fi
291
292 if [ $HTTP_SECURE_LINK = YES ]; then
293     USE_MD5=YES
294     HTTP_MODULES="$HTTP_MODULES $HTTP_SECURE_LINK_MODULE"
295     HTTP_SRCS="$HTTP_SRCS $HTTP_SECURE_LINK_SRCS"
296 fi
297
298 if [ $HTTP_FLV = YES ]; then
299     HTTP_MODULES="$HTTP_MODULES $HTTP_FLV_MODULE"
300     HTTP_SRCS="$HTTP_SRCS $HTTP_FLV_SRCS"
301 fi
302
303 if [ $HTTP_UPSTREAM_IP_HASH = YES ]; then
304     HTTP_MODULES="$HTTP_MODULES $HTTP_UPSTREAM_IP_HASH_MODULE"
305     HTTP_SRCS="$HTTP_SRCS $HTTP_UPSTREAM_IP_HASH_SRCS"
306 fi
307
308 # STUB
309 #USE_MD5=YES
310 #HTTP_SRCS="$HTTP_SRCS $HTTP_CACHE_SRCS"
311 #HTTP_SRCS="$HTTP_SRCS $HTTP_FILE_CACHE_SRCS"
312
313 if [ $HTTP_STUB_STATUS = YES ]; then
314     have=NGX_STAT_STUB . auto/have
315     HTTP_MODULES="$HTTP_MODULES ngx_http_stub_status_module"
316     HTTP_SRCS="$HTTP_SRCS src/http/modules/ngx_http_stub_status_module.c"
317 fi
318
319 #if [ -r $NGX_OBJS/auto ]; then
320 #    . $NGX_OBJS/auto
321 #fi
322
323
324 if test -n "$NGX_ADDONS"; then
325
326     echo configuring additional modules
327
328     for ngx_addon_dir in $NGX_ADDONS
329     do
330         echo "adding module in $ngx_addon_dir"
331
332         if test -f $ngx_addon_dir/config; then
333             . $ngx_addon_dir/config
334
335             echo " + $ngx_addon_name was configured"
336
337         else
338             echo "$0: error: no $ngx_addon_dir/config was found"
339             exit 1
340         fi
341     done
342 fi
343
344
345 if [ $MAIL_SSL = YES ]; then
346     have=NGX_MAIL_SSL . auto/have
347     USE_OPENSSL=YES
348 fi
349
350
351 modules="$CORE_MODULES $EVENT_MODULES"
352
353
354 if [ $USE_OPENSSL = YES ]; then
355     modules="$modules $OPENSSL_MODULE"
356     CORE_DEPS="$CORE_DEPS $OPENSSL_DEPS"
357     CORE_SRCS="$CORE_SRCS $OPENSSL_SRCS"
358 fi
359
360 if [ $HTTP = YES ]; then
361     modules="$modules $HTTP_MODULES $HTTP_FILTER_MODULES \
362              $HTTP_HEADERS_FILTER_MODULE \
363              $HTTP_AUX_FILTER_MODULES \
364              $HTTP_COPY_FILTER_MODULE \
365              $HTTP_RANGE_BODY_FILTER_MODULE \
366              $HTTP_NOT_MODIFIED_FILTER_MODULE"
367
368     NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(HTTP_DEPS)"
369 fi
370
371
372 if [ $MAIL = YES ]; then
373     modules="$modules $MAIL_MODULES"
374
375     if [ $MAIL_SSL = YES ]; then
376         modules="$modules $MAIL_SSL_MODULE"
377         MAIL_DEPS="$MAIL_DEPS $MAIL_SSL_DEPS"
378         MAIL_SRCS="$MAIL_SRCS $MAIL_SSL_SRCS"
379     fi
380
381     if [ $MAIL_POP3 = YES ]; then
382         modules="$modules $MAIL_POP3_MODULE"
383         MAIL_DEPS="$MAIL_DEPS $MAIL_POP3_DEPS"
384         MAIL_SRCS="$MAIL_SRCS $MAIL_POP3_SRCS"
385     fi
386
387     if [ $MAIL_IMAP = YES ]; then
388         modules="$modules $MAIL_IMAP_MODULE"
389         MAIL_DEPS="$MAIL_DEPS $MAIL_IMAP_DEPS"
390         MAIL_SRCS="$MAIL_SRCS $MAIL_IMAP_SRCS"
391     fi
392
393     if [ $MAIL_SMTP = YES ]; then
394         modules="$modules $MAIL_SMTP_MODULE"
395         MAIL_DEPS="$MAIL_DEPS $MAIL_SMTP_DEPS"
396         MAIL_SRCS="$MAIL_SRCS $MAIL_SMTP_SRCS"
397     fi
398
399     modules="$modules $MAIL_AUTH_HTTP_MODULE"
400     MAIL_SRCS="$MAIL_SRCS $MAIL_AUTH_HTTP_SRCS"
401
402     modules="$modules $MAIL_PROXY_MODULE"
403     MAIL_SRCS="$MAIL_SRCS $MAIL_PROXY_SRCS"
404 fi
405
406
407 if [ $NGX_GOOGLE_PERFTOOLS = YES ]; then
408     modules="$modules $NGX_GOOGLE_PERFTOOLS_MODULE"
409     NGX_MISC_SRCS="$NGX_MISC_SRCS $NGX_GOOGLE_PERFTOOLS_SRCS"
410 fi
411
412
413 if [ $NGX_CPP_TEST = YES ]; then
414     NGX_MISC_SRCS="$NGX_MISC_SRCS $NGX_CPP_TEST_SRCS"
415 fi
416
417
418 cat << END                                    > $NGX_MODULES_C
419
420 #include <ngx_config.h>
421 #include <ngx_core.h>
422
423 $NGX_PRAGMA
424
425 END
426
427 for mod in $modules
428 do
429     echo "extern ngx_module_t  $mod;"         >> $NGX_MODULES_C
430 done
431
432 echo                                          >> $NGX_MODULES_C
433 echo 'ngx_module_t *ngx_modules[] = {'        >> $NGX_MODULES_C
434
435 for mod in $modules
436 do
437     echo "    &$mod,"                         >> $NGX_MODULES_C
438 done
439
440 cat << END                                    >> $NGX_MODULES_C
441     NULL
442 };
443
444 END