modules revision b8f1ef2b
1
2# Copyright (C) Igor Sysoev
3# Copyright (C) Nginx, Inc.
4
5
6if [ $EVENT_SELECT = NO -a $EVENT_FOUND = NO ]; then
7    EVENT_SELECT=YES
8fi
9
10if [ $EVENT_SELECT = YES ]; then
11    have=NGX_HAVE_SELECT . auto/have
12    CORE_SRCS="$CORE_SRCS $SELECT_SRCS"
13    EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE"
14fi
15
16
17if [ $EVENT_POLL = NO -a $EVENT_FOUND = NO ]; then
18    EVENT_POLL=YES
19fi
20
21if [ $EVENT_POLL = YES ]; then
22    have=NGX_HAVE_POLL . auto/have
23    CORE_SRCS="$CORE_SRCS $POLL_SRCS"
24    EVENT_MODULES="$EVENT_MODULES $POLL_MODULE"
25fi
26
27
28if [ $NGX_TEST_BUILD_DEVPOLL = YES ]; then
29    have=NGX_HAVE_DEVPOLL . auto/have
30    have=NGX_TEST_BUILD_DEVPOLL . auto/have
31    EVENT_MODULES="$EVENT_MODULES $DEVPOLL_MODULE"
32    CORE_SRCS="$CORE_SRCS $DEVPOLL_SRCS"
33fi
34
35
36if [ $NGX_TEST_BUILD_EVENTPORT = YES ]; then
37    have=NGX_HAVE_EVENTPORT . auto/have
38    have=NGX_TEST_BUILD_EVENTPORT . auto/have
39    EVENT_MODULES="$EVENT_MODULES $EVENTPORT_MODULE"
40    CORE_SRCS="$CORE_SRCS $EVENTPORT_SRCS"
41fi
42
43if [ $NGX_TEST_BUILD_EPOLL = YES ]; then
44    have=NGX_HAVE_EPOLL . auto/have
45    have=NGX_HAVE_EPOLLRDHUP . auto/have
46    have=NGX_HAVE_EPOLLEXCLUSIVE . auto/have
47    have=NGX_HAVE_EVENTFD . auto/have
48    have=NGX_TEST_BUILD_EPOLL . auto/have
49    EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE"
50    CORE_SRCS="$CORE_SRCS $EPOLL_SRCS"
51fi
52
53if [ $NGX_TEST_BUILD_SOLARIS_SENDFILEV = YES ]; then
54    have=NGX_TEST_BUILD_SOLARIS_SENDFILEV . auto/have
55    CORE_SRCS="$CORE_SRCS $SOLARIS_SENDFILEV_SRCS"
56fi
57
58
59if [ $HTTP = YES ]; then
60    HTTP_MODULES=
61    HTTP_DEPS=
62    HTTP_INCS=
63
64    ngx_module_type=HTTP
65
66    if :; then
67        ngx_module_name="ngx_http_module \
68                         ngx_http_core_module \
69                         ngx_http_log_module \
70                         ngx_http_upstream_module"
71        ngx_module_incs="src/http src/http/modules"
72        ngx_module_deps="src/http/ngx_http.h \
73                         src/http/ngx_http_request.h \
74                         src/http/ngx_http_config.h \
75                         src/http/ngx_http_core_module.h \
76                         src/http/ngx_http_cache.h \
77                         src/http/ngx_http_variables.h \
78                         src/http/ngx_http_script.h \
79                         src/http/ngx_http_upstream.h \
80                         src/http/ngx_http_upstream_round_robin.h"
81        ngx_module_srcs="src/http/ngx_http.c \
82                         src/http/ngx_http_core_module.c \
83                         src/http/ngx_http_special_response.c \
84                         src/http/ngx_http_request.c \
85                         src/http/ngx_http_parse.c \
86                         src/http/modules/ngx_http_log_module.c \
87                         src/http/ngx_http_request_body.c \
88                         src/http/ngx_http_variables.c \
89                         src/http/ngx_http_script.c \
90                         src/http/ngx_http_upstream.c \
91                         src/http/ngx_http_upstream_round_robin.c"
92        ngx_module_libs=
93        ngx_module_link=YES
94
95        . auto/module
96    fi
97
98
99    if [ $HTTP_CACHE = YES ]; then
100        have=NGX_HTTP_CACHE . auto/have
101        HTTP_SRCS="$HTTP_SRCS $HTTP_FILE_CACHE_SRCS"
102    fi
103
104
105    if [ $HTTP_SSI = YES ]; then
106        HTTP_POSTPONE=YES
107    fi
108
109
110    if [ $HTTP_SLICE = YES ]; then
111        HTTP_POSTPONE=YES
112    fi
113
114
115    if [ $HTTP_ADDITION = YES ]; then
116        HTTP_POSTPONE=YES
117    fi
118
119
120    # the module order is important
121    #     ngx_http_static_module
122    #     ngx_http_gzip_static_module
123    #     ngx_http_dav_module
124    #     ngx_http_autoindex_module
125    #     ngx_http_index_module
126    #     ngx_http_random_index_module
127    #
128    #     ngx_http_access_module
129    #     ngx_http_realip_module
130    #
131    #
132    # the filter order is important
133    #     ngx_http_write_filter
134    #     ngx_http_header_filter
135    #     ngx_http_chunked_filter
136    #     ngx_http_v2_filter
137    #     ngx_http_range_header_filter
138    #     ngx_http_gzip_filter
139    #     ngx_http_postpone_filter
140    #     ngx_http_ssi_filter
141    #     ngx_http_charset_filter
142    #         ngx_http_xslt_filter
143    #         ngx_http_image_filter
144    #         ngx_http_sub_filter
145    #         ngx_http_addition_filter
146    #         ngx_http_gunzip_filter
147    #         ngx_http_userid_filter
148    #         ngx_http_headers_filter
149    #     ngx_http_copy_filter
150    #     ngx_http_range_body_filter
151    #     ngx_http_not_modified_filter
152    #     ngx_http_slice_filter
153
154    ngx_module_type=HTTP_FILTER
155    HTTP_FILTER_MODULES=
156
157    ngx_module_order="ngx_http_static_module \
158                      ngx_http_gzip_static_module \
159                      ngx_http_dav_module \
160                      ngx_http_autoindex_module \
161                      ngx_http_index_module \
162                      ngx_http_random_index_module \
163                      ngx_http_access_module \
164                      ngx_http_realip_module \
165                      ngx_http_write_filter_module \
166                      ngx_http_header_filter_module \
167                      ngx_http_chunked_filter_module \
168                      ngx_http_v2_filter_module \
169                      ngx_http_range_header_filter_module \
170                      ngx_http_gzip_filter_module \
171                      ngx_http_postpone_filter_module \
172                      ngx_http_ssi_filter_module \
173                      ngx_http_charset_filter_module \
174                      ngx_http_xslt_filter_module \
175                      ngx_http_image_filter_module \
176                      ngx_http_sub_filter_module \
177                      ngx_http_addition_filter_module \
178                      ngx_http_gunzip_filter_module \
179                      ngx_http_userid_filter_module \
180                      ngx_http_headers_filter_module \
181                      ngx_http_copy_filter_module \
182                      ngx_http_range_body_filter_module \
183                      ngx_http_not_modified_filter_module \
184                      ngx_http_slice_filter_module"
185
186    if :; then
187        ngx_module_name=ngx_http_write_filter_module
188        ngx_module_incs=
189        ngx_module_deps=
190        ngx_module_srcs=src/http/ngx_http_write_filter_module.c
191        ngx_module_libs=
192        ngx_module_link=YES
193
194        . auto/module
195    fi
196
197    if :; then
198        ngx_module_name=ngx_http_header_filter_module
199        ngx_module_incs=
200        ngx_module_deps=
201        ngx_module_srcs=src/http/ngx_http_header_filter_module.c
202        ngx_module_libs=
203        ngx_module_link=YES
204
205        . auto/module
206    fi
207
208    if :; then
209        ngx_module_name=ngx_http_chunked_filter_module
210        ngx_module_incs=
211        ngx_module_deps=
212        ngx_module_srcs=src/http/modules/ngx_http_chunked_filter_module.c
213        ngx_module_libs=
214        ngx_module_link=YES
215
216        . auto/module
217    fi
218
219    if [ $HTTP_V2 = YES ]; then
220        ngx_module_name=ngx_http_v2_filter_module
221        ngx_module_incs=
222        ngx_module_deps=
223        ngx_module_srcs=src/http/v2/ngx_http_v2_filter_module.c
224        ngx_module_libs=
225        ngx_module_link=$HTTP_V2
226
227        . auto/module
228    fi
229
230    if :; then
231        ngx_module_name=ngx_http_range_header_filter_module
232        ngx_module_incs=
233        ngx_module_deps=
234        ngx_module_srcs=src/http/modules/ngx_http_range_filter_module.c
235        ngx_module_libs=
236        ngx_module_link=YES
237
238        . auto/module
239    fi
240
241    if [ $HTTP_GZIP = YES ]; then
242        have=NGX_HTTP_GZIP . auto/have
243        USE_ZLIB=YES
244
245        ngx_module_name=ngx_http_gzip_filter_module
246        ngx_module_incs=
247        ngx_module_deps=
248        ngx_module_srcs=src/http/modules/ngx_http_gzip_filter_module.c
249        ngx_module_libs=
250        ngx_module_link=$HTTP_GZIP
251
252        . auto/module
253    fi
254
255    if [ $HTTP_POSTPONE = YES ]; then
256        ngx_module_name=ngx_http_postpone_filter_module
257        ngx_module_incs=
258        ngx_module_deps=
259        ngx_module_srcs=src/http/ngx_http_postpone_filter_module.c
260        ngx_module_libs=
261        ngx_module_link=$HTTP_POSTPONE
262
263        . auto/module
264    fi
265
266    if [ $HTTP_SSI = YES ]; then
267        have=NGX_HTTP_SSI . auto/have
268
269        ngx_module_name=ngx_http_ssi_filter_module
270        ngx_module_incs=
271        ngx_module_deps=src/http/modules/ngx_http_ssi_filter_module.h
272        ngx_module_srcs=src/http/modules/ngx_http_ssi_filter_module.c
273        ngx_module_libs=
274        ngx_module_link=$HTTP_SSI
275
276        . auto/module
277    fi
278
279    if [ $HTTP_CHARSET = YES ]; then
280        ngx_module_name=ngx_http_charset_filter_module
281        ngx_module_incs=
282        ngx_module_deps=
283        ngx_module_srcs=src/http/modules/ngx_http_charset_filter_module.c
284        ngx_module_libs=
285        ngx_module_link=$HTTP_CHARSET
286
287        . auto/module
288    fi
289
290    if [ $HTTP_XSLT != NO ]; then
291        ngx_module_name=ngx_http_xslt_filter_module
292        ngx_module_incs=
293        ngx_module_deps=
294        ngx_module_srcs=src/http/modules/ngx_http_xslt_filter_module.c
295        ngx_module_libs=LIBXSLT
296        ngx_module_link=$HTTP_XSLT
297
298        . auto/module
299    fi
300
301    if [ $HTTP_IMAGE_FILTER != NO ]; then
302        ngx_module_name=ngx_http_image_filter_module
303        ngx_module_incs=
304        ngx_module_deps=
305        ngx_module_srcs=src/http/modules/ngx_http_image_filter_module.c
306        ngx_module_libs=LIBGD
307        ngx_module_link=$HTTP_IMAGE_FILTER
308
309        . auto/module
310    fi
311
312    if [ $HTTP_SUB = YES ]; then
313        ngx_module_name=ngx_http_sub_filter_module
314        ngx_module_incs=
315        ngx_module_deps=
316        ngx_module_srcs=src/http/modules/ngx_http_sub_filter_module.c
317        ngx_module_libs=
318        ngx_module_link=$HTTP_SUB
319
320        . auto/module
321    fi
322
323    if [ $HTTP_ADDITION = YES ]; then
324        ngx_module_name=ngx_http_addition_filter_module
325        ngx_module_incs=
326        ngx_module_deps=
327        ngx_module_srcs=src/http/modules/ngx_http_addition_filter_module.c
328        ngx_module_libs=
329        ngx_module_link=$HTTP_ADDITION
330
331        . auto/module
332    fi
333
334    if [ $HTTP_GUNZIP = YES ]; then
335        have=NGX_HTTP_GZIP . auto/have
336        USE_ZLIB=YES
337
338        ngx_module_name=ngx_http_gunzip_filter_module
339        ngx_module_incs=
340        ngx_module_deps=
341        ngx_module_srcs=src/http/modules/ngx_http_gunzip_filter_module.c
342        ngx_module_libs=
343        ngx_module_link=$HTTP_GUNZIP
344
345        . auto/module
346    fi
347
348    if [ $HTTP_USERID = YES ]; then
349        ngx_module_name=ngx_http_userid_filter_module
350        ngx_module_incs=
351        ngx_module_deps=
352        ngx_module_srcs=src/http/modules/ngx_http_userid_filter_module.c
353        ngx_module_libs=
354        ngx_module_link=$HTTP_USERID
355
356        . auto/module
357    fi
358
359    if :; then
360        ngx_module_name=ngx_http_headers_filter_module
361        ngx_module_incs=
362        ngx_module_deps=
363        ngx_module_srcs=src/http/modules/ngx_http_headers_filter_module.c
364        ngx_module_libs=
365        ngx_module_link=YES
366
367        . auto/module
368    fi
369
370
371    ngx_module_type=HTTP_INIT_FILTER
372    HTTP_INIT_FILTER_MODULES=
373
374    if :; then
375        ngx_module_name=ngx_http_copy_filter_module
376        ngx_module_incs=
377        ngx_module_deps=
378        ngx_module_srcs=src/http/ngx_http_copy_filter_module.c
379        ngx_module_libs=
380        ngx_module_link=YES
381
382        . auto/module
383    fi
384
385    if :; then
386        ngx_module_name=ngx_http_range_body_filter_module
387        ngx_module_incs=
388        ngx_module_deps=
389        ngx_module_srcs=
390        ngx_module_libs=
391        ngx_module_link=YES
392
393        . auto/module
394    fi
395
396    if :; then
397        ngx_module_name=ngx_http_not_modified_filter_module
398        ngx_module_incs=
399        ngx_module_deps=
400        ngx_module_srcs=src/http/modules/ngx_http_not_modified_filter_module.c
401        ngx_module_libs=
402        ngx_module_link=YES
403
404        . auto/module
405    fi
406
407    if [ $HTTP_SLICE = YES ]; then
408        ngx_module_name=ngx_http_slice_filter_module
409        ngx_module_incs=
410        ngx_module_deps=
411        ngx_module_srcs=src/http/modules/ngx_http_slice_filter_module.c
412        ngx_module_libs=
413        ngx_module_link=$HTTP_SLICE
414
415        . auto/module
416    fi
417
418
419    ngx_module_type=HTTP
420
421    if [ $HTTP_V2 = YES ]; then
422        have=NGX_HTTP_V2 . auto/have
423
424        ngx_module_name=ngx_http_v2_module
425        ngx_module_incs=src/http/v2
426        ngx_module_deps="src/http/v2/ngx_http_v2.h \
427                         src/http/v2/ngx_http_v2_module.h"
428        ngx_module_srcs="src/http/v2/ngx_http_v2.c \
429                         src/http/v2/ngx_http_v2_table.c \
430                         src/http/v2/ngx_http_v2_huff_decode.c \
431                         src/http/v2/ngx_http_v2_huff_encode.c \
432                         src/http/v2/ngx_http_v2_module.c"
433        ngx_module_libs=
434        ngx_module_link=$HTTP_V2
435
436        . auto/module
437    fi
438
439    if :; then
440        ngx_module_name=ngx_http_static_module
441        ngx_module_incs=
442        ngx_module_deps=
443        ngx_module_srcs=src/http/modules/ngx_http_static_module.c
444        ngx_module_libs=
445        ngx_module_link=YES
446
447        . auto/module
448    fi
449
450    if [ $HTTP_GZIP_STATIC = YES ]; then
451        have=NGX_HTTP_GZIP . auto/have
452
453        ngx_module_name=ngx_http_gzip_static_module
454        ngx_module_incs=
455        ngx_module_deps=
456        ngx_module_srcs=src/http/modules/ngx_http_gzip_static_module.c
457        ngx_module_libs=
458        ngx_module_link=$HTTP_GZIP_STATIC
459
460        . auto/module
461    fi
462
463    if [ $HTTP_DAV = YES ]; then
464        have=NGX_HTTP_DAV . auto/have
465
466        ngx_module_name=ngx_http_dav_module
467        ngx_module_incs=
468        ngx_module_deps=
469        ngx_module_srcs=src/http/modules/ngx_http_dav_module.c
470        ngx_module_libs=
471        ngx_module_link=$HTTP_DAV
472
473        . auto/module
474    fi
475
476    if [ $HTTP_AUTOINDEX = YES ]; then
477        ngx_module_name=ngx_http_autoindex_module
478        ngx_module_incs=
479        ngx_module_deps=
480        ngx_module_srcs=src/http/modules/ngx_http_autoindex_module.c
481        ngx_module_libs=
482        ngx_module_link=$HTTP_AUTOINDEX
483
484        . auto/module
485    fi
486
487    if :; then
488        ngx_module_name=ngx_http_index_module
489        ngx_module_incs=
490        ngx_module_deps=
491        ngx_module_srcs=src/http/modules/ngx_http_index_module.c
492        ngx_module_libs=
493        ngx_module_link=YES
494
495        . auto/module
496    fi
497
498    if [ $HTTP_RANDOM_INDEX = YES ]; then
499        ngx_module_name=ngx_http_random_index_module
500        ngx_module_incs=
501        ngx_module_deps=
502        ngx_module_srcs=src/http/modules/ngx_http_random_index_module.c
503        ngx_module_libs=
504        ngx_module_link=$HTTP_RANDOM_INDEX
505
506        . auto/module
507    fi
508
509    if [ $HTTP_AUTH_REQUEST = YES ]; then
510        ngx_module_name=ngx_http_auth_request_module
511        ngx_module_incs=
512        ngx_module_deps=
513        ngx_module_srcs=src/http/modules/ngx_http_auth_request_module.c
514        ngx_module_libs=
515        ngx_module_link=$HTTP_AUTH_REQUEST
516
517        . auto/module
518    fi
519
520    if [ $HTTP_AUTH_BASIC = YES ]; then
521        have=NGX_CRYPT . auto/have
522
523        ngx_module_name=ngx_http_auth_basic_module
524        ngx_module_incs=
525        ngx_module_deps=
526        ngx_module_srcs=src/http/modules/ngx_http_auth_basic_module.c
527        ngx_module_libs=$CRYPT_LIB
528        ngx_module_link=$HTTP_AUTH_BASIC
529
530        . auto/module
531    fi
532
533    if [ $HTTP_ACCESS = YES ]; then
534        ngx_module_name=ngx_http_access_module
535        ngx_module_incs=
536        ngx_module_deps=
537        ngx_module_srcs=src/http/modules/ngx_http_access_module.c
538        ngx_module_libs=
539        ngx_module_link=$HTTP_ACCESS
540
541        . auto/module
542    fi
543
544    if [ $HTTP_LIMIT_CONN = YES ]; then
545        ngx_module_name=ngx_http_limit_conn_module
546        ngx_module_incs=
547        ngx_module_deps=
548        ngx_module_srcs=src/http/modules/ngx_http_limit_conn_module.c
549        ngx_module_libs=
550        ngx_module_link=$HTTP_LIMIT_CONN
551
552        . auto/module
553    fi
554
555    if [ $HTTP_LIMIT_REQ = YES ]; then
556        ngx_module_name=ngx_http_limit_req_module
557        ngx_module_incs=
558        ngx_module_deps=
559        ngx_module_srcs=src/http/modules/ngx_http_limit_req_module.c
560        ngx_module_libs=
561        ngx_module_link=$HTTP_LIMIT_REQ
562
563        . auto/module
564    fi
565
566    if [ $HTTP_REALIP = YES ]; then
567        have=NGX_HTTP_REALIP . auto/have
568        have=NGX_HTTP_X_FORWARDED_FOR . auto/have
569
570        ngx_module_name=ngx_http_realip_module
571        ngx_module_incs=
572        ngx_module_deps=
573        ngx_module_srcs=src/http/modules/ngx_http_realip_module.c
574        ngx_module_libs=
575        ngx_module_link=$HTTP_REALIP
576
577        . auto/module
578    fi
579
580    if [ $HTTP_STATUS = YES ]; then
581        ngx_module_name=ngx_http_status_module
582        ngx_module_incs=
583        ngx_module_deps=
584        ngx_module_srcs=src/http/modules/ngx_http_status_module.c
585        ngx_module_libs=
586        ngx_module_link=$HTTP_STATUS
587
588        . auto/module
589    fi
590
591    if [ $HTTP_GEO = YES ]; then
592        have=NGX_HTTP_X_FORWARDED_FOR . auto/have
593
594        ngx_module_name=ngx_http_geo_module
595        ngx_module_incs=
596        ngx_module_deps=
597        ngx_module_srcs=src/http/modules/ngx_http_geo_module.c
598        ngx_module_libs=
599        ngx_module_link=$HTTP_GEO
600
601        . auto/module
602    fi
603
604    if [ $HTTP_GEOIP != NO ]; then
605        have=NGX_HTTP_X_FORWARDED_FOR . auto/have
606
607        ngx_module_name=ngx_http_geoip_module
608        ngx_module_incs=
609        ngx_module_deps=
610        ngx_module_srcs=src/http/modules/ngx_http_geoip_module.c
611        ngx_module_libs=GEOIP
612        ngx_module_link=$HTTP_GEOIP
613
614        . auto/module
615    fi
616
617    if [ $HTTP_MAP = YES ]; then
618        ngx_module_name=ngx_http_map_module
619        ngx_module_incs=
620        ngx_module_deps=
621        ngx_module_srcs=src/http/modules/ngx_http_map_module.c
622        ngx_module_libs=
623        ngx_module_link=$HTTP_MAP
624
625        . auto/module
626    fi
627
628    if [ $HTTP_SPLIT_CLIENTS = YES ]; then
629        ngx_module_name=ngx_http_split_clients_module
630        ngx_module_incs=
631        ngx_module_deps=
632        ngx_module_srcs=src/http/modules/ngx_http_split_clients_module.c
633        ngx_module_libs=
634        ngx_module_link=$HTTP_SPLIT_CLIENTS
635
636        . auto/module
637    fi
638
639    if [ $HTTP_REFERER = YES ]; then
640        ngx_module_name=ngx_http_referer_module
641        ngx_module_incs=
642        ngx_module_deps=
643        ngx_module_srcs=src/http/modules/ngx_http_referer_module.c
644        ngx_module_libs=
645        ngx_module_link=$HTTP_REFERER
646
647        . auto/module
648    fi
649
650    if [ $HTTP_REWRITE = YES -a $USE_PCRE != DISABLED ]; then
651        USE_PCRE=YES
652
653        ngx_module_name=ngx_http_rewrite_module
654        ngx_module_incs=
655        ngx_module_deps=
656        ngx_module_srcs=src/http/modules/ngx_http_rewrite_module.c
657        ngx_module_libs=
658        ngx_module_link=$HTTP_REWRITE
659
660        . auto/module
661    fi
662
663    if [ $HTTP_SSL = YES ]; then
664        USE_OPENSSL=YES
665        have=NGX_HTTP_SSL . auto/have
666
667        ngx_module_name=ngx_http_ssl_module
668        ngx_module_incs=
669        ngx_module_deps=src/http/modules/ngx_http_ssl_module.h
670        ngx_module_srcs=src/http/modules/ngx_http_ssl_module.c
671        ngx_module_libs=
672        ngx_module_link=$HTTP_SSL
673
674        . auto/module
675    fi
676
677    if [ $HTTP_PROXY = YES ]; then
678        have=NGX_HTTP_X_FORWARDED_FOR . auto/have
679
680        ngx_module_name=ngx_http_proxy_module
681        ngx_module_incs=
682        ngx_module_deps=
683        ngx_module_srcs=src/http/modules/ngx_http_proxy_module.c
684        ngx_module_libs=
685        ngx_module_link=$HTTP_PROXY
686
687        . auto/module
688    fi
689
690    if [ $HTTP_FASTCGI = YES ]; then
691        ngx_module_name=ngx_http_fastcgi_module
692        ngx_module_incs=
693        ngx_module_deps=
694        ngx_module_srcs=src/http/modules/ngx_http_fastcgi_module.c
695        ngx_module_libs=
696        ngx_module_link=$HTTP_FASTCGI
697
698        . auto/module
699    fi
700
701    if [ $HTTP_UWSGI = YES ]; then
702        ngx_module_name=ngx_http_uwsgi_module
703        ngx_module_incs=
704        ngx_module_deps=
705        ngx_module_srcs=src/http/modules/ngx_http_uwsgi_module.c
706        ngx_module_libs=
707        ngx_module_link=$HTTP_UWSGI
708
709        . auto/module
710    fi
711
712    if [ $HTTP_SCGI = YES ]; then
713        ngx_module_name=ngx_http_scgi_module
714        ngx_module_incs=
715        ngx_module_deps=
716        ngx_module_srcs=src/http/modules/ngx_http_scgi_module.c
717        ngx_module_libs=
718        ngx_module_link=$HTTP_SCGI
719
720        . auto/module
721    fi
722
723    if [ $HTTP_PERL != NO ]; then
724        ngx_module_name=ngx_http_perl_module
725        ngx_module_incs=src/http/modules/perl
726        ngx_module_deps=src/http/modules/perl/ngx_http_perl_module.h
727        ngx_module_srcs=src/http/modules/perl/ngx_http_perl_module.c
728        ngx_module_libs=PERL
729        ngx_module_link=$HTTP_PERL
730
731        . auto/module
732    fi
733
734    if [ $HTTP_MEMCACHED = YES ]; then
735        ngx_module_name=ngx_http_memcached_module
736        ngx_module_incs=
737        ngx_module_deps=
738        ngx_module_srcs=src/http/modules/ngx_http_memcached_module.c
739        ngx_module_libs=
740        ngx_module_link=$HTTP_MEMCACHED
741
742        . auto/module
743    fi
744
745    if [ $HTTP_EMPTY_GIF = YES ]; then
746        ngx_module_name=ngx_http_empty_gif_module
747        ngx_module_incs=
748        ngx_module_deps=
749        ngx_module_srcs=src/http/modules/ngx_http_empty_gif_module.c
750        ngx_module_libs=
751        ngx_module_link=$HTTP_EMPTY_GIF
752
753        . auto/module
754    fi
755
756    if [ $HTTP_BROWSER = YES ]; then
757        ngx_module_name=ngx_http_browser_module
758        ngx_module_incs=
759        ngx_module_deps=
760        ngx_module_srcs=src/http/modules/ngx_http_browser_module.c
761        ngx_module_libs=
762        ngx_module_link=$HTTP_BROWSER
763
764        . auto/module
765    fi
766
767    if [ $HTTP_SECURE_LINK = YES ]; then
768        ngx_module_name=ngx_http_secure_link_module
769        ngx_module_incs=
770        ngx_module_deps=
771        ngx_module_srcs=src/http/modules/ngx_http_secure_link_module.c
772        ngx_module_libs=
773        ngx_module_link=$HTTP_SECURE_LINK
774
775        . auto/module
776    fi
777
778    if [ $HTTP_DEGRADATION = YES ]; then
779        have=NGX_HTTP_DEGRADATION . auto/have
780
781        ngx_module_name=ngx_http_degradation_module
782        ngx_module_incs=
783        ngx_module_deps=
784        ngx_module_srcs=src/http/modules/ngx_http_degradation_module.c
785        ngx_module_libs=
786        ngx_module_link=$HTTP_DEGRADATION
787
788        . auto/module
789    fi
790
791    if [ $HTTP_FLV = YES ]; then
792        ngx_module_name=ngx_http_flv_module
793        ngx_module_incs=
794        ngx_module_deps=
795        ngx_module_srcs=src/http/modules/ngx_http_flv_module.c
796        ngx_module_libs=
797        ngx_module_link=$HTTP_FLV
798
799        . auto/module
800    fi
801
802    if [ $HTTP_MP4 = YES ]; then
803        ngx_module_name=ngx_http_mp4_module
804        ngx_module_incs=
805        ngx_module_deps=
806        ngx_module_srcs=src/http/modules/ngx_http_mp4_module.c
807        ngx_module_libs=
808        ngx_module_link=$HTTP_MP4
809
810        . auto/module
811    fi
812
813    if [ $HTTP_UPSTREAM_HASH = YES ]; then
814        ngx_module_name=ngx_http_upstream_hash_module
815        ngx_module_incs=
816        ngx_module_deps=
817        ngx_module_srcs=src/http/modules/ngx_http_upstream_hash_module.c
818        ngx_module_libs=
819        ngx_module_link=$HTTP_UPSTREAM_HASH
820
821        . auto/module
822    fi
823
824    if [ $HTTP_UPSTREAM_IP_HASH = YES ]; then
825        ngx_module_name=ngx_http_upstream_ip_hash_module
826        ngx_module_incs=
827        ngx_module_deps=
828        ngx_module_srcs=src/http/modules/ngx_http_upstream_ip_hash_module.c
829        ngx_module_libs=
830        ngx_module_link=$HTTP_UPSTREAM_IP_HASH
831
832        . auto/module
833    fi
834
835    if [ $HTTP_UPSTREAM_LEAST_CONN = YES ]; then
836        ngx_module_name=ngx_http_upstream_least_conn_module
837        ngx_module_incs=
838        ngx_module_deps=
839        ngx_module_srcs=src/http/modules/ngx_http_upstream_least_conn_module.c
840        ngx_module_libs=
841        ngx_module_link=$HTTP_UPSTREAM_LEAST_CONN
842
843        . auto/module
844    fi
845
846    if [ $HTTP_UPSTREAM_KEEPALIVE = YES ]; then
847        ngx_module_name=ngx_http_upstream_keepalive_module
848        ngx_module_incs=
849        ngx_module_deps=
850        ngx_module_srcs=src/http/modules/ngx_http_upstream_keepalive_module.c
851        ngx_module_libs=
852        ngx_module_link=$HTTP_UPSTREAM_KEEPALIVE
853
854        . auto/module
855    fi
856
857    if [ $HTTP_UPSTREAM_ZONE = YES ]; then
858        have=NGX_HTTP_UPSTREAM_ZONE . auto/have
859
860        ngx_module_name=ngx_http_upstream_zone_module
861        ngx_module_incs=
862        ngx_module_deps=
863        ngx_module_srcs=src/http/modules/ngx_http_upstream_zone_module.c
864        ngx_module_libs=
865        ngx_module_link=$HTTP_UPSTREAM_ZONE
866
867        . auto/module
868    fi
869
870    if [ $HTTP_STUB_STATUS = YES ]; then
871        have=NGX_STAT_STUB . auto/have
872
873        ngx_module_name=ngx_http_stub_status_module
874        ngx_module_incs=
875        ngx_module_deps=
876        ngx_module_srcs=src/http/modules/ngx_http_stub_status_module.c
877        ngx_module_libs=
878        ngx_module_link=$HTTP_STUB_STATUS
879
880        . auto/module
881    fi
882fi
883
884
885if [ $MAIL != NO ]; then
886    MAIL_MODULES=
887    MAIL_DEPS=
888    MAIL_INCS=
889
890    ngx_module_type=MAIL
891    ngx_module_libs=
892    ngx_module_link=YES
893
894    ngx_module_order=
895
896    ngx_module_name="ngx_mail_module ngx_mail_core_module"
897    ngx_module_incs="src/mail"
898    ngx_module_deps="src/mail/ngx_mail.h"
899    ngx_module_srcs="src/mail/ngx_mail.c \
900                     src/mail/ngx_mail_core_module.c \
901                     src/mail/ngx_mail_handler.c \
902                     src/mail/ngx_mail_parse.c"
903
904    . auto/module
905
906    ngx_module_incs=
907
908    if [ $MAIL_SSL = YES ]; then
909        USE_OPENSSL=YES
910        have=NGX_MAIL_SSL . auto/have
911
912        ngx_module_name=ngx_mail_ssl_module
913        ngx_module_deps=src/mail/ngx_mail_ssl_module.h
914        ngx_module_srcs=src/mail/ngx_mail_ssl_module.c
915
916        . auto/module
917    fi
918
919    if [ $MAIL_POP3 = YES ]; then
920        ngx_module_name=ngx_mail_pop3_module
921        ngx_module_deps=src/mail/ngx_mail_pop3_module.h
922        ngx_module_srcs="src/mail/ngx_mail_pop3_module.c \
923                         src/mail/ngx_mail_pop3_handler.c"
924
925        . auto/module
926    fi
927
928    if [ $MAIL_IMAP = YES ]; then
929        ngx_module_name=ngx_mail_imap_module
930        ngx_module_deps=src/mail/ngx_mail_imap_module.h
931        ngx_module_srcs="src/mail/ngx_mail_imap_module.c \
932                         src/mail/ngx_mail_imap_handler.c"
933
934        . auto/module
935    fi
936
937    if [ $MAIL_SMTP = YES ]; then
938        ngx_module_name=ngx_mail_smtp_module
939        ngx_module_deps=src/mail/ngx_mail_smtp_module.h
940        ngx_module_srcs="src/mail/ngx_mail_smtp_module.c \
941                         src/mail/ngx_mail_smtp_handler.c"
942
943        . auto/module
944    fi
945
946    ngx_module_name=ngx_mail_auth_http_module
947    ngx_module_deps=
948    ngx_module_srcs=src/mail/ngx_mail_auth_http_module.c
949
950    . auto/module
951
952    ngx_module_name=ngx_mail_proxy_module
953    ngx_module_deps=
954    ngx_module_srcs=src/mail/ngx_mail_proxy_module.c
955
956    . auto/module
957fi
958
959
960if [ $STREAM != NO ]; then
961    STREAM_MODULES=
962    STREAM_DEPS=
963    STREAM_INCS=
964
965    ngx_module_type=STREAM
966    ngx_module_libs=
967    ngx_module_link=YES
968
969    ngx_module_order=
970
971    ngx_module_name="ngx_stream_module \
972                     ngx_stream_core_module \
973                     ngx_stream_log_module \
974                     ngx_stream_proxy_module \
975                     ngx_stream_upstream_module \
976                     ngx_stream_write_filter_module"
977    ngx_module_incs="src/stream"
978    ngx_module_deps="src/stream/ngx_stream.h \
979                     src/stream/ngx_stream_variables.h \
980                     src/stream/ngx_stream_script.h \
981                     src/stream/ngx_stream_upstream.h \
982                     src/stream/ngx_stream_upstream_round_robin.h"
983    ngx_module_srcs="src/stream/ngx_stream.c \
984                     src/stream/ngx_stream_variables.c \
985                     src/stream/ngx_stream_script.c \
986                     src/stream/ngx_stream_handler.c \
987                     src/stream/ngx_stream_core_module.c \
988                     src/stream/ngx_stream_log_module.c \
989                     src/stream/ngx_stream_proxy_module.c \
990                     src/stream/ngx_stream_upstream.c \
991                     src/stream/ngx_stream_upstream_round_robin.c \
992                     src/stream/ngx_stream_write_filter_module.c"
993
994    . auto/module
995
996    ngx_module_incs=
997
998    if [ $STREAM_SSL = YES ]; then
999        USE_OPENSSL=YES
1000        have=NGX_STREAM_SSL . auto/have
1001
1002        ngx_module_name=ngx_stream_ssl_module
1003        ngx_module_deps=src/stream/ngx_stream_ssl_module.h
1004        ngx_module_srcs=src/stream/ngx_stream_ssl_module.c
1005        ngx_module_libs=
1006        ngx_module_link=$STREAM_SSL
1007
1008        . auto/module
1009    fi
1010
1011    if [ $STREAM_REALIP = YES ]; then
1012        ngx_module_name=ngx_stream_realip_module
1013        ngx_module_deps=
1014        ngx_module_srcs=src/stream/ngx_stream_realip_module.c
1015        ngx_module_libs=
1016        ngx_module_link=$STREAM_REALIP
1017
1018        . auto/module
1019    fi
1020
1021    if [ $STREAM_LIMIT_CONN = YES ]; then
1022        ngx_module_name=ngx_stream_limit_conn_module
1023        ngx_module_deps=
1024        ngx_module_srcs=src/stream/ngx_stream_limit_conn_module.c
1025        ngx_module_libs=
1026        ngx_module_link=$STREAM_LIMIT_CONN
1027
1028        . auto/module
1029    fi
1030
1031    if [ $STREAM_ACCESS = YES ]; then
1032        ngx_module_name=ngx_stream_access_module
1033        ngx_module_deps=
1034        ngx_module_srcs=src/stream/ngx_stream_access_module.c
1035        ngx_module_libs=
1036        ngx_module_link=$STREAM_ACCESS
1037
1038        . auto/module
1039    fi
1040
1041    if [ $STREAM_GEO = YES ]; then
1042        ngx_module_name=ngx_stream_geo_module
1043        ngx_module_deps=
1044        ngx_module_srcs=src/stream/ngx_stream_geo_module.c
1045        ngx_module_libs=
1046        ngx_module_link=$STREAM_GEO
1047
1048        . auto/module
1049    fi
1050
1051    if [ $STREAM_GEOIP != NO ]; then
1052        ngx_module_name=ngx_stream_geoip_module
1053        ngx_module_deps=
1054        ngx_module_srcs=src/stream/ngx_stream_geoip_module.c
1055        ngx_module_libs=GEOIP
1056        ngx_module_link=$STREAM_GEOIP
1057
1058        . auto/module
1059    fi
1060
1061    if [ $STREAM_MAP = YES ]; then
1062        ngx_module_name=ngx_stream_map_module
1063        ngx_module_deps=
1064        ngx_module_srcs=src/stream/ngx_stream_map_module.c
1065        ngx_module_libs=
1066        ngx_module_link=$STREAM_MAP
1067
1068        . auto/module
1069    fi
1070
1071    if [ $STREAM_SPLIT_CLIENTS = YES ]; then
1072        ngx_module_name=ngx_stream_split_clients_module
1073        ngx_module_deps=
1074        ngx_module_srcs=src/stream/ngx_stream_split_clients_module.c
1075        ngx_module_libs=
1076        ngx_module_link=$STREAM_SPLIT_CLIENTS
1077
1078        . auto/module
1079    fi
1080
1081    if [ $STREAM_RETURN = YES ]; then
1082        ngx_module_name=ngx_stream_return_module
1083        ngx_module_deps=
1084        ngx_module_srcs=src/stream/ngx_stream_return_module.c
1085        ngx_module_libs=
1086        ngx_module_link=$STREAM_RETURN
1087
1088        . auto/module
1089    fi
1090
1091    if [ $STREAM_UPSTREAM_HASH = YES ]; then
1092        ngx_module_name=ngx_stream_upstream_hash_module
1093        ngx_module_deps=
1094        ngx_module_srcs=src/stream/ngx_stream_upstream_hash_module.c
1095        ngx_module_libs=
1096        ngx_module_link=$STREAM_UPSTREAM_HASH
1097
1098        . auto/module
1099    fi
1100
1101    if [ $STREAM_UPSTREAM_LEAST_CONN = YES ]; then
1102        ngx_module_name=ngx_stream_upstream_least_conn_module
1103        ngx_module_deps=
1104        ngx_module_srcs=src/stream/ngx_stream_upstream_least_conn_module.c
1105        ngx_module_libs=
1106        ngx_module_link=$STREAM_UPSTREAM_LEAST_CONN
1107
1108        . auto/module
1109    fi
1110
1111    if [ $STREAM_UPSTREAM_ZONE = YES ]; then
1112        have=NGX_STREAM_UPSTREAM_ZONE . auto/have
1113
1114        ngx_module_name=ngx_stream_upstream_zone_module
1115        ngx_module_deps=
1116        ngx_module_srcs=src/stream/ngx_stream_upstream_zone_module.c
1117        ngx_module_libs=
1118        ngx_module_link=$STREAM_UPSTREAM_ZONE
1119
1120        . auto/module
1121    fi
1122
1123    if [ $STREAM_SSL_PREREAD = YES ]; then
1124        ngx_module_name=ngx_stream_ssl_preread_module
1125        ngx_module_deps=
1126        ngx_module_srcs=src/stream/ngx_stream_ssl_preread_module.c
1127        ngx_module_libs=
1128        ngx_module_link=$STREAM_SSL_PREREAD
1129
1130        . auto/module
1131    fi
1132fi
1133
1134
1135#if [ -r $NGX_OBJS/auto ]; then
1136#    . $NGX_OBJS/auto
1137#fi
1138
1139
1140if test -n "$NGX_ADDONS"; then
1141
1142    echo configuring additional modules
1143
1144    for ngx_addon_dir in $NGX_ADDONS
1145    do
1146        echo "adding module in $ngx_addon_dir"
1147
1148        ngx_module_type=
1149        ngx_module_name=
1150        ngx_module_incs=
1151        ngx_module_deps=
1152        ngx_module_srcs=
1153        ngx_module_libs=
1154        ngx_module_order=
1155        ngx_module_link=ADDON
1156
1157        if test -f $ngx_addon_dir/config; then
1158            . $ngx_addon_dir/config
1159
1160            echo " + $ngx_addon_name was configured"
1161
1162        else
1163            echo "$0: error: no $ngx_addon_dir/config was found"
1164            exit 1
1165        fi
1166    done
1167fi
1168
1169
1170if test -n "$DYNAMIC_ADDONS"; then
1171
1172    echo configuring additional dynamic modules
1173
1174    for ngx_addon_dir in $DYNAMIC_ADDONS
1175    do
1176        echo "adding module in $ngx_addon_dir"
1177
1178        ngx_module_type=
1179        ngx_module_name=
1180        ngx_module_incs=
1181        ngx_module_deps=
1182        ngx_module_srcs=
1183        ngx_module_libs=
1184        ngx_module_order=
1185        ngx_module_link=DYNAMIC
1186
1187        if test -f $ngx_addon_dir/config; then
1188            . $ngx_addon_dir/config
1189
1190            echo " + $ngx_addon_name was configured"
1191
1192        else
1193            echo "$0: error: no $ngx_addon_dir/config was found"
1194            exit 1
1195        fi
1196    done
1197fi
1198
1199
1200if [ $USE_OPENSSL = YES ]; then
1201    ngx_module_type=CORE
1202    ngx_module_name=ngx_openssl_module
1203    ngx_module_incs=
1204    ngx_module_deps=src/event/ngx_event_openssl.h
1205    ngx_module_srcs="src/event/ngx_event_openssl.c
1206                     src/event/ngx_event_openssl_stapling.c"
1207    ngx_module_libs=
1208    ngx_module_link=YES
1209    ngx_module_order=
1210
1211    . auto/module
1212fi
1213
1214
1215if [ $USE_PCRE = YES ]; then
1216    ngx_module_type=CORE
1217    ngx_module_name=ngx_regex_module
1218    ngx_module_incs=
1219    ngx_module_deps=src/core/ngx_regex.h
1220    ngx_module_srcs=src/core/ngx_regex.c
1221    ngx_module_libs=
1222    ngx_module_link=YES
1223    ngx_module_order=
1224
1225    . auto/module
1226fi
1227
1228if [ $USE_TLDK = YES ]; then
1229
1230    ngx_module_type=CORE
1231    ngx_module_name=ngx_tldk_module
1232    ngx_module_incs="src/tldk ${RTE_SDK}/${RTE_TARGET}/include
1233                     ${TLDK_ROOT}/${RTE_TARGET}/include"
1234    ngx_module_deps="src/tldk/ngx_tldk.h
1235                     src/tldk/tldk_sock.h"
1236    ngx_module_srcs="src/tldk/module.c
1237                     src/tldk/be.c
1238                     src/tldk/tldk_sock.c
1239                     src/tldk/tldk_event.c
1240                     src/tldk/parse.c"
1241    ngx_module_libs="-L${TLDK_ROOT}/${RTE_TARGET}/lib -Wl,--whole-archive
1242                     -ltle_l4p -ltle_dring -ltle_memtank -ltle_timer
1243                     -Wl,--no-whole-archive -L${RTE_SDK}/${RTE_TARGET}/lib
1244                     -Wl,--whole-archive -ldpdk -lm -lpcap -lnuma
1245                     -Wl,--no-whole-archive"
1246    ngx_module_link=YES
1247    ngx_module_order=
1248
1249    . auto/module
1250
1251    ngx_module_type=EVENT
1252    ngx_module_name=ngx_tldk_event_module
1253    ngx_module_incs=
1254    ngx_module_deps=
1255    ngx_module_srcs=
1256    ngx_module_libs=
1257    ngx_module_link=YES
1258    ngx_module_order=ngx_tldk_module
1259
1260    . auto/module
1261fi
1262
1263
1264modules="$CORE_MODULES $EVENT_MODULES"
1265
1266
1267# thread pool module should be initialized after events
1268if [ $USE_THREADS = YES ]; then
1269    modules="$modules $THREAD_POOL_MODULE"
1270fi
1271
1272
1273if [ $HTTP = YES ]; then
1274    modules="$modules $HTTP_MODULES $HTTP_FILTER_MODULES \
1275             $HTTP_AUX_FILTER_MODULES $HTTP_INIT_FILTER_MODULES"
1276
1277    NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(HTTP_DEPS)"
1278fi
1279
1280
1281if [ $MAIL != NO ]; then
1282
1283    if [ $MAIL = YES ]; then
1284        modules="$modules $MAIL_MODULES"
1285
1286    elif [ $MAIL = DYNAMIC ]; then
1287        ngx_module_name=$MAIL_MODULES
1288        ngx_module_incs=
1289        ngx_module_deps=
1290        ngx_module_srcs=$MAIL_SRCS
1291        ngx_module_libs=
1292        ngx_module_link=DYNAMIC
1293
1294        . auto/module
1295    fi
1296
1297    NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(MAIL_DEPS)"
1298fi
1299
1300
1301if [ $STREAM != NO ]; then
1302
1303    if [ $STREAM = YES ]; then
1304        modules="$modules $STREAM_MODULES"
1305
1306    elif [ $STREAM = DYNAMIC ]; then
1307        ngx_module_name=$STREAM_MODULES
1308        ngx_module_incs=
1309        ngx_module_deps=
1310        ngx_module_srcs=$STREAM_SRCS
1311        ngx_module_libs=
1312        ngx_module_link=DYNAMIC
1313
1314        . auto/module
1315    fi
1316
1317    NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(STREAM_DEPS)"
1318fi
1319
1320
1321ngx_module_type=MISC
1322MISC_MODULES=
1323
1324if [ $NGX_GOOGLE_PERFTOOLS = YES ]; then
1325    ngx_module_name=ngx_google_perftools_module
1326    ngx_module_incs=
1327    ngx_module_deps=
1328    ngx_module_srcs=src/misc/ngx_google_perftools_module.c
1329    ngx_module_libs=
1330    ngx_module_link=$NGX_GOOGLE_PERFTOOLS
1331
1332    . auto/module
1333fi
1334
1335if [ $NGX_CPP_TEST = YES ]; then
1336    ngx_module_name=
1337    ngx_module_incs=
1338    ngx_module_deps=
1339    ngx_module_srcs=src/misc/ngx_cpp_test_module.cpp
1340    ngx_module_libs=-lstdc++
1341    ngx_module_link=$NGX_CPP_TEST
1342
1343    . auto/module
1344fi
1345
1346modules="$modules $MISC_MODULES"
1347
1348
1349if [ $NGX_COMPAT = YES ]; then
1350    have=NGX_COMPAT . auto/have
1351    have=NGX_HTTP_GZIP . auto/have
1352    have=NGX_HTTP_DAV . auto/have
1353    have=NGX_HTTP_REALIP . auto/have
1354    have=NGX_HTTP_X_FORWARDED_FOR . auto/have
1355    have=NGX_HTTP_HEADERS . auto/have
1356    have=NGX_HTTP_UPSTREAM_ZONE . auto/have
1357    have=NGX_STREAM_UPSTREAM_ZONE . auto/have
1358fi
1359
1360
1361cat << END                                    > $NGX_MODULES_C
1362
1363#include <ngx_config.h>
1364#include <ngx_core.h>
1365
1366$NGX_PRAGMA
1367
1368END
1369
1370for mod in $modules
1371do
1372    echo "extern ngx_module_t  $mod;"         >> $NGX_MODULES_C
1373done
1374
1375echo                                          >> $NGX_MODULES_C
1376echo 'ngx_module_t *ngx_modules[] = {'        >> $NGX_MODULES_C
1377
1378for mod in $modules
1379do
1380    echo "    &$mod,"                         >> $NGX_MODULES_C
1381done
1382
1383cat << END                                    >> $NGX_MODULES_C
1384    NULL
1385};
1386
1387END
1388
1389echo 'char *ngx_module_names[] = {'           >> $NGX_MODULES_C
1390
1391for mod in $modules
1392do
1393    echo "    \"$mod\","                      >> $NGX_MODULES_C
1394done
1395
1396cat << END                                    >> $NGX_MODULES_C
1397    NULL
1398};
1399
1400END
1401