blob: 75e93766e2a565f5eee2afc25674e990fc662975 [file] [log] [blame]
Igor Sysoeva8fa0a62003-11-25 20:44:56 +00001
Igor Sysoevff8da912004-09-29 16:00:49 +00002# Copyright (C) Igor Sysoev
3
Igor Sysoevc0edbcc2004-10-21 15:34:38 +00004
Igor Sysoevdc867cd2003-12-14 20:10:27 +00005help=no
Igor Sysoeva8fa0a62003-11-25 20:44:56 +00006
Igor Sysoev090849d2004-05-18 20:28:54 +00007PREFIX=
8SBIN_PATH=
9CONF_PATH=
Igor Sysoev090849d2004-05-18 20:28:54 +000010ERROR_LOG_PATH=
11PID_PATH=
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000012NGX_USER=
13NGX_GROUP=
14HTTP_LOG_PATH=
Igor Sysoev090849d2004-05-18 20:28:54 +000015
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000016CC=${CC:-gcc}
Igor Sysoeva893eab2004-03-11 21:34:52 +000017CPP=
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000018NGX_OBJS=objs
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000019
Igor Sysoev6bb889f2004-03-11 15:42:41 +000020DEBUG=NO
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000021NGX_CC_OPT=
22NGX_LD_OPT=
Igor Sysoev7b908342004-03-10 20:56:39 +000023CPU=NO
Igor Sysoev24b56c92004-03-10 17:55:19 +000024
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000025TEST_BUILD_DEVPOLL=NO
Igor Sysoev10318a22004-01-29 21:45:01 +000026TEST_BUILD_EPOLL=NO
Igor Sysoev9139cd22004-02-17 17:53:12 +000027TEST_BUILD_RTSIG=NO
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000028
Igor Sysoeva4b16df2004-02-02 21:19:52 +000029EVENT_FOUND=NO
30
Igor Sysoev9139cd22004-02-17 17:53:12 +000031EVENT_RTSIG=NO
Igor Sysoeva4b16df2004-02-02 21:19:52 +000032EVENT_SELECT=NO
33EVENT_POLL=NO
34EVENT_AIO=NO
Igor Sysoev5c8c52f2004-01-23 09:26:18 +000035
Igor Sysoevb54698b2004-02-23 20:57:12 +000036USE_THREADS=NO
37
Igor Sysoev980a9242004-09-05 19:54:02 +000038HTTP=YES
Igor Sysoev3d5c0fc2004-06-22 16:43:09 +000039HTTP_CHARSET=YES
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000040HTTP_GZIP=YES
Igor Sysoev75569452004-07-08 15:17:47 +000041HTTP_SSL=NO
Igor Sysoev6d2a14a2004-09-27 16:03:21 +000042HTTP_SSI=NO
Igor Sysoev59f3aa32004-06-24 16:07:04 +000043HTTP_ACCESS=YES
Igor Sysoev967fd632004-08-27 15:40:59 +000044HTTP_USERID=YES
Igor Sysoev6d2a14a2004-09-27 16:03:21 +000045HTTP_STATUS=NO
Igor Sysoevc83f6832004-06-24 07:53:37 +000046HTTP_REWRITE=YES
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000047HTTP_PROXY=YES
48
Igor Sysoev59cf56c2004-09-07 15:29:22 +000049IMAP=NO
50
Igor Sysoeve9b2cb12004-02-09 20:47:18 +000051USE_PCRE=NO
Igor Sysoev43c3cd92004-02-19 08:45:27 +000052PCRE=NONE
Igor Sysoeva893eab2004-03-11 21:34:52 +000053PCRE_OPT=
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000054
Igor Sysoev0599b112004-07-25 18:34:14 +000055USE_OPENSSL=NO
56OPENSSL=NONE
57
Igor Sysoeva4b16df2004-02-02 21:19:52 +000058USE_MD5=NO
Igor Sysoev7af6b162004-02-09 07:46:43 +000059MD5=NONE
Igor Sysoeva893eab2004-03-11 21:34:52 +000060MD5_OPT=
Igor Sysoev7b908342004-03-10 20:56:39 +000061MD5_ASM=NO
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000062
Igor Sysoeva4b16df2004-02-02 21:19:52 +000063USE_ZLIB=NO
Igor Sysoev7af6b162004-02-09 07:46:43 +000064ZLIB=NONE
Igor Sysoeva893eab2004-03-11 21:34:52 +000065ZLIB_OPT=
Igor Sysoev7b908342004-03-10 20:56:39 +000066ZLIB_ASM=NO
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000067
68
69for option
70do
71 case "$option" in
72 -*=*) value=`echo "$option" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;;
73 *) value="" ;;
74 esac
75
76 case "$option" in
Igor Sysoevdc867cd2003-12-14 20:10:27 +000077 --help) help=yes ;;
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000078
Igor Sysoev090849d2004-05-18 20:28:54 +000079 --prefix=*) PREFIX="$value" ;;
80 --sbin-path=*) SBIN_PATH="$value" ;;
81 --conf-path=*) CONF_PATH="$value" ;;
Igor Sysoev090849d2004-05-18 20:28:54 +000082 --error-log-path=*) ERROR_LOG_PATH="$value" ;;
83 --pid-path=*) PID_PATH="$value" ;;
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000084 --user=*) NGX_USER="$value" ;;
85 --group=*) NGX_GROUP="$value" ;;
Igor Sysoev090849d2004-05-18 20:28:54 +000086
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000087 --crossbuild=*) PLATFORM="$value" ;;
88
Igor Sysoevc0edbcc2004-10-21 15:34:38 +000089 --builddir=*) NGX_OBJS="$value" ;;
Igor Sysoeva8fa0a62003-11-25 20:44:56 +000090
Igor Sysoev9139cd22004-02-17 17:53:12 +000091 --with-rtsig_module) EVENT_RTSIG=YES ;;
Igor Sysoeva4b16df2004-02-02 21:19:52 +000092 --with-select_module) EVENT_SELECT=YES ;;
Igor Sysoeve9b2cb12004-02-09 20:47:18 +000093 --without-select_module) EVENT_SELECT=NONE ;;
Igor Sysoeva4b16df2004-02-02 21:19:52 +000094 --with-poll_module) EVENT_POLL=YES ;;
Igor Sysoeve9b2cb12004-02-09 20:47:18 +000095 --without-poll_module) EVENT_POLL=NONE ;;
Igor Sysoeva4b16df2004-02-02 21:19:52 +000096 --with-aio_module) EVENT_AIO=YES ;;
Igor Sysoev5c8c52f2004-01-23 09:26:18 +000097
Igor Sysoevb54698b2004-02-23 20:57:12 +000098 --with-threads=*) USE_THREADS="$value" ;;
99 --with-threads) USE_THREADS="pthreads" ;;
100
Igor Sysoev980a9242004-09-05 19:54:02 +0000101 --without-http) HTTP=NO ;;
102 --http-log-path=*) HTTP_LOG_PATH="$value" ;;
103
Igor Sysoev75569452004-07-08 15:17:47 +0000104 --with-http_ssl_module) HTTP_SSL=YES ;;
Igor Sysoev3d5c0fc2004-06-22 16:43:09 +0000105 --without-http_charset_module) HTTP_CHARSET=NO ;;
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000106 --without-http_gzip_module) HTTP_GZIP=NO ;;
Igor Sysoev75569452004-07-08 15:17:47 +0000107 --without-http_ssi_module) HTTP_SSI=NO ;;
Igor Sysoev967fd632004-08-27 15:40:59 +0000108 --without-http_userid_module) HTTP_USERID=NO ;;
Igor Sysoeva7c4a2a2004-08-29 03:55:41 +0000109 --without-http_access_module) HTTP_ACCESS=NO ;;
Igor Sysoevc83f6832004-06-24 07:53:37 +0000110 --without-http_status_module) HTTP_STATUS=NO ;;
111 --without-http_rewrite_module) HTTP_REWRITE=NO ;;
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000112 --without-http_proxy_module) HTTP_PROXY=NO ;;
113
Igor Sysoev59cf56c2004-09-07 15:29:22 +0000114 --with-imap) IMAP=YES ;;
115
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000116 --with-cc=*) CC="$value" ;;
Igor Sysoeva893eab2004-03-11 21:34:52 +0000117 --with-cpp=*) CPP="$value" ;;
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000118 --with-cc-opt=*) NGX_CC_OPT="$value" ;;
119 --with-ld-opt=*) NGX_LD_OPT="$value" ;;
Igor Sysoev7b908342004-03-10 20:56:39 +0000120 --with-cpu-opt=*) CPU="$value" ;;
Igor Sysoev6bb889f2004-03-11 15:42:41 +0000121 --with-debug) DEBUG=YES ;;
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000122
Igor Sysoevbb1ba3f2004-02-19 16:48:14 +0000123 --without-pcre) USE_PCRE=DISABLED ;;
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000124 --with-pcre=*) PCRE="$value" ;;
Igor Sysoev7b908342004-03-10 20:56:39 +0000125 --with-pcre-opt=*) PCRE_OPT="$value" ;;
126
Igor Sysoev0599b112004-07-25 18:34:14 +0000127 --with-openssl=*) OPENSSL="$value" ;;
128
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000129 --with-md5=*) MD5="$value" ;;
Igor Sysoev7b908342004-03-10 20:56:39 +0000130 --with-md5-opt=*) MD5_OPT="$value" ;;
131 --with-md5-asm) MD5_ASM=YES ;;
132
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000133 --with-zlib=*) ZLIB="$value" ;;
Igor Sysoev24b56c92004-03-10 17:55:19 +0000134 --with-zlib-opt=*) ZLIB_OPT="$value" ;;
Igor Sysoev7b908342004-03-10 20:56:39 +0000135 --with-zlib-asm=*) ZLIB_ASM="$value" ;;
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000136
137 --test-build-devpoll) TEST_BUILD_DEVPOLL=YES ;;
Igor Sysoev10318a22004-01-29 21:45:01 +0000138 --test-build-epoll) TEST_BUILD_EPOLL=YES ;;
Igor Sysoev9139cd22004-02-17 17:53:12 +0000139 --test-build-rtsig) TEST_BUILD_RTSIG=YES ;;
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000140
141 *)
142 echo "$0: error: invalid option \"$option\""
143 exit 1
144 ;;
145 esac
146done
147
148
Igor Sysoevdc867cd2003-12-14 20:10:27 +0000149if [ $help = yes ]; then
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000150
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000151cat << END
Igor Sysoev5c8c52f2004-01-23 09:26:18 +0000152
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000153 --help this message
Igor Sysoev5c8c52f2004-01-23 09:26:18 +0000154
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000155 --user=USER set non-privilege user
156 for the worker processes
157 --group=GROUP set non-privilege group
158 for the worker processes
Igor Sysoev5c8c52f2004-01-23 09:26:18 +0000159
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000160 --with-select_module enable select module
161 --without-select_module disable select module
162 --with-poll_module enable poll module
163 --without-poll_module disable poll module
164
165 --without-http_charset_module disable ngx_http_charset_module
166 --without-http_rewrite_module disable ngx_http_rewrite_module
167 --without-http_gzip_module disable ngx_http_gzip_module
168 --without-http_proxy_module disable ngx_http_proxy_module
169
170 --with-cc-opt=OPTIONS additional options for compiler
171 --with-ld-opt=OPTIONS additional options for linker
172
173 --with-pcre=DIR path to PCRE library
174 --with-md5=DIR path to md5 library
175 --with-zlib=DIR path to zlib library
176 --with-openssl=DIR path to OpenSSL library
177
178END
Igor Sysoeva8fa0a62003-11-25 20:44:56 +0000179
180 exit 1
181fi
Igor Sysoev732a2712004-04-21 18:54:33 +0000182
183
Igor Sysoev562626a2004-09-14 05:45:22 +0000184if [ $HTTP = NO ]; then
185 HTTP_CHARSET=NO
186 HTTP_GZIP=NO
187 HTTP_SSI=NO
188 HTTP_USERID=NO
189 HTTP_ACCESS=NO
190 HTTP_STATUS=NO
191 HTTP_REWRITE=NO
192 HTTP_PROXY=NO
193fi
194
195
Igor Sysoev732a2712004-04-21 18:54:33 +0000196if [ ".$PLATFORM" = ".win32" -a $EVENT_POLL = YES ]; then
197 EVENT_POLL=NO
198 echo "$0: warning: --with-poll_module option is ignored for win32"
199fi
Igor Sysoev090849d2004-05-18 20:28:54 +0000200
201
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000202if test -z "$PREFIX"; then
Igor Sysoev090849d2004-05-18 20:28:54 +0000203 PREFIX=/usr/local/nginx
204fi
205
Igor Sysoev090849d2004-05-18 20:28:54 +0000206
Igor Sysoevc0edbcc2004-10-21 15:34:38 +0000207if test -z "$NGX_GROUP"; then
208 NGX_GROUP=NGX_USER
209fi
210
211
212if test -z "$NGX_USER"; then
213 NGX_USER=nobody
214 NGX_GROUP=nobody
215fi
216
217
Igor Sysoev6d2a14a2004-09-27 16:03:21 +0000218case ".$SBIN_PATH" in
219 ./*)
220 ;;
Igor Sysoev090849d2004-05-18 20:28:54 +0000221
Igor Sysoev6d2a14a2004-09-27 16:03:21 +0000222 .)
223 SBIN_PATH=$PREFIX/sbin/nginx
224 ;;
Igor Sysoev090849d2004-05-18 20:28:54 +0000225
Igor Sysoev6d2a14a2004-09-27 16:03:21 +0000226 *)
227 SBIN_PATH=$PREFIX/$SBIN_PATH
228 ;;
229esac
Igor Sysoev090849d2004-05-18 20:28:54 +0000230
Igor Sysoev6d2a14a2004-09-27 16:03:21 +0000231
232case ".$CONF_PATH" in
233 ./*)
234 ;;
235
236 .)
237 CONF_PATH=$PREFIX/conf/nginx.conf
238 ;;
239
240 *)
241 CONF_PATH=$PREFIX/$CONF_PATH
242 ;;
243esac
244
245
246case ".$PID_PATH" in
247 ./*)
248 ;;
249
250 .)
251 PID_PATH=$PREFIX/logs/nginx.pid
252 ;;
253
254 *)
255 PID_PATH=$PREFIX/$PID_PATH
256 ;;
257esac
258
259
260case ".$ERROR_LOG_PATH" in
261 ./*)
262 ;;
263
264 .)
265 ERROR_LOG_PATH=$PREFIX/logs/error.log
266 ;;
267
Igor Sysoevff8da912004-09-29 16:00:49 +0000268 .stderr)
269 ERROR_LOG_PATH=
270 ;;
271
Igor Sysoev6d2a14a2004-09-27 16:03:21 +0000272 *)
273 ERROR_LOG_PATH=$PREFIX/$ERROR_LOG_PATH
274 ;;
275esac
276
277
278case ".$HTTP_LOG_PATH" in
279 ./*)
280 ;;
281
282 .)
283 HTTP_LOG_PATH=$PREFIX/logs/access.log
284 ;;
285
286 *)
287 HTTP_LOG_PATH=$PREFIX/$HTTP_LOG_PATH
288 ;;
289esac