nginx-0.0.2-2004-02-03-00:19:52 import
diff --git a/auto/configure b/auto/configure
index 6d3fc52..4287a4e 100755
--- a/auto/configure
+++ b/auto/configure
@@ -3,15 +3,17 @@
. auto/init
. auto/sources
+echo > $NGX_AUTO_CONFIG_H
+
. auto/os/conf
+. auto/modules
. auto/cc
. auto/lib/conf
+
. auto/make
. auto/lib/make
-echo > $NGX_AUTO_CONFIG_H
-
if [ "$PLATFORM" != win32 ]; then
. auto/unix
fi
diff --git a/auto/have b/auto/have
new file mode 100644
index 0000000..04cc103
--- /dev/null
+++ b/auto/have
@@ -0,0 +1,8 @@
+
+cat << END >> $NGX_AUTO_CONFIG_H
+
+#ifndef $have
+#define $have 1
+#endif
+
+END
diff --git a/auto/lib/md5/conf b/auto/lib/md5/conf
index e1755c1..1a54ed5 100644
--- a/auto/lib/md5/conf
+++ b/auto/lib/md5/conf
@@ -4,7 +4,7 @@
if grep MD5_Init $MD5/md5.h >/dev/null; then
# OpenSSL md5
OPENSSL_MD5=YES
- CFLAGS="$CFLAGS -D HAVE_OPENSSL_MD5"
+ have=HAVE_OPENSSL_MD5 . auto/have
else
# rsaref md5
OPENSSL_MD5=NO
@@ -60,7 +60,7 @@
if [ $ngx_found = yes ]; then
- CFLAGS="$CFLAGS -D HAVE_OPENSSL_MD5"
+ have=HAVE_OPENSSL_MD5 . auto/have
CORE_LIBS="$CORE_LIBS $ngx_libs"
MD5=YES
fi
diff --git a/auto/make b/auto/make
index a44963e..1394a1d 100644
--- a/auto/make
+++ b/auto/make
@@ -4,35 +4,6 @@
$OBJS/src/http $OBJS/src/http/modules $OBJS/src/http/modules/proxy
-HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES \
- $HTTP_CHUNKED_FILTER_MODULE \
- $HTTP_RANGE_FILTER_MODULE \
- $HTTP_CHARSET_FILTER_MODULE"
-
-HTTP_MODULES="$HTTP_MODULES $HTTP_STATIC_MODULE $HTTP_INDEX_MODULE"
-
-if [ $HTTP_REWRITE = YES ]; then
- HTTP_MODULES="$HTTP_MODULES $HTTP_REWRITE_MODULE"
- HTTP_SRCS="$HTTP_SRCS $HTTP_REWRITE_SRCS"
-fi
-
-if [ $HTTP_GZIP = YES ]; then
- HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_GZIP_FILTER_MODULE"
- HTTP_SRCS="$HTTP_SRCS $HTTP_GZIP_SRCS"
-fi
-
-if [ $HTTP_SSI = YES ]; then
- HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_SSI_FILTER_MODULE"
- HTTP_SRCS="$HTTP_SRCS $HTTP_SSI_SRCS"
-fi
-
-if [ $HTTP_PROXY = YES ]; then
- HTTP_MODULES="$HTTP_MODULES $HTTP_PROXY_MODULE"
- HTTP_INCS="$HTTP_INCS $HTTP_PROXY_INCS"
- HTTP_DEPS="$HTTP_DEPS $HTTP_PROXY_DEPS"
- HTTP_SRCS="$HTTP_SRCS $HTTP_PROXY_SRCS"
-fi
-
modules="$CORE_MODULES $EVENT_MODULES $HTTP_MODULES \
$HTTP_FILTER_MODULES $HTTP_NOT_MODIFIED_FILTER_MODULE"
diff --git a/auto/modules b/auto/modules
new file mode 100644
index 0000000..b254e34
--- /dev/null
+++ b/auto/modules
@@ -0,0 +1,32 @@
+
+HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES \
+ $HTTP_CHUNKED_FILTER_MODULE \
+ $HTTP_RANGE_FILTER_MODULE \
+ $HTTP_CHARSET_FILTER_MODULE"
+
+HTTP_MODULES="$HTTP_MODULES $HTTP_STATIC_MODULE $HTTP_INDEX_MODULE"
+
+if [ $HTTP_REWRITE = YES ]; then
+ USE_PCRE=YES
+ HTTP_MODULES="$HTTP_MODULES $HTTP_REWRITE_MODULE"
+ HTTP_SRCS="$HTTP_SRCS $HTTP_REWRITE_SRCS"
+fi
+
+if [ $HTTP_GZIP = YES ]; then
+ USE_ZLIB=YES
+ HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_GZIP_FILTER_MODULE"
+ HTTP_SRCS="$HTTP_SRCS $HTTP_GZIP_SRCS"
+fi
+
+if [ $HTTP_SSI = YES ]; then
+ HTTP_FILTER_MODULES="$HTTP_FILTER_MODULES $HTTP_SSI_FILTER_MODULE"
+ HTTP_SRCS="$HTTP_SRCS $HTTP_SSI_SRCS"
+fi
+
+if [ $HTTP_PROXY = YES ]; then
+ USE_MD5=YES
+ HTTP_MODULES="$HTTP_MODULES $HTTP_PROXY_MODULE"
+ HTTP_INCS="$HTTP_INCS $HTTP_PROXY_INCS"
+ HTTP_DEPS="$HTTP_DEPS $HTTP_PROXY_DEPS"
+ HTTP_SRCS="$HTTP_SRCS $HTTP_PROXY_SRCS"
+fi
diff --git a/auto/options b/auto/options
index 91b9b1b..61e446e 100644
--- a/auto/options
+++ b/auto/options
@@ -8,8 +8,11 @@
TEST_BUILD_EPOLL=NO
TEST_BUILD_SIGIO=NO
-SELECT=YES
-POLL=YES
+EVENT_FOUND=NO
+
+EVENT_SELECT=NO
+EVENT_POLL=NO
+EVENT_AIO=NO
HTTP_REWRITE=YES
HTTP_GZIP=YES
@@ -18,11 +21,11 @@
PCRE=NO
-USE_MD5=YES
+USE_MD5=NO
MD5=NO
MD5_LIB=NO
-USE_ZLIB=YES
+USE_ZLIB=NO
ZLIB=NO
ZLIB_LIB=NO
@@ -41,8 +44,9 @@
--builddir=*) OBJS="$value" ;;
- --without-select_module) SELECT=NO ;;
- --without-poll_module) POLL=NO ;;
+ --with-select_module) EVENT_SELECT=YES ;;
+ --with-poll_module) EVENT_POLL=YES ;;
+ --with-aio_module) EVENT_AIO=YES ;;
--without-http_rewrite_module) HTTP_REWRITE=NO ;;
--without-http_ssi_module) HTTP_SSI=NO ;;
diff --git a/auto/os/conf b/auto/os/conf
index 27e0123..99de323 100644
--- a/auto/os/conf
+++ b/auto/os/conf
@@ -43,6 +43,18 @@
esac
+if [ $EVENT_SELECT = YES -o $EVENT_FOUND = NO ]; then
+ CORE_SRCS="$CORE_SRCS $SELECT_SRCS"
+ EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE"
+fi
+
+
+if [ $EVENT_POLL = YES -o $EVENT_FOUND = NO ]; then
+ CORE_SRCS="$CORE_SRCS $POLL_SRCS"
+ EVENT_MODULES="$EVENT_MODULES $POLL_MODULE"
+fi
+
+
if [ $TEST_BUILD_DEVPOLL = YES ]; then
CFLAGS="$CFLAGS -D HAVE_DEVPOLL=1 -D TEST_BUILD_DEVPOLL=1"
EVENT_MODULES="$EVENT_MODULES $DEVPOLL_MODULE"
diff --git a/auto/os/freebsd b/auto/os/freebsd
index 9684102..ee68543 100644
--- a/auto/os/freebsd
+++ b/auto/os/freebsd
@@ -7,16 +7,6 @@
MD5_LIB="-lmd"
ZLIB_LIB="-lz"
-if [ $SELECT = YES ]; then
- CORE_SRCS="$CORE_SRCS $SELECT_SRCS"
- EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE"
-fi
-
-if [ $POLL = YES ]; then
- CORE_SRCS="$CORE_SRCS $POLL_SRCS"
- EVENT_MODULES="$EVENT_MODULES $POLL_MODULE"
-fi
-
version=`grep "#define __FreeBSD_version" /usr/include/osreldate.h \
| sed -e 's/^.* \(.*\)$/\1/'`
@@ -24,7 +14,7 @@
# sendfile
if [ $version -gt 300007 ]; then
- CFLAGS="$CFLAGS -D HAVE_SENDFILE=1"
+ have=HAVE_SENDFILE . auto/have
CORE_SRCS="$CORE_SRCS $FREEBSD_SENDFILE_SRCS"
fi
@@ -34,9 +24,11 @@
if [ \( $version -lt 500000 -a $version -ge 410000 \) \
-o $version -ge 500011 ]
then
- CFLAGS="$CFLAGS -D HAVE_KQUEUE=1 -D HAVE_CLEAR_EVENT=1"
+ have=HAVE_KQUEUE . auto/have
+ have=HAVE_CLEAR_EVENT . auto/have
CORE_SRCS="$CORE_SRCS $KQUEUE_SRCS"
EVENT_MODULES="$EVENT_MODULES $KQUEUE_MODULE"
+ EVENT_FOUND=YES
fi
@@ -45,5 +37,11 @@
if [ \( $version -lt 500000 -a $version -ge 430000 \) \
-o $version -ge 500018 ]
then
- CFLAGS="$CFLAGS -D HAVE_LOWAT_EVENT=1"
+ have=HAVE_LOWAT_EVENT . auto/have
+fi
+
+
+if [ $EVENT_AIO = YES ]; then
+ CORE_SRCS="$CORE_SRCS $AIO_SRCS"
+ EVENT_MODULES="$EVENT_MODULES $AIO_MODULE"
fi
diff --git a/auto/os/linux b/auto/os/linux
index 8990e6d..effb472 100644
--- a/auto/os/linux
+++ b/auto/os/linux
@@ -6,19 +6,49 @@
ZLIB_LIB="-lz"
+CC_TEST_FLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"
-NGX_INC="sys/epoll.h"; . auto/inc
-if [ $NGX_FOUND=YES ]; then
+# epoll, EPOLLET version
+
+ngx_func="epoll";
+ngx_func_inc="#include <sys/epoll.h>"
+ngx_func_test="int fd = 1; int n;
+ struct epoll_event ee;
+ ee.events = EPOLLIN|EPOLLOUT|EPOLLET;
+ ee.data.ptr = NULL;
+ n = epoll_ctl(efd, EPOLL_CTL_ADD, fd, &ee)"
+. auto/func
+
+if [ $ngx_found = yes ]; then
CFLAGS="$CFLAGS -D HAVE_EPOLL=1"
- EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE"
CORE_SRCS="$CORE_SRCS $EPOLL_SRCS"
+ EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE"
+ EVENT_FOUND=YES
fi
-# TODO check sendfile64()
+# sendfile()
+
+CC_TEST_FLAGS="-D_GNU_SOURCE"
+ngx_func="sendfile()";
+ngx_func_inc="#include <sys/sendfile.h>"
+ngx_func_test="int s = 0, fd = 1;
+ ssize_t n; off_t off = 0;
+ n = sendfile(s, fd, &off, 1)"
+. auto/func
+
+if [ $ngx_found = yes ]; then
+ CFLAGS="$CFLAGS -D HAVE_SENDFILE=1"
+ CORE_SRCS="$CORE_SRCS $LINUX_SENDFILE_SRCS"
+fi
+
+
+# sendfile64()
CC_TEST_FLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"
+ngx_func="sendfile64()"; . auto/func
-# STUB
-CORE_SRCS="$CORE_SRCS $LINUX_SENDFILE_SRCS"
+if [ $ngx_found = yes ]; then
+ CFLAGS="$CFLAGS -D HAVE_SENDFILE64=1"
+fi
diff --git a/auto/os/solaris b/auto/os/solaris
index 6bc2a6f..2fd479f 100644
--- a/auto/os/solaris
+++ b/auto/os/solaris
@@ -6,29 +6,31 @@
MD5_LIB="-lmd5"
ZLIB_LIB="-lz"
+CORE_LIBS="$CORE_LIBS -lsocket -lnsl"
CC_TEST_FLAGS="-D_FILE_OFFSET_BITS=64"
-CORE_LIBS="$CORE_LIBS -lsocket -lnsl"
+ngx_inc="sys/devpoll.h"; . auto/inc
-NGX_INC="sys/devpoll.h"; . auto/inc
-
-if [ $NGX_FOUND=YES ]; then
+if [ $ngx_found = yes ]; then
CFLAGS="$CFLAGS -D HAVE_DEVPOLL=1"
- EVENT_MODULES="$EVENT_MODULES $DEVPOLL_MODULE"
CORE_SRCS="$CORE_SRCS $DEVPOLL_SRCS"
+ EVENT_MODULES="$EVENT_MODULES $DEVPOLL_MODULE"
+ EVENT_FOUND=YES
fi
-NGX_FUNC_INC="#include <sys/sendfile.h>"
-NGX_FUNC_LIBS="-lsendfile"
-NGX_FUNC_TEST="int fd = 1; sendfilevec_t vec[1];
+ngx_func="sendfilev()";
+ngx_func_inc="#include <sys/sendfile.h>"
+ngx_func_libs="-lsendfile"
+ngx_func_test="int fd = 1; sendfilevec_t vec[1];
size_t sent = 1; ssize_t n;
n = sendfilev(fd, vec, 1, &sent)"
-NGX_FUNC="sendfilev()"; . auto/func
+. auto/func
-if [ $NGX_FOUND=YES ]; then
+
+if [ $ngx_found = yes ]; then
CFLAGS="$CFLAGS -D HAVE_SENDFILE=1"
CORE_SRCS="$CORE_SRCS $SOLARIS_SENDFILEV_SRCS"
CORE_LIBS="$CORE_LIBS -lsendfile"
diff --git a/auto/sources b/auto/sources
index 1a21c70..26a492b 100644
--- a/auto/sources
+++ b/auto/sources
@@ -41,8 +41,8 @@
src/core/ngx_garbage_collector.c"
-REGEX_DEPS="src/core/ngx_regex.h"
-REGEX_SRCS="src/core/ngx_regex.c"
+REGEX_DEPS=src/core/ngx_regex.h
+REGEX_SRCS=src/core/ngx_regex.c
EVENT_MODULES="ngx_events_module ngx_event_core_module"
@@ -62,29 +62,33 @@
src/event/ngx_event_pipe.c"
-SELECT_MODULE="ngx_select_module"
+SELECT_MODULE=ngx_select_module
SELECT_SRCS=src/event/modules/ngx_select_module.c
-POLL_MODULE="ngx_poll_module"
+POLL_MODULE=ngx_poll_module
POLL_SRCS=src/event/modules/ngx_poll_module.c
-KQUEUE_MODULE="ngx_kqueue_module"
+KQUEUE_MODULE=ngx_kqueue_module
KQUEUE_SRCS=src/event/modules/ngx_kqueue_module.c
-DEVPOLL_MODULE="ngx_devpoll_module"
+DEVPOLL_MODULE=ngx_devpoll_module
DEVPOLL_SRCS=src/event/modules/ngx_devpoll_module.c
-EPOLL_MODULE="ngx_epoll_module"
+EPOLL_MODULE=ngx_epoll_module
EPOLL_SRCS=src/event/modules/ngx_epoll_module.c
-SIGIO_MODULE="ngx_sigio_module"
+SIGIO_MODULE=ngx_sigio_module
SIGIO_SRCS=src/event/modules/ngx_sigio_module.c
-IOCP_MODULE="ngx_iocp_module"
+IOCP_MODULE=ngx_iocp_module
IOCP_SRCS=src/event/modules/ngx_iocp_module.c
-AIO_MODULE="ngx_aio_module"
-AIO_SRCS=src/event/modules/ngx_aio_module.c
+AIO_MODULE=ngx_aio_module
+AIO_SRCS="src/event/modules/ngx_aio_module.c \
+ src/os/unix/ngx_aio_read.c \
+ src/os/unix/ngx_aio_write.c \
+ src/os/unix/ngx_aio_read_chain.c \
+ src/os/unix/ngx_aio_write_chain.c"
UNIX_INCS="$CORE_INCS $EVENT_INCS -I src/os/unix"