blob: b032f05cdc7da68bff19eca391ac1faab60ab8db [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 Sysoevf6906042004-11-25 16:17:31 +000034if [ $NGX_TEST_BUILD_EPOLL = YES ]; then
35 have=NGX_HAVE_EPOLL . auto/have
36 have=NGX_TEST_BUILD_EPOLL . auto/have
Igor Sysoeve9b2cb12004-02-09 20:47:18 +000037 EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE"
38 CORE_SRCS="$CORE_SRCS $EPOLL_SRCS"
39fi
40
Igor Sysoevf6906042004-11-25 16:17:31 +000041if [ $NGX_TEST_BUILD_RTSIG = YES ]; then
42 have=NGX_HAVE_RTSIG . auto/have
43 have=NGX_TEST_BUILD_RTSIG . auto/have
Igor Sysoev9139cd22004-02-17 17:53:12 +000044 EVENT_MODULES="$EVENT_MODULES $RTSIG_MODULE"
45 CORE_SRCS="$CORE_SRCS $RTSIG_SRCS"
Igor Sysoeve9b2cb12004-02-09 20:47:18 +000046fi
47
Igor Sysoev42b12b32004-12-02 18:40:46 +000048if [ $NGX_TEST_BUILD_SOLARIS_SENDFILEV = YES ]; then
49 have=NGX_TEST_BUILD_SOLARIS_SENDFILEV . auto/have
50 CORE_SRCS="$CORE_SRCS $SOLARIS_SENDFILEV_SRCS"
51fi
52
Igor Sysoeve9b2cb12004-02-09 20:47:18 +000053
Igor Sysoev899b44e2005-05-12 14:58:06 +000054if [ $HTTP_SSI = YES ]; then
55 HTTP_POSTPONE=YES
56fi
57
Igor Sysoev7823cc32004-07-14 16:01:42 +000058# the filter order is important
59# ngx_http_write_filter
Igor Sysoev7823cc32004-07-14 16:01:42 +000060# ngx_http_header_filter
61# ngx_http_chunked_filter
62# ngx_http_range_header_filter
Igor Sysoev4aa88882004-07-14 20:07:58 +000063# ngx_http_ssl_filter
Igor Sysoev7823cc32004-07-14 16:01:42 +000064# ngx_http_gzip_filter
Igor Sysoev899b44e2005-05-12 14:58:06 +000065# ngx_http_postpone_filter
Igor Sysoev7823cc32004-07-14 16:01:42 +000066# ngx_http_charset_filter
67# ngx_http_ssi_filter
68# ngx_http_headers_filter
69# ngx_http_copy_filter
70# ngx_http_range_body_filter
71# ngx_http_not_modified_filter
72
Igor Sysoev4aa88882004-07-14 20:07:58 +000073HTTP_FILTER_MODULES="$HTTP_WRITE_FILTER_MODULE \
74 $HTTP_HEADER_FILTER_MODULE \
75 $HTTP_CHUNKED_FILTER_MODULE \
76 $HTTP_RANGE_HEADER_FILTER_MODULE"
Igor Sysoev7823cc32004-07-14 16:01:42 +000077
Igor Sysoeva4b16df2004-02-02 21:19:52 +000078if [ $HTTP_GZIP = YES ]; then
Igor Sysoeva893eab2004-03-11 21:34:52 +000079 have=NGX_HTTP_GZIP . auto/have
Igor Sysoeva4b16df2004-02-02 21:19:52 +000080 USE_ZLIB=YES
81 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_GZIP_FILTER_MODULE"
82 HTTP_SRCS="$HTTP_SRCS $HTTP_GZIP_SRCS"
83fi
84
Igor Sysoev899b44e2005-05-12 14:58:06 +000085if [ $HTTP_POSTPONE = YES ]; then
86 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_POSTPONE_FILTER_MODULE"
87 HTTP_SRCS="$HTTP_SRCS $HTPP_POSTPONE_FILTER_SRCS"
88fi
89
Igor Sysoev5e150a02004-07-12 15:30:22 +000090if [ $HTTP_CHARSET = YES ]; then
91 have=NGX_HTTP_CHARSET . auto/have
92 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_CHARSET_FILTER_MODULE"
93 HTTP_SRCS="$HTTP_SRCS $HTTP_CHARSET_SRCS"
94fi
95
Igor Sysoeva4b16df2004-02-02 21:19:52 +000096if [ $HTTP_SSI = YES ]; then
Igor Sysoeva893eab2004-03-11 21:34:52 +000097 have=NGX_HTTP_SSI . auto/have
Igor Sysoeva4b16df2004-02-02 21:19:52 +000098 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_SSI_FILTER_MODULE"
99 HTTP_SRCS="$HTTP_SRCS $HTTP_SSI_SRCS"
100fi
101
Igor Sysoeva7c4a2a2004-08-29 03:55:41 +0000102if [ $HTTP_USERID = YES ]; then
103 HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_USERID_FILTER_MODULE"
104 HTTP_SRCS="$HTTP_SRCS $HTTP_USERID_SRCS"
105fi
106
Igor Sysoev723e6cc2004-10-25 15:29:23 +0000107HTTP_MODULES="$HTTP_MODULES $HTTP_STATIC_MODULE"
108
109if [ $HTTP_AUTOINDEX = YES ]; then
110 have=NGX_HTTP_AUTOINDEX . auto/have
111 HTTP_MODULES="$HTTP_MODULES $HTTP_AUTOINDEX_MODULE"
112 HTTP_SRCS="$HTTP_SRCS $HTTP_AUTOINDEX_SRCS"
113fi
114
115HTTP_MODULES="$HTTP_MODULES $HTTP_INDEX_MODULE"
Igor Sysoev3d5c0fc2004-06-22 16:43:09 +0000116
Igor Sysoev4d656dc2005-03-22 16:02:46 +0000117if [ $HTTP_AUTH_BASIC = YES ]; then
118 have=NGX_HTTP_AUTH_BASIC . auto/have
119 have=NGX_CRYPT . auto/have
120 HTTP_MODULES="$HTTP_MODULES $HTTP_AUTH_BASIC_MODULE"
121 HTTP_SRCS="$HTTP_SRCS $HTTP_AUTH_BASIC_SRCS"
122 CORE_LIBS="$CORE_LIBS $CRYPT_LIB"
123fi
124
Igor Sysoev59f3aa32004-06-24 16:07:04 +0000125if [ $HTTP_ACCESS = YES ]; then
126 have=NGX_HTTP_ACCESS . auto/have
127 HTTP_MODULES="$HTTP_MODULES $HTTP_ACCESS_MODULE"
128 HTTP_SRCS="$HTTP_SRCS $HTTP_ACCESS_SRCS"
129fi
130
Igor Sysoevc83f6832004-06-24 07:53:37 +0000131if [ $HTTP_STATUS = YES ]; then
132 have=NGX_HTTP_STATUS . auto/have
133 HTTP_MODULES="$HTTP_MODULES $HTTP_STATUS_MODULE"
134 HTTP_SRCS="$HTTP_SRCS $HTTP_STATUS_SRCS"
135fi
136
Igor Sysoev805d9db2005-02-03 19:33:37 +0000137if [ $HTTP_GEO = YES ]; then
138 have=NGX_HTTP_GEO . auto/have
139 HTTP_MODULES="$HTTP_MODULES $HTTP_GEO_MODULE"
140 HTTP_SRCS="$HTTP_SRCS $HTTP_GEO_SRCS"
141fi
142
Igor Sysoev3d5c0fc2004-06-22 16:43:09 +0000143if [ $HTTP_REWRITE = YES -a $USE_PCRE != DISABLED ]; then
144 have=NGX_HTTP_REWRITE . auto/have
145 USE_PCRE=YES
146 HTTP_MODULES="$HTTP_MODULES $HTTP_REWRITE_MODULE"
147 HTTP_SRCS="$HTTP_SRCS $HTTP_REWRITE_SRCS"
148fi
149
Igor Sysoevf38e0462004-07-16 17:11:43 +0000150if [ $HTTP_SSL = YES ]; then
Igor Sysoev0599b112004-07-25 18:34:14 +0000151 USE_OPENSSL=YES
152 have=NGX_HTTP_SSL . auto/have
Igor Sysoevf38e0462004-07-16 17:11:43 +0000153 HTTP_MODULES="$HTTP_MODULES $HTTP_SSL_MODULE"
154 HTTP_DEPS="$HTTP_DEPS $HTTP_SSL_DEPS"
155 HTTP_SRCS="$HTTP_SRCS $HTTP_SSL_SRCS"
Igor Sysoevf38e0462004-07-16 17:11:43 +0000156fi
157
Igor Sysoeva4b16df2004-02-02 21:19:52 +0000158if [ $HTTP_PROXY = YES ]; then
Igor Sysoeva893eab2004-03-11 21:34:52 +0000159 have=NGX_HTTP_PROXY . auto/have
Igor Sysoev0bc87e92004-09-30 15:30:54 +0000160 #USE_MD5=YES
Igor Sysoeva4b16df2004-02-02 21:19:52 +0000161 HTTP_MODULES="$HTTP_MODULES $HTTP_PROXY_MODULE"
162 HTTP_INCS="$HTTP_INCS $HTTP_PROXY_INCS"
163 HTTP_DEPS="$HTTP_DEPS $HTTP_PROXY_DEPS"
164 HTTP_SRCS="$HTTP_SRCS $HTTP_PROXY_SRCS"
165fi
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000166
Igor Sysoev02025fd2005-01-18 13:03:58 +0000167if [ $HTTP_FASTCGI = YES ]; then
168 HTTP_MODULES="$HTTP_MODULES $HTTP_FASTCGI_MODULE"
169 HTTP_SRCS="$HTTP_SRCS $HTTP_FASTCGI_SRCS"
170fi
171
Igor Sysoevf6906042004-11-25 16:17:31 +0000172# STUB
Igor Sysoevb1dfe472004-12-21 12:30:30 +0000173#USE_MD5=YES
174#HTTP_SRCS="$HTTP_SRCS $HTPP_CACHE_SRCS"
Igor Sysoevf6906042004-11-25 16:17:31 +0000175#HTTP_SRCS="$HTTP_SRCS $HTPP_FILE_CACHE_SRCS"
176
Igor Sysoevaa828612005-02-09 14:31:07 +0000177if [ $HTTP_STUB_STATUS = YES ]; then
178 have=NGX_STAT_STUB . auto/have
179 HTTP_MODULES="$HTTP_MODULES ngx_http_stub_status_module"
180 HTTP_SRCS="$HTTP_SRCS src/http/modules/ngx_http_stub_status_module.c"
181fi
182
Igor Sysoev1ebfead2005-02-16 13:40:36 +0000183#if [ -r $NGX_OBJS/auto ]; then
184# . $NGX_OBJS/auto
185#fi
186
187
188if test -n "$NGX_ADDONS"; then
189
190 echo configuring additional modules
191
192 for ngx_addon_dir in $NGX_ADDONS
193 do
194 echo "adding module in $ngx_addon_dir"
195
196 if test -f $ngx_addon_dir/config; then
197 . $ngx_addon_dir/config
198
199 echo " + $ngx_addon_name was configured"
200
201 else
202 echo "$0: error: no $ngx_addon_dir/config was found"
203 exit 1
204 fi
205 done
Igor Sysoevab517d52004-05-18 15:29:08 +0000206fi
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000207
Igor Sysoev1ebfead2005-02-16 13:40:36 +0000208
Igor Sysoev980a9242004-09-05 19:54:02 +0000209modules="$CORE_MODULES $EVENT_MODULES"
210
211if [ $HTTP = YES ]; then
212 modules="$modules $HTTP_MODULES $HTTP_FILTER_MODULES \
213 $HTTP_HEADERS_FILTER_MODULE \
214 $HTTP_COPY_FILTER_MODULE \
215 $HTTP_RANGE_BODY_FILTER_MODULE \
216 $HTTP_NOT_MODIFIED_FILTER_MODULE"
Igor Sysoev1ebfead2005-02-16 13:40:36 +0000217
218 NGX_ADDON_DEPS="$NGX_ADDON_DEPS \$(HTTP_DEPS)"
Igor Sysoev980a9242004-09-05 19:54:02 +0000219fi
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000220
Igor Sysoev1ebfead2005-02-16 13:40:36 +0000221
Igor Sysoev59cf56c2004-09-07 15:29:22 +0000222IMAP_MODULES=$IMAP_MODULE
223
224if [ $IMAP = YES ]; then
225 modules="$modules $IMAP_MODULES"
226fi
227
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000228
Igor Sysoev1b735832004-11-11 14:07:14 +0000229cat << END > $NGX_MODULES_C
230
231#include <ngx_config.h>
232#include <ngx_core.h>
233
234$NGX_PRAGMA
235
236END
Igor Sysoevab9d5fd2004-03-05 08:34:24 +0000237
238for mod in $modules
239do
240 echo "extern ngx_module_t $mod;" >> $NGX_MODULES_C
241done
242
243echo >> $NGX_MODULES_C
244echo 'ngx_module_t *ngx_modules[] = {' >> $NGX_MODULES_C
245
246for mod in $modules
247do
248 echo " &$mod," >> $NGX_MODULES_C
249done
250
Igor Sysoev1b735832004-11-11 14:07:14 +0000251cat << END >> $NGX_MODULES_C
252 NULL
253};
254
255END