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