2 # Copyright (C) Igor Sysoev
5 if [ $EVENT_SELECT = NO -a $EVENT_FOUND = NO ]; then
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
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_TEST_BUILD_EPOLL . auto/have
45 EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE"
46 CORE_SRCS="$CORE_SRCS $EPOLL_SRCS"
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"
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"
62 if [ $HTTP != YES ]; then
63 have=NGX_CRYPT . auto/nohave
68 if [ $HTTP_SSI = YES ]; then
73 if [ $HTTP_ADDITION = YES ]; then
78 # the module order is important
79 # ngx_http_static_module
80 # ngx_http_gzip_static_module
82 # ngx_http_autoindex_module
83 # ngx_http_index_module
84 # ngx_http_random_index_module
86 # ngx_http_access_module
87 # ngx_http_realip_module
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
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
108 HTTP_FILTER_MODULES="$HTTP_WRITE_FILTER_MODULE \
109 $HTTP_HEADER_FILTER_MODULE \
110 $HTTP_CHUNKED_FILTER_MODULE \
111 $HTTP_RANGE_HEADER_FILTER_MODULE"
113 if [ $HTTP_GZIP = YES ]; then
114 have=NGX_HTTP_GZIP . auto/have
116 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_GZIP_FILTER_MODULE"
117 HTTP_SRCS="$HTTP_SRCS $HTTP_GZIP_SRCS"
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"
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"
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"
138 if [ $HTTP_XSLT = YES ]; then
140 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_XSLT_FILTER_MODULE"
141 HTTP_SRCS="$HTTP_SRCS $HTTP_XSLT_SRCS"
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"
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"
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"
159 HTTP_MODULES="$HTTP_MODULES $HTTP_STATIC_MODULE"
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"
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"
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"
179 HTTP_MODULES="$HTTP_MODULES $HTTP_INDEX_MODULE"
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"
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"
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"
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"
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"
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"
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"
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"
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"
235 if [ $HTTP_REFERER = YES ]; then
236 HTTP_MODULES="$HTTP_MODULES $HTTP_REFERER_MODULE"
237 HTTP_SRCS="$HTTP_SRCS $HTTP_REFERER_SRCS"
240 if [ $HTTP_REWRITE = YES -a $USE_PCRE != DISABLED ]; then
241 have=NGX_HTTP_REWRITE . auto/have
243 HTTP_MODULES="$HTTP_MODULES $HTTP_REWRITE_MODULE"
244 HTTP_SRCS="$HTTP_SRCS $HTTP_REWRITE_SRCS"
247 if [ $HTTP_SSL = YES ]; then
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"
255 if [ $HTTP_PROXY = YES ]; then
256 have=NGX_HTTP_PROXY . auto/have
258 HTTP_MODULES="$HTTP_MODULES $HTTP_PROXY_MODULE"
259 HTTP_DEPS="$HTTP_DEPS $HTTP_PROXY_DEPS"
260 HTTP_SRCS="$HTTP_SRCS $HTTP_PROXY_SRCS"
263 if [ $HTTP_FASTCGI = YES ]; then
264 HTTP_MODULES="$HTTP_MODULES $HTTP_FASTCGI_MODULE"
265 HTTP_SRCS="$HTTP_SRCS $HTTP_FASTCGI_SRCS"
268 if [ $HTTP_PERL = YES ]; then
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"
277 if [ $HTTP_MEMCACHED = YES ]; then
278 HTTP_MODULES="$HTTP_MODULES $HTTP_MEMCACHED_MODULE"
279 HTTP_SRCS="$HTTP_SRCS $HTTP_MEMCACHED_SRCS"
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"
287 if [ $HTTP_BROWSER = YES ]; then
288 HTTP_MODULES="$HTTP_MODULES $HTTP_BROWSER_MODULE"
289 HTTP_SRCS="$HTTP_SRCS $HTTP_BROWSER_SRCS"
292 if [ $HTTP_SECURE_LINK = YES ]; then
294 HTTP_MODULES="$HTTP_MODULES $HTTP_SECURE_LINK_MODULE"
295 HTTP_SRCS="$HTTP_SRCS $HTTP_SECURE_LINK_SRCS"
298 if [ $HTTP_FLV = YES ]; then
299 HTTP_MODULES="$HTTP_MODULES $HTTP_FLV_MODULE"
300 HTTP_SRCS="$HTTP_SRCS $HTTP_FLV_SRCS"
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"
310 #HTTP_SRCS="$HTTP_SRCS $HTTP_CACHE_SRCS"
311 #HTTP_SRCS="$HTTP_SRCS $HTTP_FILE_CACHE_SRCS"
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"
319 #if [ -r $NGX_OBJS/auto ]; then
324 if test -n "$NGX_ADDONS"; then
326 echo configuring additional modules
328 for ngx_addon_dir in $NGX_ADDONS
330 echo "adding module in $ngx_addon_dir"
332 if test -f $ngx_addon_dir/config; then
333 . $ngx_addon_dir/config
335 echo " + $ngx_addon_name was configured"
338 echo "$0: error: no $ngx_addon_dir/config was found"
345 if [ $MAIL_SSL = YES ]; then
346 have=NGX_MAIL_SSL . auto/have
351 modules="$CORE_MODULES $EVENT_MODULES"
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"
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"
368 NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(HTTP_DEPS)"
372 if [ $MAIL = YES ]; then
373 modules="$modules $MAIL_MODULES"
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"
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"
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"
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"
399 modules="$modules $MAIL_AUTH_HTTP_MODULE"
400 MAIL_SRCS="$MAIL_SRCS $MAIL_AUTH_HTTP_SRCS"
402 modules="$modules $MAIL_PROXY_MODULE"
403 MAIL_SRCS="$MAIL_SRCS $MAIL_PROXY_SRCS"
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"
413 if [ $NGX_CPP_TEST = YES ]; then
414 NGX_MISC_SRCS="$NGX_MISC_SRCS $NGX_CPP_TEST_SRCS"
418 cat << END > $NGX_MODULES_C
420 #include <ngx_config.h>
421 #include <ngx_core.h>
429 echo "extern ngx_module_t $mod;" >> $NGX_MODULES_C
432 echo >> $NGX_MODULES_C
433 echo 'ngx_module_t *ngx_modules[] = {' >> $NGX_MODULES_C
437 echo " &$mod," >> $NGX_MODULES_C
440 cat << END >> $NGX_MODULES_C