nginx-0.0.1-2003-11-26-18:42:18 import
diff --git a/auto/fmt/fmt b/auto/fmt/fmt
index bd66b41..3e19c31 100644
--- a/auto/fmt/fmt
+++ b/auto/fmt/fmt
@@ -5,8 +5,12 @@
for FMT in $NGX_FORMATS
do
- echo "#include <stdio.h>" >> autotest.c
+ echo "#include <stdio.h>" > autotest.c
echo "#include <sys/types.h>" >> autotest.c
+ echo "#include <sys/time.h>" >> autotest.c
+ echo "#include <sys/resource.h>" >> autotest.c
+ echo "$NGX_INTTYPES_H" >> autotest.c
+ echo "$NGX_AUTO_CONFIG" >> autotest.c
echo "int main() {" >> autotest.c
echo "printf(\"${FMT}\", ($NGX_TYPE) $NGX_MAX_SIZE);" >> autotest.c
echo "return 0; }" >> autotest.c
diff --git a/auto/fmt/xfmt b/auto/fmt/xfmt
new file mode 100644
index 0000000..0256c5c
--- /dev/null
+++ b/auto/fmt/xfmt
@@ -0,0 +1,6 @@
+
+echo "#ifndef $NGX_FMT_NAME" >> $NGX_AUTO_CONFIG_H
+echo "#define $NGX_FMT_NAME \"$NGX_FMT\"" | sed -e 's/d"$/x"/' \
+ >> $NGX_AUTO_CONFIG_H
+echo "#endif" >> $NGX_AUTO_CONFIG_H
+echo >> $NGX_AUTO_CONFIG_H
diff --git a/auto/func b/auto/func
index 77216f9..553333d 100644
--- a/auto/func
+++ b/auto/func
@@ -1,19 +1,21 @@
echo "checking for $NGX_FUNC"
+func=`echo $NGX_FUNC | sed -e 's/()$//' | tr '[a-z]' '[A-Z]'`
+
echo "$NGX_UNISTD_H" > autotest.c
echo "$NGX_FUNC_INC" >> autotest.c
echo "int main() { $NGX_FUNC_TEST; return 0; }" >> autotest.c
-eval "${CC} -o autotest autotest.c > /dev/null 2>&1"
+eval "$CC $CC_TEST_FLAGS -o autotest autotest.c > /dev/null 2>&1"
if [ -x autotest ]; then
echo " + $NGX_FUNC found"
- echo "#ifndef $NGX_HAVE" >> $NGX_AUTO_CONFIG_H
- echo "#define $NGX_HAVE 1" >> $NGX_AUTO_CONFIG_H
- echo "#endif" >> $NGX_AUTO_CONFIG_H
- echo >> $NGX_AUTO_CONFIG_H
+ echo "#ifndef HAVE_$func" >> $NGX_AUTO_CONFIG_H
+ echo "#define HAVE_$func 1" >> $NGX_AUTO_CONFIG_H
+ echo "#endif" >> $NGX_AUTO_CONFIG_H
+ echo >> $NGX_AUTO_CONFIG_H
else
echo " + $NGX_FUNC not found"
fi
diff --git a/auto/inc b/auto/inc
new file mode 100644
index 0000000..1db95f5
--- /dev/null
+++ b/auto/inc
@@ -0,0 +1,25 @@
+
+echo "checking for $NGX_INC"
+
+inc=`echo $NGX_INC | sed -e 's/\./_/' | tr '[a-z]' '[A-Z]'`
+
+echo "#include <$NGX_INC>" > autotest.c
+echo "int main() { return 0; }" >> autotest.c
+
+eval "${CC} -o autotest autotest.c > /dev/null 2>&1"
+
+if [ -x autotest ]; then
+ echo " + $NGX_INC found"
+
+ echo "#ifndef HAVE_$inc" >> $NGX_AUTO_CONFIG_H
+ echo "#define HAVE_$inc 1" >> $NGX_AUTO_CONFIG_H
+ echo "#endif" >> $NGX_AUTO_CONFIG_H
+ echo >> $NGX_AUTO_CONFIG_H
+
+ eval "NGX_$inc='#include <$NGX_INC>'"
+
+else
+ echo " + $NGX_INC not found"
+fi
+
+rm autotest*
diff --git a/auto/init b/auto/init
index 0fd7c52..962c02e 100644
--- a/auto/init
+++ b/auto/init
@@ -4,6 +4,4 @@
NGX_AUTO_CONFIG_H=$OBJS/ngx_auto_config.h
NGX_MODULES_C=$OBJS/ngx_modules.c
-
-NGX_UNISTD_H="#include <unistd.h>"
-NGX_INTTYPES_H="#include <inttypes.h>"
+NGX_ERR=autoconf.err
diff --git a/auto/os/conf b/auto/os/conf
index 0b2a435..d0eb787 100644
--- a/auto/os/conf
+++ b/auto/os/conf
@@ -19,13 +19,12 @@
. auto/os/freebsd
;;
- Solaris:*)
- CC_TEST_FLAGS="-D_FILE_OFFSET_BITS=64"
- CORE_LIBS="$CORE_LIBS -lsocket -lnsl"
+ Linux:*)
+ . auto/os/linux
;;
- Linux:*)
- CC_TEST_FLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"
+ SunOS:*)
+ . auto/os/solaris
;;
win32)
diff --git a/auto/os/linux b/auto/os/linux
new file mode 100644
index 0000000..a488c4d
--- /dev/null
+++ b/auto/os/linux
@@ -0,0 +1,16 @@
+
+CORE_INCS="$UNIX_INCS"
+CORE_DEPS="$UNIX_DEPS $LINUX_DEPS"
+CORE_SRCS="$UNIX_SRCS $LINUX_SRCS $SELECT_SRCS $POLL_SRCS"
+EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE $POLL_MODULE"
+
+ZLIB_LIB="-lz"
+
+
+# TODO check sendfile64()
+
+#CC_TEST_FLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"
+CC_TEST_FLAGS="-D_GNU_SOURCE"
+
+# STUB
+CORE_SRCS="$CORE_SRCS $LINUX_SENDFILE_SRCS"
diff --git a/auto/os/solaris b/auto/os/solaris
new file mode 100644
index 0000000..2fe6309
--- /dev/null
+++ b/auto/os/solaris
@@ -0,0 +1,18 @@
+
+CORE_INCS="$UNIX_INCS"
+CORE_DEPS="$UNIX_DEPS $SOLARIS_DEPS"
+CORE_SRCS="$UNIX_SRCS $SOLARIS_SRCS $SELECT_SRCS $POLL_SRCS"
+EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE $POLL_MODULE"
+
+MD5_LIB="-lmd5"
+ZLIB_LIB="-lz"
+
+CC_TEST_FLAGS="-D_FILE_OFFSET_BITS=64"
+
+CORE_LIBS="$CORE_LIBS -lsocket -lnsl"
+
+# STUB
+CFLAGS="$CFLAGS -D HAVE_DEVPOLL=1"
+EVENT_MODULES="$EVENT_MODULES $DEVPOLL_MODULE"
+CORE_SRCS="$CORE_SRCS $DEVPOLL_SRCS"
+#CORE_SRCS="$CORE_SRCS $LINUX_SENDFILE_SRCS"
diff --git a/auto/sources b/auto/sources
index ccaac10..2f47d15 100644
--- a/auto/sources
+++ b/auto/sources
@@ -95,14 +95,21 @@
src/os/unix/ngx_process.c \
src/os/unix/ngx_daemon.c"
-
-LINUX_SENDFILE_SRCS=src/os/unix/ngx_linux_sendfile_chain.c
-
FREEBSD_DEPS=src/os/unix/ngx_freebsd_config.h
FREEBSD_SRCS=src/os/unix/ngx_freebsd_init.c
FREEBSD_SENDFILE_SRCS=src/os/unix/ngx_freebsd_sendfile_chain.c
+LINUX_DEPS=src/os/unix/ngx_linux_config.h
+LINUX_SRCS=src/os/unix/ngx_linux_init.c
+LINUX_SENDFILE_SRCS=src/os/unix/ngx_linux_sendfile_chain.c
+
+
+SOLARIS_DEPS=src/os/unix/ngx_solaris_config.h
+SOLARIS_SRCS=src/os/unix/ngx_solaris_init.c
+SOLARIS_SENDFILE_SRCS=src/os/unix/ngx_solaris_sendfilev_chain.c
+
+
WIN32_INCS="$CORE_INCS $EVENT_INCS -I src/os/win32"
WIN32_DEPS="$CORE_DEPS $EVENT_DEPS \
diff --git a/auto/types/sizeof b/auto/types/sizeof
index 8f81113..2e9e9b2 100644
--- a/auto/types/sizeof
+++ b/auto/types/sizeof
@@ -4,6 +4,10 @@
NGX_BYTES=
echo "#include <sys/types.h>" > autotest.c
+echo "#include <sys/time.h>" >> autotest.c
+echo "#include <sys/resource.h>" >> autotest.c
+echo "$NGX_INTTYPES_H" >> autotest.c
+echo "$NGX_AUTO_CONFIG" >> autotest.c
echo "int main() {" >> autotest.c
echo "printf(\"%d\", sizeof($NGX_TYPE));" >> autotest.c
echo "return 0; }" >> autotest.c
diff --git a/auto/types/typedef b/auto/types/typedef
index a842542..c3155c4 100644
--- a/auto/types/typedef
+++ b/auto/types/typedef
@@ -7,10 +7,13 @@
do
echo "#include <sys/types.h>" > autotest.c
echo "#include <sys/socket.h>" >> autotest.c
+ echo "#include <sys/time.h>" >> autotest.c
+ echo "#include <sys/resource.h>" >> autotest.c
+ echo "#include <netinet/in.h>" >> autotest.c
echo "$NGX_INTTYPES_H" >> autotest.c
echo "int main() { $TYPE i = 0; return 0; }" >> autotest.c
- eval "$CC -o autotest autotest.c > /dev/null 2>&1"
+ eval "$CC -o autotest autotest.c > $NGX_ERR 2>&1"
if [ -x autotest ]; then
if [ $TYPE = $NGX_TYPE ]; then
diff --git a/auto/types/uintptr_t b/auto/types/uintptr_t
index 93a01a8..7c941c0 100644
--- a/auto/types/uintptr_t
+++ b/auto/types/uintptr_t
@@ -4,6 +4,7 @@
FOUND=NO
echo "#include <sys/types.h>" > autotest.c
+echo "$NGX_INTTYPES_H" >> autotest.c
echo "int main() { uintptr_t i = 0; return 0; }" >> autotest.c
eval "$CC -o autotest autotest.c > /dev/null 2>&1"
diff --git a/auto/unix b/auto/unix
index 5b7b497..c9e2a8e 100755
--- a/auto/unix
+++ b/auto/unix
@@ -2,6 +2,8 @@
CC_WARN=$CC
NGX_FMT_COLLECT=YES
+# C types
+
NGX_TYPE="int"; . auto/types/sizeof;
NGX_FORMATS="%d"; . auto/fmt/fmt
@@ -14,6 +16,32 @@
NGX_TYPE="void *"; . auto/types/sizeof; NGX_PTR_BYTES=$NGX_BYTES
+# headers
+
+NGX_INC="unistd.h"; . auto/inc
+NGX_INC="inttypes.h"; . auto/inc
+
+#POSIX types
+
+NGX_AUTO_CONFIG="#include \"$NGX_AUTO_CONFIG_H\""
+
+NGX_TYPE="uint64_t"
+NGX_TYPES="u_int64_t"; . auto/types/typedef
+
+NGX_TYPE="socklen_t"
+NGX_TYPES="uint32_t"; . auto/types/typedef
+
+NGX_TYPE="in_addr_t"
+NGX_TYPES="uint32_t"; . auto/types/typedef
+
+NGX_TYPE="rlim_t"
+NGX_TYPES="int"; . auto/types/typedef
+
+. auto/types/uintptr_t
+
+
+# printf() formats
+
CC_WARN=$CC_STRONG
NGX_FMT_COLLECT=NO
@@ -40,31 +68,22 @@
eval NGX_FORMATS=\${NGX_${NGX_BYTES}_FMT}; . auto/fmt/fmt
-CC_WARN=$CC
-
-NGX_TYPE="uint64_t"
-NGX_TYPES="u_int64_t"; . auto/types/typedef
-
-NGX_TYPE="socklen_t"
-NGX_TYPES="u_int32_t"; . auto/types/typedef
-
-. auto/types/uintptr_t
-
+# syscalls and libc calls
NGX_FUNC_INC=
NGX_FUNC_TEST="int fd = 0; char buf[1]; size_t size = 1;
ssize_t n; off_t offset = 0;
n = pread(fd, buf, size, offset)"
-NGX_HAVE=HAVE_PREAD; NGX_FUNC="pread()"; . auto/func
+NGX_FUNC="pread()"; . auto/func
NGX_FUNC_INC=
NGX_FUNC_TEST="int fd = 1; char buf[1]; size_t size = 1;
ssize_t n; off_t offset = 0;
n = pwrite(fd, buf, size, offset)"
-NGX_HAVE=HAVE_PWRITE; NGX_FUNC="pwrite()"; . auto/func
+NGX_FUNC="pwrite()"; . auto/func
NGX_FUNC_INC="#include <time.h>"
NGX_FUNC_TEST="struct tm t; time_t c=0; localtime_r(&c, &t)"
-NGX_HAVE=HAVE_LOCALTIME_R; NGX_FUNC="localtime_r()"; . auto/func
+NGX_FUNC="localtime_r()"; . auto/func