axis-c-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From billblo...@apache.org
Subject [axis-axis2-c-core] 02/04: lighttpd mod_axis2 development
Date Sat, 04 Apr 2020 15:08:03 GMT
This is an automated email from the ASF dual-hosted git repository.

billblough pushed a commit to branch lighttpd_mod_axis2
in repository https://gitbox.apache.org/repos/asf/axis-axis2-c-core.git

commit 60bb9b3d2e45e1bba3086eb06ef2134e2668563f
Author: Weerapurage Dinesh Premalal <dinesh@apache.org>
AuthorDate: Tue Jul 22 04:35:35 2008 +0000

    lighttpd mod_axis2 development
---
 lighttpd/AUTHORS                                   |      1 +
 lighttpd/COPYING                                   |     31 +
 lighttpd/ChangeLog                                 |   4031 +
 lighttpd/INSTALL                                   |    236 +
 lighttpd/Makefile.am                               |      3 +
 lighttpd/Makefile.in                               |    666 +
 lighttpd/NEWS                                      |    784 +
 lighttpd/README                                    |    156 +
 lighttpd/SConstruct                                |    277 +
 lighttpd/aclocal.m4                                |   7742 +
 lighttpd/autogen.sh                                |     27 +
 lighttpd/autom4te.cache/output.0                   |  30438 ++
 lighttpd/autom4te.cache/output.1                   |  30426 ++
 lighttpd/autom4te.cache/requests                   |    221 +
 lighttpd/autom4te.cache/traces.0                   |   9679 +
 lighttpd/autom4te.cache/traces.1                   |   1251 +
 lighttpd/compile                                   |    142 +
 lighttpd/config.guess                              |   1526 +
 lighttpd/config.h.in                               |    460 +
 lighttpd/config.sub                                |   1658 +
 lighttpd/configure                                 |  30426 ++
 lighttpd/configure.in                              |    708 +
 lighttpd/cscope.files                              |    136 +
 lighttpd/cscope.out                                | 468163 ++++++++++++++++++
 lighttpd/cygwin/Makefile.am                        |      1 +
 lighttpd/cygwin/Makefile.in                        |    363 +
 lighttpd/cygwin/lighttpd.README.in                 |    114 +
 lighttpd/cygwin/setup.hint                         |      4 +
 lighttpd/depcomp                                   |    530 +
 lighttpd/distribute.sh.in                          |     85 +
 lighttpd/doc/Makefile.am                           |    104 +
 lighttpd/doc/Makefile.in                           |    513 +
 lighttpd/doc/access.txt                            |     41 +
 lighttpd/doc/accesslog.txt                         |    126 +
 lighttpd/doc/alias.txt                             |     36 +
 lighttpd/doc/authentication.txt                    |    207 +
 lighttpd/doc/cgi.txt                               |     50 +
 lighttpd/doc/cml.txt                               |    261 +
 lighttpd/doc/compress.txt                          |     66 +
 lighttpd/doc/configuration.txt                     |    515 +
 lighttpd/doc/dirlisting.txt                        |     82 +
 lighttpd/doc/evhost.txt                            |     45 +
 lighttpd/doc/expire.txt                            |     42 +
 lighttpd/doc/extforward.txt                        |     96 +
 lighttpd/doc/fastcgi-state.dot                     |      6 +
 lighttpd/doc/fastcgi-state.txt                     |     51 +
 lighttpd/doc/fastcgi.txt                           |    606 +
 lighttpd/doc/features.txt                          |    116 +
 lighttpd/doc/lighttpd.1                            |     18 +
 lighttpd/doc/lighttpd.conf                         |    326 +
 lighttpd/doc/lighttpd.user                         |      1 +
 lighttpd/doc/magnet.txt                            |    429 +
 lighttpd/doc/mysqlvhost.txt                        |     58 +
 lighttpd/doc/newstyle.css                          |     49 +
 lighttpd/doc/oldstyle.css                          |     25 +
 lighttpd/doc/performance.txt                       |    239 +
 lighttpd/doc/plugins.txt                           |    260 +
 lighttpd/doc/proxy.txt                             |    104 +
 lighttpd/doc/rc.lighttpd                           |    155 +
 lighttpd/doc/rc.lighttpd.redhat                    |     87 +
 lighttpd/doc/redirect.txt                          |     41 +
 lighttpd/doc/rewrite.txt                           |     71 +
 lighttpd/doc/rrdtool-graph.sh                      |     38 +
 lighttpd/doc/rrdtool.txt                           |    111 +
 lighttpd/doc/scgi.txt                              |     33 +
 lighttpd/doc/secdownload.txt                       |    147 +
 lighttpd/doc/security.txt                          |     60 +
 lighttpd/doc/setenv.txt                            |     37 +
 lighttpd/doc/simple-vhost.txt                      |    109 +
 lighttpd/doc/skeleton.txt                          |     29 +
 lighttpd/doc/spawn-fcgi.1                          |     13 +
 lighttpd/doc/spawn-php.sh                          |     54 +
 lighttpd/doc/ssi.txt                               |     76 +
 lighttpd/doc/ssl.txt                               |     62 +
 lighttpd/doc/state.dot                             |     18 +
 lighttpd/doc/state.txt                             |    170 +
 lighttpd/doc/status.txt                            |    111 +
 lighttpd/doc/sysconfig.lighttpd                    |      1 +
 lighttpd/doc/traffic-shaping.txt                   |     55 +
 lighttpd/doc/trigger_b4_dl.txt                     |     57 +
 lighttpd/doc/userdir.txt                           |     72 +
 lighttpd/doc/webdav.txt                            |     64 +
 lighttpd/install-sh                                |    323 +
 lighttpd/lighttpd.spec.in                          |     83 +
 lighttpd/ltmain.sh                                 |   6964 +
 lighttpd/missing                                   |    360 +
 lighttpd/openwrt/Makefile.am                       |      1 +
 lighttpd/openwrt/Makefile.in                       |    365 +
 lighttpd/openwrt/S51lighttpd                       |      4 +
 lighttpd/openwrt/conffiles                         |      1 +
 lighttpd/openwrt/control.in                        |      9 +
 lighttpd/openwrt/lighttpd.conf                     |    231 +
 lighttpd/openwrt/lighttpd.mk.in                    |     72 +
 lighttpd/src/Makefile.am                           |    295 +
 lighttpd/src/Makefile.in                           |   1638 +
 lighttpd/src/SConscript                            |    195 +
 lighttpd/src/array.c                               |    369 +
 lighttpd/src/array.h                               |    172 +
 lighttpd/src/axis2_apache2_out_transport_info.h    |     61 +
 lighttpd/src/axis2_lighty_out_transport_info.h     |     61 +
 lighttpd/src/base.h                                |    632 +
 lighttpd/src/bitset.c                              |     67 +
 lighttpd/src/bitset.h                              |     19 +
 lighttpd/src/buffer.c                              |   1073 +
 lighttpd/src/buffer.h                              |    131 +
 lighttpd/src/chunk.c                               |    402 +
 lighttpd/src/chunk.h                               |     71 +
 lighttpd/src/configfile-glue.c                     |    542 +
 lighttpd/src/configfile.c                          |   1249 +
 lighttpd/src/configfile.h                          |     30 +
 lighttpd/src/configparser.c                        |   1597 +
 lighttpd/src/configparser.h                        |     25 +
 lighttpd/src/configparser.y                        |    564 +
 lighttpd/src/connections-glue.c                    |     44 +
 lighttpd/src/connections.c                         |   1775 +
 lighttpd/src/connections.h                         |     19 +
 lighttpd/src/crc32.c                               |     82 +
 lighttpd/src/crc32.h                               |     18 +
 lighttpd/src/data_array.c                          |     65 +
 lighttpd/src/data_config.c                         |    138 +
 lighttpd/src/data_count.c                          |     68 +
 lighttpd/src/data_fastcgi.c                        |     69 +
 lighttpd/src/data_integer.c                        |     65 +
 lighttpd/src/data_string.c                         |    104 +
 lighttpd/src/etag.c                                |     55 +
 lighttpd/src/etag.h                                |     17 +
 lighttpd/src/fastcgi.h                             |    136 +
 lighttpd/src/fdevent.c                             |    202 +
 lighttpd/src/fdevent.h                             |    222 +
 lighttpd/src/fdevent_freebsd_kqueue.c              |    207 +
 lighttpd/src/fdevent_linux_rtsig.c                 |    260 +
 lighttpd/src/fdevent_linux_sysepoll.c              |    160 +
 lighttpd/src/fdevent_poll.c                        |    182 +
 lighttpd/src/fdevent_select.c                      |    131 +
 lighttpd/src/fdevent_solaris_devpoll.c             |    158 +
 lighttpd/src/http-header-glue.c                    |    350 +
 lighttpd/src/http_auth.c                           |   1186 +
 lighttpd/src/http_auth.h                           |     73 +
 lighttpd/src/http_auth_digest.c                    |     19 +
 lighttpd/src/http_auth_digest.h                    |     24 +
 lighttpd/src/http_chunk.c                          |    132 +
 lighttpd/src/http_chunk.h                          |     12 +
 lighttpd/src/inet_ntop_cache.c                     |     53 +
 lighttpd/src/inet_ntop_cache.h                     |      7 +
 lighttpd/src/joblist.c                             |     63 +
 lighttpd/src/joblist.h                             |     13 +
 lighttpd/src/keyvalue.c                            |    388 +
 lighttpd/src/keyvalue.h                            |    108 +
 lighttpd/src/lemon.c                               |   4396 +
 lighttpd/src/lempar.c                              |    687 +
 lighttpd/src/lighttpd-angel.c                      |    154 +
 lighttpd/src/lighty_out_transport_info.c           |    153 +
 lighttpd/src/lighty_stream.c                       |    203 +
 lighttpd/src/lighty_stream.h                       |     46 +
 lighttpd/src/log.c                                 |    252 +
 lighttpd/src/log.h                                 |     13 +
 lighttpd/src/md5.c                                 |    355 +
 lighttpd/src/md5.h                                 |     47 +
 lighttpd/src/mod_access.c                          |    190 +
 lighttpd/src/mod_accesslog.c                       |    877 +
 lighttpd/src/mod_alias.c                           |    203 +
 lighttpd/src/mod_auth.c                            |    614 +
 lighttpd/src/mod_auth.h                            |      0
 lighttpd/src/mod_axis2.c                           |    493 +
 lighttpd/src/mod_axis2.loT                         |      7 +
 lighttpd/src/mod_cgi.c                             |   1357 +
 lighttpd/src/mod_cml.c                             |    322 +
 lighttpd/src/mod_cml.h                             |     43 +
 lighttpd/src/mod_cml_funcs.c                       |    301 +
 lighttpd/src/mod_cml_funcs.h                       |     21 +
 lighttpd/src/mod_cml_lua.c                         |    468 +
 lighttpd/src/mod_compress.c                        |    768 +
 lighttpd/src/mod_dirlisting.c                      |    909 +
 lighttpd/src/mod_evasive.c                         |    178 +
 lighttpd/src/mod_evhost.c                          |    334 +
 lighttpd/src/mod_expire.c                          |    369 +
 lighttpd/src/mod_extforward.c                      |    496 +
 lighttpd/src/mod_fastcgi.c                         |   3878 +
 lighttpd/src/mod_flv_streaming.c                   |    278 +
 lighttpd/src/mod_indexfile.c                       |    219 +
 lighttpd/src/mod_magnet.c                          |    851 +
 lighttpd/src/mod_magnet_cache.c                    |    137 +
 lighttpd/src/mod_magnet_cache.h                    |     33 +
 lighttpd/src/mod_mysql_vhost.c                     |    438 +
 lighttpd/src/mod_post_to_disk.loT                  |      7 +
 lighttpd/src/mod_proxy.c                           |   1327 +
 lighttpd/src/mod_redirect.c                        |    283 +
 lighttpd/src/mod_rewrite.c                         |    458 +
 lighttpd/src/mod_rrdtool.c                         |    449 +
 lighttpd/src/mod_scgi.c                            |   3089 +
 lighttpd/src/mod_secure_download.c                 |    306 +
 lighttpd/src/mod_setenv.c                          |    247 +
 lighttpd/src/mod_simple_vhost.c                    |    281 +
 lighttpd/src/mod_skeleton.c                        |    210 +
 lighttpd/src/mod_ssi.c                             |   1136 +
 lighttpd/src/mod_ssi.h                             |     43 +
 lighttpd/src/mod_ssi_expr.c                        |    324 +
 lighttpd/src/mod_ssi_expr.h                        |     31 +
 lighttpd/src/mod_ssi_exprparser.c                  |    951 +
 lighttpd/src/mod_ssi_exprparser.h                  |     12 +
 lighttpd/src/mod_ssi_exprparser.y                  |    121 +
 lighttpd/src/mod_staticfile.c                      |    547 +
 lighttpd/src/mod_status.c                          |    873 +
 lighttpd/src/mod_trigger_b4_dl.c                   |    586 +
 lighttpd/src/mod_userdir.c                         |    310 +
 lighttpd/src/mod_usertrack.c                       |    270 +
 lighttpd/src/mod_webdav.c                          |   2476 +
 lighttpd/src/mod_writefile.c                       |    224 +
 lighttpd/src/network.c                             |    672 +
 lighttpd/src/network.h                             |     13 +
 lighttpd/src/network_backends.h                    |     58 +
 lighttpd/src/network_freebsd_sendfile.c            |    227 +
 lighttpd/src/network_linux_sendfile.c              |    253 +
 lighttpd/src/network_openssl.c                     |    275 +
 lighttpd/src/network_solaris_sendfilev.c           |    213 +
 lighttpd/src/network_write.c                       |    168 +
 lighttpd/src/network_writev.c                      |    344 +
 lighttpd/src/plugin.c                              |    451 +
 lighttpd/src/plugin.h                              |    103 +
 lighttpd/src/proc_open.c                           |    394 +
 lighttpd/src/proc_open.h                           |     25 +
 lighttpd/src/request.c                             |   1171 +
 lighttpd/src/request.h                             |      9 +
 lighttpd/src/response.c                            |    682 +
 lighttpd/src/response.h                            |     19 +
 lighttpd/src/server.c                              |   1493 +
 lighttpd/src/server.h                              |     17 +
 lighttpd/src/settings.h                            |     44 +
 lighttpd/src/spawn-fcgi.c                          |    460 +
 lighttpd/src/splaytree.c                           |    210 +
 lighttpd/src/splaytree.h                           |     24 +
 lighttpd/src/stat_cache.c                          |    747 +
 lighttpd/src/stat_cache.h                          |     13 +
 lighttpd/src/status_counter.c                      |     60 +
 lighttpd/src/status_counter.h                      |     14 +
 lighttpd/src/stream.c                              |    107 +
 lighttpd/src/stream.h                              |     14 +
 lighttpd/src/sys-mmap.h                            |     24 +
 lighttpd/src/sys-socket.h                          |     25 +
 lighttpd/tests/404-handler.conf                    |     49 +
 lighttpd/tests/LightyTest.pm                       |    308 +
 lighttpd/tests/Makefile.am                         |     76 +
 lighttpd/tests/Makefile.in                         |    732 +
 lighttpd/tests/SConscript                          |     45 +
 lighttpd/tests/bug-06.conf                         |    163 +
 lighttpd/tests/bug-12.conf                         |    165 +
 lighttpd/tests/cachable.t                          |    121 +
 lighttpd/tests/cleanup.sh                          |     14 +
 lighttpd/tests/condition.conf                      |     59 +
 lighttpd/tests/core-404-handler.t                  |     76 +
 lighttpd/tests/core-condition.t                    |    139 +
 lighttpd/tests/core-keepalive.t                    |     91 +
 lighttpd/tests/core-request.t                      |    310 +
 lighttpd/tests/core-response.t                     |    108 +
 lighttpd/tests/core-var-include.t                  |     61 +
 lighttpd/tests/core.t                              |    166 +
 lighttpd/tests/docroot/123/12345.html              |      1 +
 lighttpd/tests/docroot/123/12345.txt               |      1 +
 lighttpd/tests/docroot/123/Makefile.am             |      1 +
 lighttpd/tests/docroot/123/Makefile.in             |    360 +
 lighttpd/tests/docroot/123/dummyfile.bla           |      1 +
 lighttpd/tests/docroot/123/phpinfo.php             |      1 +
 lighttpd/tests/docroot/Makefile.am                 |      1 +
 lighttpd/tests/docroot/Makefile.in                 |    517 +
 lighttpd/tests/docroot/www/404.fcgi                |     27 +
 lighttpd/tests/docroot/www/404.html                |      1 +
 lighttpd/tests/docroot/www/404.pl                  |     33 +
 lighttpd/tests/docroot/www/Makefile.am             |      5 +
 lighttpd/tests/docroot/www/Makefile.in             |    522 +
 lighttpd/tests/docroot/www/cgi-pathinfo.pl         |      7 +
 lighttpd/tests/docroot/www/cgi.php                 |      9 +
 lighttpd/tests/docroot/www/cgi.pl                  |      7 +
 lighttpd/tests/docroot/www/crlfcrash.pl            |      4 +
 lighttpd/tests/docroot/www/exec-date.shtml         |      1 +
 lighttpd/tests/docroot/www/expire/Makefile.am      |      1 +
 lighttpd/tests/docroot/www/expire/Makefile.in      |    360 +
 lighttpd/tests/docroot/www/expire/access.txt       |      0
 lighttpd/tests/docroot/www/expire/modification.txt |      0
 lighttpd/tests/docroot/www/get-env.php             |      3 +
 lighttpd/tests/docroot/www/get-header.pl           |      8 +
 lighttpd/tests/docroot/www/get-post-len.pl         |     15 +
 lighttpd/tests/docroot/www/get-server-env.php      |      3 +
 lighttpd/tests/docroot/www/go/Makefile.am          |      1 +
 lighttpd/tests/docroot/www/go/Makefile.in          |    360 +
 lighttpd/tests/docroot/www/go/cgi.php              |      9 +
 lighttpd/tests/docroot/www/index.html              |    113 +
 lighttpd/tests/docroot/www/index.txt               |    113 +
 lighttpd/tests/docroot/www/indexfile/Makefile.am   |      1 +
 lighttpd/tests/docroot/www/indexfile/Makefile.in   |    360 +
 lighttpd/tests/docroot/www/indexfile/index.php     |      1 +
 .../tests/docroot/www/indexfile/return-404.php     |      5 +
 lighttpd/tests/docroot/www/indexfile/rewrite.php   |      3 +
 lighttpd/tests/docroot/www/nph-status.pl           |     10 +
 lighttpd/tests/docroot/www/phpinfo.php             |      1 +
 lighttpd/tests/docroot/www/prefix.fcgi             |      3 +
 lighttpd/tests/docroot/www/redirect.php            |      4 +
 lighttpd/tests/docroot/www/send404.pl              |      5 +
 lighttpd/tests/docroot/www/ssi.shtml               |      1 +
 lighttpd/tests/env-variables.conf                  |      1 +
 lighttpd/tests/env-variables.t                     |     21 +
 lighttpd/tests/fastcgi-10.conf                     |    138 +
 lighttpd/tests/fastcgi-13.conf                     |    155 +
 lighttpd/tests/fastcgi-auth.conf                   |    159 +
 lighttpd/tests/fastcgi-responder.conf              |    162 +
 lighttpd/tests/fcgi-auth.c                         |     33 +
 lighttpd/tests/fcgi-responder.c                    |     47 +
 lighttpd/tests/lighttpd.conf                       |    221 +
 lighttpd/tests/lighttpd.htpasswd                   |      2 +
 lighttpd/tests/lighttpd.user                       |      1 +
 lighttpd/tests/lowercase.conf                      |     80 +
 lighttpd/tests/lowercase.t                         |     94 +
 lighttpd/tests/mod-access.t                        |     34 +
 lighttpd/tests/mod-auth.t                          |    146 +
 lighttpd/tests/mod-cgi.t                           |    142 +
 lighttpd/tests/mod-compress.t                      |     92 +
 lighttpd/tests/mod-fastcgi.t                       |    327 +
 lighttpd/tests/mod-proxy.t                         |     53 +
 lighttpd/tests/mod-redirect.t                      |     59 +
 lighttpd/tests/mod-rewrite.t                       |     48 +
 lighttpd/tests/mod-secdownload.t                   |     79 +
 lighttpd/tests/mod-setenv.t                        |     52 +
 lighttpd/tests/mod-ssi.t                           |     39 +
 lighttpd/tests/mod-userdir.t                       |     44 +
 lighttpd/tests/prepare.sh                          |     51 +
 lighttpd/tests/proxy.conf                          |    156 +
 lighttpd/tests/request.t                           |    393 +
 lighttpd/tests/run-tests.pl                        |     19 +
 lighttpd/tests/symlink.t                           |    115 +
 lighttpd/tests/var-include-sub.conf                |     34 +
 lighttpd/tests/var-include.conf                    |     41 +
 lighttpd/tests/wrapper.sh                          |      9 +
 331 files changed, 672228 insertions(+)

diff --git a/lighttpd/AUTHORS b/lighttpd/AUTHORS
new file mode 100644
index 0000000..80ea411
--- /dev/null
+++ b/lighttpd/AUTHORS
@@ -0,0 +1 @@
+jan kneschke <jan@kneschke.de>
diff --git a/lighttpd/COPYING b/lighttpd/COPYING
new file mode 100644
index 0000000..1333e45
--- /dev/null
+++ b/lighttpd/COPYING
@@ -0,0 +1,31 @@
+
+
+Copyright (c) 2004, Jan Kneschke, incremental
+ All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+- Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+
+- Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+- Neither the name of the 'incremental' nor the names of its contributors may
+  be used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
diff --git a/lighttpd/ChangeLog b/lighttpd/ChangeLog
new file mode 100644
index 0000000..642ad53
--- /dev/null
+++ b/lighttpd/ChangeLog
@@ -0,0 +1,4031 @@
+CVS-Version: $Id: ChangeLog,v 1.18 2004/04/09 22:08:19 weigon Exp $
+
+** NOTE **
+
+This file is abondend in favour of the NEWS file
+
+** NOTE **
+
+
+15.06.2005 20:10 - 1.3.15
+- mod_cml, mod_trigger_b4_dl
+
+  added both plugins
+
+  check http://trac.lighttpd.net/trac/log/branches/lighttpd-1.3.x/ for the
+  rest
+
+15.06.2005 13:59 - 1.3.14
+- documentation
+
+  more fix-ups for mod_fastcgi, configuration and mysql-vhost
+
+- tests
+
+  unified test-scripts to use the same framework
+
+14.06.2005 23:38
+- documentation
+
+  updated docs for mod_proxy and mod_scgi
+
+12.06.2005 12:55 - pre-release
+- mod_fastcgi
+
+  fixed event handling after delayed connect
+
+  make retry timeout configurable
+
+  removed unused events if we switch to FCGI_STATE_READ
+
+  disabled adaptive spawning
+
+- mod_proxy
+
+  added hash-based and round-robin balancing
+
+  use port 80 is default
+
+  fixed errorhandling on connection refused
+
+  fixed usage of dead hosts [285]
+
+- mod_cgi
+
+  send 500 if the CGI died before we received any data
+
+  redirect the stderr of CGI to our errorlog
+
+  cleanup cgi-env after we finished our request
+
+- uri-handling
+
+  don't replace + to space before the ?query part
+
+  accept characters > 127 again
+
+- mod_auth
+
+  fixed segfault if debugging is enabled [371]
+
+- mod_scgi
+
+  added SCGI support for python + WSGI [381], [382]
+
+- mod_setenv
+
+  fixed conditionals for setenv.add-environment [109]
+
+- generic
+
+  report an error on duplicate config-keys in configfile [267]
+
+  call initgroups to join the groups of the users [239]
+
+  fixed automatic redirects if SSL is used
+
+  fixed compilation on Solaris [283]
+
+  disable accept-filtering on FreeBSD if ssl is used [320]
+
+  fixed handling of range-request larger than 2Gb
+
+  fixed comparisions of mime-types to case-insensitive [266]
+
+  added quotation of ETags [376], [378]
+
+06.03.2005 12:22 - 1.3.13
+- mod_accesslog
+
+  fixed NULL dereference on logfile cycling if accesslog is not set
+
+05.03.2005 17:30
+- mod_proxy
+
+  handle delayed connect in the same way as mod_fastcgi
+
+03.03.2005 19:00
+- freebsd
+
+  handle remote-close gracefully
+
+- ssl
+
+  handle remote-close gracefully
+
+- dir-listing
+
+  added dir-listing.hide-dotfiles and added an option to set css files
+
+02.03.2005 19:41
+- fastcgi
+
+  fixed path-info for prefix-patterns
+
+  fixed path-info for PHP
+
+02.03.2005 14:47 - 1.3.12
+- mod_fastcgi
+
+  fixed handling of dead fastcgi process which sent their SIGCLD to
+  initd and not to lighttpd. Moving the daemonize before starting
+  the fastcgi procs fixes this.
+
+01.03.2005 23:59
+- irix
+
+  fixed minor compile issues with MIPSpro
+
+01.03.2005 11:57
+- request-handling
+
+  handle most duplicate headers as 400, Bug #25
+
+- mod_fastcgi
+
+  added more checks
+
+28.02.2005 18:26
+- mod_expire
+
+  don't ignore 'modification' any more, Bug #39
+  only handles static files
+
+- last-modified
+
+  really compare timestamps, Bug #34
+
+28.02.2005 11:54
+- buffer
+
+  rewrote int2buffer functions
+
+  simplified path_simplify
+
+- pid-file
+
+  ignore EACCESS on unlink
+
+28.02.2005 10:35
+- mod_fastcgi
+
+  accept \n\n, Bug #32
+
+- cygwin
+
+  moved functions used by plugin and main-program to *-glue.c
+
+- lemon
+
+  removed warnings about shadowed variables
+
+28.02.2005 01:00
+- ssl
+
+  added ssl.ca-file, Bug #19
+
+  improved error-messages
+
+27.02.2005 23:48
+- test cases
+
+  rewrote to test-framework to use Perl + Test::More
+  ported more test-cases
+
+22.02.2005 01:20
+- mod_fastcgi
+
+  replaced inet_addr by inet_aton
+
+- request-handling
+
+  fixed segfault if host is empty
+
+20.02.2005 20:05
+- cgi
+
+  fixed cgi.assign for empty handlers again
+
+20.02.2005 16:54 - 1.3.11
+- request handling
+
+  ignore \r\n before request-line in keep-alive requests (Bug #13)
+
+- cgi, fastcgi
+
+  added REMOTE_PORT and SERVER_ADDR
+
+  fixed check for broken status-code in nph-scripts (Bug #14)
+
+- fastcgi
+
+  fixed passing cmdline options the spawned binary (Bug #16)
+
+  fixed failed reconnects (Bug #9)
+
+- macos x
+
+  fixed build on max
+
+- mod_secdownload
+
+  parse conditional secure-download.secret (Bug #8)
+
+- mod_userdir
+
+  redirect if username is not followed by / (Bug #15)
+
+13.02.2005 17:33
+- mod_auth
+
+  fix crash if require, realm or method are empty (Bug #5)
+
+13.02.2005 14:52
+- network
+
+  handle EPIPE and ECONNRESET as 'client has closed connection' in writev()
+  (Bug #1)
+
+- macosx
+
+  compile error on MacOS X due to missing environ (patch by Johan S�rensen)
+  (Bug #2)
+
+- indexfiles
+
+  append the detected indexfile only once to uri.path (reported by Thomas
+  Seifert)
+  (Bug #3)
+
+06.02.2005 15:16 - 1.3.10
+- fastcgi
+
+  display a error-message if a hostname if specified in fastcgi.server->host
+  we need an IP here
+
+- debug
+
+  added debug.log-state-handling
+
+- spawn-fcgi
+
+  accept a full commandline for spawning
+
+06.02.2005 12:50
+- fastcgi
+
+  fixed openssl handling
+
+- network_freebsd_sendfilev
+
+  gracefull handling of connections closed on client-side
+  removed debug-message
+
+06.02.2005 01:44 - 1.3.9
+- documentation
+
+  added docs for SSL setup and mod_status
+
+- fastcgi
+
+  fixed config handling on PowerPC for local-spawning
+
+05.02.2005 15:14
+- fastcgi
+
+  added bin-environment to setup the environment of the spawned process
+
+  added bin-copy-environment to copy only the specified set of options
+  from the old environment
+
+  added handling of cmd-line options to bin-path
+
+- setenv
+
+  fixed crashed in setenv.add-response-header
+
+04.02.2005 18:09
+- configure
+
+  fixed docs for --with-mysql
+
+- fastcgi
+
+  improved performance of building the header (drop strlen())
+
+04.02.2005 01:59
+- cgi
+
+  don't send file on error
+
+  check if cgi-handler exists before executing it
+
+  added support for nph-...
+
+02.02.2005 21:18 - pre-release
+- request parsing
+
+  handle invalid characters in URI
+
+02.02.2005 15:12
+- makefiles
+
+  dropped unused header files from the distribution
+
+02.02.2005 14:18
+- fastcgi
+
+  delete sockets on shutdown
+
+- http/1.1
+
+  adding option to disable http/1.1
+
+01.02.2005 12:03
+- cygwin
+
+  fixed plugins_load to use the right extensions again
+  removed mmap check
+  added ssl support
+
+01.02.2005 01:49
+- configure
+
+  make check for valgrind.h covered by --with-valgrind
+
+- mod_localizer, mod_maps
+
+  remove both plugins from the distribution
+
+- file-not-found
+
+  handle file not found again
+
+30.01.2005 16:44
+- HEAD requests
+
+  don't send content on dynamic HEAD requests with status 200
+
+30.01.2005 15:16 - 1.3.8
+- network-handler
+
+  remove debug output on writev() if the remote side closed the connection
+
+- directory index
+
+  handle EACCES correctly
+
+29.01.2005 15:16 - pre-release
+- mod_alias
+
+  fixed mod_alias + pathinfo handling
+
+- mod_accesslog
+
+  added access-log to syslog patch from allan
+
+28.01.2005 17:30
+- directory redirect without Host-header
+
+  use server-ip instead of client-ip for the Location:
+
+- fastcgi + pathinfo
+
+  if fastcgi-auth redirects to a directory which doesn't exist handle it
+  correctly (bug introduced in 1.3.8)
+
+- requesting directories
+
+  clean physical.path if directory is requested and dir-listing is disabled
+  send 403 again (buf introduced in 1.3.8)
+
+28.01.2005 12:08
+- fastcgi
+
+   ignore FDEVENT_HUP for unix-sockets as a simple read + timeout will do
+   the job anyway
+
+22.01.2005 20:28 - pre-release
+- fastcgi
+
+  send content and headers if authorizer mode is used
+
+  use a new connection if connection is died to fastcgi
+  and we have not used it yet
+
+18.01.2005 21:21 - pre-release
+- plugins
+
+  added version-id to plugins to detect plugins which are not up-to-date
+
+16.01.2005 23:11
+- fastcgi
+
+  fixed write-failed after crash of fastcgi-child
+
+16.01.2005 20:43
+- setenv
+
+  fixed setenv.add-environment
+
+- fastcgi
+
+  fixed authorizer + added testcases
+
+16.01.2005 17:40 - pre-release
+- mod_status
+
+  beautified mod_status
+
+- mod_setenv
+
+  added setenv.add-environment
+
+- timeouts
+
+  add timeout to read-post
+
+15.01.2005 12:57
+- debug
+
+  added debug options to log
+  - missing files
+  - request header
+  - response header
+  - request handling
+
+  added a more usefull error message for the status-code changes in the
+  request parser
+
+- server announcement
+
+  set Server: header for dynamic content too
+
+- fastcgi
+
+  fixed double free
+
+  don't crash on FDEVENT_ERR
+
+  added a comment for EAGAIN on connect()
+
+08.01.2005 17:45
+- ssl
+
+  report an error if ssl.engine is enable but no ssl support compiled in
+
+08.01.2005 12:23
+- mod_status
+
+  added request time to the output
+
+  (late changelog) added host and filename to the output (fobax)
+  (late changelog) HTMLalized the output (fobax)
+
+06.01.2005 19:51 - pre-release
+- error-handler
+
+  let the error-handler handle 403 requests too
+
+  make the error-handler setable by a module
+
+- error-pages
+
+  reworked the error-page handling
+
+05.01.2005 13:10
+- keep-alive handling
+
+  made sure that keep-alive is really handled correctly
+
+04.01.2005 17:02
+- mod_setenv
+
+  added a module to added request and response headers on the fly
+
+- error-log
+
+  send error log to syslog() if no errorlogfile is specified (again)
+
+02.01.2005 22:44 - pre-release
+- response handling
+
+  cut of body for status 301, 304 and 205
+
+- buffer
+
+  optimized all _hex functions (Silvan Minghetti)
+
+02.01.2005 20:32
+- fastcgi
+
+  if bin-path is not specified, don't die (bug introduced in the last pre-rel)
+
+- auth
+
+  if userfile is empty don't auth.
+
+02.01.2005 19:06
+- mod_compress
+
+  fixed off by one if cache-dir is not set
+
+02.01.2005 16:10
+- conditional config
+
+  fixed !~ and !=
+
+- buffer
+
+  copy empty buffers correctly
+
+31.12.2004 17:45
+- ipv6 + pidfile
+
+  don't complain if we can't remove the pidfile (Silvan Minghetti)
+
+  remove ipv6 option from the commandline of lighttpd doesn't support
+  ipv6 (Silvan Minghetti)
+
+31.12.2004 15:41 - pre-release
+- kqueue
+
+  simplified event handling (adam)
+
+- fastcgi
+
+  fixed div-by-zero bugs in the adaptive process spawning
+
+- mysql-vhost
+
+  added mysql-vhost (Christer Holgersson)
+
+30.12.2004 19:09
+- fastcgi
+
+  added adaptive spawning of FastCGI processes
+
+- traffic shaping
+
+  added traffic shaping per virtual server
+
+28.12.2004 23:26
+- traffic shaping
+
+  added traffic shaping per connection
+
+25.12.2004 22:58
+- mod_status
+
+  fixed status.url again (Timo)
+
+21.12.2004 11:29
+- configure
+
+  added check for signal and select (compile fix for netbsd 1.4 and 1.5)
+
+11.12.2004 12:38 - 1.3.7
+- fastcgi + php
+
+  retry to connect to another PHP child if one of them dies after
+  connect
+
+- cgi + multipart
+
+  don't transform CONTENT_TYPE to HTTP_CONTENT_TYPE
+
+- debian
+
+  more cleanup, updated changelog, added more deps and suggests
+  (Chris Brown)
+
+10.12.2004 22:33
+- event handler
+
+  fixed crashes in kqueue
+
+10.12.2004 13:57 - pre-release
+- mod_status
+
+  fixed wraparound in total requests and total traffic
+
+- debian
+
+  updated licence and packaging
+
+- security
+
+  call setgroups() to get rid of all groups
+
+- ssl
+
+  handle SSL_shutdown() == 0 correctly
+
+  fixed openssl detection in configure
+
+  fixed handling of chunked encoding
+
+- request handling
+
+  handle Connection: keep-alive correctly (case as not ignored)
+
+21.11.2004 02:39
+- windows
+
+  merged basic native windows port (compiles with mingw)
+
+20.11.2004 18:43
+- conditional
+
+  ported
+  - cgi
+  - secdownload
+  - expire
+  - localizer
+  - usertrack
+  - status
+  - proxy
+
+- server-tag
+
+  Server: ... can now be specified by server.tag = "..."
+
+- spawn-fcgi
+
+  fixed typo in usage text
+
+- ssl
+
+  fixed detection of libs and headers
+
+05.11.2004 16:01
+- fastcgi
+
+  added more usefull error messages
+
+04.11.2004 23:01
+- ssi
+
+  added support for ${...}
+
+03.11.2004 14:51 - 1.3.6
+- fastcgi
+
+  added spawn-fcgi to the distribution
+  added spawn-local-fastcgi yourself ( bin-path )
+
+03.11.2004 11:22
+- accesslog
+
+  don't cycle accesslogs of external processes are used
+
+02.11.2004 15:34
+- fastcgi
+
+  handle END-OF-REQUEST correctly if chunk-encoding is not used
+
+02.11.2004 10:53
+- internal redirects
+
+  fixed handling of query strings in internal redirects for directories
+
+02.11.2004 09:54 - pre-release
+- cgi
+
+  add REMOTE_USER, suppress AUTHORIZATION
+  handle payloads > 4k
+
+- mod_alias
+
+  fixed url checking
+
+- follow-symlink
+
+  fixed config
+
+31.10.2004 11:30 - 1.3.5
+- writev
+
+  fixed seg-fault in debug-message if write() fails and LFS is enabled
+  handle EINTR
+
+- sendfile linux
+
+  handle EINTR
+
+31.10.2004 09:09
+- freebsd
+
+  added missing header in joblist.c
+  fixed test-scripts for zsh
+
+30.10.2004 22:26
+- modules
+
+  added mod_userdir and mod_alias
+  added docs for the new modules
+
+30.10.2004 19:52
+- porting
+
+  added defines for MAP_FAILED for NetBSD 1.3.x
+
+30.10.2004 18:54 - pre-release
+- pipelining
+
+  fixed offset calculations
+
+- ipv6
+
+  IPv6 might be disabled at compile-time
+
+- rewrite
+
+  close mem-leak
+
+- auth
+
+  forgot to reset the global-config handler
+
+- symlink
+
+  add option to disable follow-symlink
+
+- ssi
+
+  added support for exec-cmd
+
+23.10.2004 - 1.3.4
+- max-fds
+
+  set the upper limit of fds only if server.max-fds is set
+
+23.10.2004 13:49
+- accesslog
+
+  use a shell to handle accesslog-pipes
+
+22.10.2004 17:00
+- accesslog
+
+  added logging of user-supplied data via %{...}o and
+  X-LIGHTTPD-* header
+
+22.10.2004 14:57 - pre-release
+- openwrt
+
+  fixed configure-checks and Makefile.am's to build cleanly with a
+  cross-compiler
+
+  builds cleanly for openwrt
+
+22.10.2004 13:03
+- out-of-fd
+
+  improved the out-of-fd handler
+
+- cgi, fastcgi
+
+  set SERVER_NAME to server.name or the value submitted by Host:
+
+- error-handler
+
+  only set old status code if it wasn't set by a handler
+
+21.10.2004 22:36 - pre-release
+- fastcgi
+
+  don't crash on out-of-fd condition
+
+- out-of-fd
+
+  try handle the out-of-fd condition in a sane way
+
+21.10.2004 15:03
+- mod_auth
+
+  seperated auth.backend.*.userfile for plain, htpasswd and htdigest
+
+  added 'digest-auth' against 'plain-backend'
+
+  added auth.debug for debugging
+
+16.10.2004 10:18 - 1.3.3
+- mod_simple_vhost, mod_evhost
+
+  conditional-ized
+
+- mod_rrdtool
+
+  maintain the request-counter for each conditional-config (adam)
+
+14.10.2004 11:30
+- accesslogs
+
+  cycle all access-logs
+
+- mod_rewrite
+
+  tell the user to install pcre.h if he wants to use mod_rewrite
+
+10.10.2004 10:11 - pre-release
+- error-handler
+
+  added a error-handler for status 404 (server.error-handler-404)
+
+09.10.2004 16:28 - pre-release
+- cgi
+
+  added support for \n in headers
+
+- mod_auth
+
+  added conditional auth
+
+01.10.2004 09:28
+- plugins
+
+  fixed off by one error in plugin initialization (Mike)
+  related into a segfault on AMD64
+
+30.09.2004 21:44 - 1.3.2
+- file-cache
+
+  disabled the file-cache it was taken the wrong files from the cache
+
+30.09.2004 08:39 - 1.3.1
+- file-cache
+
+  drop a unused file-cache entry after 10 seconds
+  reuse unused entries
+
+- request-parser
+
+  accept IPv6 adresses in Host header
+
+- tests
+
+  modified the scripts to work with zsh (check on Linux, Irix and FreeBSD)
+
+26.09.2004 12:28
+- comparission function
+
+  file-cache has delivering the wrong entry if only the last character of
+  the filename differed and the filesize was the same.
+
+- cgi + cygwin
+
+  cgi need s SYSTEMROOT environment
+
+
+22.09.2004 08:55
+- network
+
+  detect of file has been shrinked while we are sending it out and terminate
+  the connection if would run over the edge
+
+22.09.2004 07:56
+- mod rewrite, fastcgi, ...
+
+  keep REQUEST_URI after rewrite
+
+21.09.2004 22:49
+- fastcgi authorizer
+
+  fixed cleanup code (matt)
+
+21.09.2004 20:08
+- rrdtool
+
+  rrdtool.db-name is now conditional
+
+  fixed check if write() failed (adam)
+
+17.09.2004 17:50 - 1.3.0
+- rewrite
+
+  added url.rewrite-final = ...
+
+17.09.2004 15:55
+- code cleanup
+
+  integrated the fixes from cygwin into the main tree
+
+- kqueue
+
+  init kqueue after daemonizing (broken since 12.09.2004 14:02)
+
+16.09.2004 21:00
+- cygwin + macosx
+
+  finished the cygwin port
+  this port seems to fix the problems on macosx too
+
+12.09.2004 14:02
+- socket handling
+
+  added support to handle more than one server socket
+
+11.09.2004 12:23 - 1.2.8
+- EINTR
+
+  handle EINTR for linux-sendfile
+
+- configfile
+
+  ignore an extra comma at the end of the array declaration
+
+11.09.2004 09:46
+- mod_proxy
+
+  pass remote-addr as X-Forwarded-For to the real server behind the proxy
+
+- code cleanup
+
+  moved all cut'n'paste versions of the inet_ntop cache to inet_ntop_cache.c
+
+- fcgi
+
+  don't overwrite the fd in fcgi_establish connection if connect fails. this
+  results in various problem in other places.
+
+05.09.2004 09:46
+- file-cache
+
+  cache the mimetype
+
+- last-modified
+
+  don't complain if the If-Modified-Since contains a valid comment/option
+  like <timestamp>; length = ...
+
+05.09.2004 09:13
+- expires
+
+  overwrite the Expire if it is set by a previous plugin
+
+- conditional config
+
+  conditional config as disabled in 1.2.7 by accident
+
+04.09.2004 10:02 - 1.2.7
+- mod-proxy
+
+  remove the \0 before the post content
+
+- cgi
+
+  fixed hanging process if cgi-crash terminates to fast (before we read its
+  response)
+
+- extented attributes
+
+  added xattr support, submitted by Ari
+
+29.08.2004 16:00
+- rrdtool
+
+  moved the rrdtool support from mod_status into its own module mod_rrdtool
+
+  rrdtool.binary = "/usr/bin/rrdtool"
+  rrdtool.db-name = "/var/www/lighttpd.rrd"
+
+29.08.2004 11:00 - pre-release
+- timeouts
+
+  server.max-keep-alive-requests = 0 replaces
+    server.use-keep-alive = "disable"
+
+  added
+    server.max-keep-alive-idle
+    server.max-read-idle
+    server.max-write-idle
+
+- docs
+
+  added a entry for each config-value into configuration.txt
+  added simple docs for
+    rewrite
+    redirect
+    compress
+    cgi
+    simple-vhost
+
+29.08.2004 10:05
+- config options
+
+  complain if no configfile is specified
+
+- fastcgi
+
+  removed stupid allocation bug which might cause a problem in really rare
+  cases
+
+26.08.2004 22:06 - 1.2.6
+- optimize
+
+  use array_strcasecmp() in favour of strcasecmp() as it is slightly
+  faster.
+
+  apply the case-insentive conversion also on the last character. (adam)
+
+  sort the checked elements in request.c and filter apply the logic to
+  compare some less fields, if the header is not used.
+
+  improved the config-patch function to use our internal buffer-compare
+  functions instead of strcmp
+
+22.08.2004 16:09 - pre-release
+- cgi
+
+  added missing cleanup code
+
+- fastcgi
+
+  remove double-free
+  added handling of EINTR in some places
+
+- leaks
+
+  fixed some leaks in the new config code
+
+- array_strcasecmp
+
+  fixed alignment in the improved array_strcasecmp function (adam)
+
+20.08.2004 14:46 - pre-release
+- performance
+
+  optimized a few useless strlen() away as we either know the length from
+  buffer->used - 1 or by sizeof(str) - 1 if it is constant.
+
+  optimized the 'find the \r\n\r\n' function.
+
+  improved the array_strcasecmp() based on another idea from (ralf)
+
+- accesslog
+
+  enabled the strftime cache again
+
+15.08.2004 23:41
+- accesslog
+
+  added apache-like CustomLog handling in accesslog.format
+
+  accesslog.format = "..."
+
+15.08.2004 21:08
+- test-cases
+
+  remove testdir
+
+- configfiles
+
+  handle escaping of " in strings properly
+
+13.08.2004 12:07
+- array
+
+  improved inner-loop of array_strcasecmp() (ralf)
+
+11.08.2004 14:14
+- fcgi socket
+
+  use SUN_LEN if available
+
+- keep-alive
+
+  disable keep-alive on request
+
+  server.use-keep-alive = "disable"
+
+10.08.2004 15:59 - 1.2.5
+- conditional config
+
+  mod_fastcgi
+  mod_rewrite
+  mod_redirect
+  mod_access
+  mod_compress
+  mod_accesslog
+
+  are ported
+
+10.08.2004 13:05
+- pipelining
+
+  fixed very stupid pipelining bug
+
+09.08.2004 22:07 - pre-release
+- conditional config
+
+  first code for conditional config
+
+09.08.2004 14:21
+- fcgi
+
+  fixed access to free()'d memory (doesn't create any harm)
+
+- isdigit, warings
+
+  signed -> unsigned for 2 more isdigit() calls (adam)
+  removed some unused var's if pcre is not available (adam)
+
+08.08.2004 20:57 - pre-release
+- debian
+
+  added a chmod to /var/log/lighttpd/ (allan)
+
+08.08.2004 12:05
+- kqueue
+
+  use EV_SET() instead of setting the ev-struct by hand (adam)
+
+- fcgi
+
+  fixed the EINPROGRESS handling to use getsockopt (er)
+  fixed a leak of server is disabled (er)
+
+- solaris 10 port-api
+
+  added a skeleton for the sol10 port api
+
+06.08.2004 10:18
+- mod_ssi
+
+  fix DATE_LOCAL so it displays the correct time zone (Jeremy Hinegardner)
+
+04.08.2004 11:43
+- openbsd fixes
+
+  dropped usage of MAX() in buffer.c
+  added prober includes for md5.h if openssl is enabled (brad)
+
+- memory usage
+
+  documented the way how lighttpd caches memory blocks
+  reset the buffers after they have been written by the network-layer
+
+- kqueue
+
+  modify fd-bitmask only if kevent succeeded (adam)
+
+
+03.08.2004 15:09
+- mod_compress
+
+  compress even if you have no cachedir set
+
+03.08.2004 13:26 - pre-release
+- Makefile
+
+  fixed dependencies for parallel build in mod_ssi_expr.c
+
+- combo patch
+
+  * Tinker with kqueue().  Add a reset method so that the kqueue file
+    descriptor can be re-enabled after a fork().  Emulate the devpoll driver
+    in that adds and deletes are sent to the notification mechanism im-
+    mediately, which should cut down on phantom events.  Use
+    ev->kq_results as a sliding window.
+
+  * Change F_SETFD calls to use the preferred FD_CLOEXEC instead of 1.
+
+  * Remove unnecessary fdevent fcntl handlers.  It appears that the only
+    driver that needs one is Linux RT signals.
+
+  * Quiet compiler warning about unused parameter.
+
+  * Set the close-on-exec flag for the /dev/poll and epoll_create() file
+    descriptors.
+
+  * Return failure if /dev/poll could not be opened instead of logging
+    and continuing.
+
+  * Detect EAGAIN after writev() failures.  FreeBSD sendfile() doesn't need
+    protection, as the man page says:
+
+     When using a socket marked for non-blocking I/O, sendfile() may send
+     fewer bytes than requested.  In this case, the number of bytes success-
+     fully written is returned in *sbytes (if specified), and the error
+     EAGAIN is returned.
+
+  (adam, georg, matt)
+
+
+02.08.2004 18:08
+- mod_ssi
+
+  check for pcre before compiling the module
+
+- fdevents
+
+  dropped fdevent_fcntl added by the last patch (adam)
+  kqueue: events == FDEVENT_IN -> events & FDEVENT_IN (adam)
+
+31.07.2004 22:07 - 1.2.4
+- fdevents
+
+  * Test at configure time for kqueue() and <sys/event.h>
+  * Remove various hard-coded constants from event handlers
+  * Move maxfds into the event structure, and out of the
+    fdevent_*_init handlers.  Event handlers can use the maxfds
+    member to size arrays.
+  * Various event structure renames to discourage clashes
+  * Remove extra (ignored) call to fdevent_event_next_fdndx() in
+    the main server loop.
+  * Wrestle with kqueue().  The implementation has to deal with
+    phantom events (for fds which have been deleted/closed), similar
+    to the Linux RT signals code.  Like the RT code, it maintains a
+    bitmask of active fds.  After a successful call to kevent(), the
+    code will compress/overwrite dead events.  The other annoyance is
+    that the handler must track the event filter for each fd, even
+    though you cannot support both read and write filters for the same
+    fd in one kqueue.  The handler maintains a separate bitmask for fd
+    filters (1 == EVFILT_IN, 0 == EVFILT_OUT).
+  (adam)
+
+- server side includes
+
+  added native server-side includes based on the docs from apache:
+  http://httpd.apache.org/docs/mod/mod_include.html
+
+  not supported are:
+  - exec
+  - nested virtual
+  - config.errmsg
+  - echo.encoding
+
+24.07.2004
+- fdevents
+
+  added a bitset to figure out if we received a event for an unregistered fd
+  in rt-signal (adam)
+
+- kqueue
+
+  added kqueue support (Matt Levine)
+
+13.07.2004 08:58
+- configfile
+
+  parse keys correctly that contain a digit (Geoff Adams)
+
+- fcgi
+
+  fixed large post uploads (Geoff Adams)
+  fixed uri if docroot is set (Geoff Adams)
+
+03.07.2004 22:50 - 1.2.3
+- index-files
+
+  rewrite uri.path to the index-file instead of keeping it at .../
+  this fixes index-file handling in FastCGI/CGI docroot is used
+
+- close-on-exec
+
+  enable close-on-exec handling to simplify FD handling in CGI code
+
+- cgi
+
+  keep error-log-fd open to catch the error handling for execve()
+
+  report error if cgi-exec file doesn't exist
+
+- proxy
+
+  pass page-content on error to the user (E.R.)
+  code cleanup (E.R.)
+
+- ssi
+
+  first skeleton of a plugin for ServerSideIncludes
+
+- security
+
+  limit the headerlength again to 64k max
+
+03.07.2004 14:23
+- configure
+
+  fixed compile-check for libpcre if pcre-config doesn't point to /usr/lib
+
+02.07.2004 18:17
+- buffers
+
+  always allocate a multiply of 64bytes. this should reduce the number of
+  realloc()s and still doesn't has a too high overhead.
+
+02.07.2004 11:07
+- fds
+
+  connect stdin, stdout and stderr to /dev/null instead of just closing it
+  use dup2() instead of dup()
+
+- accesslog
+
+  if accesslog.filename starts with a | spawn a process which will get data
+  in one chunk once in a while
+
+01.07.2004 11:00
+- sample config
+
+  added text/css and text/javascript mimetypes
+
+28.06.2004 12:18
+- proxy module
+
+  added a proxy module (based on the fastcgi module) and added some
+  documentation
+
+25.06.2004 21:41
+- last-modified handling
+
+  replaced %Z by GMT. otherwise the last-modified check will most often fail.
+
+24.06.2004 20:20
+- relax http-parser
+
+  don't reply 400 in case of an empty header-field, just ignore it
+
+23.06.2004 22:10
+- file-cache
+
+  don't cache mmap() for files larger than 64k as we run out of RAM otherwise
+  too fast (check with some 200mb files)
+
+- 64bit fixes
+
+  fixed buffer_equal on sparc64
+
+15.06.2004 19:09 - 1.2.2
+- mmap cache
+
+  fixed mmap-caching in network_write.c and network_writev.c after a direct
+  hint by E.Rodichev
+
+- sendfile + linux
+
+  check at config-time if sendfile() works on Linux
+
+11.06.2004 15:09
+- fcgi + unix sockets
+
+  added support for unix domain sockets (spawn-fcgi 1.2.0 required)
+
+10.06.2004 11:49
+- configure
+
+  use pcre-config to determine the position of the pcre headers
+
+05.06.2004 22:06
+- filehandle-cache
+
+  remove mmap-segment if filecache gets invalidated
+
+30.05.2004 14:13 - lighttpd 1.2.1
+- response headers
+
+  request headers that appear twice are grouped together like expected by
+  the CGI spec (concat with a ", ")
+  response headers behaved the same way but are not grouped anymore. They
+  stay seperated. Actually they are concated by \r\n<key>: <value> which is
+  the same in the end.
+
+- file uploads
+
+  the handling of longer post requests is fixed now.
+
+28.05.2004 09:13
+- cgi
+
+  added support for direct calls to cgi-binary
+
+22.05.2004 21:58
+- pipeling
+
+  the code cleanup is finished successfully. Now all cases of pipelining are
+  handle the right way. POST pipelining was still not working up to now.
+
+22.05.2004 12:55
+- code cleanup
+
+  use the well-tested code from the write-queue as the base for the
+  read-queues and simplify the pipeline handling alot that way.
+
+20.05.2004 15:08
+- network backends
+
+  enabled sendfile support again (__FreeBSD__ instead of __freebsd__)
+
+  added a mmap cache as part of the filedescriptor cache
+
+  added AIX specific send_file() support (untested)
+
+20.05.2004 10:40
+- segfaults
+
+  fixed some minor segfaults on startup when no config file is used.
+
+17.05.2004 10:58 - lighttpd 1.2.0
+- documentation
+
+  reformated the documentation the doc/ directory
+
+15.05.2004 14:45
+- localizer
+
+  fixed build of localizer extension
+
+15.05.2004 12:35
+- POST requests
+
+  there is no need to die if we spot a simple POST request on a static file
+
+- pipelining
+
+  fixed HTTP/1.1 pipelining which caused the problems with opera
+
+- array handling
+
+  how did that bug survive such a long time ? a wrong compare function was
+  used in one case, but not the other.
+
+15.05.2004 03:20
+- secure and fast downloads
+
+  added a module which allows secure and fast downloading of files:
+  1. the application (.php, ...) controls the access to the files
+  2. the webserver is handling the transfer (and check the app generated
+     tokens)
+
+  the token is based on
+  - a secret
+  - a timestamp
+  - the filename
+  this means even if the token is is distributed by the user it will get
+  invalid after a given timeout (default 60 seconds)
+
+- errorfiles
+
+  check for errorfiles before using them
+
+- code cleanup
+
+  applied cleanup fixes from adam
+
+14.05.2004 18:47
+- fdevent handling
+
+  added a more generic callback interface to the fdevent structures which
+  simplifies the writing of plugins. this might destabilize lighttpd for a
+  while
+
+- cgi
+
+  fixed header parsing of the header is sent in chunks and the terminator is
+  sent in a single chunk
+
+- EINTR
+
+  fixed some occurences of EINTR which read()
+
+03.05.2004 23:55
+- portability
+
+  E.R.:
+  * portability fixes for Solaris 2.5
+
+02.05.2004 10:15
+- Expect: Handling
+
+  added incomplete support for Expect: 100-continue (RFC 2616 8.2.3) by
+  sending always 417 for every Expect-request (see 14.20)
+
+  we have been blamed for not supporting it:
+  http://lists.w3.org/Archives/Public/ietf-http-wg/2004JanMar/0059.html
+
+29.04.2004 23:07 - 1.1.9
+- usertracking
+
+  added a very basic usertracking cookie handler
+
+29.04.2004 19:37
+- network-writev
+
+  Adam:
+  * call munmap() on error in write()
+
+- docs
+
+  E.R:
+  * documented 'check-local'
+
+- test-env
+
+  made the shell scripts more portable (checked with zsh, bash and ksh)
+
+  fixed compilation on NetBSD
+
+28.04.2004 22:22
+- FastCGI
+
+  E.Rodichev:
+  * added "Authorizer" mode for FastCGI
+
+27.04.2004 18:08
+- ssl
+
+  Alexey Slynko:
+  * handle SSL_ERROR_WANT_READ or SSL_ERROR_WANT_WRITE in SSL_write the
+    right way.
+
+- FastCGI
+
+  add 'check-local' instead of the implicit 'if-docroot-is-set' handling
+  implemented at 24.04.2004 14:34
+
+  E.Rodichev:
+  * remove useless extra-/ in before uri.path
+  * add 'prefix' notation for FastCGI processes
+
+26.04.2004 16:52
+- code cleanup
+
+  patches from Alexey Slynko:
+  * remove the pidfile if lighttpd terminates the normal way (if not in chroot)
+  * init SSL before getting daemonized
+
+25.04.2004 19.15
+- mem-leak
+
+  fixed mem-leak on broken HTTP-headers
+
+- FastCGI
+
+  patches from E.Rodichev:
+
+  1. CONTENT_LENGTH
+  "If no data are attached, then this metavariable is either NULL or not
+  defined".
+
+  2. QUERY_STRING
+  If the Script-URI does not include a query component, the QUERY_STRING
+  metavariable MUST be defined as an empty string ("").
+
+  3. Doubling of REMOTE_ADDR removed.
+
+  patches from adam:
+  * fixed bug in the sizeof() patches from yesterday.
+  * some more *_long to *_off_t
+
+24.04.2004 14:34
+- FastCGI
+
+  don't check for localfile if 'docroot' for a FastCGI host is specified.
+
+24.04.2004 12:13
+- POST
+
+  fixed POST request handling
+
+- chunk-encoding
+
+  the generated HEX strings where broken since the 1.1.8
+  (this effected all HTTP/1.1 requests without Content-Length like FastCGI-PHP)
+
+- code cleanup
+
+  patches from adam:
+  * malloc + memset -> calloc
+  * sizeof(int) -> sizeof(<variable>)
+  * assign fd_set instead of memcpy()
+  * init fd -> connection fd pointers to -1
+
+16.04.2004 08:48 - 1.1.8
+- code cleanup
+
+  don't reuse buffer > 64k (see settings.h)
+
+  added server.max-request-size to limit the maximum request-body size
+  (in kBytes)
+
+  don't accept HTTP-request headers larger then 32kBytes (see settings.h)
+
+  minor speed improvements in the request-parser
+
+  More cleanup patches from adam:
+
+  * change pre-ANSI C/valid C++ syntax for function declarations/definitions
+    from using () to (void).  Ex: int foo(); --> int foo(void);
+  * use static linkage as much as possible, to limit possible symbol
+    collisions
+  * whack more unneeded variables
+  * try and prevent any errno clobbering by storing the old errno value before
+    any subsequent system calls, and restoring before function exit.
+  * change printf syntax for unsigned variables from %d to %u
+
+15.04.2004 18:41
+- code cleanup
+
+  handle all int != size_t cases in fcgi.c correctly
+
+  check headerfields to have a value
+
+  handle both EINVAL cases of writev() before the can occur
+
+  limit content-length to SSIZE_MAX
+  disallow negative content-length
+
+  the usage of ltostr() has been reduced to the minimum in favour of
+  buffer_/append|copy)_(long|off_t)
+
+  dropped ultostr() and ultohex() in favour of buffer_*
+
+15.04.2004 16:35
+- portablity
+
+  more patches from adam:
+
+  * remove warnings for unused parameters and variables
+  * remove warnings for mismatched pointer assignments
+  * change "gtime_r" to "gmtime_r"
+
+13.04.2004 20:48
+- test-cases
+
+  made the 'make check' target self-contained
+
+  In our case we have to call the targets in the following order:
+
+  $ ./configure ...
+  $ make
+  $ make install
+  $ make check
+
+  because the path to the plugins is hardcoded in the binary itself
+
+  using
+
+  $ ./configure --prefix=/tmp/lighttpd-1.1.x/
+  ...
+
+  will help if you don't really want to install before testing.
+
+13.04.2004 00:05
+- portability
+
+  adam sent another patchset:
+
+  * Wrap PCRE-specific data member access with an #ifdef
+  * Add const to pointer using return value from dlerror()
+  * Explicitly initialize pointer in the lemon parser to 0,
+    in order to catch missing else { } clause
+  * Use a time_t rather than an int for gmtime() call.  On some
+    systems (including 32- and 64-bit SPARC) time_t is a long.
+
+12.04.2004 17:00 - 1.1.7
+- fastcgi
+
+  strip WS after HTTP-response headers coming from the FastCGI process
+
+  added REMOTE_USER to the Server->FastCGI headers
+  removed HTTP_AUTHORIZATION from the Server->FastCGI headers
+
+12.04.2004 10:24
+- cgi
+
+  if we don't get a partial HTTP-response-header send the content out as soon
+  as the cgi script is finished
+
+12.04.2004 01:23
+- compression
+
+  added bzip2 compression (supported by w3m)
+
+12.04.2004 00:12
+- configfile
+
+  add some usefull error messages if the tokenizer or the parser fail to
+  read the configfile
+
+11.04.2004 22:04
+- configure
+
+  added --with-ldap and --disable-lfs to the configure options
+
+11.04.2004 20:28
+- 64bit offset size
+
+  disable linux-sendfile support for linux 2.4.x for now as it don't
+  support 64bit transfers
+
+  fixed all assignments on the path from the stat() to the Content-Length
+  HTTP-header
+
+- head requests
+  set content-length in HEAD requests
+
+- accesslog
+
+  write accesslog entry on network error
+
+  write the correct amount of byte written to the accesslog
+
+11.04.2004 11:48
+- code cleanup
+
+  moved the config for the cgi-plugin from config.c to the plugin.
+
+  moved some buffers which were only used by a one or two plugin from
+  the server-structure to the plugins
+
+  keeping the plugins independent from the server-core is a 'good thing'
+
+10.04.2004 19:06
+- configfile parser
+
+  removed the leaks from the configfile parser
+
+09.04.2004 23:15 - 1.1.6
+- stricter http-parser
+
+  added line-folding although noone really seems to use it.
+
+09.04.2004 18:42
+- configfile parser
+
+  the hand-written configfile parser has been replaced by a LALR(1) one.
+  'lemon' from the sqlite guys has been used to generate the parser.
+
+- by-host, by-url, by-file, by ...
+
+  $HTTP["url"] =~ "~$" {
+    access.deny = "all"
+  }
+
+  $HTTP["host"] =~ "." {
+    simple-vhost.server-root    = "/home/weigon/wwwroot/servers/"
+    simple-vhost.default-host   = "grisu.home.kneschke.de"
+    simple-vhost.document-root  = "pages"
+  }
+
+  $HTTP["host"] == "incremental.home.kneschke.de" {
+    server.docroot              = "/hasdasd"
+  }
+
+  at least the parser can handle it now. Currently there is no real support
+  for this context-based config-option. But the syntax and the parser are
+  done.
+
+09.04.2004 10:58
+- ssl support
+
+  enable ssl support again
+
+- mmap
+
+  enabled mmap+write again
+
+08.04.2004 12:34
+- stricter http-parser
+
+  based on a thread at
+
+  http://lists.w3.org/Archives/Public/ietf-http-wg/2004JanMar/0050.html
+
+  the HTTP-parser has been adjusted to be more correct when it comes to
+  request-header fieldnames
+
+  the whitespace handling around the ':' has been relaxed as requested
+
+07.04.2004 17:06
+- sigaction
+
+  use sigaction instead of signal if possible
+
+07.04.2004 13:55
+- accesslog
+
+  use localtime-timestamps in accesslogs if struct tm has a tm_gmtoff field
+
+07.04.2004 10:41 - 1.1.5
+- -D_REENTRANT
+
+  solaris + localtime_r() needs it
+
+07.04.2004 02:54
+- mod_auth + ldap
+
+  added a ldap backend to the auth plugin.
+
+06.04.2004 13:37
+- pidfile
+
+  fixed the permissions of the pidfile (Matthijs van der Klip)
+
+- specfile
+
+  merge the RedHat and SuSE specfile with Matthijs
+
+- 64bit file-offsets
+
+  moved the FILE_OFFSET_BITS settings from the config.h the Makefile to enable
+  64bit offsets the right way
+
+06.04.2004 12:32
+- mod_expire
+
+  added an apache compatible mod_expire which adds Expires: headers to the
+  request
+
+  expire.url = ( "/buggy/" => "access 2 hours" )
+
+05.04.2004 22:34
+- solaris devpoll
+
+  forgot to provide the infrastructure to actually enable the devpoll event
+  handler. the same has been done for the freebsd-kqueue handler (which
+  doesn't work yet)
+
+  fixed the devpoll support while testing it on a real solaris box
+
+05.04.2004 09:49
+- debian
+
+  added debian packaging support written by Vincent Wagelaar
+
+- solaris
+
+  Another set of patches for Solaris from Adam
+  * Detect <sys/devpoll.h>
+  * Detect and include <sys/filio.h> for definition of FIONREAD
+  * Detect and link against the library exporting hstrerror
+  * Correct typo in SENDFILE_LIB
+  * Use__sun instead of __solaris__ for detecting operating system.
+    Please see http://predef.sourceforge.net/preos.html for more
+    detail
+  * Explicitly cast arguments to isalpha() and toupper() to unsigned
+    char.  The man page says that the functions support the range of
+    an unsigned char, and EOF.
+  * Include <limits.h> and define UIO_MAXIOV as IOV_MAX for Solaris.
+
+04.04.2004 18:05 - 1.1.4
+- pidfile
+
+  added pidfile writing after deamonizing
+
+04.04.2004 01:05
+- fdevent
+
+  added framework for freebsd_kqueue and solaris_devpoll
+
+  the solaris_devpoll one might event work (untested)
+
+03.04.2004 16:41
+- network
+
+  added framework for filebased chunks
+  - read-write + mmap-write
+  - linux-sendfile
+  - freebsd-sendfile
+  - solaris-sendfilev (untested)
+
+  and memorybased chunks
+  - write
+  - writev
+
+  made TCP_CORK a 'global' flag around the write_chunkqueue-calls
+
+  the writev() support should improve the performance for all non-static
+  pages.
+
+  170 req/s against 158 req/s for the following script if writev() is used
+  instead of write()
+
+  <?php
+
+  for ($i = 0; $i < 1000; $i++) {
+      print $i."<br />\n";
+      flush();
+  }
+
+  ?>
+
+28.03.2004 13:42
+- cleanup
+
+  applied some cleanup patches submitted by Adam:
+  * variables modified in signal handlers should be sig_atomic_t
+  * assert statements should not have side effects
+  * STD{IN,OUT,ERR}_FILENO preferred instead of {0,1,2}
+  * dieing --> dying
+  * SEGFAULT calls abort directly, instead of derefencing a NULL pointer
+
+- mod_accesslog
+
+  modified the accesslog format to be CLF compatible
+  set locale for LC_TIME to C
+
+26.03.2004 16:13
+- path info
+
+  enabled the pathinfo code again
+
+
+25.03.2004 13:30 - 1.1.3
+- portability
+
+  compiles fine now without any patches on IRIX
+
+- hostname detection
+
+  reworked "get the hostname for HTTP/1.0 requests which don't specify a
+  Host: ..." to only query the name in this single case for the server side
+  of the connection
+
+- errorlog handling
+
+  stderr is only used until the errorlog is init'ed
+  if no error-log is specified, syslog() is used
+  if cycling error-log fails, syslog() is used
+
+- accesslog cycling
+
+  don't fall back to stdout anymore
+
+- event-handler
+
+  use poll() as the default event-handler again
+
+24.03.2004 01:37 - 1.1.2a
+- error messages
+
+  added some hints to the failing error-messages
+
+22.03.2004 01:58 - 1.1.2
+- configure
+
+  some protability changes to get the 'inline' working with the MIPS CC
+
+21.03.2004 22:00
+- mod_rewrite, mod_redirect
+
+  reading the config for those two plugins was not working
+
+- fdevents
+
+  changed the compile time setting for the event handling into a run-time
+  setting.
+
+  server.event-handler = "select" # poll, linux-rtsig, linux-sysepoll
+
+  added sys_epoll() for linux 2.6
+
+  select       - all systems
+  poll         - Linux 2.1.23+, all XPG4-UNIX
+  sigio        - linux 2.4.0+
+  sysepoll     - linux 2.5.66+
+
+           1000-4k-nok   1000-100k-nok
+  select       1776.99          296.52
+  poll          678.02          607.28
+  sigio        3754.46         1411.23
+  sysepoll     3817.67         1431.02
+
+21.03.2004 00:10
+- configure script
+
+  rewrote large parts of the lib/header detection of the configure script
+
+20.03.2004 01:39
+- fastcgi
+
+  as the docroot on external hosts might be different than the webserver
+  docroot it can now be specified in the config:
+
+  fastcgi.server            = ( ".php" =>
+				( "grisu" =>
+				  (
+				    "host" => "192.168.2.41",
+				    "docroot" => "/home/jan/servers/",
+				    "port" => 1026
+				  )
+				)
+			      )
+
+  a huge internal cleanup in the config handling made the code more readable.
+  some more warnings and error checking should track most of the config
+  errors for the fastcgi plugin
+
+19.03.2004 12:34
+- external patches
+
+  Matthijs van der Klip submitted three nice patches:
+  - turn off writing in mod_status if status.rrd-reports is set to disable
+  - fix for a debug message
+  - get the hostname for HTTP/1.0 requests which don't specify a Host: ...
+  - rc-script for RedHat
+
+- documentation
+
+  added a documentation section about authentification
+  - doc/authentification.txt
+
+19.03.2004 05:11
+- optimizations
+
+  implemented special versions of
+  - strcasecmp (array_strcasecmp)
+  - isdigit, isalpha, isalnum (light_*)
+
+  added a faster check for a finished header
+
+  after disabling all modules it is still possible to get 20 kreq/s.
+
+15.03.2004 19:45 - 1.1.1
+- localizer server
+
+  added the localizer-server module to the code
+
+- chunked-encoding
+
+  Apple's Safari or HTTP-Handler doesn't handle chunked-extensions defined by
+  RFC 2616 correctly and doesn't ignore them. Disabled the chunked-extension
+  which were just used for debugging purposes.
+
+07.03.2004 12:20
+- optimization
+
+  moved the checks if a plugins support a given function from the dispatcher
+  (plugins_call) to plugins_call_init() to do the check only once.
+
+  equalized the plugins functions to only two types:
+  SERVER_FUNC()
+  CONNECTION_FUNC()
+
+  replaced all handwritten plugin_call-handlers with macros
+
+  made all plugin-functions 'static'
+
+  with all plugins loaded we are at 15kreq/s gain
+  without any plugin loaded at 16kreq/s
+
+  before the change we were at 13kreq/s
+
+06.03.2004 21:13
+- compilation fixes
+
+  fixed some warnings on FreeBSD and NetBSD by adding
+  #include <netinet/in.h>
+
+  ifdef'ed a pcre-entry in base.h
+
+  remove #define _XOPEN_SOURCE from http_auth.c for IRIX
+  crypt() on Linux needs _XOPEN_SOURCE
+
+06.03.2004 19:18 - 1.1.0
+- authentification
+
+  added htpasswd and htdigest backends to work against user-files generated
+  by htpasswd and htdigest.
+
+  for basic auth:
+  - plain
+  - htpasswd (crypt only)
+  - htdigest
+
+  for digest auth:
+  - plain
+  - htdigest
+
+06.03.2004 17:35
+- authentification
+
+  check the method in the authorization header againt the configured method
+
+06.03.2004 14:54
+- hostname parsing
+
+  added a RFC-2396 conforming "Host:" parser
+  added 17 checks for the parser
+
+06.03.2004 10:25
+- configuration
+
+  added a warning for unknown configuration variables.
+
+  dropped the 'specific-for.url' ideas for now as it is not known yet how to
+  implement it the right way
+
+  renamed some config-variables to reflect there actual meaning
+  - server.host -> server.bind
+  - server.virtual-* -> simple-vhost.*
+  - server.userid -> server.username
+  - server.groupid -> server.groupname
+  - server.docroot -> server.document-root
+
+
+05.03.2004 15:36
+- fastcgi
+
+  internals: moved all mod_fastcgi settings from the global struct to the
+    plugin itself
+
+- vhosting
+
+  got a patch for enhanced virtualhosting from christian kruse -> mod_evhost
+
+  moved the virtual hosting config (server.virtual-*) to it's own module
+  called mod_simple_vhost
+
+23.02.2004 10:06
+- configfile
+
+  rearragned the config-file structure again to be able to add settings for
+  a given URL, Host, Filename, ...
+    This change affects some config-options directly (access.deny,
+  url.rewrite, url.redirect, virtual-hosting, ...)
+
+  added 'specific-for.url' for url specific config settings
+
+- digest auth
+
+  FIX: md5-sess type
+
+  seperate the auth-backend stuff
+
+13.02.2004 22:23 - lighttpd 1.0.3
+- content-length + POST
+
+  FIX: If header and content didn't fit into one single packet the rest of
+       the content was not read correctly
+
+13.02.2004 01:07
+- content-length + POST
+
+  the check for content-length on a POST request vanished somehow in one of
+  the previous releases.
+
+- header search
+
+  FIX: the search for header fields was up to now case-sensitive. Now it is
+       like required by the standard case-in-sensitive.
+
+- browser bugs
+
+  w3m 0.2.5 adds an additional \r\n at the end of the POST requests which is
+  handled now
+
+10.02.2004 10:12
+- start script
+
+  took the suse rc-skeleton which states to be LSB compliant and modified it
+  for lighttpd needs
+
+09.02.2004 11:48
+- HEAD requests
+
+  FIX: HEAD requests for static files delived the content from the GET
+       request. (test case is added)
+
+08.02.2004 15:53
+- directory listings
+
+  FIX: the pathname has not encoded at all before it was transfered to the
+       browser. a proper url and html-encoding has been added.
+
+  added modification-time and filesize to the output
+
+  added a basic css for the virtual listings
+
+07.02.2004 22:15 - lighttpd 1.0.2
+- sample configfile
+
+  rearranged the config-file to have all the important options at the top
+
+- docs
+
+  added a mod-rewrite options
+
+- mod_accesslog
+
+  stdout is no longer used a default for the accesslog
+
+- error-messages
+
+  the 404 is now reported in the error-log
+
+07.02.2004 17:30
+- configfile handling
+
+  if a key is used twice like
+
+  url.rewrite = ( "url1" => "url")
+  url.rewrite = ( "url2" => "url")
+
+  you get an error now. You have to write:
+
+  url.rewrite = ( "url1" => "url",
+                  "url2" => "url")
+
+31.01.2004 12:22 - lighttpd 1.0.1
+- log cycling
+
+  added a sighup-handler to the plugin interface and fixed the log-cycling
+  for access-logs
+
+- portability
+
+  disabled the interval-time optimization on IRIX
+
+- documentation
+
+  added a lot of new documentation to README
+
+31.01.2004 10:59
+- status module
+
+  added two new options rrd-dir and rrd-reports:
+
+  rrd-reports = (boolean)  # enables RRD-reports
+  rrd-dir     = (string)   # path for the daily status-files
+
+  fixed the "status-files in /"-bug this way
+
+
+22.01.2004 13:38 - lighttpd 1.0.0
+- simple docroot
+
+  fixed handling of docroots if virtual-host is disabled
+
+27.12.2003 11:12
+- license handling
+
+  added the first interface to license handling.
+
+25.12.2003 23:48
+- protability
+
+  Verified again that the code compiles and runs cleanly on Linux, FreeBSD,
+  NetBSD and IRIX
+
+  compiling with gcc and the option -pedantic works fine
+  compiling with mipspro cc works fine, too
+
+- tests
+
+  added some more tests: 39 tests
+
+25.12.2003 16:01
+- protability
+
+  some compile fixes for FreeBSD have been applied and a new switch has been
+  added to choose between IPv4 and IPv6 on FreeBSD.
+    (cmdline: -6, configfile: server.use-ipv6)
+
+- packaging
+
+  cleaned up the specfile for building RPMs
+
+21.12.2003 01:00
+- authorization
+
+  brought basic and digest auth back to life. this module as the last one
+  which had to be updated after the config-file changes
+
+- test harness framework
+
+  add 3 tests for basic auth
+
+20.12.2003 22:10
+- compression
+
+  added gzip compression (gzip-header + deflate + crc)
+
+- test harness framework
+
+  added a 22 tests to verify the correct behaviour of lighttpd
+
+- request parsing
+
+  GET http://www.yahoo.com/ HTTP/1.0
+
+  is handled now as
+
+  GET / HTTP/1.0
+
+- plugins
+
+  moved FastCGI and CGI handling into modules which can be loaded at run-time
+
+17.12.2003 13:18
+- compression
+
+  the directory structure is now build automaticly
+
+15.12.2003 01:00
+- compression
+
+  added a compression cache to the compression module (mod_compress)
+
+  Vary: Accept-Encoding is set now as it influences to delivered stream of
+  bytes. This is important for caches.
+
+10.12.2003 00:24
+- config files
+
+  a new config-file format is ready for the final release of lighttpd.
+
+  it supports:
+
+  server.docroot   = "string"
+  server.host      = integer
+  server.modules   = ( "string", "string" )
+  server.mimetypes = ( "key" => "value" )
+  server.complex   = ( "key" => ( "string", integer ),
+                       "string",
+		       integer )
+
+  the syntax should look familar to all who worked with Perl or PHP.
+
+  config-file handling has been seperated into a parser and a lexer. Both
+  are currently written by hand and will propably be rewritten into bison +
+  flex if time permits. But that would be a cosmetical change.
+
+05.12.2003 03:07
+- status-page
+
+  improved the status page to display
+  - the current connection-stati
+  - average throughput over 5 seconds
+    (requests/s and output-bound traffic)
+
+  now you can see what is going on in the server
+
+- access-log
+
+  the accesslog is now a module and can be disabled by just removing the
+  plugin from the list of loaded plugins
+
+04.12.2003 16:18
+- chroot-ing
+
+  how-to: using chroot
+
+  - chroot to /home/www/
+  - docroot at /servers/<hostname>/pages/
+  - defaulthost www.example.org
+
+  e.g. (external view)
+  /home/www/servers/www.example.org/pages/index.html
+
+  (in chroot)
+  /servers/www.example.org/pages/index.html
+
+  config:
+
+  chroot  /home/www/
+  userid  wwwrun
+  groupid nogroup
+
+  virtual-server-root /servers/
+  virtual-server-default-host www.example.org
+  virtual-server-docroot /pages/
+
+  The FastCGI process is living outside this chroot definition as it is
+  started seperatly.
+
+01.12.2003 02:06
+- cleanup
+
+  in preparation for the first stable release some internals had to be
+  cleaned up. Basicly it was a cleanup of workflow of the creation of the
+  response-header. All modules can use a clean interface for this purpose
+  now. This is espacially usefull for all modules which have to pass some
+  HTTP-headers to the client.
+
+29.11.2003 22:22
+- modules
+
+  finally moved the modules to shared libraries and cleaned up some code
+  path to become more readable.
+
+  So far we have:
+
+  mod_rewrite
+  mod_redirect
+  mod_access
+  mod_auth
+  mod_cache
+  mod_chat
+  mod_status
+  mod_maps
+
+28.11.2003 18:16
+- redirects
+
+  as lighttpd supports url-rewriting redirection was a few lines of new code.
+
+  redirect ^/wishlist/(.+)    http://jan.kneschke.de/wishlist/$1
+
+  rewrite  ^/wishlist/(.+)    /new/wishlist/$1
+
+28.11.2003 17:00
+- signal stuff
+
+  setitimer is used to send a event every second to call time() only once a
+  second. another system call which has been remove from the main-loop.
+
+  sending HUP to lighttpd will close and re-open the logfiles. this is used
+  for cycling logfiles.
+
+#! /bin/sh
+
+###
+#
+# a simple logfile rotator for lighttpd
+#
+
+DATE=`date +"%Y%m%d-%H%M"`
+LPID=`pidof lighttpd`
+mv access.log access.log.${DATE}
+kill -HUP ${LPID}
+gzip access.log.${DATE}
+
+27.11.2003 01:07
+- native win32 port
+
+  a first attempt for a native win32 has been done. For now mingw is the
+  base for the development as it provides a basic unix-like framework for
+  building native win32 applications.
+
+  the most internal files have been ported and the over all progress is
+  going well. At the end this will just be a prove of concept.
+
+26.11.2003 01:17
+- access denied
+
+  added a access-deny filter to block specific urls like
+
+  access-deny ~
+  access-deny .inc
+
+17.11.2003 01:06
+- bug fixing
+
+  a fstat() on a opened fd which has changed reports wrong the file-info.
+  Using stat() again helps to solve this problem.
+
+  the sig-io version doesn't suffer from this problem.
+
+  the etags are now used for verifing file-cache-entries.
+
+- chat
+
+  enabled the internal login mechanism again
+
+  added support transfering session-infos over MySQL.
+
+15.11.2003 00:19
+- optimizing
+
+  added a buffer_equal_reverse function which is optimized version of strcmp
+  which is going backwards as pathnames are often the same for in the first
+  bytes.
+
+  wrote a one-pass parser for the request-header. The combination of
+  strstr(..., "\r\n") to seperate lines and strchr(..., ':') to seperate
+  keys from values more or less touched every byte twice.
+
+  we are still at 18.000 req/s for 4kb keep-alive requests even with etags
+  and handling all header fields.
+
+14.11.2003 17:26
+- fcgi
+
+  Content-Type wasn't passed correctly to the FastCGI app. HTTP_CONTENT_TYPE
+  was sent instead.
+
+- cache
+
+  provided access to the Session-ID
+
+- error-log
+
+  the timestamp is now written in a human readable form
+
+22.10.2003 00:06
+- fcgi, cgi
+
+  added a special set of array-functions which are optimised for the "insert
+  only once" case.
+
+  this provides access to the headers which are now forwarded to the external
+  interfaces. Before this change only a limited set of request-headers were
+  forwarded.
+
+21.10.2003 11:58
+- modules
+
+  added a new module-hook after the basic-init of the module for handling
+  config-settings and prepare the overall operartion (like building
+  db-connections, compiling regexes, ...)
+
+- cache
+
+  use turckmm-cache 2.4.3 to get some numbers for the php-latency:
+
+  /usr/sbin/ab -n 10000 -c 10 http://alba.home.kneschke.de:1025/index.php
+
+  handling the cache-decision and the cache-hit in php:
+
+    cache-miss: 100% (-&gt; $version = 0)
+
+    plain        : 108.13 req/s
+    turckmm-cache: 218.39 req/s
+
+    cache-hit: 100% (-&gt; $version = 1)
+
+    plain        : 164.45 req/s
+    turckmm-cache: 653.98 req/s
+
+  handling the cache-decision and the cache-hit in the server:
+
+    cache-hit: 100%, but using index.cml
+
+    cml:           4918.84 req/s (no keep-alive)
+    cml:           6901.31 req/s (keep-alive)
+
+    cache-miss: 100%, but using index.cml
+
+    plain        : 108.39 req/s
+    turckmm-cache: 217.84 req/s
+
+  Conclusion:
+  - there is no loss in the cache-miss case through the cml-handling
+  - the cache-hit case can be improved dramaticly with lighttpd-cache
+  - turckmm-cache improves the cache-miss case alot
+
+20.10.2003 00:40
+- cache
+
+  the first 'real-life' test showed dramatic improvements in the req/s
+  handling.
+
+  The basic idea was to move the decision if a php-page can be taken from
+  the cache from the php-code to the webserver.
+
+  See here why this is a good thing:
+
+  the quite common code which works for http://jan.kneschke.de/ is using
+  templates and is quite static, but depends on 4 external files (the
+  menu-structure, the template, the current content, the class-file).
+
+  the index-file is always:
+
+  include_once "jk.inc";
+
+  $v = new view();
+  print $v->get(array(array ("file" => "content.html")));
+
+  It is more or less the same for all pages.
+
+  This basic setup can deliver 100 requests/s.
+
+  The next step has:
+  - application bases caching
+
+  as we know that each pages depends on those 4 files, you can check if they
+  have been modified since the last request and deliver the content from the
+  cache otherwise.
+
+  this increased the throughput to 150 req/s. (cache-hit ratio 100%)
+
+  The next logic step is to move the decision-making process out of the PHP
+  code as PHP is to slow for the cache-hit path:
+
+  a CML (Cache-Markup-Language) has been written which describes the whole
+  decision process which has been written in PHP-code before:
+
+
+output.content-type text/html
+
+output.include _cache.html
+
+trigger.handler index.php
+
+trigger.if  file.mtime("../lib/php/menu.csv") > file.mtime("_cache.html")
+trigger.if  file.mtime("templates/jk.tmpl") > file.mtime("_cache.html")
+trigger.if  file.mtime("content.html") > file.mtime("_cache.html")
+
+  if one of the 'trigger.if' statements is true the 'trigger.handler' is
+  called to generate the pages.
+
+  if none of the them is trigger the files from 'output.include' are sent to
+  the browser with content-type specified in the first line:
+
+  The result was very 'promissing':
+
+  5900 req/s with keep-alive
+  3800 req/s without keep-alive
+
+  (both for a cache-hit ratio of 100%)
+
+  for keep-alive this is factor <b>59</b> against the plain un-cached
+  version and still <b>39</b> againt the php-cache-version which is doing
+  exactly the same.
+
+  Time for party. :)
+
+19.10.2003 - 18:55
+- cache
+
+  the handling of functions has been improved. they are now 'plugable'. just
+  the dlopen() stuff is missing.
+
+  a new datatype has been added: the string
+
+  this makes it possible to evaluate something like:
+
+trigger.if unix.time.now() - file.mtime("head.html") > 30
+trigger.if mysql.query("SELECT count(*) " + \
+                       "  FROM structure AS struc, session AS sess " + \
+		       " WHERE struct.user = sess.user" + \
+		       "   AND sess.id = \"" + mysql.escape("ab\"c") + "\"")
+
+  you see:
+  - string operations (concat)
+  - handing of escape-sequences
+  - functions
+  - comparisions
+
+18.10.2003 - 13:39
+- cvs
+
+  imported everything into the cvs server which makes the whole revision
+  handler a lot easier. The CVS server was up all the time but not used.
+  Importing required 5 minutes of work which included merge the freebsd and
+  the linux tree.
+
+- compilers + platforms
+
+  on a regular various compilers and platform are check to compile with with
+  the current code base:
+
+  platform | os                  | compiler     | state
+  ---------+---------------------+--------------+---------
+  ia32     | Linux 2.4.22        | gcc 2.95.3   | ok
+  ia32     | FreeBSD 5.1-CURRENT | gcc 3.3.1    | ok
+  mips64   | IRIX 6.5            | gcc 3.2.2    | ok
+  misp64   | IRIX 6.5            | MIPSpro 7.41 | ok
+
+  the mipspro compiler revealed some warning which resulted in a nice
+  code-cleanup that made the code more readable.
+
+18.10.2003 - 03:00
+- e-tags and friends
+
+  in preparation for the php-conference at the begin of november in
+  frankfurt/main the server has the support some more caching/proxy tags
+  like:
+  - E-Tag (14.19) [done]
+  - If-Match (14.24)
+  - If-None-Match (14.26) [done]
+  - If-Range (14.27)
+
+  Section (13.3.3) binds them together. [RFC 2616]
+
+  using lxr.kde.org and lxr.mozilla.org revealed that
+  - konqui only uses if-none-match
+  - mozilla uses if-none-match and if-range
+
+  it looks like it isn't that easy to trigger the if-range case.
+
+  As ulf suggested the etag is a hash of file-size, inode-number and mtime.
+
+- fd-caching
+
+  ulf just phoned me ask proposed the free the cache more agressivly in case
+  of fd-shortage. increasing the the fd-limit is the better idea. :)
+
+17.10.2003 12:45
+- chat
+
+  finished the mysql-support for storing the sessions
+
+12.10.2003 20:56
+- valgrind
+
+  used valgrind again to verify that the code a free of mem-leaks and found
+  a 'leak generator' in the chunk-api.
+
+  the last few leaks were just some missing free()'s at the end of the
+  program run which would have been freed anyway.
+
+  at the end valgrind couldn't find any missing free()'s.
+
+11.10.2003 12:09
+- FastCGI
+
+  reduced the number of system calls for FastCGI to WebServer to 2 calls per
+  fd-event. (ioctl() + read())
+
+  this has no direct effect of the performance of the server, but improves
+  the possible througput of the load-balancer.
+
+10.10.2003 21:09
+- FastCGI - load-balancing
+
+  a brown paper bug has been fixed which caused to decreasing throughput if
+  load-balancing was enabled.
+
+
+  benchmarking the req/s with load-balancing shows really nice results:
+
+
+  server   : req/s   comment
+  ---------+--------------------------------------------------
+  ulf      : 764.06  (php)
+  lappi    : 800.06  (php)
+
+  ulf+lappi: 1526.95 (2 * php)
+
+  grisu    : 1265.66 (php + ab + lighttpd)
+
+
+  all      : 1647.72 (3 * php + ab + lighttpd)
+  all(nice): 1904.40 (same as all, but the local php on grisu
+                      has been 'nice -20'd)
+
+
+  if a php is run on the load-balancer it has to get a lower priority than
+  the load-balancer itself as to handle the work of (here) 3 php-servers.
+
+
+10.10.2003 15:11
+- java ?
+
+  http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/common/AJPv13.html
+
+08.10.2003 21:08
+- gigE
+
+  Last week 3 RTL8169S gigE cards arrived and were installed in the
+  test-framework.
+
+  They are very cheap (20 Euros) and are a good start for a low-level
+  benchmark network.
+
+  First result show us:
+
+  48 Mb/s with ab.
+
+  The webserver and the test-server are equipped with a 2000+ AMD CPU. The
+  system load 95%, user load is 3%, the rest is idle on both plattforms.
+
+  After some calculations at gets clear that there are various bottlenecks:
+
+  1. The PCI-Bus (32bit/33Mhz) can only transfer 133Mb/s
+    - 48 Mb/s TCP-Traffic results in 55Mb/s Ethernet-Traffic (verified with
+      slurm) [outgoing]
+    - there is about 10Mb/s incomming traffic at the PCI bus which the
+      requests
+    - the rest of the devices at the PCI bus are eating the last few mb/s
+  2. IRQ-Handling
+    - There are reasons why the RTL8169S cards are so cheap
+      - they can't send jumbo-frames
+      - only 8k/64k buffers which results in a interrupt every 3 packets
+      - they are at least handling checksum offloading for ip, udp and tcp
+
+  In the end there is a need for new hardware to limit the throughput by the
+  Ethernet again.
+  - PCI-X, 64bit-PCI, ...
+  - 'real' gigE-Network cards
+  - ...
+
+
+  BTW: 2.4.22 + the r8139 driver are very flacky and resulted in 3 lock-ups
+  for today.
+
+  In another test the dual-PPro-FreeBSD 5.1-CURRENT machine has been used as
+  server with a gigE interface (re0) at has shown that the CPU is the limit
+  for this combination. The maximum thoughput was 7Mb/s.
+
+  Another small benchmark:
+  $ ab -n 1000 -c 10 http://192.168.2.41:&lt;port&gt;/lighttpd-20030925.tar
+
+  port  | server          | CPU Idle
+  ------+-------�---------+-----------
+  1025  | lighttpd        | 75%
+  1026  | thttpd 2.23b1   | 75%
+  1027  | boa-0.94.14rc17 | 69% *
+  1028  | apache 1.3.x    | 77%
+
+
+  In all 4 cases the thoughput was 8600 kbytes/s.
+
+  * boa had 9 failed transfers.
+
+- FreeBSD
+
+  The problems with FreeBSD 5.0-RELEASE vanished after updating to
+  5.1-CURRENT.
+
+26.09.2003 18:22
+- FreeBSD
+
+  A SMP-machine has been added to the test-farm. It is running FreeBSD
+  5.1-RELEASE and will help to the improve the scalability.
+
+  fixed sendfile() handling.
+
+- FreeBSD problems
+
+  FreeBSD-5.1-RELEASE-SMP
+  2 * Pentium Pro 200 MHz
+  192.168.2.38 (doubleheart)
+  (webserver [lighttpd at port 1025, thttpd at port 1027])
+
+  Linux 2.4.20
+  1 * AMD 2000+
+  192.168.2.10 (grisu)
+  (ab)
+
+  Problem:
+  Connections are reset by the kernel without any application intervention.
+
+  Calling 'ab' (apachebench) at grisu with the following paramters:
+
+  /usr/sbin/ab -n 10000 -c 10 http://192.168.2.38:1025/index.html
+
+  results in the following output:
+
+  ...
+  Time taken for tests:   40.610 seconds
+  Complete requests:      10000
+  Failed requests:        5980
+     (Connect: 0, Length: 5980, Exceptions: 0)
+  ...
+
+
+  This is reproducable and the number of failed requests is always
+  5980 +/- 50 requests. In other words: after 4000 requests tcpdump shows
+  the following output:
+
+  tcpdump shows:
+
+  00:53:48.923029 192.168.2.10.39774 &gt; 192.168.2.38.1025: S [tcp sum ok]
+    1013737315:1013737315(0) win 5840 &lt;mss 1460,sackOK,timestamp 5208461
+    0,nop,wscale0&gt; (DF) (ttl 64, id 7918, len 60)
+0x0000   4500 003c 1eee 4000 4006 964d c0a8 020a        E..&lt;..@.@..M....
+0x0010   c0a8 0226 9b5e 0401 3c6c 6763 0000 0000        ...&amp;.^..&lt;lgc....
+0x0020   a002 16d0 eeaa 0000 0204 05b4 0402 080a        ................
+0x0030   004f 798d 0000 0000 0103 0300                  .Oy.........
+
+  00:53:48.923330 192.168.2.38.1025 &gt; 192.168.2.10.39774: S [tcp sum ok]
+    1803860672:1803860672(0) ack 1013737316 win 65535 &lt;mss 1460,nop,wscale
+    1,nop,nop,timestamp 4459794 5208461&gt; (DF) (ttl 64, id 6821, len 60)
+0x0000   4500 003c 1aa5 4000 4006 9a96 c0a8 0226        E..&lt;..@.@......&amp;
+0x0010   c0a8 020a 0401 9b5e 6b84 bac0 3c6c 6764        .......^k...&lt;lgd
+0x0020   a012 ffff d4ce 0000 0204 05b4 0103 0301        ................
+0x0030   0101 080a 0044 0d12 004f 798d                  .....D...Oy.
+
+  00:53:48.924009 192.168.2.10.39774 &gt; 192.168.2.38.1025: . [tcp sum ok] ack 1
+    win 5840 &lt;nop,nop,timestamp 5208461 4459794&gt; (DF)
+    (ttl 64, id 7919, len 52)
+0x0000   4500 0034 1eef 4000 4006 9654 c0a8 020a        E..4..@.@..T....
+0x0010   c0a8 0226 9b5e 0401 3c6c 6764 6b84 bac1        ...&amp;.^..&lt;lgdk...
+0x0020   8010 16d0 e9c3 0000 0101 080a 004f 798d        .............Oy.
+0x0030   0044 0d12
+
+  00:53:48.924150 192.168.2.10.39774 &gt; 192.168.2.38.1025: P [tcp sum ok]
+    1:29(28) ack 1 win 5840 &lt;nop,nop,timestamp 5208461 4459794&gt; (DF)
+    (ttl 64, id 7920, len 80)
+ 0x0000   4500 0050 1ef0 4000 4006 9637 c0a8 020a        E..P..@.@..7....
+ 0x0010   c0a8 0226 9b5e 0401 3c6c 6764 6b84 bac1        ...&amp;.^..&lt;lgdk...
+ 0x0020   8018 16d0 27e4 0000 0101 080a 004f 798d        ....'........Oy.
+ 0x0030   0044 0d12 4745 5420 2f69 6e64 6578 2e68        .D..GET./index.h
+ 0x0040   746d 6c20 4854 5450 2f31 2e30 0d0a 0d0a        tml.HTTP/1.0....
+
+  00:53:48.924728 192.168.2.38.1025 &gt; 192.168.2.10.39774: R [tcp sum ok]
+    1803860673:1803860673(0) win 0 (ttl 64, id 6831, len 40)
+0x0000   4500 0028 1aaf 0000 4006 daa0 c0a8 0226        E..(....@......&amp;
+0x0010   c0a8 020a 0401 9b5e 6b84 bac1 0000 0000        .......^k.......
+0x0020   5004 0000 64ba 0000
+
+  SYN, SYN+ACK, ACK, DATA, RST
+
+  strace shows that no connection attempt has been reported to the
+  application which is poll()'ing the server socket.
+
+  /* the common loop without any block attempts */
+
+  accept(3, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, [0]) = 5
+  fcntl(5, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
+  read(5, "GET /index.html HTTP/1.0\r\n\r\n", 4095) = 28
+  stat("/home/jan/lighttpd-0.1.0/servers/", {st_mode=S_IFDIR|0755, st_size=512, ...}) = 0
+  fstat(6, {st_mode=S_IFREG|0644, st_size=4348, ...}) = 0
+  write(5, "HTTP/1.0 200 OK\r\nConnection: clo"..., 235) = 235
+  write(2, "1064875136: (network.c.210) 235 "..., 33) = 33
+  syscall_393(0x6, 0x5, 0, 0, 0x10fc, 0, 0xbfbff2c0, 0) = 0
+  close(5)                                = 0
+
+  /* no futher waiting connections */
+
+  accept(3, 0xbfbff700, [1852702730])     = -1 EAGAIN (Resource temporarily unavailable)
+
+  /* enter the main-loop */
+
+  gettimeofday({1769235301, 1663069807}, NULL) = 0
+  poll([{fd=3, events=POLLIN}], 1, 1000)  = 0
+  gettimeofday({4294967295, 65537}, NULL) = 0
+  poll([{fd=3, events=POLLIN}], 1, 1000)  = 0
+  gettimeofday({4294967295, 65537}, NULL) = 0
+  poll([{fd=3, events=POLLIN}], 1, 1000)  = 0
+  ...
+
+  (strace is broken for accept() and gettimeofday(), syscall_393() is sendfile())
+
+  after entering the main-loop the webserver doesn't receive any new POLLIN
+  events at all for the next 10-15 seconds. Any connection-attempt within
+  the period is, as you can see in the tcpdump output, accepted by the
+  kernel and the received data is thrown away as the kernel sends a RST.
+  After those 10-15 seconds the application gets a POLLIN event for the
+  server socket and the normal data-transfer taken place for the next 4000
+  requests.
+
+  This behaviour is reproducable with thttpd 2.20c and the current lighttpd.
+
+
+26.09.2003 11:42
+- localizer
+
+  ported the localizer-server application into a module for lighttpd. After
+  30 minutes the code was ported and funtional. This modules provides access
+  to the localizer-db by a HTTP-Interface and generates the response as
+  HTML, CSV and plain-text.
+
+  So far, the module-interface looks good and flexible enough.
+
+  7000 req/s is good enough too. Generating the HTML and querying the DB
+  needs some time.
+
+22.09.2003 08:40
+- modules
+
+  introduced a simple module interface which allow to hook into the process
+  of handling the requests. Basicly it allows to move the url-rewriter, the
+  auth-sub-system and the cache out of the main-code. The module-interface
+  will be extended to allow the cgi and the fastcgi sub-processes to be
+  moved into a module.
+
+15.09.2003 09:36
+- error-handling
+
+  fastcgi and cgi connections are now closed correctly if the corresponding
+  client-connection has died.
+
+14.09.2003 10:40
+- cgi
+
+  finally streaming works with CGI, too
+
+  this enable support for cgiirc.sf.net and friends which use streaming as
+  there transport mechanism.
+
+  streaming has been verified with cgiirc-0.5.2.
+
+- fdevents
+
+  there where some reports that sigio didn't work as expected. It just
+  reported no events at all. Looks like a known bug in the glibc on
+  those platforms.
+
+  Using poll() instead solve the problems.
+
+27.08.2003 22:12
+- rewrite
+
+  a pcre based rewrite engine has been integrated
+
+- cgi
+
+  the file-based cgi interface has been replace by two pipes.
+
+23.07.2003 13:29
+- fdevents
+
+  the whole fd-event handling has been reworked and several smaller bugs
+  and design-errors have fixed.
+
+  sigio, poll() and select() are working fine again.
+
+  On IRIX 6.5 SIGIO could be used, but without further testing poll() is used.
+
+- cgi
+  CGI-support is still broken.
+
+21.07.2003 18:46
+- dnotify
+
+  using the F_NOTIFY feautre of the Linux 2.4.x kernel gives anothre nice
+  performance boost as lighttpd can cache the stat()'s the right way, now.
+
+  23009.66 @ 5-4k-k which means +10% against 30.06.2003 14:03
+
+  for 1000-4k-nok the performace nearly doubles: 3730.23 goes up to 6144.39
+
+17.07.2003 13:21
+- FreeBSD
+
+  a small patch (#include &lt;&gt;) to compile lighttpd on FreeBSD again.
+
+08.07.2003 10:48
+- fileinfo-cache
+
+  A reallife test showed that the cache wasn't perfect at all as it made
+  lighttpd crash. This is fixed now.
+
+30.06.2003 17:40
+- lighttpd-bench
+
+  After some problems with other benchmarking tools for webservers the first
+  version of lighttpd-bench has been written.
+
+  It a revealed a nasty strange behaviour which was fixed by increasing the
+  listen-backlog from 5 to 1024.
+
+30.06.2003 14:03
+- fileinfo-cache
+
+  the fileinfo-cache has been relaxed a little bit and there are always 2
+  fstat()'s per file-request now. This isn't that dramatic:
+
+  21800.74 req/s is still a very good result (7-4k-k).
+
+29.06.2003 03:29
+- fileinfo-cache
+
+  a fileinfo cache has been added to reduce the number of system-calls to
+  stat and open a file.
+
+  in the releases before the same file was stat'ed at least 2 times plus a
+  stat on the docroot for each request. Now the stat()'s and the
+  corresponding open() + close() calls are cached and the number of system
+  calls has been reduced to the minimum:
+
+  $ strace -eopen,stat64,read,write,sendfile,accept,shutdown,close \
+    -p `pidof lighttpd`
+
+/* first connection */
+accept(3, {sin_family=AF_INET6, sin6_port=htons(56211),
+  inet_pton(AF_INET6, "::ffff:192.168.2.10", &amp;sin6_addr), sin6_flowinfo=0,
+  sin6_scope_id=0}, [28]) = 5
+accept(3, 0xbffff470, [28])             = -1 EAGAIN
+read(5, "GET /index.html HTTP/1.0\r\nUser-A"..., 4095) = 91
+stat64("/home/weigon/projects/lighttpd/servers/grisu.home.kneschke.de:1025/pages/",
+  {st_mode=S_IFDIR|0755, st_size=3656, ...}) = 0
+stat64("/home/weigon/projects/lighttpd/servers/grisu.home.kneschke.de:1025/pages//index.html",
+  {st_mode=S_IFREG|0644, st_size=4348, ...}) = 0
+open("/home/weigon/projects/lighttpd/servers/grisu.home.kneschke.de:1025/pages//index.html",
+  O_RDONLY) = 6
+write(5, "HTTP/1.0 200 OK\r\nConnection: clo"..., 235) = 235
+sendfile(5, 6, [0], 4348)               = 4348
+shutdown(5, 1 /* send */)               = 0
+close(5)                                = 0
+
+/* second connection */
+accept(3, {sin_family=AF_INET6, sin6_port=htons(56212), inet_pton(AF_INET6,
+  "::ffff:192.168.2.10", &amp;sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28])
+  = 5
+accept(3, 0xbffff470, [28])             = -1 EAGAIN
+read(5, "GET /index.html HTTP/1.0\r\nUser-A"..., 4095) = 91
+write(5, "HTTP/1.0 200 OK\r\nConnection: clo"..., 235) = 235
+sendfile(5, 6, [0], 4348)               = 4348
+shutdown(5, 1 /* send */)               = 0
+close(5)                                = 0
+
+
+  In the end we have a new speed record:
+
+  (ab -c 8 -n 100000 http://192.168.2.10:1025/index.html with poll())
+  Requests per second:    23435.67 [#/sec] (mean)
+
+  This is a speed increasement of 20-30% against the last internal benchmark.
+
+
+28.06.2003 02:30
+- caching framework
+
+  the trigger.if directive is working fine. the basic algebra is done ( +,
+  -, *, / and comperations =, &lt;=, &gt;=, &gt;, &lt; and the boolean logic
+  &amp;&amp; and || including braces)
+
+  two basic function are available:
+  - unix.time.now
+  - file.mtime(...)
+
+25.06.2003 17:33
+- caching framework
+
+  added output.include, output.content-type for a cache-hit and
+  trigger.handler for a cache-miss.
+
+  the actual decision is made be trigger.if which will be added tomorrow.
+
+15.06.2003 15:33
+- sig-io
+
+  After several other smaller optimisations lighttpd performs better with
+  sig-io under high load:
+
+                  sigio+poll        poll
+  c1000-4k-nok  :    2635.95     1643.39
+  c1000-4k-k    :    7335.68     6788.87
+  c1000-100k-nok:    2353.49     1217.73
+  c1000-100k-k  :    3097.89     2080.73
+
+
+  The user-space part has been optimized a lot. Now it is time to optimized
+  the number of context-switches between user and kernel-mode.
+
+  user    0m0.180s
+  sys     0m1.160s
+
+  a fileinfo-cache is the way to go.
+
+  struct {
+  	 buffer *name;
+	 struct stat st;
+	 int handler;
+	 ...
+
+	 int fd;
+	 void *mmap_p;
+  }
+
+11.06.2003 14:57
+- sig-io is back again
+
+  and it works fine.
+
+  sigio (Realtime-Signals under Linux 2.4.x) sends one signal per event and
+  buffers the rest of the events in a kernel queue. If the is full a SIGIO
+  is sent and poll() gets all events at once for further processing.
+
+
+  Currently the behaviour is a little bit strange:
+  - sig-io + poll() is good for non-keep-alive connections
+  - poll() for keep-alive connections
+
+  c1000-4k-nok: (1000 concurrent request, 4k filesize, no keepalive)
+  poll      : 1521.38
+  sigio+poll: 2124.00
+
+  c1000-4k-k: (1000 concurrent request, 4k filesize, keepalive)
+  poll      : 5882.35
+  sigio+poll: 1239.46
+
+  Very strange for now.
+
+09.06.2003 23:59
+- code-cleanup
+
+  the event-handling code has been rewritten to handle single events better
+  as they are expected from sig-io.
+
+  the fallback-mode of sig-io is broken now, but the normal poll() mode got
+  a 10% increasement in speed. This means the we are back the speed level of
+  20030308-0155 are as fast as zeus again.
+
+  Especially under higher load the current lighttpd performes better.
+
+09.06.2003 11:51
+- sig-io benchmark
+
+                    20030609-1151      20030608-2110       20030308-0155
+-c 10                  sigio       select()        poll()         poll()
+4k                :  7870.92        7937.77       8035.36        9443.76
+4k (keep-alive)   : 14098.41       14590.02      14275.52       17985.61
+100k              :  3366.32        3382.03       3261.15        3722.32
+100k (keep-alive) :  5544.77        5576.00       5573.20        5975.86
+-c 100
+4k                :  6144.77        5821.40       5714.29        6724.95
+4k (keep-alive)   :  9097.53        9213.19       8979.08       10833.06
+100k              :  2549.33        2495.94       2318.95        2607.36
+100k (keep-alive) :  4267.67        4283.94       4094.17        4314.06
+
+
+For -c 100 4k and 100k sig-io gives a small increasment.
+
+09.06.2003 01:00
+- sig-io
+
+  writing large files works now as expected. After removing the limit for
+  the chunks of sendfile the write-buffer-is-empty-again signal is
+  generated. that was missing.
+
+  321 of 10000 connections still have the wrong length. After that is fixed
+  it is time to start some benchmarks again.
+
+08.06.2003 21:10
+- sig-io
+
+  first attempts in getting SIGIO support running which were not very
+  successfull yet.
+
+- poll()/select() benchmark
+
+                        20030608-2110       20030525-1623  20030308-0155
+-c 10               select()        poll()         poll()         poll()
+4k                :  7937.77       8035.36        8166.60        9443.76
+4k (keep-alive)   : 14590.02      14275.52       14781.97       17985.61
+100k              :  3382.03       3261.15        3176.42        3722.32
+100k (keep-alive) :  5576.00       5573.20        5809.56        5975.86
+-c 100
+4k                :  5821.40       5714.29        5669.26        6724.95
+4k (keep-alive)   :  9213.19       8979.08        8418.22       10833.06
+100k              :  2495.94       2318.95        2314.28        2607.36
+100k (keep-alive) :  4283.94       4094.17        4456.92        4314.06
+
+
+  as the overall processing cycle has been rearranged the overall figures
+  changed in minor ranges. c100-4k-k increased, *-100k-k decreased.
+
+  At least it still works.
+
+08.06.2003 12:45
+- select()/poll()
+
+  implementate an abstration layer for fd-events (like eevry other webserver).
+  currently we support poll() and select().
+
+  This should bring us support for Mac OS X and propably Windows.
+
+04.06.2003 18:35
+- configure
+
+  lighttpd can now be build without ssl-support even if openssl is installed
+
+- protability
+
+  - on IRIX IPv6 is supported now out of the box
+  - for FreeBSD some missing haeders have been added
+
+04.06.2003 14:34
+- pipelining
+
+  adding support for pipeling introduces a problem if the request-header
+  was broken. this has been fixed now.
+
+- unneccesary slashes
+
+  when building pathes from different portions of a string (e.g. docroot +
+  virt-server-docroot + request-uri) slashes where added for security and
+  simplicity. This resulted in up to 5 adjacent slashes which caused no harm
+  but looked strange. (fixed)
+
+04.06.2003 09:57
+- start/stop messages
+
+  the error-log contains the start and end-times of the lighttpd process,
+  now.
+
+- configfile
+
+  the config-file parser has been relaxed to accepts tabs instead of spaces.
+
+- better error-handling
+
+  fixed a <a
+  href="http://bugs.php.net/?id=24009">bug in the FastCGI-SAPI of PHP</a>
+
+  if the fastcgi process dies or closes the connection unexpectedly we
+  return 500 now instead of closing the connection to the client.
+
+- Location
+
+  the CGI/1.1-rev-03 specification requires us to send Status 302 if a
+  Location-header is sent by the client and a Status-header is missing.
+
+- PATH_TRANSLATED
+
+  if PHP is compiled without --discard-path PATH_TRANSLATED has to be
+  provided.
+
+27.05.2003 15:54
+- directory listings
+
+  if a directory is requested and the directory doesn't contain a index-file
+  a directory-listing can be displayed. You have to enable directory-listings
+  in the config-file (directory-listings on)
+
+- url-decoding
+
+  up to know urls where not decoded at all (%26 -> . and so on). This has
+  been added. Unicode isn't supported as we use 8-bit chars internally.
+
+26.05.2003 00:44
+- pipelining
+
+  as Sascha required pipelining for his benchmarking tool it has been
+  implemented.
+
+  pipelining allows sending a bunch of requests at once without waiting for
+  the actual responses. This reduces the network-overhead and the
+  round-trip-time.
+
+- non-free()d memory
+
+  dmalloc helped to close some non-free()d memory. For the normal operation
+  this isn't important as only memory chunks which had to be free()d at the
+  end of the live-time of the lighttpd-process were not de-allocated.
+
+- partly-initialized variables
+
+  lighttpd wasn't initializing the main-structure which resulted in strange
+  behaviour in rare circumstances.
+
+
+25.05.2003 16:23
+- benchmarks
+
+  after removing some useless internal copies we are more or less at the old
+  speed levels.
+
+  after adding virtual-hosts 10% of the performance were lost. Using less
+  memcpy() operations might add several other boosts.
+
+  I've just checked how lighttpd compares to Zeus.
+
+                    lighttpd (current)       (old)
+-c 10                 20030525-1623  20030308-0155     Zeus 4_2
+4k                :         8166.60        9443.76      7278.55
+4k (keep-alive)   :        14781.97       17985.61     16496.21
+100k              :         3176.42        3722.32      3156.37
+100k (keep-alive) :         5809.56        5975.86      5460.30
+-c 100
+4k                :         5669.26        6724.95      5134.26
+4k (keep-alive)   :         8418.22       10833.06      8010.25
+100k              :         2314.28        2607.36      2688.32
+100k (keep-alive) :         4456.92        4314.06      4240.70
+
+23.05.2003 14:38
+- cgi-variables
+
+  HTTP_HOST was missing for the cgi-module while the fcgi-module passed it
+  through to the handler. Fixed that.
+
+- fcgi-errors
+
+  the connection to the fcgi was dropped and poll() reported an error, the
+  error wasn't reported to the client the right way.
+
+22.05.2003 23:02
+- authorization
+
+  the first password-storage has been added:
+
+  [auth]
+  backend plan
+  plain-userfile &lt;filename&gt;
+
+  require   /download/ user=jan|user=anom
+  http-auth /download/ "download archiv" digest
+
+  groups are prepared but not implemented. basic and digest are working fine.
+
+20.05.2003 17:53
+- authentification
+
+  The auth-methods from RFC 2617 have been added.
+  - auth basic
+  - auth digest
+
+  The only source for accounts is currently only the config-file.
+
+  auth-digest needs the plain-text passwort. Are there any source which
+  provide a plain-text password ?
+
+12.05.2003 14:33
+- virtual hosts
+
+  added very basic virtual-host support
+
+  virtual-server-root /home/weigon/projects/lighttpd/servers/
+  virtual-server-default-host grisu.home.kneschke.de:1025
+  virtual-server-docroot /pages/
+
+  docroot is
+
+  - if http-host exists
+    &lt;virtual-server-root&gt; + &lt;http-host&gt; + &lt;virtual-server-docroot&gt;
+
+  - otherwise
+    &lt;virtual-server-root&gt; + &lt;virtual-server-default-host&gt; +
+    &lt;virtual-server-docroot&gt;
+
+  - if even virtual-server-default-host does not exist, 500 is sent
+
+
+12.05.2003 13:02
+- code cleanup
+
+  After two month of development it was time clean-up the internal
+  structures. It looks like every went fine as lighttpd works es expected
+  like before.
+
+- deflate
+  the on-the-fly compression has been verified to work fine with opera,
+  konqui, mozilla and the IE.
+
+12.05.2003 02:10
+- on-the-fly compression: deflate
+
+  Why the hell are the defining a "deflate" encoding in the form of
+
+  _deflate_ The "zlib" format defined in RFC 1950 [31] in combination
+  with the "deflate" compression mechanism described in RFC 1951 [29].
+  (RFC 2616)
+
+  and noone implements it that way ? Konqui and Mozilla expect a plain
+  deflate() package without the zlib-header.
+
+  Konqui is using "inflate2(..., -MAX_WBITS); " which is noted in the zlib
+  source as
+
+  /* handle undocumented nowrap option (no zlib header or check) */
+
+  Funny. Very, very funny.
+
+
+  Anyway. We have mimetype-depended compression support now.
+
+11.05.2003 21:56
+- logging
+  re-arranged the logfile structure to write CLF + useragent + referrer.
+
+11.05.2003 10:23
+- POST file-upload
+  added the missing functionality to send more than a single packet to the
+  FCGI-Server (or Client ? ... the PHP).
+
+    This gives us the file-upload thing for eg. PHP and large user-forms
+  (&gt;16kb).
+
+05.05.2003 15:21
+- PATH_INFO
+
+  added support for PATH_INFO. PHP is a little strange and doesn't trust the
+  passed PATH_INFO setting. Works fine now.
+
+30.04.2003 15:25
+- bug-fixing day
+
+  While testing the FastCGI interface with the MSIE Bj�rn Schotte discovered
+  that sometimes the output repeats itself from the start in an endless loop.
+    This bug has been fixed.
+
+  The read-write-fallback for ancient systems seeked the wrong FDs.
+
+  The FastCGI handler is now separting the HTTP-Header from the
+  response-body what results in a cleaner interface. The "header too long
+  for caching" message is gone now.
+
+28.04.2003 18:18
+- chunked transfer-encoding
+
+  The FastCGI part is now using Chunked-Transfer-Encoding if HTTP/1.1 is
+  used and no content-length is specified.
+
+27.04.2003 23:10
+- chunked transfer-encoding
+  added "Transfer-Encoding: chunked" which is currently used in the web-chat
+  for the endless stream. Perhaps it helps some browsers.
+
+    The FastCGI interface will get a the chunked-support too, as it will
+  enable keep-alive even if no content-length is returned from the FastCGI
+  process. We know the size of the chunks and will report it to the browser.
+
+16.04.2003 12:02
+- gigE deatchmatch
+
+  sascha compared the current lighttpd to his premium thttpd in his
+  gigabit-Ethernet-Network.
+
+  <a
+href="http://schumann.cx/gbit_deathmatch.txt">http://schumann.cx/gbit_deathmatch.txt</a>
+
+  small comment:
+  lighttpd provides the same performance (req/s and thoughput), but uses more
+  CPU-Time.
+
+10.04.2003 17:22
+- works on IRIX
+
+  J�rg Behrens provided me login to his SGI Origin and after fixing two small
+  typos it worked fine on IRIX. (#if define HAVE... was missing a 'd' and
+  getopt returns a 'int' and not a 'char')
+
+  IPv6 support is currently disabled for IRIX a gethostbyname2() isn't
+  available.
+
+10.04.2003 15:56
+- another bug-fixing day
+  The upper limit of open connections was enforced and a caused a seg-fault.
+  The current limit is set to 4096 parallel connections.
+
+  As sascha benchmarked lighttpd and his premium thttpd I tried to reproduce
+  his reported results and had to fix 2 flaws in the async-io handling of
+  httpd_load which was used for the testing.
+
+  If sascha starts another benchmark session I'll put a link to it here.
+
+09.04.2003 00:08
+- bug-fixing time
+  Date: and Last-Modified: where sending a timezone != GMT what was invalid.
+  The timestamp itself was correct, just the timezone use the wrong
+  characters.
+
+  the fcgi-code had an buffer-overflow for larger POST-Requests.
+
+  The fcgi-code still has problems with POST-Request larger than 16kb as the
+  the write buffer is full. Currently we don't handle this case except from
+  reporting it in the error-log.
+
+02.04.2003 01:17
+- cgi is back
+
+  The CGI Interface wasn't tested for a longer time. It don't really
+  survived the introduction of the config-file handling and the internal
+  changes that were part of it.
+
+  A small test with
+
+#! /usr/bin/perl
+print "Content-Type: text/html\r\n\r\n";
+print time()."\n";
+0;
+
+  produced 219 req/s.
+
+  Calling PHP via the CGI interface results in 100 req/s. Same script, same
+  parameters for 'ab' and same PHP result in 1400 req/s if we use the
+  FastCGI interface.
+
+  <b>Don't forget</b>: these benchmarks only represent figures for scenarios which
+  are not very realistic. They are just usefull for comparisions of the
+  internals. We don't want to benchmark applications.
+
+01.04.2003 23:04
+- new benchmarks
+
+  This time we wanted to see if  we can get the fastcgi-Interface a little bit
+  faster. We use this small script for the testing the interface.
+
+&lt;?php
+
+ob_start(/*"ob_gzhandler"*/);
+print "12345&lt;br /&gt;\n";
+header("Content-Length: ".ob_get_length());
+ob_end_flush();
+
+?&gt;
+
+  It generate a small network load and is the best case for benchmarking the
+  overhead of the call to the fastcgi-php.
+
+  Using the chunk-API instead auf tmp-files increase the req/s vom 1200req/s
+  to 1600 req/s and the IO-load went down as expected. Waiting for the
+  filesystem and creating 1200 files per second required some time. The
+  CGI-Interface is still using tempfiles.
+
+01.04.2003 19:28 (no april fools joke)
+- added SSL support
+  I took -lssl and -lcrypto and added SSLv2/SSLv3/TLS support to lighttpd.
+
+  After some reading I realisized that libcrypto contained some of my code.
+  They have a similar buffer-struct with similar functions and they use the
+  same MD5-code from the RFC. :)
+
+  Adding basic SSL-support was quite esay: replacing all write/read-calls by
+  SSL_write/read, initializing the ssl-context the right way and telling
+  openssl where to get the data from (SSL_set_fd). It fits really well into
+  lighttpd.
+
+- sidenote
+  sooner or later the con->filename handler will vanish in favour of the
+  direct interface to the chunk-API which will simplifiy the design a little
+  bit.
+
+31.03.2003 20:50
+- added a web-chat module
+  1400 lines of C-code are neccesary to add a web-chat to lighttpd.
+
+  Features:
+  - bb-code for text-layouting
+  - auto-highlight for URLs and Email-adresses
+  - unlimited number of channels
+  - max. 32.000 users per channel
+  - fast as it is directly integrated into the web-server
+  - easy to install (as easy as lighttpd)
+  - IRC-like (/msg, /kick, /me, ...)
+  - works with MS IE, Mozilla, Konqueror, ...
+  - uses as little JavaScript as possible to stay compatible with all browsers
+  - flood-protection (2 Levels: ignore and kick)
+  - uses CSS for customized look-and-feel
+
+25.03.2003 00:36
+- finished the config-file support
+  now we have config-sections
+
+  [fastcgi]
+  fastcgi .php 192.168.2.76 1025
+
+  The only this missing is -HUP handling to re-read the config. But that
+  will follow when I'm up again.
+
+20.03.2003 01:04
+- adding config-file support
+  the most boring part of the writing programs after writing documentation.
+  The format is quite simple and good enough for lighttpd.
+
+19.03.2003 03:05
+- more on sendfile support
+  added support for freebsd's version of sendfile().
+
+  Linux:
+  ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count);
+
+  FreeBSD:
+  int     sendfile(int fd, int s, off_t offset, size_t nbytes,
+                   struct sf_hdtr *hdtr, off_t *sbytes, int flags);
+
+  the first 2 params are swap, the next 2 are the same and the last 3 are
+  set to NULL or 0.
+
+  Solaris 9 is providing a direct interface to the chunk-API with the
+  sendfilev() system call:
+
+  ssize_t sendfilev(int fildes,
+                    const struct sendfilevec *vec, int sfvcnt, size_t *xferred);
+
+  recovering from a failure is a little bit more complex, but it should be
+  fast. I just need a system to test it. Anyone ?
+
+18.03.2003 17:32
+- in the news
+  what a surprise: lighttpd is announced in entwickler.com.
+
+  <a href="http://www.entwickler.com/itr/news/psecom,id,9483,nodeid,82.html">http://www.entwickler.com/itr/news/psecom,id,9483,nodeid,82.html</a>
+
+  this was not planned.
+
+
+- implemented the chunked-API
+  rather writing the content of multi-range'd requests to a temp-file we
+  just register the parts in a chunk-queue.
+
+  chunk 1 [mem]  - part-header
+  chunk 2 [file] - source-file (offset, len)
+  chunk 3 [mem]  - part-header
+  chunk 4 [file] - source-file (offset, len)
+  chunk 5 [mem]  - part-footer
+
+  If everything is prepared, the content-length is calculated and the
+  http-header is generated and prepended to the chunk-queue.
+
+  the handle_write() function which handles the write-process just sends the
+  chunks to the network without only further modifications.
+
+  the chunk-api even simplifies the
+  'my-fastcgi-process-needs-some-time-to-create-the-response-
+  and-sends-the-data-in-chunks' case. Just add the chunk to the queue if it
+  is received.
+
+13.03.2003 10:49
+- another set of real-life benchmarks
+
+  the chairman was benchmarked a little bit. Chairman is full-flegded WCMS.
+  As every CMS it needs some time to generate pages. To speed the page
+  generating the static-parts of the page can be cached internally.
+
+                     without caching   with caching
+apache + mod_php   :            2.50          10.64 req/s
+lighttpd + fcgi-php:            2.50          22.74 req/s
+
+  Looks like lighttpd is the way to go :)
+
+  Please, don't compare these numbers with the other benchmarks:
+  We used a different test-machine which is a little bit under-powered
+  for this test-case.
+
+12.03.2003 13:43
+- another large application works with lighttpd
+
+  <a
+href="http://www.thinkphp.de/content/content2.php?CatID=44&amp;NewsID=95">Chairman</a> from <a href="http://www.thinkphp.de/">thinkphp</a> has been verified to work with lighttpd.
+
+  Three things are worth to note:
+
+  1. ALWAYS use log_error in the php.ini if you use FastCGI
+     otherwise it will put the errormessages directly into fastcgi-socket
+     without any FastCGI Header. This will result in strange errors.
+     (its a PHP bug)
+  2. DOCUMENT_ROOT has been added to the environment variables
+  3. a small bug for sending larger output from a fastcgi client has been
+     fixed.
+
+11.03.2003 11:52
+- added two neccesary features
+  - redirect _dir_ to _dir_/
+  - append index-file to _dir_/ if they exist
+
+11.03.2003 00:13
+- another target
+  after adding some headers lighttpd compiles without any warnings
+  under cygwin on Windows.
+
+  A native windows port will take some time as I have to figure out the
+  changes on the winsock.h to the unix headers.
+
+10.03.2003 11:52
+- added Solaris 8 and 9
+  lighttpd has been confirmed to compile and work on
+
+  - linux
+  - FreeBSD, NetBSD
+  - Solaris 8, 9
+
+  Perhaps I can get lcc to compile it on windows.
+
+10.03.2003 01:30
+- another platform was confirmed
+  lighttpd works on NetBSD
+
+- another webserver benchmark
+  mathopd (http://www.mathopd.org/)
+
+                    Mathopd/1.4
+-c 10
+4k                :  6329.11 [#/sec]
+4k (keep-alive)   : 10235.41 [#/sec]
+100k              :  1168.50 [#/sec]
+100k (keep-alive) :   268.82 [#/sec] (99% idle)
+-c 100
+4k                :    ---- (connections dropped)
+4k (keep-alive)   :    ----
+100k              :    ----
+100k (keep-alive) :    ----
+
+Very good values for small files, but the rest ?
+
+10.03.2003 00:06
+- added more write-handlers
+  1. sendfile (linux only)
+  2. mmap + write
+  3. read + write
+
+  This means that lighttpd runs on some more systems. It has been verified
+  to compile and work on linux 2.4.x and FreeBSD.
+
+
+-c 100
+         sendfile  mmap     read
+4k       6476.68   5698.01  5363.08 [#/sec]
+100k     2312.35    841.54   783.09 [#/sec]
+
+  The mmap() numbers could be better with a fd+mmap-cache. The zero-copy thing
+  is good for our performance.
+
+- tested another small httpd - BOA
+  just to get a better view about the performance of lighttpd i've tested
+  another httpd: Boa/0.94.14rc16 (http://www.boa.org/)
+
+                    Boa/0.94.14rc16
+-c 10
+4k                :         5659.63 [#/sec]
+4k (keep-alive)   :          250.23 [#/sec]
+100k              :         1104.29 [#/sec]
+100k (keep-alive) :         1363.14 [#/sec]
+-c 100
+4k                :         4319.65 [#/sec]
+4k (keep-alive)   :         2490.66 [#/sec]
+100k              :          815.93 [#/sec]
+100k (keep-alive) :         1007.05 [#/sec]
+
+  The results are a little bit strange. Keep-Alive for small files seems to be
+  broken.
+
+  It looks like lighttpd has enough power for now. Time the port and add more
+  features.
+
+09.03.2003 13:26
+- load-balancing works great
+
+  I used the framework from http://framework.netuse.de/ as a
+  real-life example again to test the load-balancer.
+
+  setup:
+  - grisu
+    - AMD athlon XP 2000+
+    - runs lighttpd + ab + a 'nice -15'ed FastCGI-PHP
+    - generates 153 req/s alone
+
+  - laptop
+    - Intel PIII 850
+    - runs a FastCGI-PHP
+    - generates 88 req/s
+
+   using the internal load-balancer of lighttpd which balances the
+   php-requests over grisu and laptop generate:
+     221 req/s
+
+   An apache with mod_php running on grisu gives 117.04 req/s only.
+
+09.03.2003 12:46
+- building the connect connection to the fcgi-php is not non-blocking
+  socket() -> connect() -> fcntl(non-blocking) resulted in some problems as
+  the connect() call blocked sometimes for 1 seconds.
+
+  socket() -> fcntl(non-blocking) -> connect() solves this problem, but
+  addes more overhead. The first connect-attempt seems always to
+  return EINPROGRESS.
+
+08.03.2003 15:06
+- the first 'real-life' PHP test showed 2 bugs in the POST handling.
+  1. the Content-Type header was not forwarded via fastcgi
+  2. the internal content_length handler wasn't reset after the request
+
+  now lighttpd + php work with
+
+  http://framework.netuse.de/
+
+  the basic application gives us 145 req/s
+
+08.03.2003 11:06
+- use diet to 'test' your code
+  diet gives some use full warnings which should be followed. I took the
+  chance and removed the last few fprintf() and sprintf() from the code.
+  now, we don't need stdio.h anymore.
+
+    a staticly linked, stripped lighttpd is 42884 bytes large.
+
+08.03.2003 01:55
+- buffer_strcat() uses strlen() to get the length of the 'to-be-catted-string'
+  if the string is constant or has a known length you can pass that function
+  which gives use buffer_strcat_len() which passes the string length as a
+  parameter.
+
+- using a ramdisk as the base for the tempfiles generated mkstemp() is a
+  very cood idea
+  it reduces the io-load on the system and gives as more cpu-time for
+  load-balancing the php-requests.
+
+- cache the output of strftime(), gmtime() and localtime
+  we generate more then 10.000 req/s which results in using the same
+  timestamp over and over again. It is sufficient to generate the timestamp
+  once a second and give us a bunch of CPU-cycles for sending files.
+
+  the same applies for other timestamps like Last-modified which sends a
+  string version of st.st_mtime. Cache it.
+
+- don't try to overoptimize for code for the sake of clean code
+  the range support require some hack in the first versions like setting the
+  write_offset to the start of the range and keeping the rest of the
+  "code 200" send code as usual. Only a few lines added this first range
+  feature. fast, but a hack. It made things more complicated then neccesary
+  to add multi-range support in this scenario.
+
+  removing the hack doing small clean preprocessing helps to clean up the
+  whole 'write a chunk on the wire' code. At the end we use less code and
+  have a cleaner design.
+
+  Sascha proposed a chunked layer which just takes the chunks (http-header,
+  part-header, part-message, ... and the last boundary) and passes them to
+  the write-to-the-wire-code. This is far more elegant and will perhaps same
+  us from other problems, too. Currently I think that it is not necessary.
+  First we have to fix some protability issues.
+
+Ok, today benches:
+
+                       today      last
+-c 10
+4k                :  9443.76   7739.94    + 22%
+4k (keep-alive)   : 17985.61  13885.03    + 29%
+100k              :  3722.32   3349.97    + 11%
+100k (keep-alive) :  5975.86   4965.49    + 20%
+-c 100
+4k                :  6724.95   5918.56    + 13%
+4k (keep-alive)   : 10833.06   8405.48    + 28%
+100k              :  2607.36   2393.60    +  9%
+100k (keep-alive) :  4314.06   4035.35    +  7%
+
+Top Transfer Rate:
+
+    86365.77 [Kbytes/sec] received
+
+Too much for a GigE-link ?
+
+
+so far:
+
+- use state-engines
+
+  a non-forking webserver like described in
+
+  http://www.kegel.com/c10k.html
+
+- don't use fprintf() for logging.
+  writing one line to log file takes more time that sending responsing the a
+  HTTP-request
+
+- take care of your memory
+
+  typedef struct {
+          char *ptr;
+          size_t used;
+          size_t size;
+  } buffer;
+
+  buffer* buffer_init();
+  void buffer_free(buffer *b);
+  int buffer_prepare_copy(buffer *b, size_t size);
+  int buffer_prepare_append(buffer *b, size_t size);
+  int buffer_strcpy(buffer *b, const char *s);
+  int buffer_strcpy_len(buffer *b, const char *s, int s_len);
+  int buffer_strcat(buffer *b, const char *s);
+  int buffer_strcat_len(buffer *b, const char *s, int s_len);
+
+  buffer_init() is only called once per buffer. If you don't need the
+  buffer, set 'used' to zero and reused it afterward.
+    buffer_strcpy() + buffer_strcat() check if the 'used' + the new strlen()
+  fit in to the 'size' of the buffer. If not the realloc() the buffer.
+    buffer_strcat() uses memcpy(ptr + used - 1, s, s_len + 1); which should
+  be faster than the original strcat().
+
+  Using those buffers keep the memory usage at 2Mb. malloc() and free() are
+  only called at the beginnig of the programm and at the end.
+
+- don't used sprintf() to convert a integer into a string as like
+  sprintf(buf, "%d", l);
+
+  write your own ltostr function. sprintf() is to general for the case and
+  is slow.
+
+
+Speed:
+------
+
+Let's assume that <a
+href="http://www.acme.com/software/thttpd/">thttpd</a> is (one of) the
+fastest webservers out there.
+
+all httpds were started with:
+
+$ ./thttpd -p 1026 -D \
+ -d /home/weigon/projects/localizer/src/lighttpd/docroot/ \
+ -l thttpd.access.log
+
+(lighttpd uses the same parameters).
+
+We used ApacheBench for testing the RPS (requests per second).
+
+$ /usr/sbin/ab -dS -c 10 -n 100000 http://192.168.2.10:80/dummy.out
+
+                  lighttpd  thttpd/2.21b+php  thttpd/2.20c  thttpd/2.23b1
+(concurrency 10)
+4k             :   7739.94           6040.84       5078.20        5888.24 [#/sec]
+4k (keep-alive):  13885.03          10349.82       5034.49        5853.09 [#/sec]
+100k           :   3349.97           1176.29[1]    1188.74        1198.29 [#/sec]
+100k (keep-a.) :   4965.49           2513.38[2]    1100.65        1130.51 [#/sec]
+(concurrency 100)
+4k             :   5918.56           4907.01       4987.53        4886.87 [#/sec]
+4k (keep-alive):   8405.48           6379.99       4938.76        4816.26 [#/sec]
+100k           :   2393.60            972.73        958.27         961.09 [#/sec]
+100k (keep-a.) :   4035.35            893.51[3]     970.21         955.05 [#/sec]
+
+thttpd/2.21b+php has been patched with the keep-alive + php patches from PHP4
+sapi/thttpd/thttpd_patch.
+
+[1] ab reported:
+Failed requests:        1
+   (Connect: 0, Length: 1, Exceptions: 0)
+[2] ab reported:
+Failed requests:        5
+   (Connect: 0, Length: 5, Exceptions: 0)
+[3] ab reported:
+Failed requests:        24
+   (Connect: 0, Length: 24, Exceptions: 0)
+
+Tunning the thttpd:
+-------------------
+- disable symlink checking (chroot() or -nos)
+- log to /dev/shm/logfile, a ramdisk or disable logging
+
+
+$ ./thttpd -p 1026 -D \
+ -d /home/weigon/projects/localizer/src/lighttpd/docroot/ \
+ -l /dev/null
+
diff --git a/lighttpd/INSTALL b/lighttpd/INSTALL
new file mode 100644
index 0000000..23e5f25
--- /dev/null
+++ b/lighttpd/INSTALL
@@ -0,0 +1,236 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
+Software Foundation, Inc.
+
+This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+These are generic installation instructions.
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions.  Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+   It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring.  (Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.)
+
+   If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release.  If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+   The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'.  You only need
+`configure.ac' if you want to change it or regenerate `configure' using
+a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+  1. `cd' to the directory containing the package's source code and type
+     `./configure' to configure the package for your system.  If you're
+     using `csh' on an old version of System V, you might need to type
+     `sh ./configure' instead to prevent `csh' from trying to execute
+     `configure' itself.
+
+     Running `configure' takes awhile.  While running, it prints some
+     messages telling which features it is checking for.
+
+  2. Type `make' to compile the package.
+
+  3. Optionally, type `make check' to run any self-tests that come with
+     the package.
+
+  4. Type `make install' to install the programs and any data files and
+     documentation.
+
+  5. You can remove the program binaries and object files from the
+     source code directory by typing `make clean'.  To also remove the
+     files that `configure' created (so you can compile the package for
+     a different kind of computer), type `make distclean'.  There is
+     also a `make maintainer-clean' target, but that is intended mainly
+     for the package's developers.  If you use it, you may have to get
+     all sorts of other programs in order to regenerate files that came
+     with the distribution.
+
+Compilers and Options
+=====================
+
+Some systems require unusual options for compilation or linking that the
+`configure' script does not know about.  Run `./configure --help' for
+details on some of the pertinent environment variables.
+
+   You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment.  Here
+is an example:
+
+     ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+
+   *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'.  `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script.  `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+   If you have to use a `make' that does not support the `VPATH'
+variable, you have to compile the package for one architecture at a
+time in the source code directory.  After you have installed the
+package for one architecture, use `make distclean' before reconfiguring
+for another architecture.
+
+Installation Names
+==================
+
+By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc.  You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX'.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+   In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files.  Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System).  The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+   For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+There may be some features `configure' cannot figure out automatically,
+but needs to determine by the type of machine the package will run on.
+Usually, assuming the package is built to be run on the _same_
+architectures, `configure' can figure that out, but if it prints a
+message saying it cannot guess the machine type, give it the
+`--build=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+     CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+     OS KERNEL-OS
+
+   See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+   If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+   If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+If you want to set default values for `configure' scripts to share, you
+can create a site shell script called `config.site' that gives default
+values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+Variables not defined in a site shell script can be set in the
+environment passed to `configure'.  However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost.  In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'.  For example:
+
+     ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).  Here is a another example:
+
+     /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
+configuration-related scripts to be executed by `/bin/bash'.
+
+`configure' Invocation
+======================
+
+`configure' recognizes the following options to control how it operates.
+
+`--help'
+`-h'
+     Print a summary of the options to `configure', and exit.
+
+`--version'
+`-V'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`--cache-file=FILE'
+     Enable the cache: use and save the results of the tests in FILE,
+     traditionally `config.cache'.  FILE defaults to `/dev/null' to
+     disable caching.
+
+`--config-cache'
+`-C'
+     Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.  To
+     suppress all normal output, redirect it to `/dev/null' (any error
+     messages will still be shown).
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`configure' also accepts some other, not widely useful, options.  Run
+`configure --help' for more details.
+
diff --git a/lighttpd/Makefile.am b/lighttpd/Makefile.am
new file mode 100644
index 0000000..252cbfe
--- /dev/null
+++ b/lighttpd/Makefile.am
@@ -0,0 +1,3 @@
+SUBDIRS=src doc tests cygwin openwrt
+
+EXTRA_DIST=lighttpd.spec autogen.sh SConstruct
diff --git a/lighttpd/Makefile.in b/lighttpd/Makefile.in
new file mode 100644
index 0000000..2d85d41
--- /dev/null
+++ b/lighttpd/Makefile.in
@@ -0,0 +1,666 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = .
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in $(srcdir)/config.h.in \
+	$(srcdir)/distribute.sh.in $(srcdir)/lighttpd.spec.in \
+	$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
+	compile config.guess config.sub depcomp install-sh ltmain.sh \
+	missing
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno configure.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES = lighttpd.spec distribute.sh
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+	html-recursive info-recursive install-data-recursive \
+	install-exec-recursive install-info-recursive \
+	install-recursive installcheck-recursive installdirs-recursive \
+	pdf-recursive ps-recursive uninstall-info-recursive \
+	uninstall-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+  { test ! -d $(distdir) \
+    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+         && rm -fr $(distdir); }; }
+DIST_ARCHIVES = $(distdir).tar.gz
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+ATTR_LIB = @ATTR_LIB@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+AXIS2C_INCLUDE = @AXIS2C_INCLUDE@
+AXIS2C_LIBS = @AXIS2C_LIBS@
+BZ_LIB = @BZ_LIB@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECK_WITH_FASTCGI_FALSE = @CHECK_WITH_FASTCGI_FALSE@
+CHECK_WITH_FASTCGI_TRUE = @CHECK_WITH_FASTCGI_TRUE@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CROSS_COMPILING_FALSE = @CROSS_COMPILING_FALSE@
+CROSS_COMPILING_TRUE = @CROSS_COMPILING_TRUE@
+CRYPT_LIB = @CRYPT_LIB@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DL_LIB = @DL_LIB@
+DSYMUTIL = @DSYMUTIL@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FAM_CFLAGS = @FAM_CFLAGS@
+FAM_LIBS = @FAM_LIBS@
+FFLAGS = @FFLAGS@
+GDBM_LIB = @GDBM_LIB@
+GREP = @GREP@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LBER_LIB = @LBER_LIB@
+LDAP_LIB = @LDAP_LIB@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LUA_CFLAGS = @LUA_CFLAGS@
+LUA_LIBS = @LUA_LIBS@
+MAINT = @MAINT@
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+MAKEINFO = @MAKEINFO@
+MEMCACHE_LIB = @MEMCACHE_LIB@
+MYSQL_CONFIG = @MYSQL_CONFIG@
+MYSQL_INCLUDE = @MYSQL_INCLUDE@
+MYSQL_LIBS = @MYSQL_LIBS@
+NMEDIT = @NMEDIT@
+NO_RDYNAMIC_FALSE = @NO_RDYNAMIC_FALSE@
+NO_RDYNAMIC_TRUE = @NO_RDYNAMIC_TRUE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PCRECONFIG = @PCRECONFIG@
+PCRE_LIB = @PCRE_LIB@
+PKG_CONFIG = @PKG_CONFIG@
+RANLIB = @RANLIB@
+SED = @SED@
+SENDFILE_LIB = @SENDFILE_LIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SQLITE_CFLAGS = @SQLITE_CFLAGS@
+SQLITE_LIBS = @SQLITE_LIBS@
+SSL_LIB = @SSL_LIB@
+STRIP = @STRIP@
+U = @U@
+UUID_LIBS = @UUID_LIBS@
+VERSION = @VERSION@
+XML_CFLAGS = @XML_CFLAGS@
+XML_LIBS = @XML_LIBS@
+Z_LIB = @Z_LIB@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+SUBDIRS = src doc tests cygwin openwrt
+EXTRA_DIST = lighttpd.spec autogen.sh SConstruct
+all: config.h
+	$(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+am--refresh:
+	@:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
+	      cd $(srcdir) && $(AUTOMAKE) --gnu  \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    echo ' $(SHELL) ./config.status'; \
+	    $(SHELL) ./config.status;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	$(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+
+config.h: stamp-h1
+	@if test ! -f $@; then \
+	  rm -f stamp-h1; \
+	  $(MAKE) stamp-h1; \
+	else :; fi
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+	@rm -f stamp-h1
+	cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 
+	cd $(top_srcdir) && $(AUTOHEADER)
+	rm -f stamp-h1
+	touch $@
+
+distclean-hdr:
+	-rm -f config.h stamp-h1
+lighttpd.spec: $(top_builddir)/config.status $(srcdir)/lighttpd.spec.in
+	cd $(top_builddir) && $(SHELL) ./config.status $@
+distribute.sh: $(top_builddir)/config.status $(srcdir)/distribute.sh.in
+	cd $(top_builddir) && $(SHELL) ./config.status $@
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	rev="$$rev ."; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+ctags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	  empty_fix=.; \
+	else \
+	  include_option=--include; \
+	  empty_fix=; \
+	fi; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test ! -f $$subdir/TAGS || \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	$(am__remove_distdir)
+	mkdir $(distdir)
+	$(mkdir_p) $(distdir)/. $(distdir)/cygwin $(distdir)/openwrt
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d "$(distdir)/$$subdir" \
+	    || $(mkdir_p) "$(distdir)/$$subdir" \
+	    || exit 1; \
+	    distdir=`$(am__cd) $(distdir) && pwd`; \
+	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$$top_distdir" \
+	        distdir="$$distdir/$$subdir" \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+	-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+	|| chmod -R a+r $(distdir)
+dist-gzip: distdir
+	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	$(am__remove_distdir)
+
+dist-bzip2: distdir
+	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+	$(am__remove_distdir)
+
+dist-tarZ: distdir
+	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+	$(am__remove_distdir)
+
+dist-shar: distdir
+	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+	$(am__remove_distdir)
+
+dist-zip: distdir
+	-rm -f $(distdir).zip
+	zip -rq $(distdir).zip $(distdir)
+	$(am__remove_distdir)
+
+dist dist-all: distdir
+	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	$(am__remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+	case '$(DIST_ARCHIVES)' in \
+	*.tar.gz*) \
+	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+	*.tar.bz2*) \
+	  bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+	*.tar.Z*) \
+	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+	*.shar.gz*) \
+	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+	*.zip*) \
+	  unzip $(distdir).zip ;;\
+	esac
+	chmod -R a-w $(distdir); chmod a+w $(distdir)
+	mkdir $(distdir)/_build
+	mkdir $(distdir)/_inst
+	chmod a-w $(distdir)
+	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+	  && cd $(distdir)/_build \
+	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+	    $(DISTCHECK_CONFIGURE_FLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
+	  && $(MAKE) $(AM_MAKEFLAGS) check \
+	  && $(MAKE) $(AM_MAKEFLAGS) install \
+	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+	        distuninstallcheck \
+	  && chmod -R a-w "$$dc_install_base" \
+	  && ({ \
+	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
+	  && rm -rf "$$dc_destdir" \
+	  && $(MAKE) $(AM_MAKEFLAGS) dist \
+	  && rm -rf $(DIST_ARCHIVES) \
+	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+	$(am__remove_distdir)
+	@(echo "$(distdir) archives ready for distribution: "; \
+	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+	  sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
+distuninstallcheck:
+	@cd $(distuninstallcheck_dir) \
+	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+	   || { echo "ERROR: files left after uninstall:" ; \
+	        if test -n "$(DESTDIR)"; then \
+	          echo "  (check DESTDIR support)"; \
+	        fi ; \
+	        $(distuninstallcheck_listfiles) ; \
+	        exit 1; } >&2
+distcleancheck: distclean
+	@if test '$(srcdir)' = . ; then \
+	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+	  exit 1 ; \
+	fi
+	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+	  || { echo "ERROR: files left in build directory after distclean:" ; \
+	       $(distcleancheck_listfiles) ; \
+	       exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile config.h
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-hdr \
+	distclean-libtool distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -rf $(top_srcdir)/autom4te.cache
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
+	check-am clean clean-generic clean-libtool clean-recursive \
+	ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
+	dist-shar dist-tarZ dist-zip distcheck distclean \
+	distclean-generic distclean-hdr distclean-libtool \
+	distclean-recursive distclean-tags distcleancheck distdir \
+	distuninstallcheck dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	maintainer-clean-recursive mostlyclean mostlyclean-generic \
+	mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \
+	tags tags-recursive uninstall uninstall-am uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/lighttpd/NEWS b/lighttpd/NEWS
new file mode 100644
index 0000000..3312481
--- /dev/null
+++ b/lighttpd/NEWS
@@ -0,0 +1,784 @@
+
+====
+NEWS
+====
+
+- 1.4.19 -
+
+  * added support for If-Range: <date> (#1346)
+  * added support for matching $HTTP["scheme"] in configs
+  * fixed initgroups() called after chroot (#1384)
+  * fixed case-sensitive check for Auth-Method (#1456)
+  * execute fcgi app without /bin/sh if used as argument to spawn-fcgi (#1428)
+  * fixed a bug that made /-prefixed extensions being handled also when
+    matching the end of the uri in fcgi,scgi and proxy modules (#1489)
+  * print error if X-LIGHTTPD-send-file cannot be done; reset header
+    Content-Length for send-file. Patches by Stefan Buehler
+  * prevent crash in certain php-fcgi configurations (#841)
+  * add IdleServers and Scoreboard directives in ?auto mode for mod_status (#1507)
+  * open log immediately after daemonizing, fixes SIGPIPEs on startup  (#165)
+  * HTTPS env var should be "on" when using mod_extforward and the X-Forwarded-Proto header is set. (#1499)
+  * generate ETag and Last-Modified headers for mod_ssi based on newest modified include (#1491)
+  * support letterhomes in mod_userdir (#1473)
+  * support chained proxies in mod_extforward (#1528)
+  * fixed bogus "cgi died ?" if we kill the CGI process on shutdown
+  * fixed ECONNRESET handling in network-openssl
+  * fixed handling of EAGAIN in network-linux-sendfile (#657)
+  * reset conditional cache (#1164)
+  * create directories in mod_compress (was broken with alias/userdir) (#1027)
+  * fixed out of range access in fd array (#1562, #372) (CVE-2008-0983)
+  * mod_compress should check if the request is already handled, e.g. by fastcgi (#1565)
+  * remove broken workaround for buggy Opera version with ssl/chunked encoding (#285)
+  * generate etag/last-modified header for on-the-fly-compressed files (#1171)
+  * req-method OPTIONS: do not insert default response if request was denied, do not deny OPTIONS by default (#1324)
+  * fixed memory leak on windows (#1347)
+  * fixed building outside of the src dir (#1349)
+  * fixed including of stdint.h/inttypes.h in etag.c (#1413)
+  * do not add Accept-Ranges header if range-request is disabled (#1449)
+  * log the ip of failed auth tries in error.log (enhancement #1544)
+  * fixed RoundRobin in mod_proxy (#516)
+  * check for symlinks after successful pathinfo matching (#1574)
+  * fixed mod-proxy.t to run with a builddir outside of the src dir
+  * do not suppress content on "307 Temporary Redirect" (#1412)
+  * fixed Content-Length header if response body gets removed in connections.c (#1412, part 2)
+  * do not generate a "Content-Length: 0" header for HEAD requests, added test too
+  * remove compress cache file if compression or write failed (#1150)
+  * fixed body handling of status 300 requests 
+  * spawn-fcgi: only try to connect to unix socket (not tcp) before spawning (#1575)
+  * fix sending source of cgi script instead of 500 error if fork fails (CVE-2008-1111)
+  * fix min-procs handling in mod_scgi.c, just set to max-procs (patch from #623)
+  * fix sending "408 - Timeout" instead of "410 - Gone" for timedout urls in mod_secdownload (#1440)
+  * workaround #1587: require userdir.path to be set to enable mod_userdir (empty string allowed) (CVE-2008-1270)
+  * make configure checks for --with-pcre, --with-zlib and --with-bzip2 failing if the headers aren't found
+  * fixed handling of waitpid() == EINTR mod_ssi on solaris 
+
+- 1.4.18 - 2007-09-09
+
+  * fixed compile error on IRIX 6.5.x on prctl() (#1333)
+  * fixed forwarding a SIGINT and SIGHUP when using max-workers (#902)
+  * fixed FastCGI header overrun in mod_fastcgi (reported by mattias@secweb.se)
+  * fixed hanging redirects with keep-alive due to missing
+    "Content-Length: 0" headers
+  * fixed crashing when using undefined environment variables in the config
+  * fixed compilation of mod_mysql_vhost on irix (#1341)
+
+- 1.4.17 - 2007-08-29
+
+  * added dir-listing.set-footer in mod_dirlisting (#1277)
+  * added sending UID and PID for SIGTERM and SIGINT to the logs
+  * fixed hardcoded font-sizes in mod_dirlisting (#1267)
+  * fixed different ETag length on 32/64 platforms (#1279)
+  * fixed compression of files < 128 bytes by disabling compression (#1241)
+  * fixed mysql server reconnects (#518)
+  * fixed disabled keep-alive for dynamic content with HTTP/1.0 (#1166)
+  * fixed crash on mixed EOL sequences in mod_cgi
+  * fixed key compare (#1287)
+  * fixed invalid char in header values (#1286)
+  * fixed invalid "304 Not Modified" on broken timestamps
+  * fixed endless loop on shrinked files with sendfile() on BSD (#1289)
+  * fixed counter overrun in ?auto in mod_status (#909)
+  * fixed too aggresive caching of nested conditionals (#41)
+  * fixed possible overflow in unix-socket path checks on BSD (#713)
+  * fixed extra Content-Length header on 1xx, 204 and 304 (#1002)
+  * fixed handling of duplicate If-Modified-Since to return 304 
+  * fixed extracting status code from NPH scripts (#1125)
+  * fixed prctl() usage (#1310)
+  * removed config-check if passwd files exist (#1188)
+  * fixed crash when etags are disabled but the client sends one (#1322)
+  * fixed crash when freeing the config in mod_alias
+  * fixed server.error-handler-404 breakage from 1.4.16 (#1270)
+  * fixed entering 404-handler from dynamic content (#948)
+  * added more debug infos for FAM based stat-cache
+  * use more LSB like paths in the sample config (#1242)
+
+- 1.4.16 - 2007-07-25
+
+  * added static-file.etags, etag.use-inode, etag.use-mtime, etag.use-size
+    to customize the generation of ETags for static files. (#1209) 
+    (patch by <Yusufg@gmail.com>)
+  * fixed typecast of NULL on execl() (#1235)
+    (patch by F. Denis)
+  * fixed circumventing url.access-deny by trailing slash (#1230)
+  * fixed crash on duplicate headers with trailing WS (#1232)
+  * fixed accepting more connections then requested (#1216)
+  * fixed mem-leak in mod_auth (reported by Stefan Esser)
+  * fixed crash with md5-sess and cnonce not set in mod_auth (reported by Stefan Esser)
+  * fixed missing check for base64 encoded string in mod_auth and Basic auth
+    (reported by Stefan Esser)
+  * fixed possible crash in Auth-Digest header parser on trailing WS in 
+    mod_auth (reported by Stefan Esser) 
+  * fixed check on stale errno values, which broke handling of broken fastcgi
+    applications. (#1245)
+  * fixed crash on 32bit archs when debug-msgs are printed in mod_scgi, mod_fastcgi 
+    and mod_webdav (#1263)
+
+- 1.4.15 - 2007-04-13
+
+  * fixed broken Set-Cookie headers
+
+- 1.4.14 - 2007-04-13
+
+  * fix crash if gethostbyaddr() failed on redirect [1718]
+  * properly handle 206 responses generated by *cgi scripts. (#755) [1716]
+  * added HTTPS=on to the environment of cgi scripts (#861) [1684]
+  * fix handling of 303 (#1045) [1678]
+  * made the configure check for lua more portable [1677]
+  * added mod_extforward module [1665]
+  * references to the fam stat cache engine should be conditional (#1039) [1664]
+  * fix http 500 errors (colin.stephen/at/o2.com) #1041 [1663]
+  * prevent wrong pidfile unlinking on graceful restart (Chris Webb) [1656]
+  * ignore empty packets from STDERR stream. #998
+  * fix a crash for files with an mtime of 0 reported by cubiq on irc [1519]
+    CVE-2007-1870
+  * allow empty passwords with ldap (J�rg Sonnenberger) [1516]
+  * mod_scgi.c segfault fix #964 [1501]
+  * Added round-robin support to mod_fastcgi [1500]
+  * Handle DragonFlyBSD the same way as Freebsd (J�rg Sonnenberger) [1492,1676]
+  * added now and weeks support to mod_expire. #943
+  * fix cpu hog in certain requests [1473] CVE-2007-1869
+  * fix for handling hostnames with trailing dot [1406]
+  * fixed header-injection via server.tag (#1106)
+  * disabled caching of files without a content-type to solve the
+    aggressive caching of FF
+  * remove trailing white-spaces from HTTP-requests before parsing (#1098)
+  * fixed accesslog.use-syslog in a conditional and the caching of the
+    accesslog for files (fixes #1064)
+  * fixed various crashes at startup on broken accesslog.format strings (#1000)
+  * fixed handling of %% in accesslog.format
+  * fixed conditional dir-listing.exclude (#930)
+  * reduced default PATH_MAX to 255 (#826)
+  * ECONNABORTED is not known on cygwin (#863)
+  * fixed crash on url.redirect and url.rewrite if %0 is used in a global context
+    (#800)
+  * fixed possible crash in debug-message in mod_extforward
+  * fixed compilation of mod_extforward on glibc < 2.3.4
+  * fixed include of empty in the configfiles (#1076)
+  * send SIGUSR1 to fastcgi children before SIGTERM. libfcgi wants SIGUSR1. (#737)
+  * fixed missing AUTH_TYPE entry in the fastcgi environment. (#889)
+  * fixed compilation in network_writev.c on MacOS X 10.3.9 (#903)
+  * added kill-signal as another setting for fastcgi backends. See the wiki for more.
+
+- 1.4.13 - 2006-10-09
+
+  * added initgroups in spawn-fcgi (#871)
+  * added apr1 support htpasswd in mod-auth (#870)
+  * added lighty.stat() to mod_magnet
+  * fixed segfault in splitted CRLF CRLF sequences
+    (introduced in 1.4.12) (#876)
+  * fixed compilation of LOCK support in mod-webdav
+  * fixed fragments in request-URLs (#869)
+  * fixed pkg-config check for lua5.1 on debian
+  * fixed Content-Length = 0 on HEAD requests without
+    a known Content-Length (#119)
+  * fixed mkdir() forcing 0700 (#884)
+  * fixed writev() on FreeBSD 4.x and older (#875)
+  * removed warning about a 404-error-handler
+    returned 404
+  * backported and fixed the buildsystem changes for
+    webdav locks
+  * fixed plugin loading so we can finally load lua
+    extensions in mod_magnet scripts
+  * fixed large uploads if xattr is enabled
+
+- 1.4.12 - 2006-09-23
+
+  * added experimental LOCK support for webdav
+  * added Content-Range support for PUT in webdav
+  * added support for += on empty arrays in config-files
+  * added ssl.cipher-list and ssl.use-sslv2
+  * added $HTTP["querystring"] conditional
+  * added mod_magnet as long-term replacement for mod_cml
+  * added work-around for a Opera Bug with SSL + Chunked-Encoding
+  * changed --print-config to print to stdout instead of stderr
+  * changed no longer use 0600 for new files with webdav. umask is
+    honored. Make sure you have set a proper umask.
+  * fixed upload hangs with SSL
+  * fixed connection drops with SSL (aka bad retry)
+  * fixed path traversal with \ on cygwin
+  * fixed mem-leak in mod_flv_streaming
+  * fixed required trailing newline in configfiles (#142)
+  * fixed quoting the autoconf files (#466)
+  * fixed empty Host: + $HTTP["host"] handling (#458)
+  * fixed handling of If-Modified-Since if ETag is not set
+  * fixed default-shell if SHELL is not set (#441)
+  * fixed appending and assigning of env.* vars
+  * fixed empty FCGI_STDERR packets
+  * fixed conditional server.allow-http-11
+  * fixed handling of follow-symlink + lstat()
+  * fixed SIGHUP handling if max-workers is used
+  * fixed "Software caused connection abort" messages on FreeBSD
+
+- 1.4.11 - 2006-03-09
+
+  * added ability to specify which ip address spawn-fci listens on
+    (agkr/at/pobox.com)
+  * added mod_flv_streaming to streaming Flash Movies efficiently
+  * fixed handling of error codes returned by mod_dav_svn behing a
+    mod_proxy
+  * fixed error-messages in mod_auth and mod_fastcgi
+  * fixed re-enabling overloaded local fastcgi backends
+  * fixed handling of deleted files in linux-sendfile
+  * fixed compilation on BSD and MacOSX
+  * fixed $SERVER["socket"] on a already bound socket
+  * fixed local source retrieval on windows
+    (secunia)
+  * fixed hanging cgi if remote side is dieing while reading
+    from the pipe (sandy/at/meebo.com)
+
+- 1.4.10 - 2006-02-08
+
+  * added docs for mod_dirlisting
+  * added fastcgi.map-extensions to mod_fastcgi
+  * fixed load balancing for mod_fastcgi
+  * fixed extra newline for syslog() in mod_accesslog
+  * fixed user-track cookie for IE in mod_usertrack
+  * fixed crash in digest handling in mod_auth
+  * fixed handling of 301 response-bodies from a mod_proxy backend
+  * fixed loading of base modules if server.modules is not set
+  * fixed broken cgi if mod_scgi is loaded
+
+- 1.4.9 - 2006-01-14
+
+  * added server.core-files option (sandy <sandy/at/meebo.com>)
+  * added docs for mod_status
+  * added mod_evasive to limit the number of connections by IP (<w1zzard/at/techpowerup.com>)
+  * added the power-magnet to mod_cml
+  * added internal statistics to mod_fastcgi
+  * added server.statistics-url to get internal statistics from mod_status
+  * added support for conditional range-requests through If-Range
+  * added static building via scons
+  * fixed 100% cpu loops in mod_cgi ("sandy" <sjen/at/cs.stanford.edu>)
+  * fixed handling for secure-download.timeout (jamis/at/37signals.com)
+  * fixed IE bug in content-charset in the output of mod_dirlisting (sniper/at/php.net)
+  * fixed typos and language in the docs (ryan-2005/at/ryandesign.com)
+  * fixed assertion in mod_cgi on HEAD request is Content-Length (<sandy/at/meebo.com>)
+  * fixed handling if equal but duplicate If-Modified-Since request headers
+  * fixed endless loops in mod_fastcgi if backend is dead
+  * fixed Depth: 1 handling in PROPFIND requests on empty dirs
+  * fixed encoding of UTF8 encoded dirlistings (Jani Taskinen <sniper/at/iki.fi>)
+  * fixed initial bind to a unix-domain socket through server.bind
+  * fixed handling of lowercase filesystems
+  * fixed duplicate request headers cause by mod_setenv
+
+- 1.4.8 - 2005-11-23
+
+  * added auto-reconnect to ldap-server in mod_auth
+    (joerg/at/netbsd.org)
+  * changed auth.ldap-cafile to be optional
+    (joerg/at/netbsd.org)
+  * added strip_request_uri in mod_fastcgi
+  * added more X-* headers to mod_proxy
+    (Ben Grimm <bengrimm/at/gmail.com>)
+  * added 'debug' to simple-vhost to suppress the
+    (mod_simple_vhost.c.157) No such file or directory /servers/ww.lighttpd.net/pages/
+    messages by default
+  * added support to let the server listen on UNIX-socket
+  * changed default stat-cache-engine to 'simple'
+  * removed debian/ dir from source package on request by packager
+  * fixed max-age timestamps in mod_expire
+  * fixed encoding the filenames in PROPFIND in mod_webdav
+  * fixed range request handling in network_writev
+  * fixed retry on connect error in mod_fastcgi
+    (Robert G. Jakabosky <bobby/at/alphatrade.com>)
+  * fixed possible crash in mod_webdav if sqlite3 support
+    is available but not use
+  * fixed fdvent-handler init if server.max-worker was used
+    (Siddharth Vijayakrishnan <mail/at/bluefireworks.net>)
+  * fixed missing cleanup in mysql_vhost
+  * fixed assert() in "connections.c:962:
+      connection_handle_read_state: Assertion 'c->mem->used' failed."
+  * fixed 64bit issue in md5
+  * fixed crash in mod_status
+  * fixed duplicate headers in mod_proxy
+  * fixed Content-Length in HEAD request in mod_proxy
+  * fixed unsigned/signed comparisions
+  * fixed streaming in mod_cgi
+  * fixed possible overflow in password-salt handling
+    (reported on slashdot by james-web/at/and.org)
+  * fixed server-traffic-limit if connection limit is not set
+
+- 1.4.7 - 2005-11-02
+
+  * added FD_CLOEXEC to fds which are kept open for a longer time
+  * added smaller, moving mmaped windows to network_writev
+  * added madvise() to instruct the kernel the do proper read-ahead in network_writev
+  * added support for %I in mod_accesslog
+  * added better compat to Apache for ?auto in mod_status
+  * added support for userdirs without a entry in /etc/passwd in mod_userdir
+    (rob/at/inversepath.com)
+  * added startup-time selectable network-backend
+  * added location of upload-files to config as array
+  * added webdav.log-xml for logging xml-content in mod_webdav
+  * added Cache-Control: max-age to mod_expire
+  * workaround missing client-bug by assuming we received a close-notify on
+    non-keep-alive requests in SSL request
+  * disabled kerberos5 support by default to fix compilation on RHEL
+  * fixed order of library checks to fix compilation on Solaris 9
+  * fixed open file-descriptors on read-error
+  * fixed crash if /var/tmp is not writable
+
+- 1.4.6 - 2005-10-09
+
+  * fixed compilation on MacOS X and cygwin
+  * fixed compressed output if caching was disabled (seen in IE and Opera)
+  * fixed range-request option
+  * fixed mysql-vhost module (was broken in 1.4.5)
+  * fixed false positive in the detection of case-insensitive FS
+
+- 1.4.5 - 2005-10-02
+
+  * added all DeltaV methods as known methods
+  * added buffer-to-disk of request content
+  * added warning for unused variables in conditionals
+  * added global index-generators to mod_indexfile
+  * fixed caching for remote-ip conditionals with keep-alive
+  * fixed redirects with content
+  * fixed infinite loop in exec-cmd in mod_ssi
+  * fixed segfault in config handling for mod_mysql_vhost
+  * fixed segfault on FIFOs/Sockets
+  * fixed possible crash on uninit memory if If-Modified-Since was too long
+  * fixed accounting of mem-chunks
+  * fixed starving of connections on high load
+  * fixed crc errors in mod_compress on 64bit platforms
+  * fixed handling of overlapping fastcgi packets (bug added in 1.4.4)
+  * fixed logic of conditionals if a header was not set
+  * fixed a segfault in mod_rewrite if %1 references were used
+  * fixed handling of empty request URIs in HTTP requests
+
+- 1.4.4 - 2005-09-16
+  * added support for %V in mod_accesslog
+  * added a option for a FastCGI responser to send static files
+  * added md5 and blowfish hashes to htpasswd
+  * fixed METHOD in mod_accesslog of WebDAV methods
+  * fixed check for permission before files in sent
+  * fixed mod-proxy and content for non-POST requests
+  * fixed compilation of mod_cml on MacOS X
+  * fixed SSL errmsg after accept()
+  * fixed memleak in stat-cache
+  * fixed aborted connections if file was moved while in transfer
+  * fixed mem-usage for large FastCGI transfers
+
+- 1.4.3 - 2005-09-01
+
+  * added gracefull shutdown
+  * added server.max-connections
+  * fixed compilation on all BSD platforms
+  * fixed init of kqueue and /dev/poll after daemonize
+  * fixed segfault if select() is event-handler and more than FD_SETSIZE
+    fds are opened
+  * fixed compilation of mod_cml
+  * fixed bin-copy-env in mod_fastcgi
+
+- 1.4.2 - 2005-08-29
+
+  * fixed mimetype detection on uppercase extensions
+  * fixed memleak in stat-cache
+  * fixed infinite loop in mod_cgi
+  * fixed alignment crashes on sparc64 and alpha64
+  * fixed test system for gentoo ebuild
+  * fixed infinite loop in SSL
+  * fixed range request for files > 2Gb
+
+- 1.4.1 - 2005-08-22
+
+  * added a complete Class 1 complient mod_webdav
+  * fixed ssl support (especially on OpenBSD)
+  * fixed response header in body problem in mod_cgi
+  * fixed numbers before body problem
+  * fixed compilation on Solaris and FreeBSD
+  * fixed conditional options in mod_dirlisting
+  * fixed segfault in mod_dirlisting for NFS directories
+  * fixed check for docroot in change-root environments
+
+- 1.4.0 - 2005-08-17
+
+  * added nested conditionals
+  * added remote-ip to $HTTP
+  * added support for stat-cache via FAM
+  * added a read-only WebDAV module
+  * fixed cleanup in mod_proxy and mod_fastcgi
+  * fixed handling of filenames on case-insensitive filesystems
+
+- 1.3.16 - 2005-07-31
+
+  * added Date: headers to dynamic HTTP/1.0 requests
+  * added support for OPTION * HTTP/1.1
+  * added support for accesslog to syslog
+  * added support for PATH_INFO guessing if check-local is disabled in
+      mod_fastcgi
+  * added switch to disable range-requests
+  * added valid-user option for mod_auth (tigger at gentoo.org)
+  * added JavaScript based sorting to mod_status (erik)
+  * added selective TCP_CORK (Christian von Roques)
+  * break up endless loops with Status: 500
+  * fixed endless loops in mod_rewrite
+  * mapped url.rewrite and url.rewrite-final to uri.rewrite-once
+  * fixed compilation for mod_trigger_b4_dl
+  * fixed 'can't reach host' in mod_proxy
+  * error-handler-404 defaults to Status: 200 and static files work now
+
+- 1.3.15 - 2005-07-15
+
+  * added mod_cml
+  * added mod_trigger_b4_dl
+  * added encoding to mod_dirlisting
+  * added ?auto to mod_status
+  * relaxed handling of characters in URIs even more
+  * fixed detection of sendfile() on Linux 2.4.x
+  * fixed comparision of buffers for short strings
+  * server.errorfile-prefix is now conditional
+  * fixed mod_rrdtool to close STDERR
+
+- 1.3.14 - 2005-06-15
+
+  * added SCGI support via mod_scgi
+  * added hash-based and round-robin load balancing to mod_proxy
+  * fixed range requests larger than 2Gb
+  * fixed compilation on Solaris
+  * fixed endless loops in mod_fastcgi, mod_cgi and mod_proxy
+  * fixed handling of URIs for '+' and characters > 127
+
+- 1.3.13 - 2005-03-06
+
+  * added customizable directory listings
+  * fixed compile error on all BSD unixes
+  * fixed PATHINFO handling for FastCGI
+  * fixed handling of remote-close on FreeBSD and OpenSSL
+
+- 1.3.12 - 2005-03-02
+
+  * added ssl.ca-file
+  * added support for \n\n as terminator
+  * rewrote test-framework and added more tests
+  * fixed cgi.assign with empty handler
+  * fixed segfault in debug-code
+  * fixed mod_expire if modification-timestamps are used
+  * fixed segfault on duplication Host-headers
+  * fixed endless loop in mod_fastcgi
+  * fixed handling of dead fastcgi-processes
+
+- 1.3.11 - 2005-02-20
+
+  * added REMOTE_PORT and SERVER_ADDR to CGI-env
+  * relaxed handling of newlines before keep-alive requests
+  * relaxed uri-parser again
+  * fixed PHP_SELF for php
+  * fixed compilation on MacOS X
+  * fixed handling of EPIPE and ECONNRESET
+  * fixed crash in mod_auth if config-options are missing
+  * fixed handling of missing trailing / in mod_userdir
+  * fixed conditional secdownload.secret
+  * fixed REPORT ME error due to failed reconnects in mod_fastcgi
+  * fixed cmdline handling in mod_fastcgi
+
+- 1.3.10 - 2005-02-06
+
+  * added support for full commandline in spawn-fcgi
+  * fixed missing check for IP-address in mod_fastcgi
+  * fixed compile error with openssl in mod_fastcgi
+  * removed a debug-message from network-functions
+
+- 1.3.9 - 2005-02-06
+
+  * added a stricter URI parser
+  * added a check to the CGI spawner if the cgi-handler exists
+  * added documentation for SSL and mod_status
+  * added handling of startup environment to FastCGI
+  * improved performance in FastCGI in buildind the FastCGI header
+  * fixed min-procs and max-procs in FastCGI on PowerPC
+  * fixed crash in setenv.add-response-header
+  * fixed handling of nph-scripts in CGI
+  * fixed accidently sending out physical file in CGI on error
+  * fixed cygwin support
+  * fixed handling of missing files
+  * fixed HEAD requests for dynamic requests
+
+- 1.3.8 - 2005-01-30
+
+  * added traffic shaping by remote host and virtual server
+  * added auto-spawning of FastCGI process on demand
+  * added virtual host based on MySQL
+  * added mod_setenv to add envirnoment and http headers on the fly
+  * added support for syslog in mod_accesslog
+  * improved output of mod_status
+  * improved debug output in request handling
+  * fixed build problems on netbsd 1.4.x and 1.5.x
+  * fixed status.url configuration
+  * fixed handling of != and !~ in configutation
+  * fixed special cases in keep-alive handling
+  * fixed timeout handling in handling POST requests
+  * fixed mode AUTHORIZER in FastCGI
+  * fixed handling if internal redirects if no Host: is supplied
+  * fixed mod_alias + pathinfo
+  * fixed directory indexes and permissions
+  * enabled sending errorlog to syslog again
+
+- 1.3.7 - 2004-12-11
+
+  * added retries for a fastcgi connect if a php-childs
+    dies at startup
+  * update the debian directory
+  * added setgroups() to drop all group-privs
+  * added native port to windows via mingw32
+  * added server.tag = '...'
+  * added support for ${...} in mod_ssi
+  * ported all plugins to conditional support
+  * fixed multipart handling in cgi
+  * fixed kqueue event-handler
+  * fixed wrap-around in mod_status
+  * fixed crash with SSL + FastCGI
+  * fixed detection of SSL headers
+  * fixed handling of dangling SSL_shutdown
+  * fixed detection of keep-alive of Firefox
+
+- 1.3.6 - 2004-11-03
+
+  * added spawn-fcgi to the distribution
+  * added support in fastcgi module to spawn fastcgi
+    processes itself
+  * fixed logfile cycling if external logging is used
+  * fixed connection handling in fastcgi if no chunk
+    encoding is used
+  * fixed internal redirects on directories if a query
+    string is supplied
+  * fixed cgi-module for POST request above 4k
+  * fixed mod_alias and follow-symlink
+
+- 1.3.5 - 2004-10-31
+
+  * added mod_alias
+  * added mod_userdir
+  * added the exec command to the SSI handler
+  * added a switch to disable follow-symlinks
+  * added a switch to disable IPv6 at compile-time
+  * fixed compilation on FreeBSD and NetBSD 1.3.x
+  * fixed segfault in pipelining
+  * fixed a segfault in writev() handler if LFS is used
+
+- 1.3.4 - 2004-10-24
+
+  * added limiter for open files
+  * added logging of user supplied data to accesslogs
+  * added build target for OpenWRT
+  * added plain backend support for auth-digest
+  * fixed handling the external accesslog processes
+  * fixed SERVER_NAME in CGI and FastCGI
+
+- 1.3.3 - 2004-10-16
+
+  * added support for NL terminators in CGI-scripts
+  * added support for conditionals in mod_auth,
+    mod_simple_vhost and mod_evhost
+  * added a error-handler for 404 codes
+  * fixed request counter in the rrdtool module
+  * fixed log-file cycling
+  * fixed seg-fault
+
+- 1.3.2 - 2004-09-30
+
+  * fixed file-cache
+
+- 1.3.1 - 2004-09-30
+
+  * fixed file-cache
+  * fixed parsing of IPv6 adresses
+  * fixed cgi for cygwin
+  * fixed test-suite for FreeBSD and IRIX
+  * fixed handling of shrinked files
+  * fixed handling of REQUEST_URI after rewrite
+
+- 1.3.0 - 2004-09-17
+
+  * added build for MacOS X and Cygwin
+  * added handling of more than one socket
+  * added config-conditions for User-Agent and Referer
+  * added final rewrite-rules
+
+- 1.2.8 - 2004-09-11
+
+  * added a cache for mimetypes
+  * added X-Forwarded-For for mod_proxy
+  * fixed handling of comments in If-Modified-Since
+  * fixed error handling in FastCGI code
+  * fixed expire plugin for second Expire header
+
+- 1.2.7 - 2004-09-04
+
+  * added mod_rrdtool for internal statistics
+  * added xattr support
+  * added user-controlable timeouts
+  * improved documentation for many plugins
+  * fixed POST requests for mod_proxy
+  * fixed rare hang with CGI
+  * fixed seg-fault if no configfile is specified
+  * fixed rare problem in FastCGI header generation
+
+- 1.2.6 - 2004-08-26
+
+  * added apache-like accesslog definition
+  * enabled timestamp cache again
+  * improved performance in the string compare functions
+  * fixed double-free in fastcgi handler
+  * fixed error-handling in cgi handler
+
+- 1.2.5 - 2004-08-10
+
+  * added skeleton for solaris 10 port-API
+  * added compression support even if no cachedir is set
+  * added conditional configoptions
+  * fixed compilation on OpenBSD
+  * fixed kqueue support
+  * fixed pipelining bug
+  * fixed parallel build (triggered by Gentoo)
+  * updated debian postinst
+
+- 1.2.4 - 2004-07-31
+
+  * added kqueue support
+  * added server-side includes (mod_ssi)
+  * fixed large post uploads in fastcgi
+  * fixed rt-signals handling of delayed events
+
+- 1.2.3 - 2004-07-10
+
+  * added a proxy module for Java and friends
+  * added support to pass accesslog through an external programm
+  * added mimetypes for text/css and text/javascript
+  * fixed index-files for FastCGI if webserver is in chroot
+  * fixed error messages of CGI process fails to exec()
+  * fixed detection of pcre on IRIX and FreeBSD
+  * fixed timestamps in Last-Modified checks
+  * fixed 64bit builds
+  * fixed mmap-caching of large files
+  * relaxed the HTTP parser on empty headerfields
+
+- 1.2.2 - 2004-06-15
+
+  * added support for unix domain sockets in FastCGI
+  * fixed mmap caching
+  * fixed compile-time check for linux sendfile()
+  * fixed check for pcre.h on Fedora Core 2
+
+- 1.2.1 - 2004-05-30
+
+  * added experimental support for AIX send_file()
+  * added an mmap cache to the filehandle cache
+  * enabled FreeBSD sendfile support again
+  * added support for calling CGI binaries directly
+  * fixed pipelining for POST requests
+  * fixed some seg-faults if no configfile is used
+
+- 1.2.0 - 2004-05-17
+
+  * added conforming Expect: handling
+  * added a module for secure and fast downloading
+  * rewrote the event handling interface
+  * fixed array handling which might lead to 'missing header'
+  * fixed pipelining support
+  * fixed build of the localizer extension
+  * fixed cgi handling for headers which are flushed to often
+  * fixed compilation on Solaris 2.5
+
+- 1.1.9 - 2004-04-29
+
+  * added AUTHORIZER mode to the FastCGI module
+  * added 'check-local' option to disable local stat() in the FastCGI module
+  * added prefix-notation for FastCGI module
+  * added 'mod_usertrack'
+  * improved CGI/FastCGI spec conformance
+  * more code cleanup
+  * fixed HTTP/1.1 chunk headers
+  * fixed POST handling
+  * fixed SSL network handler
+  * fixed writev() network handler
+
+- 1.1.8 - 2004-04-16
+
+  * code cleanup
+  * limiting the size of the request-body and the request-header
+  * minor speed improvements
+  * tightend the HTTP-Parser again
+
+- 1.1.7 - 2004-04-12
+
+  * added REMOTE_USER to the Server->FastCGI parameters
+  * added bzip2 compression
+  * improved the error-messages from the new configfile parser
+  * fixed accesslog writing for errornous requests
+  * fixed LFS (64bit filesizes) handling
+  * fixed Content-Length for HEAD requests
+  * fixed some memory leaks in the configfile parser
+
+- 1.1.6 - 2004-04-10
+
+  * tightend the HTTP-Parser
+  * rewrote the configfile parser (based on lemon)
+  * fixed openssl support
+  * fixed mmap+write support
+  * use localtime in accesslog if possible
+
+- 1.1.5 - 2004-04-07
+
+  * added ldap backend to the auth
+  * added a mod_expire
+  * added debian packaging structure
+  * merged redhat and suse spec-file
+  * fixed eventhandler for solaris
+  * fixed 64bit fileoffsets
+  * fixed permissions of the PID-file
+
+- 1.1.4 - 2004-04-04
+
+  * added server.pid-file
+  * added support for solaris /dev/poll and solaris sendfilev()
+  * added support for writev()
+  * added PATHINFO support (again)
+  * fixed CLF logfile writing
+
+- 1.1.3 - 2004-03-25
+
+  * set default event-handler to 'poll'
+  * fixed logcycling in chroot()
+  * fixed hostname detection
+  * added syslog() as fallback for error-logging
+
+- 1.1.2 - 2004-03-22
+
+  * added a "docroot" setting for fastcgi processes
+  * performance improvements
+  * improved configure script
+  * rewrote the fastcgi config parser
+  * added a rc-script for RedHat
+  * added epoll() support for Linux 2.6.x
+
+- 1.1.1 - 2004-03-15
+
+  * added localizer module
+  * performance improvements
+  * code cleanup
+
+- 1.1.0 - 2004-03-06
+
+  * changed some configuration keys for better readability
+  * moved the virtual-host code to mod_simple_vhost
+  * added enhanced virtual host plugin from Christian Kruse
+  * added two new auth-backends (htpasswd, htdigest)
+  * fixed and improved authentification
+  * stricter parsing of the Host: field
+  * added a warning for unused configuration keys
+  * improved FastCGI documentation
+
+- 1.0.3 - 2004-02-13
+
+  * a startup script has been added (LSB compliant)
+  * HEAD requests were submitting the content like a GET request
+  * the virtual directory listing got a face-lifting and fixes
+  * request-headers are now handled case-in-sensitive as required
+    by the standard. this fixes POST requests for w3m and some Proxies.
+
+- 1.0.2 - 2004-02-07
+
+  * rearrangement of the default configfile
+  * some updates in the documentation
+  * a entry in the error-log for a 404
+  * stdout is no longer the default for the accesslog
diff --git a/lighttpd/README b/lighttpd/README
new file mode 100644
index 0000000..318da22
--- /dev/null
+++ b/lighttpd/README
@@ -0,0 +1,156 @@
+
+========
+lighttpd
+========
+
+-------------
+a light httpd
+-------------
+
+:author: Jan Kneschke
+:Date: $Date: 2004/11/03 22:25:54 $
+:Revision: $Revision: 1.8 $
+
+:abstract:
+  lighttpd a secure, fast, compliant and very flexible web-server
+  which has been optimized for high-performance environments. It has a very
+  low memory footprint compared to other webservers and takes care of cpu-load.
+  Its advanced feature-set (FastCGI, CGI, Auth, Output-Compression,
+  URL-Rewriting and many more) make lighttpd the perfect webserver-software
+  for every server that is suffering load problems.
+
+the naming
+----------
+
+lighttpd is a __httpd__ which is
+
+- fast as __light__ning and
+- __light__ when it comes to memory consumption and system requirements
+
+Features
+--------
+
+Network
+```````
+
+- IPv4, IPv6
+
+Protocols
+`````````
+
+- HTTP/1.0 (http://www.ietf.org/rfc/rfc1945.txt)
+- HTTP/1.1 (http://www.ietf.org/rfc/rfc2616.txt)
+- HTTPS (provided by openssl)
+- CGI/1.1 (http://CGI-Spec.Golux.Com/)
+- FastCGI (http://www.fastcgi.com/devkit/doc/fcgi-spec.html)
+
+Advanced Features
+`````````````````
+
+- load-balanced FastCGI
+  (one webserver distributes requests to multiple PHP-servers via FastCGI)
+- custom error pages (for Response-Code 400-599)
+- virtual hosts
+- directory listings
+- streaming CGI and FastCGI
+- URL-Rewriting
+- HTTP-Redirection
+- output-compression with transparent caching
+
+FastCGI-Support
+```````````````
+
+- parses the Response-header and completes the HTTP-header accordingly
+- Keep-Alive handling based on Content-Length header
+
+PHP-Support
+```````````
+
+- same speed as or faster than apache + mod_php4
+- handles various PHP bugs in the FastCGI SAPI
+- includes a utility to spawn FastCGI processes (necessary for PHP 4.3.x)
+
+Security features
+`````````````````
+
+- chroot(), set UID, set GID
+- protecting docroot
+
+HTTP/1.1 features
+`````````````````
+
+- Ranges (start-end, start-, -end, multiple ranges)
+- HTTP/1.0 Keep-Alive + HTTP/1.1 persistent Connections
+- methods: GET, HEAD, POST
+- Last-Modified + If-Modified handling
+- sends Content-Length if possible
+- sends Transfer-Encoding: chunk, if Content-Length is not possible
+- sends Content-Type
+- on-the-fly output compression (deflate, gzip)
+- authentication: basic and digest
+  (http://www.ietf.org/rfc/rfc2617.txt)
+
+HTTP/1.1 compliance
+```````````````````
+
+- Sends 206 for Range Requests
+- Sends 304 for If-Modified Requests
+- Sends 400 for missing Host on HTTP/1.1 requests
+- Sends 400 for broken Request-Line
+- Sends 411 for missing Content-Length on POST requests
+- Sends 416 for "out-of-range" on Range: Header
+- Sends 501 for request-method != (GET|POST|HEAD)
+- Sends 505 for protocol != HTTP/1.0 or HTTP/1.1
+- Sends Date: on every requests
+
+Intended Audience
+-----------------
+
+- Ad-Server Front-Ends ("Banner-Schleuder")
+  - delivering small files rapidly
+- php-servers under high load
+  (load-balancing the php-request over multiple PHP-servers)
+
+Works with
+----------
+
+It has been tested to work with
+
+- IE 6.0
+- Mozilla 1.x
+- Konqueror 3.1
+  (for Keep-Alive/Persistent Connections, Accept-Encoding for PHP + gzip)
+- wget
+  (for Resuming)
+- acrobat plugin
+  (for multiple ranges)
+
+
+Works on
+--------
+
+lighttpd has been verified to compile and work on
+
+- Linux
+- FreeBSD
+- NetBSD
+- Solaris 8 + 9
+- SGI IRIX 6.5
+
+missing for HTTP/1.1 compliance
+-------------------------------
+- parsing chunked POST request
+
+-----------------
+Starting lighttpd
+-----------------
+
+As daemon in the background: ::
+
+  $ lighttpd -f <configfile>
+
+or without detaching from the console: ::
+
+  $ lighttpd -D -f <configfile>
+
+
diff --git a/lighttpd/SConstruct b/lighttpd/SConstruct
new file mode 100644
index 0000000..04eb15a
--- /dev/null
+++ b/lighttpd/SConstruct
@@ -0,0 +1,277 @@
+import os
+import sys
+import re
+import string
+from stat import *
+
+package = 'lighttpd'
+version = '1.4.19'
+
+def checkCHeaders(autoconf, hdrs):
+	p = re.compile('[^A-Z0-9]')
+	for hdr in hdrs:
+		if not hdr:
+			continue
+		_hdr = Split(hdr)
+ 		if autoconf.CheckCHeader(_hdr):
+ 			autoconf.env.Append(CPPFLAGS = [ '-DHAVE_' + p.sub('_', _hdr[-1].upper()) ])
+
+def checkFuncs(autoconf, funcs):
+	p = re.compile('[^A-Z0-9]')
+	for func in funcs:
+		if autoconf.CheckFunc(func):
+			autoconf.env.Append(CPPFLAGS = [ '-DHAVE_' + p.sub('_', func.upper()) ])
+
+def checkTypes(autoconf, types):
+	p = re.compile('[^A-Z0-9]')
+	for type in types:
+		if autoconf.CheckType(type, '#include <sys/types.h>'):
+			autoconf.env.Append(CPPFLAGS = [ '-DHAVE_' + p.sub('_', type.upper()) ])
+
+def checkProgram(env, withname, progname):
+	withname = 'with_' + withname
+	binpath = None
+
+	if env[withname] != 1:
+		binpath = env[withname]
+	else:
+		prog = env.Detect(progname)
+		if prog:
+			binpath = env.WhereIs(prog)
+
+	if binpath:
+		mode = os.stat(binpath)[ST_MODE]
+		if S_ISDIR(mode):
+			print >> sys.stderr, "* error: path `%s' is a directory" % (binpath)
+			env.Exit(-1)
+		if not S_ISREG(mode):
+			print >> sys.stderr, "* error: path `%s' is not a file or not exists" % (binpath)
+			env.Exit(-1)
+
+	if not binpath:
+		print >> sys.stderr, "* error: can't find program `%s'" % (progname)
+		env.Exit(-1)
+
+	return binpath
+
+def checkStructMember(context):
+	struct_member = """
+#include <time.h>
+int main() {
+	struct tm a;
+	a.tm_gmtoff = 0;
+	return 0;
+}
+"""
+	context.Message('Checking for tm_gmtoff in struct tm...')
+	result = context.TryLink(struct_member, '.c')
+	context.Result(result)
+
+	return result
+
+
+BuildDir('build', 'src', duplicate = 0)
+
+opts = Options('config.py')
+opts.AddOptions(
+	('prefix', 'prefix', '/usr/local'),
+	('bindir', 'binary directory', '${prefix}/bin'),
+	('sbindir', 'binary directory', '${prefix}/sbin'),
+	('libdir', 'library directory', '${prefix}/lib'),
+	PackageOption('with_mysql', 'enable mysql support', 'no'),
+	PackageOption('with_xml', 'enable xml support', 'no'),
+	PackageOption('with_pcre', 'enable pcre support', 'yes'),
+	PathOption('CC', 'path to the c-compiler', None),
+	BoolOption('build_dynamic', 'enable dynamic build', 'yes'),
+	BoolOption('build_static', 'enable static build', 'no'),
+	BoolOption('build_fullstatic', 'enable fullstatic build', 'no'),
+	BoolOption('with_sqlite3', 'enable sqlite3 support', 'no'),
+	BoolOption('with_memcache', 'enable memcache support', 'no'),
+	BoolOption('with_fam', 'enable FAM/gamin support', 'no'),
+	BoolOption('with_openssl', 'enable memcache support', 'no'),
+	BoolOption('with_gzip', 'enable gzip compression', 'no'),
+	BoolOption('with_bzip2', 'enable bzip2 compression', 'no'),
+	BoolOption('with_lua', 'enable lua support for mod_cml', 'no'),
+	BoolOption('with_ldap', 'enable ldap auth support', 'no'))
+
+env = Environment(
+	env = os.environ,
+	options = opts,
+	CPPPATH = Split('#build')
+)
+
+env.Help(opts.GenerateHelpText(env))
+
+if env.subst('${CC}') is not '':
+	env['CC'] = env.subst('${CC}')
+
+env['package'] = package
+env['version'] = version
+if env['CC'] == 'gcc':
+	## we need x-open 6 and bsd 4.3 features
+	env.Append(CCFLAGS = Split('-Wall -O2 -g -W -pedantic -Wunused -Wshadow -std=gnu99'))
+
+# cache configure checks
+if 1:
+	autoconf = Configure(env, custom_tests = {'CheckStructMember': checkStructMember })
+	autoconf.headerfile = "foo.h"
+	checkCHeaders(autoconf, string.split("""
+			arpa/inet.h
+			fcntl.h
+			netinet/in.h
+			sys/types.h netinet/in.h
+			stdlib.h
+			string.h
+			sys/socket.h
+			sys/types.h sys/socket.h
+		 	sys/time.h
+			unistd.h
+			sys/sendfile.h
+			sys/uio.h
+			sys/types.h sys/uio.h
+			getopt.h
+			sys/epoll.h
+			sys/select.h
+			sys/types.h sys/select.h
+			poll.h
+			sys/poll.h
+			sys/devpoll.h
+			sys/filio.h
+			sys/mman.h
+			sys/types.h sys/mman.h
+			sys/event.h
+			sys/types.h sys/event.h
+			sys/port.h
+			winsock2.h
+			pwd.h
+			sys/syslimits.h
+			sys/resource.h
+			sys/time.h sys/types.h sys/resource.h
+			sys/un.h
+			sys/types.h sys/un.h
+			syslog.h
+			stdint.h
+			inttypes.h
+			sys/prctl.h
+			sys/wait.h""", "\n"))
+
+	checkFuncs(autoconf, Split('fork stat lstat strftime dup2 getcwd inet_ntoa inet_ntop memset mmap munmap strchr \
+			strdup strerror strstr strtol sendfile  getopt socket \
+			gethostbyname poll sigtimedwait epoll_ctl getrlimit chroot \
+			getuid select signal pathconf madvise prctl\
+			writev sigaction sendfile64 send_file kqueue port_create localtime_r posix_fadvise'))
+
+	checkTypes(autoconf, Split('pid_t size_t off_t'))
+
+	autoconf.env.Append( LIBSQLITE3 = '', LIBXML2 = '', LIBMYSQL = '', LIBZ = '',
+		LIBBZ2 = '', LIBCRYPT = '', LIBMEMCACHE = '', LIBFCGI = '', LIBPCRE = '',
+		LIBLDAP = '', LIBLBER = '', LIBLUA = '', LIBLUALIB = '', LIBDL = '')
+
+	if env['with_fam']:
+		if autoconf.CheckLibWithHeader('fam', 'fam.h', 'C'):
+			autoconf.env.Append(CPPFLAGS = [ '-DHAVE_FAM_H', '-DHAVE_LIBFAM' ], LIBS = 'fam')
+			checkFuncs(autoconf, ['FAMNoExists']);
+
+
+	if autoconf.CheckLibWithHeader('crypt', 'crypt.h', 'C'):
+		autoconf.env.Append(CPPFLAGS = [ '-DHAVE_CRYPT_H', '-DHAVE_LIBCRYPT' ], LIBCRYPT = 'crypt')
+
+	if autoconf.CheckLibWithHeader('uuid', 'uuid/uuid.h', 'C'):
+		autoconf.env.Append(CPPFLAGS = [ '-DHAVE_UUID_UUID_H', '-DHAVE_LIBUUID' ], LIBUUID = 'uuid')
+
+	if env['with_openssl']:
+		if autoconf.CheckLibWithHeader('ssl', 'openssl/ssl.h', 'C'):
+			autoconf.env.Append(CPPFLAGS = [ '-DHAVE_OPENSSL_SSL_H', '-DHAVE_LIBSSL'] , LIBS = [ 'ssl', 'crypto' ])
+
+	if env['with_gzip']:
+		if autoconf.CheckLibWithHeader('z', 'zlib.h', 'C'):
+			autoconf.env.Append(CPPFLAGS = [ '-DHAVE_ZLIB_H', '-DHAVE_LIBZ' ], LIBZ = 'z')
+
+	if env['with_ldap']:
+		if autoconf.CheckLibWithHeader('ldap', 'ldap.h', 'C'):
+			autoconf.env.Append(CPPFLAGS = [ '-DHAVE_LDAP_H', '-DHAVE_LIBLDAP' ], LIBLDAP = 'ldap')
+		if autoconf.CheckLibWithHeader('lber', 'lber.h', 'C'):
+			autoconf.env.Append(CPPFLAGS = [ '-DHAVE_LBER_H', '-DHAVE_LIBLBER' ], LIBLBER = 'lber')
+
+	if env['with_bzip2']:
+		if autoconf.CheckLibWithHeader('bz2', 'bzlib.h', 'C'):
+			autoconf.env.Append(CPPFLAGS = [ '-DHAVE_BZLIB_H', '-DHAVE_LIBBZ2' ], LIBBZ2 = 'bz2')
+
+	if env['with_memcache']:
+		if autoconf.CheckLibWithHeader('memcache', 'memcache.h', 'C'):
+			autoconf.env.Append(CPPFLAGS = [ '-DHAVE_MEMCACHE_H', '-DHAVE_LIBMEMCACHE' ], LIBMEMCACHE = 'memcache')
+
+	if env['with_sqlite3']:
+		if autoconf.CheckLibWithHeader('sqlite3', 'sqlite3.h', 'C'):
+			autoconf.env.Append(CPPFLAGS = [ '-DHAVE_SQLITE3_H', '-DHAVE_LIBSQLITE3' ], LIBSQLITE3 = 'sqlite3')
+
+	ol = env['LIBS']
+	if autoconf.CheckLibWithHeader('fcgi', 'fastcgi.h', 'C'):
+		autoconf.env.Append(LIBFCGI = 'fcgi')
+	env['LIBS'] = ol
+
+	ol = env['LIBS']
+	if autoconf.CheckLibWithHeader('dl', 'dlfcn.h', 'C'):
+		autoconf.env.Append(LIBDL = 'dl')
+	env['LIBS'] = ol
+
+	if autoconf.CheckType('socklen_t', '#include <unistd.h>\n#include <sys/socket.h>\n#include <sys/types.h>'):
+		autoconf.env.Append(CPPFLAGS = [ '-DHAVE_SOCKLEN_T' ])
+
+	if autoconf.CheckType('struct sockaddr_storage', '#include <sys/socket.h>\n'):
+		autoconf.env.Append(CPPFLAGS = [ '-DHAVE_STRUCT_SOCKADDR_STORAGE' ])
+
+	if autoconf.CheckStructMember():
+		autoconf.env.Append(CPPFLAGS = [ '-DHAVE_STRUCT_TM_GMTOFF' ])
+
+	env = autoconf.Finish()
+
+	if env['with_lua']:
+		oldlibs = env['LIBS']
+		env.ParseConfig("pkg-config 'lua >= 5.0' --cflags --libs")
+		lualibs = env['LIBS'][len(oldlibs):]
+		env.Append(LIBLUA = lualibs)
+		env.Append(CPPFLAGS = [ '-DHAVE_LUA_H' ])
+		env['LIBS'] = oldlibs
+
+
+if env['with_pcre']:
+	pcre_config = checkProgram(env, 'pcre', 'pcre-config')
+	env.ParseConfig(pcre_config + ' --cflags --libs')
+	env.Append(CPPFLAGS = [ '-DHAVE_PCRE_H', '-DHAVE_LIBPCRE' ], LIBPCRE = 'pcre')
+
+if env['with_xml']:
+	xml2_config = checkProgram(env, 'xml', 'xml2-config')
+	oldlib = env['LIBS']
+	env['LIBS'] = []
+	env.ParseConfig(xml2_config + ' --cflags --libs')
+	env.Append(CPPFLAGS = [ '-DHAVE_LIBXML_H', '-DHAVE_LIBXML2' ], LIBXML2 = env['LIBS'])
+	env['LIBS'] = oldlib
+
+if env['with_mysql']:
+	mysql_config = checkProgram(env, 'mysql', 'mysql_config')
+	oldlib = env['LIBS']
+	env['LIBS'] = []
+	env.ParseConfig(mysql_config + ' --cflags --libs')
+	env.Append(CPPFLAGS = [ '-DHAVE_MYSQL_H', '-DHAVE_LIBMYSQL' ], LIBMYSQL = 'mysqlclient')
+	env['LIBS'] = oldlib
+
+if re.compile("cygwin|mingw").search(env['PLATFORM']):
+	env.Append(COMMON_LIB = 'bin')
+elif re.compile("darwin|aix").search(env['PLATFORM']):
+	env.Append(COMMON_LIB = 'lib')
+else:
+	env.Append(COMMON_LIB = False)
+
+versions = string.split(version, '.')
+version_id = int(versions[0]) << 16 | int(versions[1]) << 8 | int(versions[2])
+env.Append(CPPFLAGS = [
+		'-DLIGHTTPD_VERSION_ID=' + str(version_id),
+		'-DPACKAGE_NAME=\\"' + package + '\\"',
+		'-DPACKAGE_VERSION=\\"' + version + '\\"',
+		'-DLIBRARY_DIR="\\"${libdir}\\""',
+		'-D_FILE_OFFSET_BITS=64', '-D_LARGEFILE_SOURCE', '-D_LARGE_FILES'
+		] )
+
+SConscript( 'src/SConscript', 'env', build_dir = 'build', duplicate = 0)
+SConscript( 'tests/SConscript', 'env' )
diff --git a/lighttpd/aclocal.m4 b/lighttpd/aclocal.m4
new file mode 100644
index 0000000..4009b12
--- /dev/null
+++ b/lighttpd/aclocal.m4
@@ -0,0 +1,7742 @@
+# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005  Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+
+# serial 52 Debian 1.5.26-4 AC_PROG_LIBTOOL
+
+
+# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+# -----------------------------------------------------------
+# If this macro is not defined by Autoconf, define it here.
+m4_ifdef([AC_PROVIDE_IFELSE],
+         [],
+         [m4_define([AC_PROVIDE_IFELSE],
+	         [m4_ifdef([AC_PROVIDE_$1],
+		           [$2], [$3])])])
+
+
+# AC_PROG_LIBTOOL
+# ---------------
+AC_DEFUN([AC_PROG_LIBTOOL],
+[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
+dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
+dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
+  AC_PROVIDE_IFELSE([AC_PROG_CXX],
+    [AC_LIBTOOL_CXX],
+    [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
+  ])])
+dnl And a similar setup for Fortran 77 support
+  AC_PROVIDE_IFELSE([AC_PROG_F77],
+    [AC_LIBTOOL_F77],
+    [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
+])])
+
+dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
+dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
+dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
+  AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+    [AC_LIBTOOL_GCJ],
+    [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+      [AC_LIBTOOL_GCJ],
+      [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
+	[AC_LIBTOOL_GCJ],
+      [ifdef([AC_PROG_GCJ],
+	     [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+       ifdef([A][M_PROG_GCJ],
+	     [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+       ifdef([LT_AC_PROG_GCJ],
+	     [define([LT_AC_PROG_GCJ],
+		defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
+])])# AC_PROG_LIBTOOL
+
+
+# _AC_PROG_LIBTOOL
+# ----------------
+AC_DEFUN([_AC_PROG_LIBTOOL],
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+# Prevent multiple expansion
+define([AC_PROG_LIBTOOL], [])
+])# _AC_PROG_LIBTOOL
+
+
+# AC_LIBTOOL_SETUP
+# ----------------
+AC_DEFUN([AC_LIBTOOL_SETUP],
+[AC_PREREQ(2.50)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
+
+AC_REQUIRE([AC_PROG_LN_S])dnl
+AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+AC_REQUIRE([AC_OBJEXT])dnl
+AC_REQUIRE([AC_EXEEXT])dnl
+dnl
+AC_LIBTOOL_SYS_MAX_CMD_LEN
+AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+AC_LIBTOOL_OBJDIR
+
+AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+_LT_AC_PROG_ECHO_BACKSLASH
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e 1s/^X//'
+[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
+
+# Same as above, but do not quote variable references.
+[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+AC_CHECK_TOOL(AR, ar, false)
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+AC_CHECK_TOOL(STRIP, strip, :)
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$SED" && SED=sed
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    ;;
+  *)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+_LT_CC_BASENAME([$compiler])
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    AC_PATH_MAGIC
+  fi
+  ;;
+esac
+
+_LT_REQUIRED_DARWIN_CHECKS
+
+AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+enable_win32_dll=yes, enable_win32_dll=no)
+
+AC_ARG_ENABLE([libtool-lock],
+    [AC_HELP_STRING([--disable-libtool-lock],
+	[avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+AC_ARG_WITH([pic],
+    [AC_HELP_STRING([--with-pic],
+	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+    [pic_mode="$withval"],
+    [pic_mode=default])
+test -z "$pic_mode" && pic_mode=default
+
+# Use C for the default configuration in the libtool script
+tagname=
+AC_LIBTOOL_LANG_C_CONFIG
+_LT_AC_TAGCONFIG
+])# AC_LIBTOOL_SETUP
+
+
+# _LT_AC_SYS_COMPILER
+# -------------------
+AC_DEFUN([_LT_AC_SYS_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_AC_SYS_COMPILER
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+AC_DEFUN([_LT_CC_BASENAME],
+[for cc_temp in $1""; do
+  case $cc_temp in
+    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+])
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+AC_DEFUN([_LT_COMPILER_BOILERPLATE],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+AC_DEFUN([_LT_LINKER_BOILERPLATE],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm -r conftest*
+])# _LT_LINKER_BOILERPLATE
+
+# _LT_REQUIRED_DARWIN_CHECKS
+# --------------------------
+# Check for some things on darwin
+AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS],[
+  case $host_os in
+    rhapsody* | darwin*)
+    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
+    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
+
+    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
+      [lt_cv_apple_cc_single_mod=no
+      if test -z "${LT_MULTI_MODULE}"; then
+   # By default we will add the -single_module flag. You can override
+   # by either setting the environment variable LT_MULTI_MODULE
+   # non-empty at configure time, or by adding -multi_module to the
+   # link flags.
+   echo "int foo(void){return 1;}" > conftest.c
+   $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+     -dynamiclib ${wl}-single_module conftest.c
+   if test -f libconftest.dylib; then
+     lt_cv_apple_cc_single_mod=yes
+     rm -rf libconftest.dylib*
+   fi
+   rm conftest.c
+      fi])
+    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
+      [lt_cv_ld_exported_symbols_list],
+      [lt_cv_ld_exported_symbols_list=no
+      save_LDFLAGS=$LDFLAGS
+      echo "_main" > conftest.sym
+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+   [lt_cv_ld_exported_symbols_list=yes],
+   [lt_cv_ld_exported_symbols_list=no])
+   LDFLAGS="$save_LDFLAGS"
+    ])
+    case $host_os in
+    rhapsody* | darwin1.[[0123]])
+      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+    darwin1.*)
+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+    darwin*)
+      # if running on 10.5 or later, the deployment target defaults
+      # to the OS version, if on x86, and 10.4, the deployment
+      # target defaults to 10.4. Don't you love it?
+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+   10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+     _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+   10.[[012]]*)
+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+   10.*)
+     _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+      esac
+    ;;
+  esac
+    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+      _lt_dar_single_mod='$single_module'
+    fi
+    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    else
+      _lt_dar_export_syms="~$NMEDIT -s \$output_objdir/\${libname}-symbols.expsym \${lib}"
+    fi
+    if test "$DSYMUTIL" != ":"; then
+      _lt_dsymutil="~$DSYMUTIL \$lib || :"
+    else
+      _lt_dsymutil=
+    fi
+    ;;
+  esac
+])
+
+# _LT_AC_SYS_LIBPATH_AIX
+# ----------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+lt_aix_libpath_sed='
+    /Import File Strings/,/^$/ {
+	/^0/ {
+	    s/^0  *\(.*\)$/\1/
+	    p
+	}
+    }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then
+  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi],[])
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+])# _LT_AC_SYS_LIBPATH_AIX
+
+
+# _LT_AC_SHELL_INIT(ARG)
+# ----------------------
+AC_DEFUN([_LT_AC_SHELL_INIT],
+[ifdef([AC_DIVERSION_NOTICE],
+	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+	 [AC_DIVERT_PUSH(NOTICE)])
+$1
+AC_DIVERT_POP
+])# _LT_AC_SHELL_INIT
+
+
+# _LT_AC_PROG_ECHO_BACKSLASH
+# --------------------------
+# Add some code to the start of the generated configure script which
+# will find an echo command which doesn't interpret backslashes.
+AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
+[_LT_AC_SHELL_INIT([
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+  # Remove one level of quotation (which was required for Make).
+  ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+  ;;
+esac
+
+echo=${ECHO-echo}
+if test "X[$]1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X[$]1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
+  # Yippee, $echo works!
+  :
+else
+  # Restart under the correct shell.
+  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
+fi
+
+if test "X[$]1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+[$]*
+EOF
+  exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+  for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
+    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+    if (echo_test_string=`eval $cmd`) 2>/dev/null &&
+       echo_test_string=`eval $cmd` &&
+       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+    then
+      break
+    fi
+  done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+   test "X$echo_testing_string" = "X$echo_test_string"; then
+  :
+else
+  # The Solaris, AIX, and Digital Unix default echo programs unquote
+  # backslashes.  This makes it impossible to quote backslashes using
+  #   echo "$something" | sed 's/\\/\\\\/g'
+  #
+  # So, first we look for a working echo in the user's PATH.
+
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for dir in $PATH /usr/ucb; do
+    IFS="$lt_save_ifs"
+    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      echo="$dir/echo"
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  if test "X$echo" = Xecho; then
+    # We didn't find a better echo, so look for alternatives.
+    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      # This shell has a builtin print -r that does the trick.
+      echo='print -r'
+    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+	 test "X$CONFIG_SHELL" != X/bin/ksh; then
+      # If we have ksh, try running configure again with it.
+      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+      export ORIGINAL_CONFIG_SHELL
+      CONFIG_SHELL=/bin/ksh
+      export CONFIG_SHELL
+      exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
+    else
+      # Try using printf.
+      echo='printf %s\n'
+      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+	 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+	 test "X$echo_testing_string" = "X$echo_test_string"; then
+	# Cool, printf works
+	:
+      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+	export CONFIG_SHELL
+	SHELL="$CONFIG_SHELL"
+	export SHELL
+	echo="$CONFIG_SHELL [$]0 --fallback-echo"
+      elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	echo="$CONFIG_SHELL [$]0 --fallback-echo"
+      else
+	# maybe with a smaller string...
+	prev=:
+
+	for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
+	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+	  then
+	    break
+	  fi
+	  prev="$cmd"
+	done
+
+	if test "$prev" != 'sed 50q "[$]0"'; then
+	  echo_test_string=`eval $prev`
+	  export echo_test_string
+	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
+	else
+	  # Oops.  We lost completely, so just stick with echo.
+	  echo=echo
+	fi
+      fi
+    fi
+  fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+   ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+fi
+
+AC_SUBST(ECHO)
+])])# _LT_AC_PROG_ECHO_BACKSLASH
+
+
+# _LT_AC_LOCK
+# -----------
+AC_DEFUN([_LT_AC_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+    [AC_HELP_STRING([--disable-libtool-lock],
+	[avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *ELF-32*)
+      HPUX_IA64_MODE="32"
+      ;;
+    *ELF-64*)
+      HPUX_IA64_MODE="64"
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+   if test "$lt_cv_prog_gnu_ld" = yes; then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -melf32bsmip"
+      ;;
+    *N32*)
+      LD="${LD-ld} -melf32bmipn32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -melf64bmip"
+      ;;
+    esac
+   else
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -32"
+      ;;
+    *N32*)
+      LD="${LD-ld} -n32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -64"
+      ;;
+    esac
+   fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+    *32-bit*)
+      case $host in
+        x86_64-*kfreebsd*-gnu)
+          LD="${LD-ld} -m elf_i386_fbsd"
+          ;;
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_i386"
+          ;;
+        ppc64-*linux*|powerpc64-*linux*)
+          LD="${LD-ld} -m elf32ppclinux"
+          ;;
+        s390x-*linux*)
+          LD="${LD-ld} -m elf_s390"
+          ;;
+        sparc64-*linux*)
+          LD="${LD-ld} -m elf32_sparc"
+          ;;
+      esac
+      ;;
+    *64-bit*)
+      case $host in
+        x86_64-*kfreebsd*-gnu)
+          LD="${LD-ld} -m elf_x86_64_fbsd"
+          ;;
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        ppc*-*linux*|powerpc*-*linux*)
+          LD="${LD-ld} -m elf64ppc"
+          ;;
+        s390*-*linux*)
+          LD="${LD-ld} -m elf64_s390"
+          ;;
+        sparc*-*linux*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+    [AC_LANG_PUSH(C)
+     AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+     AC_LANG_POP])
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+sparc*-*solaris*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      *)
+        if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+	  LD="${LD-ld} -64"
+	fi
+	;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+  AC_CHECK_TOOL(AS, as, false)
+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+  ;;
+  ])
+esac
+
+need_locks="$enable_libtool_lock"
+
+])# _LT_AC_LOCK
+
+
+# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
+[AC_REQUIRE([LT_AC_PROG_SED])
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+  ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$3"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       $2=yes
+     fi
+   fi
+   $rm conftest*
+])
+
+if test x"[$]$2" = xyes; then
+    ifelse([$5], , :, [$5])
+else
+    ifelse([$6], , :, [$6])
+fi
+])# AC_LIBTOOL_COMPILER_OPTION
+
+
+# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#                          [ACTION-SUCCESS], [ACTION-FAILURE])
+# ------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $3"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&AS_MESSAGE_LOG_FD
+       $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         $2=yes
+       fi
+     else
+       $2=yes
+     fi
+   fi
+   $rm -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+])
+
+if test x"[$]$2" = xyes; then
+    ifelse([$4], , :, [$4])
+else
+    ifelse([$5], , :, [$5])
+fi
+])# AC_LIBTOOL_LINKER_OPTION
+
+
+# AC_LIBTOOL_SYS_MAX_CMD_LEN
+# --------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
+[# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+  i=0
+  teststring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ 	]]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
+  *)
+    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+    if test -n "$lt_cv_sys_max_cmd_len"; then
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    else
+      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+      while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \
+	       = "XX$teststring") >/dev/null 2>&1 &&
+	      new_result=`expr "X$teststring" : ".*" 2>&1` &&
+	      lt_cv_sys_max_cmd_len=$new_result &&
+	      test $i != 17 # 1/2 MB should be enough
+      do
+        i=`expr $i + 1`
+        teststring=$teststring$teststring
+      done
+      teststring=
+      # Add a significant safety factor because C++ compilers can tack on massive
+      # amounts of additional arguments before passing them to the linker.
+      # It appears as though 1/2 is a usable value.
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    fi
+    ;;
+  esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+  AC_MSG_RESULT(none)
+fi
+])# AC_LIBTOOL_SYS_MAX_CMD_LEN
+
+
+# _LT_AC_CHECK_DLFCN
+# ------------------
+AC_DEFUN([_LT_AC_CHECK_DLFCN],
+[AC_CHECK_HEADERS(dlfcn.h)dnl
+])# _LT_AC_CHECK_DLFCN
+
+
+# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+#                           ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ---------------------------------------------------------------------
+AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "$cross_compiling" = yes; then :
+  [$4]
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+[#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+    exit (status);
+}]
+EOF
+  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) $1 ;;
+      x$lt_dlneed_uscore) $2 ;;
+      x$lt_dlunknown|x*) $3 ;;
+    esac
+  else :
+    # compilation failed
+    $3
+  fi
+fi
+rm -fr conftest*
+])# _LT_AC_TRY_DLOPEN_SELF
+
+
+# AC_LIBTOOL_DLOPEN_SELF
+# ----------------------
+AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+   ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+   ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ])
+   ;;
+
+  *)
+    AC_CHECK_FUNC([shl_load],
+	  [lt_cv_dlopen="shl_load"],
+      [AC_CHECK_LIB([dld], [shl_load],
+	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
+	[AC_CHECK_FUNC([dlopen],
+	      [lt_cv_dlopen="dlopen"],
+	  [AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+	    [AC_CHECK_LIB([svld], [dlopen],
+		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+	      [AC_CHECK_LIB([dld], [dld_link],
+		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
+	      ])
+	    ])
+	  ])
+	])
+      ])
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    AC_CACHE_CHECK([whether a program can dlopen itself],
+	  lt_cv_dlopen_self, [dnl
+	  _LT_AC_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+    ])
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+    	  lt_cv_dlopen_self_static, [dnl
+	  _LT_AC_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
+      ])
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+])# AC_LIBTOOL_DLOPEN_SELF
+
+
+# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
+# ---------------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler
+AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+     fi
+   fi
+   chmod u+w . 2>&AS_MESSAGE_LOG_FD
+   $rm conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+])
+])# AC_LIBTOOL_PROG_CC_C_O
+
+
+# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
+# -----------------------------------------
+# Check to see if we can do hard links to lock some files if needed
+AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
+[AC_REQUIRE([_LT_AC_LOCK])dnl
+
+hard_links="nottested"
+if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  AC_MSG_CHECKING([if we can lock with hard links])
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  AC_MSG_RESULT([$hard_links])
+  if test "$hard_links" = no; then
+    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
+
+
+# AC_LIBTOOL_OBJDIR
+# -----------------
+AC_DEFUN([AC_LIBTOOL_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+])# AC_LIBTOOL_OBJDIR
+
+
+# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
+# ----------------------------------------------
+# Check hardcoding attributes.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_AC_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
+   test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \
+   test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+     test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
+    # Linking always hardcodes the temporary library directory.
+    _LT_AC_TAGVAR(hardcode_action, $1)=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    _LT_AC_TAGVAR(hardcode_action, $1)=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
+
+if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
+
+
+# AC_LIBTOOL_SYS_LIB_STRIP
+# ------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
+[striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+   darwin*)
+       if test -n "$STRIP" ; then
+         striplib="$STRIP -x"
+         old_striplib="$STRIP -S"
+         AC_MSG_RESULT([yes])
+       else
+  AC_MSG_RESULT([no])
+fi
+       ;;
+   *)
+  AC_MSG_RESULT([no])
+    ;;
+  esac
+fi
+])# AC_LIBTOOL_SYS_LIB_STRIP
+
+
+# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_MSG_CHECKING([dynamic linker characteristics])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+m4_if($1,[],[
+if test "$GCC" = yes; then
+  case $host_os in
+    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+    *) lt_awk_arg="/^libraries:/" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    lt_search_path_spec=`echo "$lt_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+  # Ok, now we have the path, separated by spaces, we can step through it
+  # and add multilib dir if necessary.
+  lt_tmp_lt_search_path_spec=
+  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  for lt_sys_path in $lt_search_path_spec; do
+    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+    else
+      test -d "$lt_sys_path" && \
+	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+    fi
+  done
+  lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+  lt_foo="";
+  lt_count=0;
+  for (lt_i = NF; lt_i > 0; lt_i--) {
+    if ($lt_i != "" && $lt_i != ".") {
+      if ($lt_i == "..") {
+        lt_count++;
+      } else {
+        if (lt_count == 0) {
+          lt_foo="/" $lt_i lt_foo;
+        } else {
+          lt_count--;
+        }
+      }
+    }
+  }
+  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
+  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
+}'`
+  sys_lib_search_path_spec=`echo $lt_search_path_spec`
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi])
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix[[4-9]]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[[01]] | aix4.[[01]].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[[45]]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+  m4_if([$1], [],[
+  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) 
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[[123]]*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
+  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+interix[[3-9]]*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ 	]*hwcap[ 	]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsdelf*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='NetBSD ld.elf_so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[[89]] | openbsd2.[[89]].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+rdos*)
+  dynamic_linker=no
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+    shlibpath_overrides_runpath=no
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    shlibpath_overrides_runpath=yes
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+	;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+
+AC_CACHE_VAL([lt_cv_sys_lib_search_path_spec],
+[lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"])
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+AC_CACHE_VAL([lt_cv_sys_lib_dlsearch_path_spec],
+[lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"])
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+
+
+# _LT_AC_TAGCONFIG
+# ----------------
+AC_DEFUN([_LT_AC_TAGCONFIG],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_ARG_WITH([tags],
+    [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
+        [include additional configurations @<:@automatic@:>@])],
+    [tagnames="$withval"])
+
+if test -f "$ltmain" && test -n "$tagnames"; then
+  if test ! -f "${ofile}"; then
+    AC_MSG_WARN([output file `$ofile' does not exist])
+  fi
+
+  if test -z "$LTCC"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+    if test -z "$LTCC"; then
+      AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
+    else
+      AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
+    fi
+  fi
+  if test -z "$LTCFLAGS"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`"
+  fi
+
+  # Extract list of available tagged configurations in $ofile.
+  # Note that this assumes the entire list is on one line.
+  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
+
+  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+  for tagname in $tagnames; do
+    IFS="$lt_save_ifs"
+    # Check whether tagname contains only valid characters
+    case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
+    "") ;;
+    *)  AC_MSG_ERROR([invalid tag name: $tagname])
+	;;
+    esac
+
+    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+    then
+      AC_MSG_ERROR([tag name \"$tagname\" already exists])
+    fi
+
+    # Update the list of available tags.
+    if test -n "$tagname"; then
+      echo appending configuration tag \"$tagname\" to $ofile
+
+      case $tagname in
+      CXX)
+	if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+	    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+	    (test "X$CXX" != "Xg++"))) ; then
+	  AC_LIBTOOL_LANG_CXX_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      F77)
+	if test -n "$F77" && test "X$F77" != "Xno"; then
+	  AC_LIBTOOL_LANG_F77_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      GCJ)
+	if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+	  AC_LIBTOOL_LANG_GCJ_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      RC)
+	AC_LIBTOOL_LANG_RC_CONFIG
+	;;
+
+      *)
+	AC_MSG_ERROR([Unsupported tag name: $tagname])
+	;;
+      esac
+
+      # Append the new tag name to the list of available tags.
+      if test -n "$tagname" ; then
+      available_tags="$available_tags $tagname"
+    fi
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  # Now substitute the updated list of available tags.
+  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+    mv "${ofile}T" "$ofile"
+    chmod +x "$ofile"
+  else
+    rm -f "${ofile}T"
+    AC_MSG_ERROR([unable to update list of available tagged configurations.])
+  fi
+fi
+])# _LT_AC_TAGCONFIG
+
+
+# AC_LIBTOOL_DLOPEN
+# -----------------
+# enable checks for dlopen support
+AC_DEFUN([AC_LIBTOOL_DLOPEN],
+ [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_DLOPEN
+
+
+# AC_LIBTOOL_WIN32_DLL
+# --------------------
+# declare package support for building win32 DLLs
+AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_WIN32_DLL
+
+
+# AC_ENABLE_SHARED([DEFAULT])
+# ---------------------------
+# implement the --enable-shared flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_SHARED],
+[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([shared],
+    [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+	[build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_shared=]AC_ENABLE_SHARED_DEFAULT)
+])# AC_ENABLE_SHARED
+
+
+# AC_DISABLE_SHARED
+# -----------------
+# set the default shared flag to --disable-shared
+AC_DEFUN([AC_DISABLE_SHARED],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_SHARED(no)
+])# AC_DISABLE_SHARED
+
+
+# AC_ENABLE_STATIC([DEFAULT])
+# ---------------------------
+# implement the --enable-static flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_STATIC],
+[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([static],
+    [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+	[build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_static=]AC_ENABLE_STATIC_DEFAULT)
+])# AC_ENABLE_STATIC
+
+
+# AC_DISABLE_STATIC
+# -----------------
+# set the default static flag to --disable-static
+AC_DEFUN([AC_DISABLE_STATIC],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_STATIC(no)
+])# AC_DISABLE_STATIC
+
+
+# AC_ENABLE_FAST_INSTALL([DEFAULT])
+# ---------------------------------
+# implement the --enable-fast-install flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_FAST_INSTALL],
+[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([fast-install],
+    [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+    [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)
+])# AC_ENABLE_FAST_INSTALL
+
+
+# AC_DISABLE_FAST_INSTALL
+# -----------------------
+# set the default to --disable-fast-install
+AC_DEFUN([AC_DISABLE_FAST_INSTALL],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_FAST_INSTALL(no)
+])# AC_DISABLE_FAST_INSTALL
+
+
+# AC_LIBTOOL_PICMODE([MODE])
+# --------------------------
+# implement the --with-pic flag
+# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+AC_DEFUN([AC_LIBTOOL_PICMODE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+pic_mode=ifelse($#,1,$1,default)
+])# AC_LIBTOOL_PICMODE
+
+
+# AC_PROG_EGREP
+# -------------
+# This is predefined starting with Autoconf 2.54, so this conditional
+# definition can be removed once we require Autoconf 2.54 or later.
+m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
+[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
+   [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+    then ac_cv_prog_egrep='grep -E'
+    else ac_cv_prog_egrep='egrep'
+    fi])
+ EGREP=$ac_cv_prog_egrep
+ AC_SUBST([EGREP])
+])])
+
+
+# AC_PATH_TOOL_PREFIX
+# -------------------
+# find a file program which can recognize shared library
+AC_DEFUN([AC_PATH_TOOL_PREFIX],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] |  ?:[\\/]*])
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word.  This closes a longstanding sh security hole.
+  ac_dummy="ifelse([$2], , $PATH, [$2])"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$1; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  AC_MSG_RESULT($MAGIC_CMD)
+else
+  AC_MSG_RESULT(no)
+fi
+])# AC_PATH_TOOL_PREFIX
+
+
+# AC_PATH_MAGIC
+# -------------
+# find a file program which can recognize a shared library
+AC_DEFUN([AC_PATH_MAGIC],
+[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+  else
+    MAGIC_CMD=:
+  fi
+fi
+])# AC_PATH_MAGIC
+
+
+# AC_PROG_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([AC_PROG_LD],
+[AC_ARG_WITH([gnu-ld],
+    [AC_HELP_STRING([--with-gnu-ld],
+	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
+    [test "$withval" = no || with_gnu_ld=yes],
+    [with_gnu_ld=no])
+AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by $CC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_PROG_LD_GNU
+])# AC_PROG_LD
+
+
+# AC_PROG_LD_GNU
+# --------------
+AC_DEFUN([AC_PROG_LD_GNU],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# AC_PROG_LD_GNU
+
+
+# AC_PROG_LD_RELOAD_FLAG
+# ----------------------
+# find reload flag for linker
+#   -- PORTME Some linkers may need a different reload flag.
+AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+  lt_cv_ld_reload_flag,
+  [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  darwin*)
+    if test "$GCC" = yes; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
+])# AC_PROG_LD_RELOAD_FLAG
+
+
+# AC_DEPLIBS_CHECK_METHOD
+# -----------------------
+# how to check for library dependencies
+#  -- PORTME fill in with the dynamic library characteristics
+AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
+[AC_CACHE_CHECK([how to recognize dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[[4-9]]*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi[[45]]*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump',
+  # unless we find 'file', for example because we are cross-compiling.
+  if ( file / ) >/dev/null 2>&1; then
+    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+    lt_cv_file_magic_cmd='func_win32_libid'
+  else
+    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+    lt_cv_file_magic_cmd='$OBJDUMP -f'
+  fi
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | dragonfly*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case $host_cpu in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+interix[[3-9]]*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd* | netbsdelf*-gnu)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+nto-qnx*)
+  lt_cv_deplibs_check_method=unknown
+  ;;
+
+openbsd*)
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+rdos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+])
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+])# AC_DEPLIBS_CHECK_METHOD
+
+
+# AC_PROG_NM
+# ----------
+# find the pathname to a BSD-compatible name lister
+AC_DEFUN([AC_PROG_NM],
+[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
+[if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_nm_to_check="${ac_tool_prefix}nm"
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS="$lt_save_ifs"
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm="$ac_dir/$lt_tmp_nm"
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+	# Check to see if the nm accepts a BSD-compat flag.
+	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
+	#   nm: unknown option "B" ignored
+	# Tru64's nm complains that /dev/null is an invalid object file
+	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+	*/dev/null* | *'Invalid file or object type'*)
+	  lt_cv_path_NM="$tmp_nm -B"
+	  break
+	  ;;
+	*)
+	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	  */dev/null*)
+	    lt_cv_path_NM="$tmp_nm -p"
+	    break
+	    ;;
+	  *)
+	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	    continue # so that we can try to find one that supports BSD flags
+	    ;;
+	  esac
+	  ;;
+	esac
+      fi
+    done
+    IFS="$lt_save_ifs"
+  done
+  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi])
+NM="$lt_cv_path_NM"
+])# AC_PROG_NM
+
+
+# AC_CHECK_LIBM
+# -------------
+# check for math library
+AC_DEFUN([AC_CHECK_LIBM],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+  # These system don't have libm, or don't need it
+  ;;
+*-ncr-sysv4.3*)
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+  ;;
+*)
+  AC_CHECK_LIB(m, cos, LIBM="-lm")
+  ;;
+esac
+])# AC_CHECK_LIBM
+
+
+# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl convenience library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-convenience to the configure arguments.  Note that
+# AC_CONFIG_SUBDIRS is not called here.  If DIRECTORY is not provided,
+# it is assumed to be `libltdl'.  LIBLTDL will be prefixed with
+# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/'
+# (note the single quotes!).  If your package is not flat and you're not
+# using automake, define top_builddir and top_srcdir appropriately in
+# the Makefiles.
+AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+  case $enable_ltdl_convenience in
+  no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+  "") enable_ltdl_convenience=yes
+      ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+  esac
+  LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
+  LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+  # For backwards non-gettext consistent compatibility...
+  INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_CONVENIENCE
+
+
+# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl installable library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-install to the configure arguments.  Note that
+# AC_CONFIG_SUBDIRS is not called here.  If DIRECTORY is not provided,
+# and an installed libltdl is not found, it is assumed to be `libltdl'.
+# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with
+# '${top_srcdir}/' (note the single quotes!).  If your package is not
+# flat and you're not using automake, define top_builddir and top_srcdir
+# appropriately in the Makefiles.
+# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+  AC_CHECK_LIB(ltdl, lt_dlinit,
+  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+  [if test x"$enable_ltdl_install" = xno; then
+     AC_MSG_WARN([libltdl not installed, but installation disabled])
+   else
+     enable_ltdl_install=yes
+   fi
+  ])
+  if test x"$enable_ltdl_install" = x"yes"; then
+    ac_configure_args="$ac_configure_args --enable-ltdl-install"
+    LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
+    LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+  else
+    ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+    LIBLTDL="-lltdl"
+    LTDLINCL=
+  fi
+  # For backwards non-gettext consistent compatibility...
+  INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_INSTALLABLE
+
+
+# AC_LIBTOOL_CXX
+# --------------
+# enable support for C++ libraries
+AC_DEFUN([AC_LIBTOOL_CXX],
+[AC_REQUIRE([_LT_AC_LANG_CXX])
+])# AC_LIBTOOL_CXX
+
+
+# _LT_AC_LANG_CXX
+# ---------------
+AC_DEFUN([_LT_AC_LANG_CXX],
+[AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([_LT_AC_PROG_CXXCPP])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
+])# _LT_AC_LANG_CXX
+
+# _LT_AC_PROG_CXXCPP
+# ------------------
+AC_DEFUN([_LT_AC_PROG_CXXCPP],
+[
+AC_REQUIRE([AC_PROG_CXX])
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  AC_PROG_CXXCPP
+fi
+])# _LT_AC_PROG_CXXCPP
+
+# AC_LIBTOOL_F77
+# --------------
+# enable support for Fortran 77 libraries
+AC_DEFUN([AC_LIBTOOL_F77],
+[AC_REQUIRE([_LT_AC_LANG_F77])
+])# AC_LIBTOOL_F77
+
+
+# _LT_AC_LANG_F77
+# ---------------
+AC_DEFUN([_LT_AC_LANG_F77],
+[AC_REQUIRE([AC_PROG_F77])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77])
+])# _LT_AC_LANG_F77
+
+
+# AC_LIBTOOL_GCJ
+# --------------
+# enable support for GCJ libraries
+AC_DEFUN([AC_LIBTOOL_GCJ],
+[AC_REQUIRE([_LT_AC_LANG_GCJ])
+])# AC_LIBTOOL_GCJ
+
+
+# _LT_AC_LANG_GCJ
+# ---------------
+AC_DEFUN([_LT_AC_LANG_GCJ],
+[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
+  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
+    [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
+      [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
+	 [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
+	   [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ])
+])# _LT_AC_LANG_GCJ
+
+
+# AC_LIBTOOL_RC
+# -------------
+# enable support for Windows resource files
+AC_DEFUN([AC_LIBTOOL_RC],
+[AC_REQUIRE([LT_AC_PROG_RC])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC])
+])# AC_LIBTOOL_RC
+
+
+# AC_LIBTOOL_LANG_C_CONFIG
+# ------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
+AC_DEFUN([_LT_AC_LANG_C_CONFIG],
+[lt_save_CC="$CC"
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF
+
+# Report which library types will actually be built
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case $host_os in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+
+aix[[4-9]]*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+    ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_C_CONFIG
+
+
+# AC_LIBTOOL_LANG_CXX_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
+AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
+[AC_LANG_PUSH(C++)
+AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([_LT_AC_PROG_CXXCPP])
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Dependencies to place before and after the object being linked:
+_LT_AC_TAGVAR(predep_objects, $1)=
+_LT_AC_TAGVAR(postdep_objects, $1)=
+_LT_AC_TAGVAR(predeps, $1)=
+_LT_AC_TAGVAR(postdeps, $1)=
+_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
+_LT_AC_TAGVAR(compiler_lib_search_dirs, $1)=
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_LD=$LD
+lt_save_GCC=$GCC
+GCC=$GXX
+lt_save_with_gnu_ld=$with_gnu_ld
+lt_save_path_LD=$lt_cv_path_LD
+if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+else
+  $as_unset lt_cv_prog_gnu_ld
+fi
+if test -n "${lt_cv_path_LDCXX+set}"; then
+  lt_cv_path_LD=$lt_cv_path_LDCXX
+else
+  $as_unset lt_cv_path_LD
+fi
+test -z "${LDCXX+set}" || LD=$LDCXX
+CC=${CXX-"c++"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+# We don't want -fno-exception wen compiling C++ code, so set the
+# no_builtin_flag separately
+if test "$GXX" = yes; then
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+else
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+fi
+
+if test "$GXX" = yes; then
+  # Set up default GNU C++ configuration
+
+  AC_PROG_LD
+
+  # Check if GNU C++ uses GNU ld as the underlying linker, since the
+  # archiving commands below assume that GNU ld is being used.
+  if test "$with_gnu_ld" = yes; then
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+    #     investigate it a little bit more. (MM)
+    wlarc='${wl}'
+
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+	grep 'no-whole-archive' > /dev/null; then
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    with_gnu_ld=no
+    wlarc=
+
+    # A generic and very simple default shared library creation
+    # command for GNU C++ for the case where it uses the native
+    # linker, instead of GNU ld.  If possible, this setting should
+    # overridden to take advantage of the native linker features on
+    # the platform it is being used on.
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+  fi
+
+  # Commands to make compiler produce verbose output that lists
+  # what "hidden" libraries, object files and flags are used when
+  # linking a shared library.
+  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+else
+  GXX=no
+  with_gnu_ld=no
+  wlarc=
+fi
+
+# PORTME: fill in a description of your system's C++ link characteristics
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+_LT_AC_TAGVAR(ld_shlibs, $1)=yes
+case $host_os in
+  aix3*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  aix[[4-9]]*)
+    if test "$host_cpu" = ia64; then
+      # On IA64, the linker does run time linking by default, so we don't
+      # have to do anything special.
+      aix_use_runtimelinking=no
+      exp_sym_flag='-Bexport'
+      no_entry_flag=""
+    else
+      aix_use_runtimelinking=no
+
+      # Test if we are trying to use run time linking or normal
+      # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+      # need to do runtime linking.
+      case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+	for ld_flag in $LDFLAGS; do
+	  case $ld_flag in
+	  *-brtl*)
+	    aix_use_runtimelinking=yes
+	    break
+	    ;;
+	  esac
+	done
+	;;
+      esac
+
+      exp_sym_flag='-bexport'
+      no_entry_flag='-bnoentry'
+    fi
+
+    # When large executables or shared objects are built, AIX ld can
+    # have problems creating the table of contents.  If linking a library
+    # or program results in "error TOC overflow" add -mminimal-toc to
+    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+    _LT_AC_TAGVAR(archive_cmds, $1)=''
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+    if test "$GXX" = yes; then
+      case $host_os in aix4.[[012]]|aix4.[[012]].*)
+      # We only want to do this on AIX 4.2 and lower, the check
+      # below for broken collect2 doesn't work under 4.3+
+	collect2name=`${CC} -print-prog-name=collect2`
+	if test -f "$collect2name" && \
+	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	then
+	  # We have reworked collect2
+	  :
+	else
+	  # We have old collect2
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+	fi
+	;;
+      esac
+      shared_flag='-shared'
+      if test "$aix_use_runtimelinking" = yes; then
+	shared_flag="$shared_flag "'${wl}-G'
+      fi
+    else
+      # not using gcc
+      if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	shared_flag='-G'
+      else
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag='${wl}-G'
+	else
+	  shared_flag='${wl}-bM:SRE'
+	fi
+      fi
+    fi
+
+    # It seems that -bexpall does not export symbols beginning with
+    # underscore (_), so it is better to generate a list of symbols to export.
+    _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+    if test "$aix_use_runtimelinking" = yes; then
+      # Warning - without using the other runtime loading flags (-brtl),
+      # -berok will link without error, but may produce a broken library.
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+      # Determine the default libpath from the value encoded in an empty executable.
+      _LT_AC_SYS_LIBPATH_AIX
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+     else
+      if test "$host_cpu" = ia64; then
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+      else
+	# Determine the default libpath from the value encoded in an empty executable.
+	_LT_AC_SYS_LIBPATH_AIX
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	# Warning - without using the other run time loading flags,
+	# -berok will link without error, but may produce a broken library.
+	_LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	# Exported symbols can be pulled into shared objects from archives
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+	# This is similar to how AIX traditionally builds its shared libraries.
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+      fi
+    fi
+    ;;
+
+  beos*)
+    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+      # support --undefined.  This deserves some investigation.  FIXME
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+    else
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    fi
+    ;;
+
+  chorus*)
+    case $cc_basename in
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+
+  cygwin* | mingw* | pw32*)
+    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+    # as there is no search path for DLLs.
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+    _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+    _LT_AC_TAGVAR(always_export_symbols, $1)=no
+    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      # If the export-symbols file already is a .def file (1st line
+      # is EXPORTS), use it as is; otherwise, prepend...
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	cp $export_symbols $output_objdir/$soname.def;
+      else
+	echo EXPORTS > $output_objdir/$soname.def;
+	cat $export_symbols >> $output_objdir/$soname.def;
+      fi~
+      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+    else
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    fi
+  ;;
+      darwin* | rhapsody*)
+      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
+      if test "$GXX" = yes ; then
+      output_verbose_link_cmd='echo'
+      _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+      _LT_AC_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+      _LT_AC_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+      if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+        _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+        _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+      fi
+      else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+          _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
+          _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
+          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         _LT_AC_TAGVAR(ld_shlibs, $1)=no
+          ;;
+      esac
+      fi
+        ;;
+
+  dgux*)
+    case $cc_basename in
+      ec++*)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      ghcx*)
+	# Green Hills C++ Compiler
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  freebsd[[12]]*)
+    # C++ shared libraries reported to be fairly broken before switch to ELF
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  freebsd-elf*)
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    ;;
+  freebsd* | dragonfly*)
+    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+    # conventions
+    _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+    ;;
+  gnu*)
+    ;;
+  hpux9*)
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+				# but as the default
+				# location of the library.
+
+    case $cc_basename in
+    CC*)
+      # FIXME: insert proper C++ library support
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    aCC*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      #
+      # There doesn't appear to be a way to prevent this compiler from
+      # explicitly linking system object files so we need to strip them
+      # from the output so that they don't get included in the library
+      # dependencies.
+      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+      ;;
+    *)
+      if test "$GXX" = yes; then
+        _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+        # FIXME: insert proper C++ library support
+        _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+    ;;
+  hpux10*|hpux11*)
+    if test $with_gnu_ld = no; then
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+      case $host_cpu in
+      hppa*64*|ia64*) ;;
+      *)
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+        ;;
+      esac
+    fi
+    case $host_cpu in
+    hppa*64*|ia64*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+    *)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+					      # but as the default
+					      # location of the library.
+      ;;
+    esac
+
+    case $cc_basename in
+      CC*)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      aCC*)
+	case $host_cpu in
+	hppa*64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	esac
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test $with_gnu_ld = no; then
+	    case $host_cpu in
+	    hppa*64*)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    ia64*)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    *)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    esac
+	  fi
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  interix[[3-9]]*)
+    _LT_AC_TAGVAR(hardcode_direct, $1)=no
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+    # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+    # Instead, shared libraries are loaded at an image base (0x10000000 by
+    # default) and relocated if they conflict, which is a slow very memory
+    # consuming and fragmenting process.  To avoid this, we pick a random,
+    # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+    # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+    ;;
+  irix5* | irix6*)
+    case $cc_basename in
+      CC*)
+	# SGI C++
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	# Archives containing C++ object files must be created using
+	# "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test "$with_gnu_ld" = no; then
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	  else
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+	  fi
+	fi
+	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+	;;
+    esac
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+    ;;
+  linux* | k*bsd*-gnu)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+	# Archives containing C++ object files must be created using
... 665721 lines suppressed ...


Mime
View raw message