blob: ee5462dc4f7a8bad4d05904e95d8cd58188355ad [file] [log] [blame]
Igor Sysoeva4b16df2004-02-02 21:19:52 +00001
Igor Sysoevff8da912004-09-29 16:00:49 +00002# Copyright (C) Igor Sysoev
3
4
Igor Sysoeve9b2cb12004-02-09 20:47:18 +00005if [ $EVENT_SELECT = NO -a $EVENT_FOUND = NO ]; then
6 EVENT_SELECT=YES
7fi
8
9if [ $EVENT_SELECT = YES ]; then
Igor Sysoevf6906042004-11-25 16:17:31 +000010 have=NGX_HAVE_SELECT . auto/have
Igor Sysoeve9b2cb12004-02-09 20:47:18 +000011 CORE_SRCS="$CORE_SRCS $SELECT_SRCS"
12 EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE"
13fi
14
15
16if [ $EVENT_POLL = NO -a $EVENT_FOUND = NO ]; then
17 EVENT_POLL=YES
18fi
19
20if [ $EVENT_POLL = YES ]; then
Igor Sysoevf6906042004-11-25 16:17:31 +000021 have=NGX_HAVE_POLL . auto/have
Igor Sysoeve9b2cb12004-02-09 20:47:18 +000022 CORE_SRCS="$CORE_SRCS $POLL_SRCS"
23 EVENT_MODULES="$EVENT_MODULES $POLL_MODULE"
24fi
25
26
Igor Sysoevf6906042004-11-25 16:17:31 +000027if [ $NGX_TEST_BUILD_DEVPOLL = YES ]; then
28 have=NGX_HAVE_DEVPOLL . auto/have
29 have=NGX_TEST_BUILD_DEVPOLL . auto/have
Igor Sysoeve9b2cb12004-02-09 20:47:18 +000030 EVENT_MODULES="$EVENT_MODULES $DEVPOLL_MODULE"
31 CORE_SRCS="$CORE_SRCS $DEVPOLL_SRCS"
32fi
33
Igor Sysoev4524fb02006-09-26 12:20:12 +000034
35if [ $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"
40fi
41
Igor Sysoevf6906042004-11-25 16:17:31 +000042if [ $NGX_TEST_BUILD_EPOLL = YES ]; then
43 have=NGX_HAVE_EPOLL . auto/have
44 have=NGX_TEST_BUILD_EPOLL . auto/have
Igor Sysoeve9b2cb12004-02-09 20:47:18 +000045 EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE"
46 CORE_SRCS="$CORE_SRCS $EPOLL_SRCS"
47fi
48
Igor Sysoevf6906042004-11-25 16:17:31 +000049if [ $NGX_TEST_BUILD_RTSIG = YES ]; then
50 have=NGX_HAVE_RTSIG . auto/have
51 have=NGX_TEST_BUILD_RTSIG . auto/have
Igor Sysoev9139cd22004-02-17 17:53:12 +000052 EVENT_MODULES="$EVENT_MODULES $RTSIG_MODULE"
53 CORE_SRCS="$CORE_SRCS $RTSIG_SRCS"
Igor Sysoeve9b2cb12004-02-09 20:47:18 +000054fi
55
Igor Sysoev42b12b32004-12-02 18:40:46 +000056if [ $NGX_TEST_BUILD_SOLARIS_SENDFILEV = YES ]; then
57 have=NGX_TEST_BUILD_SOLARIS_SENDFILEV . auto/have
58 CORE_SRCS="$CORE_SRCS $SOLARIS_SENDFILEV_SRCS"
59fi
60
Igor Sysoeve9b2cb12004-02-09 20:47:18 +000061
Igor Sysoev7b190b42005-06-07 15:56:31 +000062if [ $HTTP != YES ]; then
63 have=NGX_CRYPT . auto/nohave
64 CRYPT_LIB=
65fi
66
67
Igor Sysoev899b44e2005-05-12 14:58:06 +000068if [ $HTTP_SSI = YES ]; then
69 HTTP_POSTPONE=YES
70fi
71
Igor Sysoev7f7846d2006-04-26 09:52:47 +000072
73if [ $HTTP_ADDITION = YES ]; then
74 HTTP_POSTPONE=YES
75fi
76
77
Igor Sysoeve5733802005-09-08 14:36:09 +000078# the module order is important
79# ngx_http_autoindex_module
80# ngx_http_index_module
81#
Igor Sysoev0e5dc5c2005-11-15 13:30:52 +000082# ngx_http_access_module
83# ngx_http_realip_module
84#
Igor Sysoeve5733802005-09-08 14:36:09 +000085#
Igor Sysoev7823cc32004-07-14 16:01:42 +000086# the filter order is important
87# ngx_http_write_filter
Igor Sysoev7823cc32004-07-14 16:01:42 +000088# ngx_http_header_filter
89# ngx_http_chunked_filter
90# ngx_http_range_header_filter
91# ngx_http_gzip_filter
Igor Sysoev899b44e2005-05-12 14:58:06 +000092# ngx_http_postpone_filter
Igor Sysoev7823cc32004-07-14 16:01:42 +000093# ngx_http_charset_filter
94# ngx_http_ssi_filter
Igor Sysoev6d16e1e2006-04-05 13:40:54 +000095# ngx_http_addition_filter
Igor Sysoeve5733802005-09-08 14:36:09 +000096# ngx_http_userid_filter
97# ngx_http_headers_filter
Igor Sysoev7823cc32004-07-14 16:01:42 +000098# ngx_http_copy_filter
99# ngx_http_range_body_filter
100# ngx_http_not_modified_filter
101
Igor Sysoev4aa88882004-07-14 20:07:58 +0000102HTTP_FILTER_MODULES="$HTTP_WRITE_FILTER_MODULE \
103 $HTTP_HEADER_FILTER_MODULE \
104 $HTTP_CHUNKED_FILTER_MODULE \
105 $HTTP_RANGE_HEADER_FILTER_MODULE"
Igor Sysoev7823cc32004-07-14 16:01:42 +0000106
Igor Sysoeva4b16df2004-02-02 21:19:52 +0000107if [ $HTTP_GZIP = YES ]; then
Igor Sysoeva893eab2004-03-11 21:34:52 +0000108 have=NGX_HTTP_GZIP . auto/have
Igor Sysoeva4b16df2004-02-02 21:19:52 +0000109 USE_ZLIB=YES
110 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_GZIP_FILTER_MODULE"
111 HTTP_SRCS="$HTTP_SRCS $HTTP_GZIP_SRCS"
112fi
113
Igor Sysoev899b44e2005-05-12 14:58:06 +0000114if [ $HTTP_POSTPONE = YES ]; then
115 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_POSTPONE_FILTER_MODULE"
116 HTTP_SRCS="$HTTP_SRCS $HTPP_POSTPONE_FILTER_SRCS"
117fi
118
Igor Sysoev5e150a02004-07-12 15:30:22 +0000119if [ $HTTP_CHARSET = YES ]; then
120 have=NGX_HTTP_CHARSET . auto/have
121 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_CHARSET_FILTER_MODULE"
122 HTTP_SRCS="$HTTP_SRCS $HTTP_CHARSET_SRCS"
123fi
124
Igor Sysoeva4b16df2004-02-02 21:19:52 +0000125if [ $HTTP_SSI = YES ]; then
Igor Sysoeva893eab2004-03-11 21:34:52 +0000126 have=NGX_HTTP_SSI . auto/have
Igor Sysoeva4b16df2004-02-02 21:19:52 +0000127 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_SSI_FILTER_MODULE"
Igor Sysoevdf3254a2006-01-11 15:26:57 +0000128 HTTP_DEPS="$HTTP_DEPS $HTTP_SSI_DEPS"
Igor Sysoeva4b16df2004-02-02 21:19:52 +0000129 HTTP_SRCS="$HTTP_SRCS $HTTP_SSI_SRCS"
130fi
131
Igor Sysoevd9bb8e32007-04-19 17:54:23 +0000132if [ $HTTP_SUB = YES ]; then
133 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_SUB_FILTER_MODULE"
134 HTTP_SRCS="$HTTP_SRCS $HTTP_SUB_SRCS"
135fi
136
Igor Sysoev6d16e1e2006-04-05 13:40:54 +0000137if [ $HTTP_ADDITION = YES ]; then
138 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_ADDITION_FILTER_MODULE"
139 HTTP_SRCS="$HTTP_SRCS $HTTP_ADDITION_SRCS"
140fi
141
Igor Sysoeva7c4a2a2004-08-29 03:55:41 +0000142if [ $HTTP_USERID = YES ]; then
143 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_USERID_FILTER_MODULE"
144 HTTP_SRCS="$HTTP_SRCS $HTTP_USERID_SRCS"
145fi
146
Igor Sysoev723e6cc2004-10-25 15:29:23 +0000147HTTP_MODULES="$HTTP_MODULES $HTTP_STATIC_MODULE"
148
Igor Sysoev8a2b2fb2006-04-14 09:53:38 +0000149if [ $HTTP_DAV = YES ]; then
Igor Sysoev7bdb7202006-04-19 15:30:56 +0000150 have=NGX_HTTP_DAV . auto/have
Igor Sysoev8a2b2fb2006-04-14 09:53:38 +0000151 HTTP_MODULES="$HTTP_MODULES $HTTP_DAV_MODULE"
152 HTTP_SRCS="$HTTP_SRCS $HTTP_DAV_SRCS"
153fi
154
Igor Sysoev723e6cc2004-10-25 15:29:23 +0000155if [ $HTTP_AUTOINDEX = YES ]; then
156 have=NGX_HTTP_AUTOINDEX . auto/have
157 HTTP_MODULES="$HTTP_MODULES $HTTP_AUTOINDEX_MODULE"
158 HTTP_SRCS="$HTTP_SRCS $HTTP_AUTOINDEX_SRCS"
159fi
160
161HTTP_MODULES="$HTTP_MODULES $HTTP_INDEX_MODULE"
Igor Sysoev3d5c0fc2004-06-22 16:43:09 +0000162
Igor Sysoev4d656dc2005-03-22 16:02:46 +0000163if [ $HTTP_AUTH_BASIC = YES ]; then
164 have=NGX_HTTP_AUTH_BASIC . auto/have
165 have=NGX_CRYPT . auto/have
166 HTTP_MODULES="$HTTP_MODULES $HTTP_AUTH_BASIC_MODULE"
167 HTTP_SRCS="$HTTP_SRCS $HTTP_AUTH_BASIC_SRCS"
168 CORE_LIBS="$CORE_LIBS $CRYPT_LIB"
169fi
170
Igor Sysoev59f3aa32004-06-24 16:07:04 +0000171if [ $HTTP_ACCESS = YES ]; then
172 have=NGX_HTTP_ACCESS . auto/have
173 HTTP_MODULES="$HTTP_MODULES $HTTP_ACCESS_MODULE"
174 HTTP_SRCS="$HTTP_SRCS $HTTP_ACCESS_SRCS"
175fi
176
Igor Sysoev684f9552007-01-07 18:09:58 +0000177if [ $HTTP_LIMIT_ZONE = YES ]; then
178 HTTP_MODULES="$HTTP_MODULES $HTTP_LIMIT_ZONE_MODULE"
179 HTTP_SRCS="$HTTP_SRCS $HTTP_LIMIT_ZONE_SRCS"
180fi
181
Igor Sysoev09c684b2005-11-09 17:25:55 +0000182if [ $HTTP_REALIP = YES ]; then
183 have=NGX_HTTP_REALIP . auto/have
184 HTTP_MODULES="$HTTP_MODULES $HTTP_REALIP_MODULE"
185 HTTP_SRCS="$HTTP_SRCS $HTTP_REALIP_SRCS"
186fi
187
Igor Sysoevc83f6832004-06-24 07:53:37 +0000188if [ $HTTP_STATUS = YES ]; then
189 have=NGX_HTTP_STATUS . auto/have
190 HTTP_MODULES="$HTTP_MODULES $HTTP_STATUS_MODULE"
191 HTTP_SRCS="$HTTP_SRCS $HTTP_STATUS_SRCS"
192fi
193
Igor Sysoev805d9db2005-02-03 19:33:37 +0000194if [ $HTTP_GEO = YES ]; then
195 have=NGX_HTTP_GEO . auto/have
196 HTTP_MODULES="$HTTP_MODULES $HTTP_GEO_MODULE"
197 HTTP_SRCS="$HTTP_SRCS $HTTP_GEO_SRCS"
198fi
199
Igor Sysoev24025022005-12-16 15:07:08 +0000200if [ $HTTP_MAP = YES ]; then
201 have=NGX_HTTP_MAP . auto/have
202 HTTP_MODULES="$HTTP_MODULES $HTTP_MAP_MODULE"
203 HTTP_SRCS="$HTTP_SRCS $HTTP_MAP_SRCS"
204fi
205
Igor Sysoev0e5dc5c2005-11-15 13:30:52 +0000206if [ $HTTP_REFERER = YES ]; then
207 HTTP_MODULES="$HTTP_MODULES $HTTP_REFERER_MODULE"
208 HTTP_SRCS="$HTTP_SRCS $HTTP_REFERER_SRCS"
209fi
210
Igor Sysoev3d5c0fc2004-06-22 16:43:09 +0000211if [ $HTTP_REWRITE = YES -a $USE_PCRE != DISABLED ]; then
212 have=NGX_HTTP_REWRITE . auto/have
213 USE_PCRE=YES
214 HTTP_MODULES="$HTTP_MODULES $HTTP_REWRITE_MODULE"
215 HTTP_SRCS="$HTTP_SRCS $HTTP_REWRITE_SRCS"
216fi
217
Igor Sysoevf38e0462004-07-16 17:11:43 +0000218if [ $HTTP_SSL = YES ]; then
Igor Sysoev0599b112004-07-25 18:34:14 +0000219 USE_OPENSSL=YES
220 have=NGX_HTTP_SSL . auto/have
Igor Sysoevf38e0462004-07-16 17:11:43 +0000221 HTTP_MODULES="$HTTP_MODULES $HTTP_SSL_MODULE"
222 HTTP_DEPS="$HTTP_DEPS $HTTP_SSL_DEPS"
223 HTTP_SRCS="$HTTP_SRCS $HTTP_SSL_SRCS"
Igor Sysoevf38e0462004-07-16 17:11:43 +0000224fi
225
Igor Sysoeva4b16df2004-02-02 21:19:52 +0000226if [ $HTTP_PROXY = YES ]; then
Igor Sysoeva893eab2004-03-11 21:34:52 +0000227 have=NGX_HTTP_PROXY . auto/have
Igor Sysoev0bc87e92004-09-30 15:30:54 +0000228 #USE_MD5=YES
Igor Sysoeva4b16df2004-02-02 21:19:52 +0000229 HTTP_MODULES="$HTTP_MODULES $HTTP_PROXY_MODULE"
Igor Sysoeva4b16df2004-02-02 21:19:52 +0000230 HTTP_DEPS="$HTTP_DEPS $HTTP_PROXY_DEPS"
231 HTTP_SRCS="$HTTP_SRCS $HTTP_PROXY_SRCS"
232fi
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000233
Igor Sysoev02025fd2005-01-18 13:03:58 +0000234if [ $HTTP_FASTCGI = YES ]; then
235 HTTP_MODULES="$HTTP_MODULES $HTTP_FASTCGI_MODULE"
236 HTTP_SRCS="$HTTP_SRCS $HTTP_FASTCGI_SRCS"
237fi
238
Igor Sysoev9bf11aa2006-01-16 14:56:53 +0000239if [ $HTTP_PERL = YES ]; then
240 USE_PERL=YES
241 have=NGX_HTTP_PERL . auto/have
242 HTTP_MODULES="$HTTP_MODULES $HTTP_PERL_MODULE"
243 HTTP_INCS="$HTTP_INCS $HTTP_PERL_INCS"
244 HTTP_DEPS="$HTTP_DEPS $HTTP_PERL_DEPS"
245 HTTP_SRCS="$HTTP_SRCS $HTTP_PERL_SRCS"
246fi
247
Igor Sysoevc31a9bb2005-11-26 10:11:11 +0000248if [ $HTTP_MEMCACHED = YES ]; then
249 HTTP_MODULES="$HTTP_MODULES $HTTP_MEMCACHED_MODULE"
250 HTTP_SRCS="$HTTP_SRCS $HTTP_MEMCACHED_SRCS"
251fi
252
Igor Sysoev0e5dc5c2005-11-15 13:30:52 +0000253if [ $HTTP_EMPTY_GIF = YES ]; then
254 HTTP_MODULES="$HTTP_MODULES $HTTP_EMPTY_GIF_MODULE"
255 HTTP_SRCS="$HTTP_SRCS $HTTP_EMPTY_GIF_SRCS"
256fi
257
Igor Sysoev3383ff62006-09-18 12:25:07 +0000258if [ $HTTP_BROWSER = YES ]; then
259 HTTP_MODULES="$HTTP_MODULES $HTTP_BROWSER_MODULE"
260 HTTP_SRCS="$HTTP_SRCS $HTTP_BROWSER_SRCS"
261fi
262
Igor Sysoevb5050062006-10-09 14:17:36 +0000263if [ $HTTP_FLV = YES ]; then
264 HTTP_MODULES="$HTTP_MODULES $HTTP_FLV_MODULE"
265 HTTP_SRCS="$HTTP_SRCS $HTTP_FLV_SRCS"
266fi
267
Igor Sysoev3d2fd182006-12-04 16:46:13 +0000268if [ $HTTP_UPSTREAM_IP_HASH = YES ]; then
269 HTTP_MODULES="$HTTP_MODULES $HTTP_UPSTREAM_IP_HASH_MODULE"
270 HTTP_SRCS="$HTTP_SRCS $HTTP_UPSTREAM_IP_HASH_SRCS"
271fi
272
Igor Sysoevf6906042004-11-25 16:17:31 +0000273# STUB
Igor Sysoevb1dfe472004-12-21 12:30:30 +0000274#USE_MD5=YES
275#HTTP_SRCS="$HTTP_SRCS $HTPP_CACHE_SRCS"
Igor Sysoevf6906042004-11-25 16:17:31 +0000276#HTTP_SRCS="$HTTP_SRCS $HTPP_FILE_CACHE_SRCS"
277
Igor Sysoevaa828612005-02-09 14:31:07 +0000278if [ $HTTP_STUB_STATUS = YES ]; then
279 have=NGX_STAT_STUB . auto/have
280 HTTP_MODULES="$HTTP_MODULES ngx_http_stub_status_module"
281 HTTP_SRCS="$HTTP_SRCS src/http/modules/ngx_http_stub_status_module.c"
282fi
283
Igor Sysoev1ebfead2005-02-16 13:40:36 +0000284#if [ -r $NGX_OBJS/auto ]; then
285# . $NGX_OBJS/auto
286#fi
287
288
289if test -n "$NGX_ADDONS"; then
290
291 echo configuring additional modules
292
293 for ngx_addon_dir in $NGX_ADDONS
294 do
295 echo "adding module in $ngx_addon_dir"
296
297 if test -f $ngx_addon_dir/config; then
298 . $ngx_addon_dir/config
299
300 echo " + $ngx_addon_name was configured"
301
302 else
303 echo "$0: error: no $ngx_addon_dir/config was found"
304 exit 1
305 fi
306 done
Igor Sysoevab517d52004-05-18 15:29:08 +0000307fi
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000308
Igor Sysoev1ebfead2005-02-16 13:40:36 +0000309
Igor Sysoev02c8d182007-03-19 13:36:56 +0000310if [ $MAIL_SSL = YES ]; then
311 MAIL_DEPS="$MAIL_DEPS $MAIL_SSL_DEPS"
312 MAIL_SRCS="$MAIL_SRCS $MAIL_SSL_SRCS"
313 have=NGX_MAIL_SSL . auto/have
Igor Sysoeve5733802005-09-08 14:36:09 +0000314 USE_OPENSSL=YES
315fi
316
317
Igor Sysoev980a9242004-09-05 19:54:02 +0000318modules="$CORE_MODULES $EVENT_MODULES"
319
Igor Sysoeve5733802005-09-08 14:36:09 +0000320
321if [ $USE_OPENSSL = YES ]; then
322 modules="$modules $OPENSSL_MODULE"
323 CORE_DEPS="$CORE_DEPS $OPENSSL_DEPS"
324 CORE_SRCS="$CORE_SRCS $OPENSSL_SRCS"
325fi
326
Igor Sysoev980a9242004-09-05 19:54:02 +0000327if [ $HTTP = YES ]; then
328 modules="$modules $HTTP_MODULES $HTTP_FILTER_MODULES \
329 $HTTP_HEADERS_FILTER_MODULE \
Igor Sysoev0e5dc5c2005-11-15 13:30:52 +0000330 $HTTP_AUX_FILTER_MODULES \
Igor Sysoev980a9242004-09-05 19:54:02 +0000331 $HTTP_COPY_FILTER_MODULE \
332 $HTTP_RANGE_BODY_FILTER_MODULE \
333 $HTTP_NOT_MODIFIED_FILTER_MODULE"
Igor Sysoev1ebfead2005-02-16 13:40:36 +0000334
335 NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(HTTP_DEPS)"
Igor Sysoev980a9242004-09-05 19:54:02 +0000336fi
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000337
Igor Sysoev1ebfead2005-02-16 13:40:36 +0000338
Igor Sysoev02c8d182007-03-19 13:36:56 +0000339if [ $MAIL = YES ]; then
340 modules="$modules $MAIL_MODULES"
Igor Sysoev7b190b42005-06-07 15:56:31 +0000341
Igor Sysoev02c8d182007-03-19 13:36:56 +0000342 if [ $MAIL_SSL = YES ]; then
343 modules="$modules $MAIL_SSL_MODULE"
Igor Sysoevceb99292005-09-06 16:09:32 +0000344 fi
345
Igor Sysoev02c8d182007-03-19 13:36:56 +0000346 modules="$modules $MAIL_AUTH_HTTP_MODULE"
347 MAIL_SRCS="$MAIL_SRCS $MAIL_AUTH_HTTP_SRCS"
Igor Sysoev7b190b42005-06-07 15:56:31 +0000348
Igor Sysoev02c8d182007-03-19 13:36:56 +0000349 modules="$modules $MAIL_PROXY_MODULE"
350 MAIL_SRCS="$MAIL_SRCS $MAIL_PROXY_SRCS"
Igor Sysoev59cf56c2004-09-07 15:29:22 +0000351fi
352
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000353
Igor Sysoev1b735832004-11-11 14:07:14 +0000354cat << END > $NGX_MODULES_C
355
356#include <ngx_config.h>
357#include <ngx_core.h>
358
359$NGX_PRAGMA
360
361END
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000362
363for mod in $modules
364do
365 echo "extern ngx_module_t $mod;" >> $NGX_MODULES_C
366done
367
368echo >> $NGX_MODULES_C
369echo 'ngx_module_t *ngx_modules[] = {' >> $NGX_MODULES_C
370
371for mod in $modules
372do
373 echo " &$mod," >> $NGX_MODULES_C
374done
375
Igor Sysoev1b735832004-11-11 14:07:14 +0000376cat << END >> $NGX_MODULES_C
377 NULL
378};
379
380END