nginx-0.1.8-RELEASE import

    *) Bugfix: in the ngx_http_autoindex_module if the long file names were
       in the listing.

    *) Feature: the "^~" modifier in the location directive.

    *) Feature: the proxy_max_temp_file_size directive.
diff --git a/auto/cc/conf b/auto/cc/conf
index acb68f8..c1f577e 100644
--- a/auto/cc/conf
+++ b/auto/cc/conf
@@ -52,11 +52,12 @@
             . auto/cc/icc
         ;;
 
-#        ccc)
+        ccc)
 #            # Compaq C V6.5-207
 #
 #            . auto/cc/ccc
-#        ;;
+             ngx_include_opt="-I "
+        ;;
 
 #        acc)
 #            # aCC: HP ANSI C++ B3910B A.03.55.02
@@ -95,7 +96,7 @@
 
     if test -n "$NGX_LD_OPT"; then
         ngx_feature=--with-ld-opt=\"$NGX_LD_OPT\"
-        ngx_feature_name=DUMMY
+        ngx_feature_name="DUMMY"
         ngx_feature_run=no
         ngx_feature_incs=
         ngx_feature_libs=
@@ -110,7 +111,7 @@
     fi
 
     ngx_feature="gcc variadic macros"
-    ngx_feature_name=HAVE_GCC_VARIADIC_MACROS
+    ngx_feature_name="HAVE_GCC_VARIADIC_MACROS"
     ngx_feature_run=yes
     ngx_feature_incs="#include <stdio.h>
 #define var(dummy, args...)  sprintf(args)"
@@ -122,7 +123,7 @@
 
 
     ngx_feature="C99 variadic macros"
-    ngx_feature_name=HAVE_C99_VARIADIC_MACROS
+    ngx_feature_name="HAVE_C99_VARIADIC_MACROS"
     ngx_feature_run=yes
     ngx_feature_incs="#include <stdio.h>
 #define var(dummy, ...) sprintf(__VA_ARGS__)"
@@ -132,4 +133,16 @@
                       if (buf[0] != '1') return 1"
     . auto/feature
 
+
+#    ngx_feature="inline"
+#    ngx_feature_name="DUMMY"
+#    ngx_feature_run=no
+#    ngx_feature_incs="int inline f(void) { return 1 }"
+#    ngx_feature_libs=
+#    ngx_feature_test=
+#    . auto/feature
+#
+#    if [ $ngx_found = yes ]; then
+#    fi
+
 fi
diff --git a/auto/cc/gcc b/auto/cc/gcc
index 756e397..d5bf1dc 100644
--- a/auto/cc/gcc
+++ b/auto/cc/gcc
@@ -3,7 +3,7 @@
 
 
 # gcc 2.7.2.3, 2.8.1, 2.95.4,
-#     3.0.4, 3.1.1, 3.2.3, 3.3.2, 3.3.3, 3.3.4, 3.4
+#     3.0.4, 3.1.1, 3.2.3, 3.3.2, 3.3.3, 3.3.4, 3.4, 3.4.2
 
 
 # Solaris 7's /usr/ccs/bin/as does not support "-pipe"
diff --git a/auto/configure b/auto/configure
index b4a0b56..d5cc7e0 100755
--- a/auto/configure
+++ b/auto/configure
@@ -11,6 +11,8 @@
 
 echo > $NGX_AUTO_HEADERS_H
 echo > $NGX_AUTO_CONFIG_H
+echo > $NGX_AUTOCONF_ERR
+
 
 if [ $DEBUG = YES ]; then
     have=NGX_DEBUG . auto/have
diff --git a/auto/install b/auto/install
index 0da9b6d..bae092b 100644
--- a/auto/install
+++ b/auto/install
@@ -3,6 +3,7 @@
 
 
 cat << END                                                        >> $MAKEFILE
+
 install:
 	test -d $PREFIX || mkdir -p $PREFIX
 
diff --git a/auto/lib/md5/make b/auto/lib/md5/make
index 6e2834e..5dfddfa 100644
--- a/auto/lib/md5/make
+++ b/auto/lib/md5/make
@@ -2,35 +2,21 @@
 # Copyright (C) Igor Sysoev
 
 
-case "$CC" in
+case "$NGX_CC_NAME" in
 
-    cl)
-        makefile=makefile.msvc
-        opt="CPU_OPT=$CPU_OPT LIBC=$LIBC MD5_ASM=$MD5_ASM"
+    msvc*)
+        ngx_makefile=makefile.msvc
+        ngx_opt="CPU_OPT=$CPU_OPT LIBC=$LIBC MD5_ASM=$MD5_ASM"
     ;;
 
-    wcl386)
-        makefile=makefile.owc
-        opt="CPU_OPT=$CPU_OPT"
+    owc*)
+        ngx_makefile=makefile.owc
+        ngx_opt="CPU_OPT=$CPU_OPT"
     ;;
 
-    bcc32)
-        makefile=makefile.bcc
-        opt="-DCPU_OPT=$CPU_OPT -DMD5_ASM=$MD5_ASM"
-    ;;
-
-esac
-
-
-case $PLATFORM in
-
-    win32)
-        line=`echo $MD5/md5.lib: | sed -e "s/\//$ngx_regex_dirsep/g"`
-        echo "$line"                                              >> $MAKEFILE
-    ;;
-
-    *)
-        echo "$MD5/libmd5.a:"                                     >> $MAKEFILE
+    bcc)
+        ngx_makefile=makefile.bcc
+        ngx_opt="-DCPU_OPT=$CPU_OPT -DMD5_ASM=$MD5_ASM"
     ;;
 
 esac
@@ -42,12 +28,16 @@
 case $PLATFORM in
 
     win32)
-        md5=`echo $MD5 | sed -e "s/\//$ngx_regex_dirsep/g"`
+        cp auto/lib/md5/$ngx_makefile $MD5
 
-        cp auto/lib/md5/$makefile $MD5
-        echo "	cd $md5"                                          >> $MAKEFILE
-        echo "	\$(MAKE) -f $makefile $opt"                       >> $MAKEFILE
-        echo "	cd ..\\..\\.."                                    >> $MAKEFILE
+        cat << END                                        >> $NGX_MAKEFILE
+
+`echo "$MD5/md5.lib:	$NGX_MAKEFILE" | sed -e "s/\//$ngx_regex_dirsep/g"`
+	cd `echo $MD5 | sed -e "s/\//$ngx_regex_dirsep/g"`
+	\$(MAKE) -f $ngx_makefile $ngx_opt
+	cd ..\\..\\..
+
+END
 
         done=YES
     ;;
@@ -55,13 +45,15 @@
     SunOS:*:i86pc)
         if [ $MD5_ASM = YES ]; then
 
-            MD5_OPT="CFLAGS=\"$MD5_OPT -DSOL -DMD5_ASM -DL_ENDIAN\""
+            cat << END                                        >> $NGX_MAKEFILE
 
-            echo "	cd $MD5 \\"                               >> $MAKEFILE
-            echo "	&& \$(MAKE) $MD5_OPT \\"                  >> $MAKEFILE
-            echo "		MD5_ASM_OBJ=asm/mx86-sol.o \\"    >> $MAKEFILE
-            echo "		CC=\"\$(CC)\" CPP=\"\$(CPP)\" \\" >> $MAKEFILE
-            echo "		libmd5.a"                         >> $MAKEFILE
+$MD5/libmd5.a:	$NGX_MAKEFILE
+	cd $MD5 \\
+	&& \$(MAKE) CFLAGS="$MD5_OPT -DSOL -DMD5_ASM -DL_ENDIAN" \\
+		CC="\$(CC)" CPP="\$(CPP)" \\
+		MD5_ASM_OBJ=asm/mx86-sol.o clean libmd5.a
+
+END
 
             done=YES
         fi
@@ -73,13 +65,15 @@
     *:i386 | *:i686)
         if [ $MD5_ASM = YES ]; then
 
-            MD5_OPT="CFLAGS=\"$MD5_OPT -DELF -DMD5_ASM -DL_ENDIAN\""
+            cat << END                                        >> $NGX_MAKEFILE
 
-            echo "	cd $MD5 \\"                               >> $MAKEFILE
-            echo "	&& \$(MAKE) $MD5_OPT \\"                  >> $MAKEFILE
-            echo "		MD5_ASM_OBJ=asm/mx86-elf.o \\"    >> $MAKEFILE
-            echo "		CC=\"\$(CC)\" CPP=\"\$(CPP)\" \\" >> $MAKEFILE
-            echo "		libmd5.a"                         >> $MAKEFILE
+$MD5/libmd5.a:	$NGX_MAKEFILE
+	cd $MD5 \\
+	&& \$(MAKE) CFLAGS="$MD5_OPT -DELF -DMD5_ASM -DL_ENDIAN" \\
+		CC="\$(CC)" CPP="\$(CPP)" \\
+		MD5_ASM_OBJ=asm/mx86-elf.o clean libmd5.a
+
+END
 
             done=YES
         fi
@@ -89,10 +83,14 @@
 
 
 if [ $done = NO ]; then
-    echo "	cd $MD5 \\"                                       >> $MAKEFILE
-    echo "	&& \$(MAKE) CFLAGS=\"$MD5_OPT\" \\"               >> $MAKEFILE
-    echo "		MD5_ASM_OBJ= CC=\"\$(CC)\" libmd5.a"      >> $MAKEFILE
+
+    cat << END                                                >> $NGX_MAKEFILE
+
+$MD5/libmd5.a:	$NGX_MAKEFILE
+	cd $MD5 \\
+	&& \$(MAKE) CFLAGS="$MD5_OPT" \\
+		CC="\$(CC)" MD5_ASM_OBJ= clean libmd5.a
+
+END
+
 fi
-
-
-echo                                                              >> $MAKEFILE
diff --git a/auto/lib/pcre/make b/auto/lib/pcre/make
index 714994d..a60fedb 100644
--- a/auto/lib/pcre/make
+++ b/auto/lib/pcre/make
@@ -2,21 +2,21 @@
 # Copyright (C) Igor Sysoev
 
 
-case "$CC" in
+case "$NGX_CC_NAME" in
 
-    cl)
-        makefile=makefile.msvc
-        opt="CPU_OPT=$CPU_OPT LIBC=$LIBC"
+    msvc*)
+        ngx_makefile=makefile.msvc
+        ngx_opt="CPU_OPT=$CPU_OPT LIBC=$LIBC"
     ;;
 
-    wcl386)
-        makefile=makefile.owc
-        opt="CPU_OPT=$CPU_OPT"
+    owc*)
+        ngx_makefile=makefile.owc
+        ngx_opt="CPU_OPT=$CPU_OPT"
     ;;
 
-    bcc32)
-        makefile=makefile.bcc
-        opt="-DCPU_OPT=$CPU_OPT"
+    bcc)
+        ngx_makefile=makefile.bcc
+        ngx_opt="-DCPU_OPT=$CPU_OPT"
     ;;
 
 esac
@@ -27,39 +27,45 @@
     win32)
         cp auto/lib/pcre/patch.pcre.in $PCRE
         cp auto/lib/pcre/patch.config.in $PCRE
-        cp auto/lib/pcre/$makefile $PCRE
+        cp auto/lib/pcre/$ngx_makefile $PCRE
 
-        pcre=`echo $PCRE | sed -e "s/\//$ngx_regex_dirsep/g"`
-        line=`echo $PCRE/pcre.h: | sed -e "s/\//$ngx_regex_dirsep/g"`
+        ngx_pcre=`echo $PCRE | sed -e "s/\//$ngx_regex_dirsep/g"`
 
-        echo "$line"                                              >> $MAKEFILE
-        echo "	cd $pcre"                                         >> $MAKEFILE
-        echo "	\$(MAKE) -f $makefile pcre.h"                     >> $MAKEFILE
-        echo "	cd ..\\..\\.."                                    >> $MAKEFILE
-        echo                                                      >> $MAKEFILE
+        cat << END                                            >> $NGX_MAKEFILE
 
-        line="$PCRE/pcre.lib:	$PCRE/pcre.h"
-        line=`echo $line | sed -e "s/\//$ngx_regex_dirsep/g"`
+`echo "$PCRE/pcre.h:	$NGX_MAKEFILE" | sed -e "s/\//$ngx_regex_dirsep/g"`
+	cd $ngx_pcre
+	\$(MAKE) -f $ngx_makefile pcre.h
+	cd ..\\..\\..
 
-        echo "$line"                                              >> $MAKEFILE
-        echo "	cd $pcre"                                         >> $MAKEFILE
-        echo "	\$(MAKE) -f $makefile $opt"                       >> $MAKEFILE
-        echo "	cd ..\\..\\.."                                    >> $MAKEFILE
+
+`echo "$PCRE/pcre.lib:	$PCRE/pcre.h" | sed -e "s/\//$ngx_regex_dirsep/g"`
+	cd $ngx_pcre
+	\$(MAKE) -f $ngx_makefile $ngx_opt
+	cd ..\\..\\..
+
+END
+
     ;;
 
     *)
-        PCRE_OPT="CFLAGS=\"$PCRE_OPT\""
+        cat << END                                            >> $NGX_MAKEFILE
 
-        echo "$PCRE/pcre.h:"                                      >> $MAKEFILE
-        echo "	cd $PCRE \\"                                      >> $MAKEFILE
-        echo "	&& CC=\"\$(CC)\" $PCRE_OPT \\"                    >> $MAKEFILE
-        echo "	./configure --disable-shared"                     >> $MAKEFILE
-        echo                                                      >> $MAKEFILE
-        echo "$PCRE/.libs/libpcre.a:	$PCRE/pcre.h"             >> $MAKEFILE
-        echo "	cd $PCRE \\"                                      >> $MAKEFILE
-        echo "	&& \$(MAKE) libpcre.la"                           >> $MAKEFILE
+$PCRE/pcre.h:	$NGX_MAKEFILE
+	cd $PCRE \\
+	&& if [ -f Makefile ]; then \$(MAKE) distclean; fi
+
+	cd $PCRE \\
+	&& CC="\$(CC)" CFLAGS="$PCRE_OPT" \\
+	./configure --disable-shared
+
+
+$PCRE/.libs/libpcre.a:	$PCRE/pcre.h
+	cd $PCRE \\
+	&& \$(MAKE) libpcre.la
+
+END
+
     ;;
 
 esac
-
-echo                                                              >> $MAKEFILE
diff --git a/auto/lib/zlib/make b/auto/lib/zlib/make
index 5822762..2e5ea84 100644
--- a/auto/lib/zlib/make
+++ b/auto/lib/zlib/make
@@ -2,36 +2,22 @@
 # Copyright (C) Igor Sysoev
 
 
-case "$CC" in
+case "$NGX_CC_NAME" in
 
-    cl)
-        makefile=makefile.msvc
-        opt="CPU_OPT=$CPU_OPT LIBC=$LIBC"
+    msvc*)
+        ngx_makefile=makefile.msvc
+        ngx_opt="CPU_OPT=$CPU_OPT LIBC=$LIBC"
 
     ;;
 
-    wcl386)
-        makefile=makefile.owc
-        opt="CPU_OPT=$CPU_OPT"
+    owc*)
+        ngx_makefile=makefile.owc
+        ngx_opt="CPU_OPT=$CPU_OPT"
     ;;
 
-    bcc32)
-        makefile=makefile.bcc
-        opt="-DCPU_OPT=$CPU_OPT"
-    ;;
-
-esac
-
-
-case $PLATFORM in
-
-    win32)
-        line=`echo $ZLIB/zlib.lib: | sed -e "s/\//$ngx_regex_dirsep/g"`
-        echo "$line"                                              >> $MAKEFILE
-    ;;
-
-    *)
-        echo "$ZLIB/libz.a:"                                      >> $MAKEFILE
+    bcc)
+        ngx_makefile=makefile.bcc
+        ngx_opt="-DCPU_OPT=$CPU_OPT"
     ;;
 
 esac
@@ -43,12 +29,16 @@
 case $PLATFORM in
 
     win32)
-        zlib=`echo $ZLIB | sed -e "s/\//$ngx_regex_dirsep/g"`
+        cp auto/lib/zlib/$ngx_makefile $ZLIB
 
-        cp auto/lib/zlib/$makefile $ZLIB
-        echo "	cd $zlib"                                         >> $MAKEFILE
-        echo "	\$(MAKE) -f $makefile $opt"                       >> $MAKEFILE
-        echo "	cd ..\\..\\.."                                    >> $MAKEFILE
+        cat << END                                            >> $NGX_MAKEFILE
+
+`echo "$ZLIB/zlib.lib:	$NGX_MAKEFILE" | sed -e "s/\//$ngx_regex_dirsep/g"`
+	cd `echo $ZLIB | sed -e "s/\//$ngx_regex_dirsep/g"`
+	\$(MAKE) -f $ngx_makefile $ngx_opt
+	cd ..\\..\\..
+
+END
 
         done=YES
     ;;
@@ -59,23 +49,35 @@
     *:i386 | *:i686)
         case $ZLIB_ASM in
             pentium)
-                echo "	cd $ZLIB \\"                              >> $MAKEFILE
-                echo "	&& cp contrib/asm586/match.S . \\"        >> $MAKEFILE
-                echo "	&& CFLAGS=\"$ZLIB_OPT -DASMV\" \\"        >> $MAKEFILE
-                echo "		CC=\"\$(CC)\" \\"                 >> $MAKEFILE
-                echo "		./configure \\"                   >> $MAKEFILE
-                echo "	&& \$(MAKE) OBJA=match.o libz.a"          >> $MAKEFILE
+
+                cat << END                                    >> $NGX_MAKEFILE
+
+$ZLIB/libz.a:	$NGX_MAKEFILE
+	cd $ZLIB \\
+	&& make clean \\
+	&& cp contrib/asm586/match.S . \\
+	&& CFLAGS="$ZLIB_OPT -DASMV" CC="\$(CC)" \\
+		./configure \\
+	&& \$(MAKE) OBJA=match.o libz.a
+
+END
 
                 done=YES
             ;;
 
             pentiumpro)
-                echo "	cd $ZLIB \\"                              >> $MAKEFILE
-                echo "	&& cp contrib/asm686/match.S . \\"        >> $MAKEFILE
-                echo "	&& CFLAGS=\"$ZLIB_OPT -DASMV\" \\"        >> $MAKEFILE
-                echo "		CC=\"\$(CC)\" \\"                 >> $MAKEFILE
-                echo "		./configure \\"                   >> $MAKEFILE
-                echo "	&& \$(MAKE) OBJA=match.o libz.a"          >> $MAKEFILE
+
+                cat << END                                    >> $NGX_MAKEFILE
+
+$ZLIB/libz.a:	$NGX_MAKEFILE
+	cd $ZLIB \\
+	&& make clean \\
+	&& cp contrib/asm686/match.S . \\
+	&& CFLAGS="$ZLIB_OPT -DASMV" CC="\$(CC)" \\
+		./configure \\
+	&& \$(MAKE) OBJA=match.o libz.a
+
+END
 
                 done=YES
             ;;
@@ -97,11 +99,16 @@
 
 
 if [ $done = NO ]; then
-    echo "	cd $ZLIB \\"                                      >> $MAKEFILE
-    echo "	&& CFLAGS=\"$ZLIB_OPT\" CC=\"\$(CC)\" \\"         >> $MAKEFILE
-    echo "		./configure \\"                           >> $MAKEFILE
-    echo "	&& \$(MAKE) libz.a"                               >> $MAKEFILE
+
+    cat << END                                                >> $NGX_MAKEFILE
+
+$ZLIB/libz.a:	$NGX_MAKEFILE
+	cd $ZLIB \\
+	&& make clean \\
+	&& CFLAGS="$ZLIB_OPT" CC="\$(CC)" \\
+		./configure \\
+	&& \$(MAKE) libz.a
+
+END
+
 fi
-
-
-echo                                                              >> $MAKEFILE
diff --git a/auto/make b/auto/make
index c165078..55f36c9 100644
--- a/auto/make
+++ b/auto/make
@@ -12,7 +12,7 @@
 ngx_use_pch=`echo $NGX_USE_PCH | sed -e "s/\//$ngx_regex_dirsep/g"`
 
 
-cat << END                                                    >> $NGX_MAKEFILE
+cat << END                                                     > $NGX_MAKEFILE
 
 CC =	$CC
 CFLAGS = $CFLAGS
@@ -49,7 +49,7 @@
 
 # the core dependences and include pathes
 
-ngx_deps=`echo $CORE_DEPS $NGX_PCH \
+ngx_deps=`echo $CORE_DEPS $NGX_AUTO_CONFIG_H $NGX_PCH \
     | sed -e "s/  *\([^ ][^ ]*\)/$ngx_regex_cont\1/g" \
           -e "s/\//$ngx_regex_dirsep/g"`
 
diff --git a/auto/modules b/auto/modules
index 39dfa9d..e9a42e3 100644
--- a/auto/modules
+++ b/auto/modules
@@ -7,6 +7,7 @@
 fi
 
 if [ $EVENT_SELECT = YES ]; then
+    have=HAVE_SELECT . auto/have
     CORE_SRCS="$CORE_SRCS $SELECT_SRCS"
     EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE"
 fi
@@ -17,6 +18,7 @@
 fi
 
 if [ $EVENT_POLL = YES ]; then
+    have=HAVE_POLL . auto/have
     CORE_SRCS="$CORE_SRCS $POLL_SRCS"
     EVENT_MODULES="$EVENT_MODULES $POLL_MODULE"
 fi
diff --git a/auto/options b/auto/options
index 72e5b36..06488c8 100644
--- a/auto/options
+++ b/auto/options
@@ -52,6 +52,8 @@
 
 IMAP=NO
 
+MODULES=
+
 USE_PCRE=NO
 PCRE=NONE
 PCRE_OPT=
@@ -118,6 +120,8 @@
 
         --with-imap)                     IMAP=YES                   ;;
 
+        --with-module=*)                 NGX_MODULES="$NGX_MODULES $values" ;;
+
         --with-cc=*)                     CC="$value"                ;;
         --with-cpp=*)                    CPP="$value"               ;;
         --with-cc-opt=*)                 NGX_CC_OPT="$value"        ;;
diff --git a/auto/os/freebsd b/auto/os/freebsd
index f08ef97..ba2e188 100644
--- a/auto/os/freebsd
+++ b/auto/os/freebsd
@@ -97,9 +97,20 @@
 
 
 if [ $EVENT_AIO = YES ]; then
-    have=HAVE_AIO . auto/have
-    EVENT_MODULES="$EVENT_MODULES $AIO_MODULE"
-    CORE_SRCS="$CORE_SRCS $AIO_SRCS"
-else
-    have=HAVE_AIO . auto/nohave
+    if [ \( $version -lt 500000 -a $version -ge 430000 \) \
+         -o $version -ge 500014 ]
+    then
+        have=HAVE_AIO . auto/have
+        EVENT_MODULES="$EVENT_MODULES $AIO_MODULE"
+        CORE_SRCS="$CORE_SRCS $AIO_SRCS"
+    else
+
+cat << END
+
+$0: error: the kqueue does not support AIO on this FreeBSD version
+
+END
+
+        exit 1
+    fi
 fi
diff --git a/auto/os/linux b/auto/os/linux
index 8518c61..e4cbd6d 100644
--- a/auto/os/linux
+++ b/auto/os/linux
@@ -48,7 +48,7 @@
 
 ngx_feature="epoll"
 ngx_feature_name="epoll"
-ngx_feature_run=yes
+ngx_feature_run=no
 ngx_feature_incs="#include <sys/epoll.h>"
 ngx_feature_libs=
 ngx_feature_test="int efd = 0, fd = 1, n;
diff --git a/auto/unix b/auto/unix
index af9ee01..f0e7f2e 100755
--- a/auto/unix
+++ b/auto/unix
@@ -73,6 +73,15 @@
 # syscalls, libc calls and some features
 
 
+ngx_feature="setproctitle()"
+ngx_feature_name="HAVE_SETPROCTITLE"
+ngx_feature_run=no
+ngx_feature_incs=
+ngx_feature_libs=
+ngx_feature_test="setproctitle(\"test\");"
+. auto/feature
+
+
 ngx_feature="pread()"
 ngx_feature_name="pread"
 ngx_feature_run=no