From 0d65af1b2bfd66ecc9120125dbb4dc1accd8d0e1 Mon Sep 17 00:00:00 2001
From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com>
Date: Mon, 8 Jul 2024 13:11:00 -0700
Subject: [PATCH] Add unobfuscated code from @SirWumpus
The entries 2004/hibachi and 2005/mynx have unobfuscated code now.
2004/hibachi has a configure script that is used along the lines of the
original entry (with some adjustments and fixes) and the hibachi.alt.c
had to have ctype.h included too. The directory src/localhost was copied
to src-alt/localhost but the rest of src/ was from Anthony. The Makefile
had to be updated to build this version.
2005/mynx does have a configure script but it is, just like the original
entry, unused and so the unobfuscated (in source-alt/) is also unused.
The mynx.alt.c was changed to mynx.alt2.c and the unobfuscated code was
made mynx.alt.c.
Updated manifest, rebuilt .entry.json and index.html files.
After a question is answered and taken care of (in one of 199[1-3]/ant -
not sure which one) issue #2513 can possibly be closed as complete
(though the manifest updates will have to be looked at more when 2004
and 2005 are reviewed).
---
2004/hibachi/.entry.json | 330 +-
2004/hibachi/.gitignore | 7 +
2004/hibachi/Makefile | 22 +-
2004/hibachi/README.md | 29 +
2004/hibachi/hibachi.alt.c | 458 ++
2004/hibachi/hibachi.c | 3 +-
2004/hibachi/index.html | 55 +-
2004/hibachi/src-alt/IOCCC-2004/mkentry.c | 1302 +++++
2004/hibachi/src-alt/configure | 4303 +++++++++++++++++
2004/hibachi/src-alt/configure.in | 138 +
2004/hibachi/src-alt/hibachi-start.sh | 185 +
2004/hibachi/src-alt/hibachi-start.sh.in | 185 +
2004/hibachi/src-alt/ioccc.c | 117 +
2004/hibachi/src-alt/localhost/CHANGELOG.TXT | 63 +
.../src-alt/localhost/Img/cygwin-icon.gif | Bin 0 -> 132 bytes
.../hibachi/src-alt/localhost/Img/freebsd.gif | Bin 0 -> 2384 bytes
.../Img/hibachi-256-oc-nc-300x150.gif | Bin 0 -> 227717 bytes
.../Img/hot-coal-edge-110-indent.png | Bin 0 -> 6547 bytes
.../src-alt/localhost/Img/logosml.256.png | Bin 0 -> 2419 bytes
.../localhost/Img/php-small-trans-light.gif | Bin 0 -> 1397 bytes
.../Img/powered-by-hibachi-150x75.png | Bin 0 -> 5978 bytes
.../localhost/Img/rectangle_power_perl.gif | Bin 0 -> 909 bytes
.../src-alt/localhost/Img/sun_logo.gif | Bin 0 -> 1074 bytes
2004/hibachi/src-alt/localhost/Img/win.gif | Bin 0 -> 1387 bytes
2004/hibachi/src-alt/localhost/index.html | 438 ++
.../src-alt/localhost/reference/rfc2616.html | 23 +
2004/hibachi/src-alt/localhost/style.css | 110 +
.../src-alt/localhost/test/perl/index.html | 66 +
.../localhost/test/perl/yahoo-ticker.pl | 77 +
.../localhost/test/perl/yahoo-ticker.pl.in | 77 +
.../src-alt/localhost/test/php/Date.php | 557 +++
.../src-alt/localhost/test/php/index.php | 106 +
.../src-alt/localhost/test/php/index_php.in | 106 +
.../src-alt/localhost/test/php/info.php | 15 +
.../src-alt/localhost/test/php/info.php.in | 15 +
.../src-alt/localhost/test/php/sendform.html | 68 +
.../src-alt/localhost/test/php/sendform.php | 81 +
.../localhost/test/php/sendform.php.in | 81 +
.../src-alt/localhost/test/ruby/LUHN.rb | 150 +
.../src-alt/localhost/test/ruby/index.rb | 80 +
.../src-alt/localhost/test/ruby/index_rb.in | 80 +
.../src-alt/localhost/test/shell/dump.sh | 31 +
.../src-alt/localhost/test/shell/test0.sh | 117 +
.../src-alt/localhost/test/shell/test1.sh | 92 +
.../src-alt/localhost/test/shell/test2.sh | 91 +
2004/hibachi/src-alt/makefile.in | 184 +
2004/hibachi/src-alt/transform.sed | 142 +
2005/mynx/.entry.json | 40 +
2005/mynx/.gitignore | 3 +
2005/mynx/Makefile | 4 +-
2005/mynx/README.md | 44 +-
2005/mynx/index.html | 45 +-
2005/mynx/mynx.alt.c | 506 +-
2005/mynx/mynx.alt2.c | 400 ++
2005/mynx/source-alt/configure | 4227 ++++++++++++++++
2005/mynx/source-alt/configure.in | 77 +
2005/mynx/source-alt/makefile.in | 52 +
2005/mynx/source-alt/transform.sed | 184 +
thanks-for-help.html | 20 +-
thanks-for-help.md | 23 +-
tmp/manifest.csv | 50 +-
tmp/manifest.numbers | Bin 1342605 -> 1359029 bytes
tmp/path_list.found.txt | 46 +
tmp/path_list.manifest.txt | 46 +
tmp/path_list.required.txt | 46 +
65 files changed, 15579 insertions(+), 218 deletions(-)
create mode 100644 2004/hibachi/hibachi.alt.c
create mode 100644 2004/hibachi/src-alt/IOCCC-2004/mkentry.c
create mode 100644 2004/hibachi/src-alt/configure
create mode 100644 2004/hibachi/src-alt/configure.in
create mode 100755 2004/hibachi/src-alt/hibachi-start.sh
create mode 100644 2004/hibachi/src-alt/hibachi-start.sh.in
create mode 100644 2004/hibachi/src-alt/ioccc.c
create mode 100644 2004/hibachi/src-alt/localhost/CHANGELOG.TXT
create mode 100644 2004/hibachi/src-alt/localhost/Img/cygwin-icon.gif
create mode 100644 2004/hibachi/src-alt/localhost/Img/freebsd.gif
create mode 100644 2004/hibachi/src-alt/localhost/Img/hibachi-256-oc-nc-300x150.gif
create mode 100644 2004/hibachi/src-alt/localhost/Img/hot-coal-edge-110-indent.png
create mode 100644 2004/hibachi/src-alt/localhost/Img/logosml.256.png
create mode 100644 2004/hibachi/src-alt/localhost/Img/php-small-trans-light.gif
create mode 100644 2004/hibachi/src-alt/localhost/Img/powered-by-hibachi-150x75.png
create mode 100644 2004/hibachi/src-alt/localhost/Img/rectangle_power_perl.gif
create mode 100644 2004/hibachi/src-alt/localhost/Img/sun_logo.gif
create mode 100644 2004/hibachi/src-alt/localhost/Img/win.gif
create mode 100644 2004/hibachi/src-alt/localhost/index.html
create mode 100644 2004/hibachi/src-alt/localhost/reference/rfc2616.html
create mode 100644 2004/hibachi/src-alt/localhost/style.css
create mode 100644 2004/hibachi/src-alt/localhost/test/perl/index.html
create mode 100755 2004/hibachi/src-alt/localhost/test/perl/yahoo-ticker.pl
create mode 100644 2004/hibachi/src-alt/localhost/test/perl/yahoo-ticker.pl.in
create mode 100644 2004/hibachi/src-alt/localhost/test/php/Date.php
create mode 100755 2004/hibachi/src-alt/localhost/test/php/index.php
create mode 100644 2004/hibachi/src-alt/localhost/test/php/index_php.in
create mode 100755 2004/hibachi/src-alt/localhost/test/php/info.php
create mode 100644 2004/hibachi/src-alt/localhost/test/php/info.php.in
create mode 100644 2004/hibachi/src-alt/localhost/test/php/sendform.html
create mode 100755 2004/hibachi/src-alt/localhost/test/php/sendform.php
create mode 100644 2004/hibachi/src-alt/localhost/test/php/sendform.php.in
create mode 100644 2004/hibachi/src-alt/localhost/test/ruby/LUHN.rb
create mode 100755 2004/hibachi/src-alt/localhost/test/ruby/index.rb
create mode 100644 2004/hibachi/src-alt/localhost/test/ruby/index_rb.in
create mode 100755 2004/hibachi/src-alt/localhost/test/shell/dump.sh
create mode 100755 2004/hibachi/src-alt/localhost/test/shell/test0.sh
create mode 100755 2004/hibachi/src-alt/localhost/test/shell/test1.sh
create mode 100755 2004/hibachi/src-alt/localhost/test/shell/test2.sh
create mode 100644 2004/hibachi/src-alt/makefile.in
create mode 100644 2004/hibachi/src-alt/transform.sed
create mode 100644 2005/mynx/mynx.alt2.c
create mode 100755 2005/mynx/source-alt/configure
create mode 100644 2005/mynx/source-alt/configure.in
create mode 100644 2005/mynx/source-alt/makefile.in
create mode 100644 2005/mynx/source-alt/transform.sed
diff --git a/2004/hibachi/.entry.json b/2004/hibachi/.entry.json
index 252e033d7..e630258df 100644
--- a/2004/hibachi/.entry.json
+++ b/2004/hibachi/.entry.json
@@ -9,6 +9,14 @@
{ "author_handle" : "Anthony_C_Howe" }
],
"manifest" : [
+ {
+ "file_path" : "hibachi.alt.c",
+ "inventory_order" : 20,
+ "OK_to_edit" : true,
+ "display_as" : "c",
+ "display_via_github" : true,
+ "entry_text" : "author provided unobfuscated code"
+ },
{
"file_path" : "hibachi.c",
"inventory_order" : 20,
@@ -33,6 +41,22 @@
"display_via_github" : true,
"entry_text" : "original source code"
},
+ {
+ "file_path" : "src-alt/configure",
+ "inventory_order" : 100,
+ "OK_to_edit" : true,
+ "display_as" : "shellscript",
+ "display_via_github" : true,
+ "entry_text" : "GNU Autoconf script for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/index.html",
+ "inventory_order" : 100,
+ "OK_to_edit" : true,
+ "display_as" : "html",
+ "display_via_github" : false,
+ "entry_text" : "home page of alt HIBACHI web server"
+ },
{
"file_path" : "src/configure",
"inventory_order" : 100,
@@ -47,7 +71,63 @@
"OK_to_edit" : true,
"display_as" : "html",
"display_via_github" : false,
- "entry_text" : "home page of HIBACHI web server"
+ "entry_text" : "home page of alt HIBACHI web server"
+ },
+ {
+ "file_path" : "src-alt/IOCCC-2004/mkentry.c",
+ "inventory_order" : 120,
+ "OK_to_edit" : true,
+ "display_as" : "c",
+ "display_via_github" : true,
+ "entry_text" : "IOCCC tool of 2004 to package entries"
+ },
+ {
+ "file_path" : "src-alt/ioccc.c",
+ "inventory_order" : 120,
+ "OK_to_edit" : true,
+ "display_as" : "c",
+ "display_via_github" : true,
+ "entry_text" : "IOCCC size tool"
+ },
+ {
+ "file_path" : "src-alt/localhost/reference/rfc2616.html",
+ "inventory_order" : 125,
+ "OK_to_edit" : true,
+ "display_as" : "html",
+ "display_via_github" : false,
+ "entry_text" : "RFC 2616 - Hypertext Transfer Protocol - alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/test/perl/index.html",
+ "inventory_order" : 125,
+ "OK_to_edit" : true,
+ "display_as" : "html",
+ "display_via_github" : false,
+ "entry_text" : "perl test page of alt HIBACHI server"
+ },
+ {
+ "file_path" : "src-alt/localhost/test/php/index.php",
+ "inventory_order" : 125,
+ "OK_to_edit" : true,
+ "display_as" : "php",
+ "display_via_github" : true,
+ "entry_text" : "PHP making an ISO 8601:2000 calendar for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/test/ruby/index.rb",
+ "inventory_order" : 125,
+ "OK_to_edit" : true,
+ "display_as" : "ruby",
+ "display_via_github" : true,
+ "entry_text" : "ruby home page for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/test/shell/test0.sh",
+ "inventory_order" : 125,
+ "OK_to_edit" : true,
+ "display_as" : "shellscript",
+ "display_via_github" : true,
+ "entry_text" : "POSIX shell CGI home page for alt server"
},
{
"file_path" : "src/localhost/CHANGES-OBFUSCATED.TXT",
@@ -97,6 +177,30 @@
"display_via_github" : true,
"entry_text" : "POSIX shell CGI home page"
},
+ {
+ "file_path" : "src-alt/transform.sed",
+ "inventory_order" : 130,
+ "OK_to_edit" : true,
+ "display_as" : "sed",
+ "display_via_github" : true,
+ "entry_text" : "sed(1) script for building unobfuscated code"
+ },
+ {
+ "file_path" : "src-alt/hibachi-start.sh",
+ "inventory_order" : 150,
+ "OK_to_edit" : true,
+ "display_as" : "shellscript",
+ "display_via_github" : true,
+ "entry_text" : "start the alt web server"
+ },
+ {
+ "file_path" : "src-alt/localhost/test/perl/yahoo-ticker.pl",
+ "inventory_order" : 150,
+ "OK_to_edit" : true,
+ "display_as" : "perl",
+ "display_via_github" : true,
+ "entry_text" : "stock price fetch example in Perl for alt server"
+ },
{
"file_path" : "src/hibachi-start.sh",
"inventory_order" : 150,
@@ -113,6 +217,30 @@
"display_via_github" : true,
"entry_text" : "stock price fetch example in Perl"
},
+ {
+ "file_path" : "src-alt/configure.in",
+ "inventory_order" : 200,
+ "OK_to_edit" : true,
+ "display_as" : "shellscript",
+ "display_via_github" : true,
+ "entry_text" : "GNU Autoconf script for alt server"
+ },
+ {
+ "file_path" : "src-alt/hibachi-start.sh.in",
+ "inventory_order" : 200,
+ "OK_to_edit" : true,
+ "display_as" : "shellscript",
+ "display_via_github" : true,
+ "entry_text" : "hibachi-start.sh declarations for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/CHANGELOG.TXT",
+ "inventory_order" : 200,
+ "OK_to_edit" : true,
+ "display_as" : "text",
+ "display_via_github" : false,
+ "entry_text" : "obfuscation change log for alt server"
+ },
{
"file_path" : "src/configure.in",
"inventory_order" : 200,
@@ -177,6 +305,206 @@
"display_via_github" : true,
"entry_text" : "markdown source for this web page"
},
+ {
+ "file_path" : "src-alt/localhost/Img/cygwin-icon.gif",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "image",
+ "display_via_github" : false,
+ "entry_text" : "image for home page for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/Img/freebsd.gif",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "image",
+ "display_via_github" : false,
+ "entry_text" : "image for home page for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/Img/hibachi-256-oc-nc-300x150.gif",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "image",
+ "display_via_github" : false,
+ "entry_text" : "image for home page for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/Img/hot-coal-edge-110-indent.png",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "image",
+ "display_via_github" : false,
+ "entry_text" : "image for home page for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/Img/logosml.256.png",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "image",
+ "display_via_github" : false,
+ "entry_text" : "image for home page for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/Img/php-small-trans-light.gif",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "image",
+ "display_via_github" : false,
+ "entry_text" : "image for home page for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/Img/powered-by-hibachi-150x75.png",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "image",
+ "display_via_github" : false,
+ "entry_text" : "image for home page for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/Img/rectangle_power_perl.gif",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "image",
+ "display_via_github" : false,
+ "entry_text" : "image for home page for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/Img/sun_logo.gif",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "image",
+ "display_via_github" : false,
+ "entry_text" : "image for home page for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/Img/win.gif",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "image",
+ "display_via_github" : false,
+ "entry_text" : "image for home page for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/style.css",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "css",
+ "display_via_github" : true,
+ "entry_text" : "CSS for home page for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/test/perl/yahoo-ticker.pl.in",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "perl",
+ "display_via_github" : true,
+ "entry_text" : "stock price fetch declarations for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/test/php/Date.php",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "php",
+ "display_via_github" : true,
+ "entry_text" : "PHP example page support file for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/test/php/index_php.in",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "php",
+ "display_via_github" : true,
+ "entry_text" : "PHP example page support file for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/test/php/info.php",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "php",
+ "display_via_github" : true,
+ "entry_text" : "PHP example support file for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/test/php/info.php.in",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "php",
+ "display_via_github" : true,
+ "entry_text" : "PHP example page support file for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/test/php/sendform.html",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "html",
+ "display_via_github" : false,
+ "entry_text" : "php example page support file for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/test/php/sendform.php",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "php",
+ "display_via_github" : true,
+ "entry_text" : "PHP example page support file for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/test/php/sendform.php.in",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "php",
+ "display_via_github" : true,
+ "entry_text" : "PHP example page support file for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/test/ruby/LUHN.rb",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "ruby",
+ "display_via_github" : true,
+ "entry_text" : "ruby example page support file for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/test/ruby/index_rb.in",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "ruby",
+ "display_via_github" : true,
+ "entry_text" : "ruby example page support file for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/test/shell/dump.sh",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "shellscript",
+ "display_via_github" : true,
+ "entry_text" : "POSIX shell script support file for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/test/shell/test1.sh",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "shellscript",
+ "display_via_github" : true,
+ "entry_text" : "POSIX shell script support file for alt server"
+ },
+ {
+ "file_path" : "src-alt/localhost/test/shell/test2.sh",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "shellscript",
+ "display_via_github" : true,
+ "entry_text" : "POSIX shell script support file for alt server"
+ },
+ {
+ "file_path" : "src-alt/makefile.in",
+ "inventory_order" : 4000000000,
+ "OK_to_edit" : true,
+ "display_as" : "man",
+ "display_via_github" : true,
+ "entry_text" : "makefile template for alt server"
+ },
{
"file_path" : "src/localhost/Img/cygwin-icon.gif",
"inventory_order" : 4000000000,
diff --git a/2004/hibachi/.gitignore b/2004/hibachi/.gitignore
index bcb5fc5d3..46f0de5a3 100644
--- a/2004/hibachi/.gitignore
+++ b/2004/hibachi/.gitignore
@@ -2,6 +2,7 @@
# sort with: ../../bin/sgi.sh
*.dSYM
build
+build-alt
hibachi.orig
indent
indent.c
@@ -12,3 +13,9 @@ src/config.status
src/hibachi
src/hibachi.c
src/makefile
+src-alt/config.log
+src-alt/config.status
+src-alt/hibachi
+src-alt/hibachi.alt
+src-alt/hibachi.alt.c
+src-alt/makefile
diff --git a/2004/hibachi/Makefile b/2004/hibachi/Makefile
index aae938c8d..c8e48aa4e 100644
--- a/2004/hibachi/Makefile
+++ b/2004/hibachi/Makefile
@@ -116,8 +116,8 @@ OBJ= ${PROG}.o
DATA=
TARGET= build/${PROG}
#
-ALT_OBJ=
-ALT_TARGET=
+ALT_OBJ= ${PROG}.alt.o
+ALT_TARGET= build-alt/${PROG}.alt
#################
@@ -150,6 +150,20 @@ src/hibachi.c: hibachi.c
alt: data ${ALT_TARGET}
@${TRUE}
+build-alt/${PROG}.alt: src-alt/hibachi.alt.c src-alt
+ ${RM} -rf build-alt
+ ${CP} -v -r src-alt build-alt
+ @echo "This next step may take some time to complete:"
+ cd build-alt; CFLAGS="${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT}" \
+ LDFLAGS="${LDFLAGS}" \
+ CC="${CC}" \
+ ${SHELL} ./configure
+ cd build-alt; ${MAKE}
+
+src-alt/hibachi.alt.c: hibachi.alt.c
+ ${CP} -f -v $? $@
+
+
# data files
#
data: ${DATA}
@@ -216,9 +230,9 @@ clean:
clobber: clean
${RM} -f ${TARGET} ${ALT_TARGET}
- ${RM} -f src/hibachi.c src/config.log
+ ${RM} -f src/hibachi.c src/config.log src-alt/hibachi.c src-alt/hibachi.c
${RM} -rf *.dSYM
- ${RM} -rf build
+ ${RM} -rf build build-alt
@-if [ -e sandwich ]; then \
${RM} -f sandwich; \
echo 'ate sandwich'; \
diff --git a/2004/hibachi/README.md b/2004/hibachi/README.md
index d92d3ddcd..3b2200e92 100644
--- a/2004/hibachi/README.md
+++ b/2004/hibachi/README.md
@@ -4,6 +4,9 @@
make
```
+There is an alternate version that is unobfuscated, provided by the author in
+2024\. See [Alternate code](#alternate-code) below.
+
## To use:
@@ -18,6 +21,32 @@ NOTE: you must be in the `build` directory when running `hibachi-start.sh` for
this to work right.
+## Alternate code:
+
+This version, contained in `src-alt/`, is an unobfuscated version provided by
+the author in 2024.
+
+
+### Alternate build:
+
+```
+ make alt
+```
+
+This will run the `configure` script and then compile and link in (in
+`build-alt/`) the binary `hibachi`.
+
+
+### Alternate use:
+
+```
+ cd build-alt ; ./hibachi-start.sh &
+```
+
+Then with your browser do the same as for the original source.
+
+
+
## Judges' remarks:
This entry violates the [guidelines](../../2004/guidelines.txt) in so many ways! We
diff --git a/2004/hibachi/hibachi.alt.c b/2004/hibachi/hibachi.alt.c
new file mode 100644
index 000000000..59b70604c
--- /dev/null
+++ b/2004/hibachi/hibachi.alt.c
@@ -0,0 +1,458 @@
+/*
+ * hibachi.c
+ *
+ * Limited implementation of RFC 2616 & CGI/1.1 specification.
+ *
+ * Public Domain 2002, 2004 by Anthony Howe.
+ *
+ * From http://eat.epicurious.com/dictionary/food/index.ssf?DEF_ID=2150
+ *
+ * [hih-BAH-chee]
+ *
+ * Japanese for "fire bowl", a hibachi is just that - a small
+ * (generally cast-iron) container made for holding fuel
+ * (usually charcoal). A grill that sits on top of the bowl
+ * is used to cook various foods. Hibachis come in square,
+ * oblong and round models. Because of their compact size,
+ * they're completely portable.
+ *
+ * Usage: SERVER_PORT= DOCUMENT_ROOT= hibachi
+ */
+
+#define NDEBUG
+
+/***********************************************************************
+ *** No configuration below this point.
+ ***********************************************************************/
+
+#include
+#include
+#include
+#include
+#include
+/* #include */
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#define Z 8192
+
+FILE *LOG;
+
+char request[Z], query[Z], path[Z], droot[Z], *headers, *notfound = "404 Not Found", *error = "500 Error";
+
+void
+status(int client, char *u, long j)
+{
+ j = snprintf(
+ query, Z,
+/* "HTTP/1.0 %s\r\nConnection: close\r\nContent-Length: %ld\r\n\r\n%s", */
+ "HTTP/1.0 %s\r\nContent-Length: %ld\r\n\r\n%s",
+ u, j != 0 ? j : strcspn(u, ""), j != 0 ? "" : u
+ );
+ (void) fprintf(LOG, "[%d] status length=%ld\n%s\n", getpid(), j, query);
+ send(client, query, j, 0);
+}
+
+void
+findAndSet(char *i, char *j)
+{
+ char *u;
+
+ /* `i' is both a header name and an environment variable. Add +5
+ * to `i' in order to skip over `HTTP_' metavariable prefix. This
+ * doesn't interfer with the search for other headers that don't
+ * have an `HTTP_' prefix like `CONTENT_TYPE' and `CONTENT_LENGTH',
+ * because there is sufficiently enough of the header string left
+ * that is unique for the purpose of searching.
+ */
+ if ((u = strstr(headers, i + 5)) != (char *) 0)
+ sscanf(u + strcspn(u, ":") + 1, j, getenv(i));
+ (void) fprintf(LOG, "[%d] %s=%s\n", getpid(), i, getenv(i));
+}
+
+int
+main(int argc, char **argv)
+{
+ int fd, client, i;
+ struct stat finfo;
+ struct sockaddr_in addr;
+ char *value, *uri;
+
+ if ((LOG = fopen("hibachi.log", "a")) == (FILE *) 0)
+ return 1;
+
+ if ((value = getenv("SERVER_PORT")) == (char *) 0) {
+ (void) fprintf(LOG, "[%d] SERVER_PORT not defined in environment\n", getpid());
+ return 4;
+ }
+
+ i = (int) strtol(value, NULL, 10);
+ addr.sin_addr.s_addr = htonl(INADDR_ANY);
+ addr.sin_port = htons((unsigned short) i);
+ addr.sin_family = AF_INET;
+
+ if ((fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
+ (void) fprintf(LOG, "[%d] failed to create socket\n", getpid());
+ return 5;
+ }
+
+ if (0 > bind(fd, /*(const struct sockaddr *) */ (void *) &addr, sizeof addr)) {
+ (void) fprintf(LOG, "[%d] failed to bind to port\n", getpid());
+ return 6;
+ }
+
+ if (0 > listen(fd, 10)) {
+ (void) fprintf(LOG, "[%d] failed to listen on port\n", getpid());
+ return 7;
+ }
+
+ (void) fprintf(LOG, "[%d] listening on port %s\n", getpid(), value);
+
+ /* Use "kill" to terminate the parent server process. */
+ for ( ; ; close(client)) {
+ /* Reap zombie child processes. */
+ for ( ; waitpid(0, NULL, WNOHANG) > 0; )
+ ;
+
+ i = sizeof addr;
+ if ((client = accept(fd, /*(const struct sockaddr *) */ (void *) &addr, &i)) < 0)
+ continue;
+
+#ifdef NDEBUG
+ /* SunOS technique to avoid zombie processes. */
+/* signal(SIGCHLD, SIG_IGN); */
+
+ if (fork() != 0)
+ /* The parent can close the client connection on
+ * success to avoid leaking file handles and on
+ * error to refuse the client connection.
+ *
+ * Refuse the connection, RFC 2616 section 10.5.4
+----
+10.5.4 503 Service Unavailable
+
+ The server is currently unable to handle the request due to a
+ temporary overloading or maintenance of the server. The implication
+ is that this is a temporary condition which will be alleviated after
+ some delay. If known, the length of the delay MAY be indicated in a
+ Retry-After header. If no Retry-After is given, the client SHOULD
+ handle the response as it would for a 500 response.
+
+ Note: The existence of the 503 status code does not imply that a
+ server must use it when becoming overloaded. Some servers may wish
+ to simply refuse the connection.
+----
+ * Here we interpret "refuse the connection" as
+ * drop it without giving a reason. Amounts to
+ * the same.
+ */
+ continue;
+
+ /******************************************************
+ *** Child process.
+ ******************************************************/
+
+ /* The child doesn't need a copy of the server port. */
+/* close(fd); */
+#endif
+
+ /* Read request and headers. Stop if we see two newlines. */
+ for (fd = i = 0; fd < 2 && i < Z; i++) {
+ if (recv(client, request + i, 1, 0) <= 0)
+ /* On error, drop the connection hard. */
+ return 1;
+
+ /* The HTTP protocol states that the header names
+ * are case insensitive. Most browsers send them
+ * exactly as shown in RFC 2616 (capitial letters
+ * for first letter of each word), but Lynx doesn't
+ * For example "Content-Length" is sent by Lynx as
+ * "Content-length". This section of code converts
+ * the header names to one case for matching.
+ */
+ if (request[i] == '\n')
+ /* Count newlines AND lower case of header. */
+ fd++;
+ if (request[i] == ':')
+ /* Don't touch header value. Doesn't work
+ * for headers spanning multiple lines. Rare.
+ */
+ fd = 0;
+ if (fd != 0)
+ /* RFC 2616 BNF grammar for header field-name
+ * is defined to use the US-ASCII character set.
+ * However, we can't do "request[i] | 0x20" to
+ * fold uppper to lower case without testing
+ * to see if it is an alpha character.
+ */
+ request[i] = request[i] == '-' ? '_' : toupper(request[i]);
+ }
+
+ if (Z <= i)
+ /* Request buffer overflow, drop the connection.
+ * The request buffer should be large enough to
+ * hold all the headers and one full size Cookie.
+ * Cookies have a max. length of 4096 bytes.
+ *
+ * We really should return a 413, 500, or 503 error
+ * here. The fact that the buffer is full is like an
+ * "overloaded" server, so we take the shortcut
+ * offered by RFC 2616 section 10.5.4 paragraph 2.
+ */
+ break;
+
+ request[i] = '\0';
+ (void) fprintf(LOG, "[%d] %s\n", getpid(), request);
+
+ /* Identify the method by testing just one
+ * character position of the method name:
+ *
+ * OPTIONS O
+ * GET G
+ * HEAD H
+ * POST S
+ * PUT U
+ * DELETE D
+ * TRACE T
+ * CONNECT C
+ *
+ * Also make sure the request is NOT a
+ * proxy request.
+ */
+ if (request[0] != 'G' && request[0] != 'H' && request[2] != 'S') {
+ (void) fprintf(LOG, "[%d] 501 Method not implemented\n", getpid());
+ status(client, "501 Unsupported", 0);
+ break;
+ }
+
+ /* Determine document root for the virtual host. */
+ *path = '\0';
+ if ((value = strstr(request, "HOST:")) != (char *) 0)
+ sscanf(value+5, " %255[^:\r\n]", path);
+
+ snprintf(droot, Z, "DOCUMENT_ROOT" "=%s/%s", getenv("DOCUMENT_ROOT"), path);
+ (void) fprintf(LOG, "[%d] %s\n", getpid(), droot);
+ putenv(droot);
+/* chdir(droot+14); */
+
+ /* Parse the request "METHOD /uri/pathinfo?query HTTP/1.1" */
+ uri = request + 4 + (request[0] != 'G');
+
+ /* Disallow relative paths. A chroot() would be more
+ * effective, but that requires root privileges and is
+ * against IOCCC contest rules.
+ *
+ * NOTE that URI decoding of the path has NOT been
+ * performed, so paths with sequences like "%2e%2e%2f"
+ * won't be caught, but will fail below on the stat()
+ * and return a 404.
+ *
+ * We do not decode the URI path partly because of contest
+ * space issues, but there really is no good reason to
+ * encode characters that don't need an encoding, like dot
+ * and slash. Sites that use stupid characters in file paths
+ * and names like spaces, special punctuation, and accented
+ * characters deserve the trouble they get from such practices.
+ */
+ if (*uri != '/' || strstr(uri, "../") != (char *) 0) {
+ (void) fprintf(LOG, "[%d] 403 Relative pathes and proxy requests forbidden [%s]\n", getpid(), uri);
+ /* RFC 2616 section 10.4.4 403 Forbidden:
+----
+10.4.4 403 Forbidden
+
+ The server understood the request, but is refusing to fulfill it.
+ Authorization will not help and the request SHOULD NOT be repeated.
+ If the request method was not HEAD and the server wishes to make
+ public why the request has not been fulfilled, it SHOULD describe the
+ reason for the refusal in the entity. If the server does not wish to
+ make this information available to the client, the status code 404
+ (Not Found) can be used instead.
+----
+ * The last sentence is significant here.
+ */
+ status(client, notfound, 0);
+ break;
+ }
+
+ /* End of request URI on space delimiter. */
+ uri[i = strcspn(uri, " ")] = '\0';
+ headers = uri + i + 1;
+
+ /* Find end of URI or query delimiter. */
+ i = strcspn(uri, "?");
+ if (uri[i] != '\0') {
+ snprintf(query, Z, "QUERY_STRING=%s", uri+i+1);
+ (void) fprintf(LOG, "[%d] %s\n", getpid(), query);
+ putenv(query);
+ uri[i] = '\0';
+ }
+
+ /* Prepare SCRIPT_FILENAME. This variable is required by
+ * PHP/CGI in order to find the input file. PHP/CLI does
+ * not require it and is more like nph-CGI behaviour, but
+ * is sufficiently different from typical web usage to
+ * confuse webmasters.
+ *
+ * Use the value after the equals sign to test for file
+ * or directory existance (path+16).
+ */
+ snprintf(path, Z, "SCRIPT_FILENAME=%s%s", droot+14, uri);
+ (void) fprintf(LOG, "[%d] %s\n", getpid(), path);
+ value = path+16;
+ (void) fprintf(LOG, "[%d] %s\n", getpid(), value);
+
+ if (stat(value, &finfo) < 0) {
+ (void) fprintf(LOG, "[%d] 404 File or directory %s does exist\n", getpid(), value);
+ status(client, notfound, 0);
+ break;
+ }
+
+ /* When a directory, look for the "index" file. */
+ if (S_ISDIR(finfo.st_mode)) {
+ struct dirent *d;
+ DIR *D = opendir(value);
+ for ( ; (d = readdir(D)) != (struct dirent *) 0; ) {
+ if (0 == strncmp(d->d_name, "index.", 6)) {
+ strncat(value, d->d_name, Z-16);
+ stat(value, &finfo);
+ break;
+ }
+ }
+ closedir(D);
+
+ if (d == (struct dirent *) 0) {
+ /* We don't print directory listings. */
+ (void) fprintf(LOG, "[%d] 404 Directory listing forbidden\n", getpid());
+ /* RFC 2616 section 10.4.4 403 Forbidden, last sentence. */
+ status(client, notfound, 0);
+ break;
+ }
+ (void) fprintf(LOG, "[%d] path=%s\n", getpid(), value);
+ }
+
+ if (request[0] != 'H') {
+ (void) fprintf(LOG, "[%d] mode=%o\n", getpid(), finfo.st_mode);
+ if (finfo.st_mode & 0111) {
+ /* Execute CGI, which is responsible for sending
+ * back the HTTP response line and headers (see
+ * CGI/1.1 specification "nph" prefix).
+ */
+
+ /* Pass some of the request headers to the CGI.
+ * Overwrite in place the environment variables
+ * preallocated in the environment (see
+ * hibachi-start.sh).
+ */
+
+ putenv(path);
+
+ /* Need this to identify type of request. */
+ sscanf(request, "%4s", getenv("REQUEST_METHOD"));
+ (void) fprintf(LOG, "[%d] REQUEST_METHOD='%s'\n", getpid(), getenv("REQUEST_METHOD"));
+
+ /* Not sure we need this for most CGIs. */
+ sscanf(inet_ntoa(addr.sin_addr), "%15s", getenv("REMOTE_ADDR"));
+ (void) fprintf(LOG, "[%d] REMOTE_ADDR=%s\n", getpid(), getenv("REMOTE_ADDR"));
+
+ /* These are needed if the CGI is to do anything
+ * useful.
+ */
+ findAndSet("HTTP_COOKIE", "%*[ \t]%80[^\r\n]");
+ findAndSet("CONTENT_LENGTH", "%20s");
+ findAndSet("CONTENT_TYPE", "%60s");
+
+ /* Redirect standard I/O for the CGI. */
+ dup2(client, 0);
+ dup2(client, 1);
+
+ /* Call system() instead of execl() so that
+ * we come back here after the CGI call to
+ * properly close the connection. We don't
+ * need to escape shell meta characters,
+ * since the stat() above would have failed
+ * to find a file that did contained them.
+ *
+ * Of course anyone stupid enough to use
+ * shell meta characters for an executable
+ * filename should be shot.
+ */
+
+ /* Note that Cygwin appears to have a bogus
+ * initial \r\n waiting on stdin, which was
+ * never sent by the client. I've seen this
+ * in other programs under Cygwin.
+ */
+ if (system(value) != 0)
+ status(client, error, 0);
+ break;
+ }
+
+ if ((fd = open(value, O_RDONLY)) < 0) {
+ (void) fprintf(LOG, "[%d] 500 Internal server error\n", getpid());
+ status(client, error, 0);
+ break;
+ }
+ }
+
+ /* RFC 2616 section 7.2.1 paragraph 3 allows the Content-Type
+ * to be optional leaving the client to figure it out.
+----
+ Any HTTP/1.1 message containing an entity-body SHOULD include a
+ Content-Type header field defining the media type of that body. If
+ and only if the media type is not given by a Content-Type field, the
+ recipient MAY attempt to guess the media type via inspection of its
+ content and/or the name extension(s) of the URI used to identify the
+ resource. If the media type remains unknown, the recipient SHOULD
+ treat it as type "application/octet-stream".
+----
+ * RFC 2119 defines SHOULD as strongly recommended, but not
+ * absolutely required given sufficient reason. I treat it
+ * more like OPTIONAL.
+ */
+
+ status(client, "200 OK", finfo.st_size);
+ (void) fprintf(LOG, "[%d] %s\n", getpid(), query);
+
+ if (request[0] != 'H') {
+ /* Send back a static file for GET or POST request.
+ *
+ * There may be input ready for a POST request, but
+ * it doesn't make any sense to read input and waste
+ * bandwidth for a non-CGI.
+ *
+ * Also RFC 2616 section 4.3 paragraph 4 makes reading
+ * a message body optional:
+----
+ The presence of a message-body in a request is signaled by the
+ inclusion of a Content-Length or Transfer-Encoding header field in
+ the request's message-headers. A message-body MUST NOT be included in
+ a request if the specification of the request method (section 5.1.1)
+ does not allow sending an entity-body in requests. A server SHOULD
+ read and forward a message-body on any request; if the request method
+ does not include defined semantics for an entity-body, then the
+ message-body SHOULD be ignored when handling the request.
+----
+ * RFC 2119 defines SHOULD as strongly recommended, but not
+ * absolutely required given sufficient reason. I treat it
+ * more like OPTIONAL.
+ */
+ for ( ; 0 < (i = read(fd, request, Z)); )
+ send(client, request, i, 0);
+ }
+/* close(fd); */
+ break;
+ }
+
+ /* Clean termination of the TCP connection from our end. */
+ shutdown(client, SHUT_WR);
+/* close(client); */
+
+ (void) fprintf(LOG, "[%d] end child\n\n", getpid());
+
+ return 0;
+}
diff --git a/2004/hibachi/hibachi.c b/2004/hibachi/hibachi.c
index e0fac7a0f..3eeeda176 100644
--- a/2004/hibachi/hibachi.c
+++ b/2004/hibachi/hibachi.c
@@ -10,13 +10,13 @@
#include
#include
#include
+#include
#include
#include
#include
#include
#include
#include
-#include
#define Z 8192
char r[Z], q[Z], l[Z], w[Z], *o, *m = "404 Not Found", *e = "500 Error";
void
@@ -43,6 +43,7 @@ main(int c, char **p)
struct stat g;
struct sockaddr_in a;
char *v, *u;
+ R 1;
Q (v = V "SERVER_PORT")) == 0) {
R 4;
}
diff --git a/2004/hibachi/index.html b/2004/hibachi/index.html
index 8dfc117a9..8f8d986ee 100644
--- a/2004/hibachi/index.html
+++ b/2004/hibachi/index.html
@@ -403,12 +403,24 @@ Location: CA - Canada
To build:
make
+There is an alternate version that is unobfuscated, provided by the author in
+2024. See Alternate code below.
To use:
cd build; ./hibachi-start.sh &
Then use your web browser to visit http://localhost:8008/. When you’re
finished make sure to kill hibachi.
NOTE: you must be in the build directory when running hibachi-start.sh for
this to work right.
+Alternate code:
+This version, contained in src-alt/, is an unobfuscated version provided by
+the author in 2024.
+Alternate build:
+ make alt
+This will run the configure script and then compile and link in (in
+build-alt/) the binary hibachi.
+Alternate use:
+ cd build-alt ; ./hibachi-start.sh &
+Then with your browser do the same as for the original source.
This entry violates the guidelines in so many ways! We
are not exactly sure how many organisations will be upset with this entry, but
@@ -534,19 +546,35 @@ just try to understand the program via the source.
Primary files
.entry.json - entry summary and manifest in JSON
.gitignore - list of files that should not be committed under git
.path - directory path from top level directory
+src-alt/localhost/Img/cygwin-icon.gif - image for home page for alt server
+src-alt/localhost/Img/freebsd.gif - image for home page for alt server
+src-alt/localhost/Img/hibachi-256-oc-nc-300x150.gif - image for home page for alt server
+src-alt/localhost/Img/hot-coal-edge-110-indent.png - image for home page for alt server
+src-alt/localhost/Img/logosml.256.png - image for home page for alt server
+src-alt/localhost/Img/php-small-trans-light.gif - image for home page for alt server
+src-alt/localhost/Img/powered-by-hibachi-150x75.png - image for home page for alt server
+src-alt/localhost/Img/rectangle_power_perl.gif - image for home page for alt server
+src-alt/localhost/Img/sun_logo.gif - image for home page for alt server
+src-alt/localhost/Img/win.gif - image for home page for alt server
+src-alt/localhost/style.css - CSS for home page for alt server
+src-alt/localhost/test/perl/yahoo-ticker.pl.in - stock price fetch declarations for alt server
+src-alt/localhost/test/php/Date.php - PHP example page support file for alt server
+src-alt/localhost/test/php/index_php.in - PHP example page support file for alt server
+src-alt/localhost/test/php/info.php - PHP example support file for alt server
+src-alt/localhost/test/php/info.php.in - PHP example page support file for alt server
+src-alt/localhost/test/php/sendform.html - php example page support file for alt server
+src-alt/localhost/test/php/sendform.php - PHP example page support file for alt server
+src-alt/localhost/test/php/sendform.php.in - PHP example page support file for alt server
+src-alt/localhost/test/ruby/LUHN.rb - ruby example page support file for alt server
+src-alt/localhost/test/ruby/index_rb.in - ruby example page support file for alt server
+src-alt/localhost/test/shell/dump.sh - POSIX shell script support file for alt server
+src-alt/localhost/test/shell/test1.sh - POSIX shell script support file for alt server
+src-alt/localhost/test/shell/test2.sh - POSIX shell script support file for alt server
+src-alt/makefile.in - makefile template for alt server
src/localhost/Img/cygwin-icon.gif - image for home page
src/localhost/Img/freebsd.gif - image for home page
src/localhost/Img/hibachi-256-oc-nc-300x150.gif - image for home page
diff --git a/2004/hibachi/src-alt/IOCCC-2004/mkentry.c b/2004/hibachi/src-alt/IOCCC-2004/mkentry.c
new file mode 100644
index 000000000..fe9999084
--- /dev/null
+++ b/2004/hibachi/src-alt/IOCCC-2004/mkentry.c
@@ -0,0 +1,1302 @@
+/* $Id: mkentry.c,v 1.3 2004/01/27 06:53:08 chongo Exp $ */
+/*
+ * Copyright (c) Leonid A. Broukhis, Simon Cooper, Landon Curt Noll and
+ * Peter Seebach, 2004.
+ *
+ * All Rights Reserved. Permission for personal, education or non-profit use
+ * is granted provided this this copyright and notice are included in its
+ * entirety and remains unaltered. All other uses must receive prior
+ * permission in writing from the contest judges.
+ */
+/*
+ * mkentry - make an International Obfuscated C Code Contest entry
+ *
+ * usage:
+ * mkentry -r remarks -b build -p prog.c -o ioccc.entry
+ *
+ * -r remarks file with remarks about the entry
+ * -b build file containing how prog.c should be built
+ * -p prog.c the obfuscated program source file
+ * -o ioccc.entry ioccc entry output file
+ *
+ * compile by:
+ * cc mkentry.c -o mkentry
+ */
+/*
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+/*
+ * WARNING:
+ *
+ * This program attempts to implement the IOCCC rules. Every attempt
+ * has been made to make sure that this program produces an entry that
+ * conforms to the contest rules. In all cases, where this program
+ * differs from the contest rules, the contest rules will be used. Be
+ * sure to check with the contest rules before submitting an entry.
+ *
+ * FOR MORE INFORMATION:
+ *
+ * You may contact the judges by sending an email to the following address:
+ *
+ * questions@ioccc.org (not the address for submitting entries)
+ *
+ * Questions and comments about the contest are welcome.
+ *
+ * NOTE: You must include the words ``ioccc question'' in the
+ * subject of your email when sending email to the judges.
+ *
+ * Entries must be sent to:
+ *
+ * entry@ioccc.org
+ *
+ * but be sure to follow the rules and read the guidelines first!
+ *
+ * NOTE: You must include the words ``ioccc entry'' in the subject
+ * of your email when sending in your entry!
+ *
+ * The rules and the guidelines may (and often do) change from year to
+ * year. You should be sure you have the current rules and guidelines
+ * prior to submitting entries. To obtain them, visit the following URL:
+ *
+ * https://www.ioccc.org
+ *
+ * Because contest rules change from year to year, one should only use this
+ * program for the year that it was intended.
+ */
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+/* logic */
+#ifndef TRUE
+# define TRUE 1
+#endif /* TRUE */
+#ifndef FALSE
+# define FALSE 0
+#endif /* FALSE */
+#define EOF_OK TRUE
+#define EOF_NOT_OK FALSE
+
+/* global limits */
+#define RULE_YEAR 2004 /* NOTE: should match the current year */
+#define START_DATE "07Jan2004 00:00 UTC" /* first confirmation received */
+#define MAX_COL 79 /* max column a line should hit */
+#define MAX_BUILD_SIZE 521 /* max how to build size */
+#define MAX_PROGRAM_SIZE 4096 /* max program source size */
+#define MAX_PROGRAM_SIZE2 2048 /* max program source size not counting
+ whitespace and {}; not followed by
+ whitespace or EOF */
+#define MAX_TITLE_LEN 31 /* max chars in the title */
+#define MAX_ENTRY_LEN 1 /* max length in the entry input line */
+#define MAX_ENTRY 8 /* max number of entries per person per year */
+#define MAX_FILE_LEN 1024 /* max filename length for a info file */
+
+/* where to send entries */
+#define ENTRY_USER "e.2004"
+#define ENTRY_HOST "ioccc.org"
+
+/* uuencode process - assumes ASCII */
+#define UUENCODE(c) ((c) ? encode_str[(int)(c)&0x3f] : '`')
+#define UUENCODE_LEN 45 /* max uuencode chunk size */
+#define UUINFO_MODE 0444 /* mode of an info file's uuencode file */
+#define UUBUILD_MODE 0444 /* mode of the build file's uuencode file */
+#define UUBUILD_NAME "build" /* name for the build file's uuencode file */
+#define UUPROG_MODE 0444 /* mode of the program's uuencode file */
+#define UUPROG_NAME "prog.c" /* name for the program's uuencode file */
+
+/* encode_str[(char)val] is the uuencoded character of val */
+char encode_str[] = "`!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_";
+
+/* global declarations */
+char *program; /* our name */
+long start_time; /* the startup time */
+
+/* forward declarations */
+void parse_args(int argc, char **argv, char **rname,
+ char **bname, char **pname, char **oname);
+void usage(int exitval);
+FILE *open_remark(char *filename);
+FILE *open_build(char *filename);
+FILE *open_program(char *filename);
+FILE *open_output(char *filename);
+void output_entry(FILE *output, char *oname);
+void output_remark(FILE *output, char *oname, FILE *remark, char *rname);
+void output_author(FILE *output, char *oname);
+void output_info(FILE *output, char *oname);
+void output_build(FILE *output, char *oname, FILE *build, char *bname);
+void output_program(FILE *output, char *oname, FILE *prog, char *pname);
+void output_end(FILE *output, char *oname);
+int get_line(char *buf, int siz, int maxcol);
+void output_till_dot(FILE *output, char *oname, char *leader);
+int col_len(char *string);
+void check_io(FILE *stream, char *name, int eof_ok);
+void uuencode(FILE *output, char *oname, FILE *infile,
+ char *iname, int umode, char *uname);
+
+int
+main(argc, argv)
+ int argc; /* arg count */
+ char **argv; /* the args */
+{
+ FILE *remark=NULL; /* open remarks stream */
+ FILE *build=NULL; /* open build file stream */
+ FILE *prog=NULL; /* open program stream */
+ FILE *output=NULL; /* open output stream */
+ char *rname=NULL; /* file with remarks about the entry */
+ char *bname=NULL; /* file containing how prog.c should be built */
+ char *pname=NULL; /* the obfuscated program source file */
+ char *oname=NULL; /* ioccc entry output file */
+ struct tm *tm; /* startup time structure */
+
+ /*
+ * check on the year
+ */
+ start_time = time((long *)0);
+ tm = gmtime(&start_time);
+ if (tm->tm_year != RULE_YEAR-1900 &&
+ (tm->tm_year != RULE_YEAR-1900+1 || tm->tm_mon != 0)) {
+ fprintf(stderr,
+ "%s: WARNING: this program applies to %d, which may differ from %d\n\n",
+ argv[0], RULE_YEAR, 1900+tm->tm_year);
+ }
+
+ /*
+ * parse the command line args
+ */
+ parse_args(argc, argv, &rname, &bname, &pname, &oname);
+
+ /*
+ * open/check the input and output files
+ *
+ * We open and truncate the output file first, in case it is the same
+ * as one of the input files.
+ */
+ output = open_output(oname);
+ remark = open_remark(rname);
+ build = open_build(bname);
+ prog = open_program(pname);
+ if (output==NULL || remark==NULL || build==NULL || prog==NULL) {
+ exit(1);
+ }
+
+ /*
+ * output each section
+ */
+ output_entry(output, oname);
+ output_remark(output, oname, remark, rname);
+ output_author(output, oname);
+ output_info(output, oname);
+ output_build(output, oname, build, bname);
+ output_program(output, oname, prog, pname);
+ output_end(output, oname);
+
+ /*
+ * flush the output
+ */
+ if (fflush(output) == EOF) {
+ fprintf(stderr, "%s: flush error in %s: ", program, oname);
+ perror("");
+ exit(2);
+ }
+
+ /*
+ * final words
+ */
+ printf("\nYour entry can be found in %s. You should check this file\n",
+ oname);
+ printf("correct any problems and verify that the uudecode utility will\n");
+ printf("correctly decode your build file and program.\n\n");
+ printf("This program has been provided as a guide for submitters. In\n");
+ printf("cases where it conflicts with the rules, the rules shall apply.\n");
+ printf("It is your responsibility to ensure that your entry conforms to\n");
+ printf("the current rules.\n\n");
+ printf("Email your entries to:\n");
+ printf("\t%s@%s\n\n", ENTRY_USER, ENTRY_HOST);
+ printf("IMPORTANT NOTE: You must include the words:\n");
+ printf("\tioccc entry\n\n");
+ printf("in the subject of your email when sending in your entry!\n");
+ printf("Failure to do so may result in the loss of your entry!\n");
+ /* all done */
+ return 0;
+}
+
+/*
+ * parse_args - parse the command line args
+ *
+ * usage:
+ * argc arg count
+ * argv the args
+ * rname file with remarks about the entry
+ * bname file containing how prog.c should be built
+ * pname the obfuscated program source file
+ * oname ioccc entry output file
+ *
+ * Given the command line args, this function parses them and sets the
+ * required name flags. This function will return only if the command
+ * line syntax is correct.
+ */
+void
+parse_args(int argc, char **argv, char **rname,
+ char **bname, char **pname, char **oname)
+{
+ char *optarg; /* -flag option operand */
+ int flagname; /* the name of the -flag */
+ int i;
+
+ /*
+ * Not everyone has getopt, so we must parse args by hand.
+ */
+ program = argv[0];
+ for (i=1; i < argc; ++i) {
+
+ /* determine the flagname */
+ if (argv[i][0] != '-') {
+ usage(1);
+ /*NOTREACHED*/
+ }
+ flagname = (int)argv[i][1];
+
+ /* determine the flag's operand */
+ if (flagname != '\0' && argv[i][2] != '\0') {
+ optarg = &argv[i][2];
+ } else {
+ if (i+1 >= argc) {
+ usage(2);
+ /*NOTREACHED*/
+ } else {
+ optarg = argv[++i];
+ }
+ }
+
+ /* save the flag's operand in the correct global variable */
+ switch (flagname) {
+ case 'r':
+ *rname = optarg;
+ break;
+ case 'b':
+ *bname = optarg;
+ break;
+ case 'p':
+ *pname = optarg;
+ break;
+ case 'o':
+ *oname = optarg;
+ break;
+ default:
+ usage(3);
+ /*NOTREACHED*/
+ }
+ }
+
+ /*
+ * verify that we have all of the required flags
+ */
+ if (*rname == NULL || *bname == NULL || *pname == NULL || *oname == NULL) {
+ usage(4);
+ /*NOTREACHED*/
+ }
+ return;
+}
+
+/*
+ * usage - print a usage message and exit
+ *
+ * usage:
+ * exitval exit with this value
+ *
+ * This function does not return.
+ */
+void
+usage(int exitval)
+{
+ fprintf(stderr,
+ "usage: %s -r remarks -b build -p prog.c -o ioccc.entry\n\n", program);
+ fprintf(stderr, "\t-r remarks\tfile with remarks about the entry\n");
+ fprintf(stderr, "\t-b build\tfile containing how prog.c should be built\n");
+ fprintf(stderr, "\t-p prog.c\tthe obfuscated program source file\n");
+ fprintf(stderr, "\t-o ioccc.entry\tioccc entry output file\n");
+ exit(exitval);
+}
+
+/*
+ * open_remark - open/check the remark file
+ *
+ * usage:
+ * filename remark filename
+ *
+ * The remark file should be indented by 4 spaces, and should not extend
+ * beyond column MAX_COL. These are not requirements, so we only warn.
+ *
+ * This function returns NULL on I/O or format error.
+ */
+FILE *
+open_remark(char *filename)
+{
+ FILE *stream; /* the opened file stream */
+ char buf[BUFSIZ+1]; /* input buffer */
+ int toolong=0; /* number of lines that are too long */
+ int non_indent=0; /* number of lines not indented by 4 spaces */
+
+ /*
+ * open the remark input file
+ */
+ stream = fopen(filename, "r");
+ if (stream == NULL) {
+ fprintf(stderr, "%s: cannot open remark file: %s: ",
+ program, filename);
+ perror("");
+ return(NULL);
+ }
+
+ /*
+ * look at each line
+ */
+ while (fgets(buf, BUFSIZ, stream) != NULL) {
+
+ /* count lines that do not start with 4 spaces */
+ if (buf[0] != '\n' && strncmp(buf, " ", 4) != 0) {
+ ++non_indent;
+ }
+
+ /* count long lines */
+ if (col_len(buf) > MAX_COL) {
+ /* found a line that is too long */
+ ++toolong;
+ }
+ }
+
+ /* watch for I/O errors */
+ check_io(stream, filename, EOF_OK);
+
+ /* note long lines if needed */
+ if (toolong > 0) {
+ fprintf(stderr,
+ "%s: WARNING: %d line(s) from %s extend beyond the 80th column\n",
+ program, toolong, filename);
+ fprintf(stderr,
+ "%s: This is ok, but it would be nice to avoid\n\n",
+ program);
+ }
+
+ /* note non-indented lines, if needed */
+ if (non_indent > 0) {
+ fprintf(stderr,
+ "%s: WARNING: %d line(s) from %s are not indented by 4 spaces\n",
+ program, non_indent, filename);
+ fprintf(stderr,
+ "%s: This is ok, but it would be nice to avoid\n\n",
+ program);
+ }
+
+ /* return the open file */
+ rewind(stream);
+ return(stream);
+}
+
+/*
+ * open_build - open/check the build file
+ *
+ * usage:
+ * filename build filename
+ *
+ * The how to build file must not be longer than MAX_BUILD_SIZE bytes.
+ *
+ * This function returns NULL on I/O or size error.
+ */
+FILE *
+open_build(char *filename)
+{
+ FILE *stream; /* the opened file stream */
+ struct stat statbuf; /* the status of the open file */
+
+ /*
+ * open the how to build input file
+ */
+ stream = fopen(filename, "r");
+ if (stream == NULL) {
+ fprintf(stderr, "%s: cannot open how to build file: %s: ",
+ program, filename);
+ perror("");
+ return(NULL);
+ }
+
+ /*
+ * determine the size of the file
+ */
+ if (fstat(fileno(stream), &statbuf) < 0) {
+ fprintf(stderr, "%s: cannot stat how to build file: %s: ",
+ program, filename);
+ perror("");
+ return(NULL);
+ }
+ if (statbuf.st_size > MAX_BUILD_SIZE) {
+ fprintf(stderr,
+ "%s: FATAL: the how to build file: %s, is %ld bytes long\n",
+ program, filename, (long) statbuf.st_size);
+ fprintf(stderr,
+ "%s: it may not be longer than %d bytes\n",
+ program, MAX_BUILD_SIZE);
+ return(NULL);
+ }
+
+ /* return the open file */
+ return(stream);
+}
+
+/*
+ * open_program - open/check the program source file
+ *
+ * usage:
+ * filename source filename
+ *
+ * The program source file must be <= 3217 bytes. The number of
+ * non-whitespace and }{; chars not followed by whitespace must
+ * be <= 1536 bytes.
+ *
+ * This function returns NULL on I/O or size error.
+ */
+FILE *
+open_program(char *filename)
+{
+ FILE *stream; /* the opened file stream */
+ struct stat statbuf; /* the status of the open file */
+ int count; /* special count size */
+ int c; /* the character read */
+ int control_m; /* 1 ==> warn about trailing ^M's */
+
+ /*
+ * open the program source input file
+ */
+ stream = fopen(filename, "r");
+ if (stream == NULL) {
+ fprintf(stderr, "%s: cannot open program source file: %s: ",
+ program, filename);
+ perror("");
+ exit(7);
+ }
+
+ /*
+ * determine the size of the file
+ */
+ if (fstat(fileno(stream), &statbuf) < 0) {
+ fprintf(stderr, "%s: cannot stat program source file: %s: ",
+ program, filename);
+ perror("");
+ return(NULL);
+ }
+ if (statbuf.st_size > MAX_PROGRAM_SIZE) {
+ fprintf(stderr,
+ "%s: FATAL: the program source file: %s, is %ld bytes long\n",
+ program, filename, (long) statbuf.st_size);
+ fprintf(stderr,
+ "%s: it may not be longer than %d bytes\n",
+ program, MAX_PROGRAM_SIZE);
+ return(NULL);
+ }
+
+ /*
+ * count the non-whitespace, non {}; followed by whitespace chars
+ */
+ control_m = 0;
+ count = 0;
+ c = 0;
+ while ((c=fgetc(stream)) != EOF) {
+
+ /* look at non-whitespace */
+ if (isascii(c) && !isspace(c) && c != '\r') {
+ switch (c) {
+ case '{': /* count if not followed by EOF or whitespace */
+ case '}':
+ case ';':
+ /* peek at next char */
+ c = fgetc(stream);
+ if (c != EOF && isascii(c) && !isspace(c) && c != '\r') {
+ /* not followed by whitespace or EOF, count it */
+ ungetc(c, stream);
+ ++count;
+ }
+ break;
+ default:
+ ++count;
+ break;
+ }
+
+ /* look for trailing ^M's */
+ } else if (c == '\r') {
+ /* peek at next char */
+ c = fgetc(stream);
+ if (c != EOF && c == '\n') {
+ control_m = 1;
+ }
+ /* put the peeking char back */
+ ungetc(c, stream);
+ }
+ }
+
+ /* watch for I/O errors */
+ check_io(stream, filename, EOF_OK);
+
+ /* look at the special size */
+ if (count > MAX_PROGRAM_SIZE2) {
+ fprintf(stderr,
+ "%s: FATAL: the number of bytes that are non-whitespace, and\n",
+ program);
+ fprintf(stderr,
+ "%s: that are not '{', '}', ';' followed by whitespace\n",
+ program);
+ fprintf(stderr,
+ "%s: or EOF must be <= %d bytes\n",
+ program, MAX_PROGRAM_SIZE2);
+ fprintf(stderr,
+ "%s: in %s, %d bytes were found\n",
+ program, filename, count);
+ return(NULL);
+ }
+
+ /* warn about trailing ^M's */
+ if (control_m) {
+ fprintf(stderr,
+ "\nWARNING: Trailing Control-M's (\\r or \\015) found.\n"
+ "\t If these chars result in a compilation failure,\n"
+ "\t your entry may be rejected\n\n");
+ }
+
+ /* return the open file */
+ rewind(stream);
+ return(stream);
+}
+
+/*
+ * open_output - open/check the entry output file
+ *
+ * usage:
+ * filename output filename
+ *
+ * This function returns NULL on open error.
+ */
+FILE *
+open_output(char *filename)
+{
+ FILE *stream; /* the opened file stream */
+
+ /*
+ * open the ioccc entry output file
+ */
+ stream = fopen(filename, "w");
+ if (stream == NULL) {
+ fprintf(stderr, "%s: cannot open ioccc entry file for output: %s: ",
+ program, filename);
+ perror("");
+ exit(8);
+ }
+
+ /* return the open file */
+ return(stream);
+}
+
+/*
+ * output_entry - output the ---entry--- section
+ *
+ * usage:
+ * output entry's output file stream
+ * oname name of the output file
+ *
+ * Read the needed information form stdin, and write the entry section.
+ */
+void
+output_entry(FILE *output, char *oname)
+{
+ char title[MAX_TITLE_LEN+1+1]; /* the entry's title */
+ char buf[MAX_COL+1+1]; /* I/O buffer */
+ int entry=0; /* entry number */
+ int ret; /* fields processed by fscanf */
+ int ok_line=0; /* 0 => the line is not ok */
+ char skip; /* input to skip */
+ time_t epoch_sec; /* seconds since the epoch */
+ char *p;
+
+ /*
+ * write the start of the section
+ */
+ fprintf(output, "---entry---\n");
+ check_io(output, oname, EOF_NOT_OK);
+
+ /*
+ * write the rule year
+ */
+ fprintf(output, "rule:\t%d\n", RULE_YEAR);
+ check_io(output, oname, EOF_NOT_OK);
+
+ /* determine if this is a fix */
+ printf("Is this a fix, update or resubmission to a ");
+ printf("previous entry (enter y or n)? ");
+ while (get_line(buf, 1+1, 0) <= 0 || !(buf[0]=='y' || buf[0]=='n')) {
+ printf("\nplease answer y or n: ");
+ }
+ if (buf[0] == 'y') {
+ fprintf(output, "fix:\ty\n");
+ check_io(output, oname, EOF_NOT_OK);
+ printf("\nBe sure that the title and entry number that you give\n");
+ printf("are the same of as the entry you are replacing\n");
+ } else {
+ fprintf(output, "fix:\tn\n");
+ check_io(output, oname, EOF_NOT_OK);
+ }
+
+ /*
+ * write the title
+ */
+ printf("\nThe first character of your title should match [a-zA-Z0-9_=]\n");
+ printf("The next 0 to %d characters should match [a-zA-Z0-9_=+-]\n\n",
+ MAX_TITLE_LEN-1);
+ printf("It is suggested, but not required, that the title should\n");
+ printf("incorporate your username; in the case of multiple authors,\n");
+ printf("consider using parts of the usernames of the authors.\n\n");
+ printf("enter your title: ");
+ do {
+ /* prompt and read a line */
+ if ((ok_line = get_line(title, MAX_TITLE_LEN+1, MAX_COL-9)) <= 0) {
+ printf("\ntitle is too long, please re-enter: ");
+ continue;
+ }
+
+ /* verify the pattern, not everyone has regexp, so do it by hand */
+ if (!isascii((int)title[0]) ||
+ !(isalnum((int)title[0]) || title[0] == '_' || title[0] == '=')) {
+ printf("\ninvalid first character in the title\n\n");
+ printf("enter your title: ");
+ ok_line = 0;
+ } else {
+ for (p=(&title[1]); *p != '\0' && *p != '\n'; ++p) {
+ if (!isascii((int)*p) ||
+ !(isalnum((int)*p) ||
+ *p == '_' || *p == '=' || *p == '+' || *p == '-')) {
+ printf("\ninvalid character in the title\n\n");
+ printf("enter your title: ");
+ ok_line = 0;
+ }
+ }
+ }
+ } while (ok_line <= 0);
+ fprintf(output, "title:\t%s", title);
+ check_io(output, oname, EOF_NOT_OK);
+
+ /*
+ * write the entry number
+ */
+ printf("\nEach person may submit up to %d entries per year.\n\n",
+ MAX_ENTRY);
+ printf("enter an entry number from 0 to %d inclusive: ", MAX_ENTRY-1);
+ do {
+ /* get a valid input line */
+ fflush(stdout);
+ ret = fscanf(stdin, "%d[\n]", &entry);
+ check_io(stdin, "stdin", EOF_NOT_OK);
+ /* skip over input until newline is found */
+ do {
+ skip = fgetc(stdin);
+ check_io(stdin, "stdin", EOF_NOT_OK);
+ if (skip != '\n') {
+ /* bad text in input, invalidate entry number */
+ entry = -1;
+ }
+ } while (skip != '\n');
+
+ /* check if we have a number, and if it is in range */
+ if (ret != 1 || entry < 0 || entry > MAX_ENTRY-1) {
+ printf(
+ "\nThe entry number must be between 0 and %d inclusive\n\n",
+ MAX_ENTRY-1);
+ printf("enter the entry number: ");
+ }
+ } while (ret != 1 || entry < 0 || entry > MAX_ENTRY-1);
+ fprintf(output, "entry:\t%d\n", entry);
+ check_io(output, oname, EOF_NOT_OK);
+
+ /*
+ * write the submission date
+ */
+ /* returns a newline */
+ epoch_sec = time(NULL);
+ fprintf(output, "date:\t%s", asctime(gmtime(&epoch_sec)));
+ check_io(output, oname, EOF_NOT_OK);
+
+ /*
+ * write the OS/machine host information
+ */
+ printf(
+ "\nEnter the machine(s) and OS(s) under which your entry was tested.\n");
+ output_till_dot(output, oname, "host:");
+}
+
+/*
+ * output_remark - output the ---remark--- section
+ *
+ * usage:
+ * output entry's output file stream
+ * oname name of the output file
+ * remark stream to the file containing remark text
+ * rname name of the remark file
+ *
+ * Read the needed information form stdin, and write the entry section.
+ */
+void
+output_remark(FILE *output, char *oname, FILE *remark, char *rname)
+{
+ char buf[BUFSIZ+1]; /* input/output buffer */
+
+ /*
+ * write the start of the section
+ */
+ fprintf(output, "---remark---\n");
+ check_io(output, oname, EOF_NOT_OK);
+
+ /*
+ * copy the remark file to the section
+ */
+ while (fgets(buf, BUFSIZ, remark) != NULL) {
+ fputs(buf, output);
+ check_io(output, oname, EOF_NOT_OK);
+ }
+ check_io(remark, rname, EOF_OK);
+
+ /* be sure that the remark section ends with a newline */
+ if (buf[strlen(buf)-1] != '\n') {
+ fputc('\n', output);
+ check_io(output, oname, EOF_NOT_OK);
+ }
+}
+
+/*
+ * output_author - output the ---author--- section
+ *
+ * usage:
+ * output entry's output file stream
+ * oname name of the output file
+ *
+ * Read the needed information from stdin, and write the author section.
+ * If multiple authors exist, multiple author sections will be written.
+ */
+void
+output_author(FILE *output, char *oname)
+{
+ char buf[MAX_COL+1+1]; /* I/O buffer */
+ int more_auths; /* TRUE => more authors to note */
+ int auth_cnt=0; /* number of authors processed */
+
+ /*
+ * prompt the user for the author section
+ */
+ printf("\nEnter information about each author. If your entry is after\n");
+ printf("%s and before the contest deadline, the judges\n", START_DATE);
+ printf("will attempt to email back a confirmation to the first author\n");
+
+ /*
+ * place author information for each author in an individual section
+ */
+ do {
+
+ /* write the start of the section */
+ fprintf(output, "---author---\n");
+ check_io(output, oname, EOF_NOT_OK);
+
+ /* write the author */
+ printf("\nAuthor #%d name: ", ++auth_cnt);
+ while (get_line(buf, MAX_COL+1, MAX_COL-9) <= 0) {
+ printf("\nname too long, please re-enter: ");
+ }
+ fprintf(output, "name:\t%s", buf);
+ check_io(output, oname, EOF_NOT_OK);
+
+ /* write the organization */
+ printf("\nEnter the School/Company/Organization of author #%d\n",
+ auth_cnt);
+ printf("\nAuthor #%d org: ", auth_cnt);
+ while (get_line(buf, MAX_COL+1, MAX_COL-9) <= 0) {
+ printf("\nline too long, please re-enter: ");
+ }
+ fprintf(output, "org:\t%s", buf);
+ check_io(output, oname, EOF_NOT_OK);
+
+ /* write the address */
+ printf(
+ "\nEnter the postal address for author #%d. Be sure to include\n",
+ auth_cnt);
+ printf("your country and do not include your name.\n");
+ output_till_dot(output, oname, "addr:");
+
+ /* write the email address */
+ printf(
+ "\nEnter the email address for author #%d. Use an address from\n",
+ auth_cnt);
+ printf(
+ "a registered domain or well known site. If you give several\n");
+ printf("forms, list them one per line.\n");
+ output_till_dot(output, oname, "email:");
+
+ /* write the home page URL */
+ printf(
+ "\nEnter the fully qualified home page URL for author #%d\n",
+ auth_cnt);
+ printf("including the http: part or just enter none: ");
+ while (get_line(buf, MAX_COL+1, MAX_COL-9) <= 0 ||
+ (strncmp(buf, "http://", sizeof("http://")-1) != 0 &&
+ strcmp(buf, "none\n") != 0)) {
+ printf("\nURL too long, does not begin with http:// or\n");
+ printf("is not the word none\n");
+ }
+ fprintf(output, "url:\t%s", buf);
+ check_io(output, oname, EOF_NOT_OK);
+
+ /* write the anonymous status */
+ printf("\nShould author #%d remain anonymous (enter y or n)? ",
+ auth_cnt);
+ while (get_line(buf, 1+1, 0) <= 0 || !(buf[0]=='y' || buf[0]=='n')) {
+ printf("\nplease answer y or n: ");
+ }
+ fprintf(output, "anon:\t%s", buf);
+ check_io(output, oname, EOF_NOT_OK);
+
+ /* determine if there is another author */
+ printf("\nIs there another author (enter y or n)? ");
+ while (get_line(buf, 1+1, 0) <= 0 || !(buf[0]=='y' || buf[0]=='n')) {
+ printf("\nplease answer y or n: ");
+ }
+ if (buf[0] == 'y') {
+ more_auths = TRUE;
+ } else {
+ more_auths = FALSE;
+ }
+ } while (more_auths == TRUE);
+ return;
+}
+
+/*
+ * output_info - output the ---info--- section(s)
+ *
+ * usage:
+ * output entry's output file stream
+ * oname name of the output file
+ *
+ * Read the needed information from stdin, and write the info section.
+ * If multiple info files exist, multiple info sections will be written.
+ */
+void
+output_info(FILE *output, char *oname)
+{
+ char infoname[MAX_FILE_LEN+1]; /* filename buffer */
+ char yorn[1+1]; /* y or n answer */
+ char *uuname; /* name to uuencode as */
+ FILE *infile; /* info file stream */
+
+ /*
+ * prompt the user for info information
+ */
+ printf("\nInfo files should be used only to supplement your entry.\n");
+ printf("For example, info files may provide sample input or detailed\n");
+ printf("information about your entry. Because they are supplemental,\n");
+ printf("the entry should not require them to exist.\n\n");
+
+ /*
+ * while there is another info file to save, uuencode it
+ */
+ printf("Do you have a info file to include (enter y or n)? ");
+ while (get_line(yorn, 1+1, 0) <= 0 || !(yorn[0]=='y' || yorn[0]=='n')) {
+ printf("\nplease answer y or n: ");
+ }
+ while (yorn[0] == 'y') {
+
+ /* read the filename */
+ printf("\nEnter the info filename: ");
+ while (get_line(infoname, MAX_FILE_LEN+1, 0) <= 0) {
+ printf("\nInfo filename too long, please re-enter: ");
+ }
+
+ /* compute the basename of the info filename */
+ /* remove the trailing newline */
+ uuname = &infoname[strlen(infoname)-1];
+ *uuname = '\0';
+ /* avoid rindex/shrrchr compat issues, do it by hand */
+ for (--uuname; uuname > infoname; --uuname) {
+ if (*uuname == '/') {
+ ++uuname;
+ break;
+ }
+ }
+
+ /* attempt to open the info file */
+ infile = fopen(infoname, "r");
+ if (infile == NULL) {
+ fprintf(stderr, "\n%s: cannot open info file: %s: ",
+ program, infoname);
+ perror("");
+ continue;
+ }
+
+ /*
+ * write the start of the section
+ */
+ fprintf(output, "---info---\n");
+ check_io(output, oname, EOF_NOT_OK);
+
+ /* uuencode the info file */
+ uuencode(output, oname, infile, infoname, UUINFO_MODE, uuname);
+
+ printf("\nDo you have another info file to include (enter y or n)? ");
+ while (get_line(yorn, 1+1, 0) <= 0 || !(yorn[0]=='y' || yorn[0]=='n')) {
+ printf("\nplease answer y or n: ");
+ }
+ };
+ return;
+}
+
+/*
+ * output_build - output the ---build--- section
+ *
+ * usage:
+ * output entry's output file stream
+ * oname name of the output file
+ * build open build file stream
+ * bname name of the build file
+ *
+ * Read the needed information from stdin, and write the build section.
+ */
+void
+output_build(FILE *output, char *oname, FILE *build, char *bname)
+{
+ /*
+ * write the start of the section
+ */
+ fprintf(output, "---build---\n");
+ check_io(output, oname, EOF_NOT_OK);
+
+ /*
+ * uuencode the program file
+ */
+ uuencode(output, oname, build, bname, UUBUILD_MODE, UUBUILD_NAME);
+ return;
+}
+
+/*
+ * output_program - output the ---program--- section
+ *
+ * usage:
+ * output entry's output file stream
+ * oname name of the output file
+ * prog open program stream
+ * pname name of program file
+ *
+ * Read the needed information form stdin, and write the program section.
+ */
+void
+output_program(FILE *output, char *oname, FILE *prog, char *pname)
+{
+ /*
+ * write the start of the section
+ */
+ fprintf(output, "---program---\n");
+ check_io(output, oname, EOF_NOT_OK);
+
+ /*
+ * uuencode the program file
+ */
+ uuencode(output, oname, prog, pname, UUPROG_MODE, UUPROG_NAME);
+ return;
+}
+
+/*
+ * output_end - output the ---end--- section
+ *
+ * usage:
+ * output entry's output file stream
+ * oname name of the output file
+ *
+ * Read the needed information form stdin, and write the 'end section'.
+ */
+void
+output_end(FILE *output, char *oname)
+{
+ /*
+ * write the final section terminator
+ */
+ fprintf(output, "---end---\n");
+ check_io(output, oname, EOF_NOT_OK);
+ return;
+}
+
+/*
+ * get_line - get an answer from stdin
+ *
+ * usage:
+ * buf input buffer
+ * siz length of input, including the newline
+ * maxcol max col allowed, 0 => disable check
+ *
+ * This function will flush stdout, in case a prompt is pending, and
+ * read in the answer.
+ *
+ * This function returns 0 if the line is too long, of the length of the
+ * line (including the newline) of the line was ok. This function does
+ * not return if ERROR or EOF.
+ */
+int
+get_line(char *buf, int siz, int maxcol)
+{
+ int length; /* the length of the input line */
+
+ /* flush terminal output */
+ fflush(stdout);
+
+ /* read the line */
+ if (fgets(buf, siz+1, stdin) == NULL) {
+ /* report the problem */
+ check_io(stdin, "stdin", EOF_NOT_OK);
+ }
+
+ /* look for the newline */
+ length = strlen(buf);
+ if (buf[length-1] != '\n') {
+ int eatchar; /* the char being eaten */
+
+ /* no newline found, line must be too long, eat the rest of the line */
+ do {
+ eatchar = fgetc(stdin);
+ } while (eatchar != EOF && eatchar != '\n');
+ check_io(stdin, "stdin", EOF_NOT_OK);
+
+ /* report the situation */
+ return 0;
+ }
+
+ /* watch for long lines, if needed */
+ if (maxcol > 0 && (length > maxcol || col_len(buf) > maxcol)) {
+ /* report the situation */
+ return 0;
+ }
+
+ /* return length */
+ return length;
+}
+
+/*
+ * output_till_dot - output a set of lines until '.' by itself is read
+ *
+ * usage:
+ * output entry's output file stream
+ * oname name of the output file
+ * leader the lead text for the first line
+ *
+ * This routine will read a set of lines until (but not including)
+ * a single line with '.' is read. The format of the output is:
+ *
+ * leader:\tfirst line
+ * \tnext line
+ * \tnext line
+ * ...
+ *
+ * This routine will not return if I/O error or EOF.
+ */
+void
+output_till_dot(FILE *output, char *oname, char *leader)
+{
+ char buf[BUFSIZ+1]; /* input buffer */
+ int count; /* lines read */
+ int done=FALSE; /* TRUE => finished reading input */
+
+ /* instruct the user on how to input */
+ printf("\nTo end input, enter a line with a single period.\n");
+
+ /* read lines until '.' or EOF */
+ count = 0;
+ while (!done) {
+ /* issue the prompt */
+ printf("%s\t", (count>0) ? "" : leader);
+ fflush(stdout);
+
+ /* get the line */
+ if (get_line(buf, BUFSIZ, MAX_COL-9) <= 0) {
+ printf("\nline too long, please re-enter:\n\t");
+ continue;
+ }
+
+ /* note if '.' was read */
+ if (strcmp(buf, ".\n") == 0) {
+ done = TRUE;
+ }
+
+ /* write line if we read something */
+ if (!done) {
+ fprintf(output, "%s\t%s", (count++>0) ? "" : leader, buf);
+ check_io(output, oname, EOF_NOT_OK);
+ }
+ }
+
+ /* if no lines read, at least output something */
+ if (count <= 0) {
+ fprintf(output, "%s\t.\n", leader);
+ check_io(output, oname, EOF_NOT_OK);
+ }
+ return;
+}
+
+/*
+ * col_len - determine the highest that a string would reach
+ *
+ * usage:
+ * string the string to examine
+ *
+ * Given a string, this routine returns that a string would reach
+ * if the string were printed at column 1. Tab stops are assumed
+ * to start at 9, 17, 25, 33, ...
+ */
+int
+col_len(char *string)
+{
+ int col; /* current column */
+ char *p; /* current char */
+
+ /* scan the string */
+ for (col=0, p=string; *p != '\0' && *p != '\n'; ++p) {
+ /* note the column shift */
+ col = (*p=='\t') ? 1+((col+8)/8*8) : col+1;
+ }
+ if (*p == '\n') {
+ --col;
+ }
+
+ /* return the highest column */
+ return col;
+}
+
+/*
+ * check_io - check for EOF or I/O error on a stream
+ *
+ * usage:
+ * stream the stream to check
+ * name the name of this stream
+ * eof_ok EOF_OK or EOF_NOT_OK
+ *
+ * Does not return if EOF or I/O error.
+ */
+void
+check_io(FILE *stream, char *name, int eof_ok)
+{
+ /* test for I/O error */
+ if (ferror(stream)) {
+ fprintf(stderr, "%s: error on %s: ", program, name);
+ perror("");
+ exit(1);
+
+ /* test for EOF */
+ } else if (eof_ok == EOF_NOT_OK && feof(stream)) {
+ fprintf(stderr, "%s: EOF on %s\n", program, name);
+ exit(1);
+ }
+ return;
+}
+
+/*
+ * uuencode - uuencode a file
+ *
+ * usage:
+ * output output file stream
+ * oname output filename
+ * infile input file stream
+ * iname input filename
+ * umode the mode to put on the uuencode file
+ * uname name to put on the uuencode file
+ *
+ * Perform the uuencoding process identical to the process performed
+ * by the uuencode(1) utility.
+ *
+ * This routine implements the algorithm described in the uuencode(5)
+ * 4.3BSD Reno man page.
+ */
+void
+uuencode(FILE *output, char *oname, FILE *infile,
+ char *iname, int umode, char *uname)
+{
+ char buf[UUENCODE_LEN+1]; /* the uuencode buffer */
+ int read_len; /* actual number of chars read */
+ int val; /* 6 bit chunk from buf */
+ char filler='\0'; /* filler uuencode pad text */
+ char *p;
+
+ /*
+ * output the initial uuencode header
+ */
+ fprintf(output, "begin %o %s\n", umode, uname);
+ check_io(output, oname, EOF_NOT_OK);
+
+ /*
+ * clear out the input buffer
+ */
+ for (p=buf; p < &buf[sizeof(buf)/sizeof(buf[0])]; ++p) {
+ *p = '\0';
+ }
+
+ /*
+ * We will process UUENCODE_LEN chars at a time, forming
+ * a single output line each time.
+ */
+ while ((read_len=fread(buf,sizeof(buf[0]),UUENCODE_LEN,infile)) > 0) {
+
+ /*
+ * the first character is the length character
+ */
+ fputc(UUENCODE(read_len), output);
+ check_io(output, oname, EOF_NOT_OK);
+
+ /*
+ * We will convert 24 bits at a time. Thus we will convert
+ * 3 sets of 8 bits into 4 sets of uuencoded 6 bits.
+ */
+ for (p=buf; read_len>0; read_len-=3, p+=3) {
+
+ /* bits 0 to 5 */
+ val = (p[0]>>2)&0x3f;
+ fputc(UUENCODE(val), output);
+ check_io(output, oname, EOF_NOT_OK);
+
+ /* bits 6 to 11 */
+ val = ((p[0]<<4)&0x30) | ((p[1]>>4)&0x0f);
+ fputc(UUENCODE(val), output);
+ check_io(output, oname, EOF_NOT_OK);
+
+ /* bits 12 to 17 */
+ val = ((p[1]<<2)&0x3c) | ((p[2]>>6)&0x03);
+ fputc(UUENCODE(val), output);
+ check_io(output, oname, EOF_NOT_OK);
+
+ /* bits 18 to 23 */
+ val = p[2]&0x3f;
+ fputc(UUENCODE(val), output);
+ check_io(output, oname, EOF_NOT_OK);
+ }
+
+ /* end of UUENCODE_LEN line */
+ fputc('\n', output);
+ check_io(output, oname, EOF_NOT_OK);
+
+ /*
+ * clear out the input buffer (don't depend on bzero() or memset())
+ */
+ for (p=buf; p < &buf[sizeof(buf)/sizeof(buf[0])]; ++p) {
+ *p = '\0';
+ }
+ }
+
+ /* check the last read on the input file */
+ check_io(infile, iname, EOF_OK);
+
+ /* write end of uuencode file */
+ fprintf(output, "%c\nend\n", UUENCODE(filler));
+ check_io(output, oname, EOF_NOT_OK);
+}
diff --git a/2004/hibachi/src-alt/configure b/2004/hibachi/src-alt/configure
new file mode 100644
index 000000000..b204980d3
--- /dev/null
+++ b/2004/hibachi/src-alt/configure
@@ -0,0 +1,4303 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.57 for hibachi 1.0.
+#
+# Report bugs to >.
+#
+# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+#
+# Public Domain 2004 by Anthony Howe.
+## --------------------- ##
+## M4sh Initialization. ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+ set -o posix
+fi
+
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+ LC_TELEPHONE LC_TIME
+do
+ if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+ eval $as_var=C; export $as_var
+ else
+ $as_unset $as_var
+ fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)$' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+ /^X\/\(\/\/\)$/{ s//\1/; q; }
+ /^X\/\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+
+
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x$as_lineno_3" = "x$as_lineno_2" || {
+ # Find who we are. Look in the path if we contain no path at all
+ # relative or not.
+ case $0 in
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+ ;;
+ esac
+ # We did not find ourselves, most probably we were run as `sh COMMAND'
+ # in which case we are not to be found in the path.
+ if test "x$as_myself" = x; then
+ as_myself=$0
+ fi
+ if test ! -f "$as_myself"; then
+ { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
+ { (exit 1); exit 1; }; }
+ fi
+ case $CONFIG_SHELL in
+ '')
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for as_base in sh bash ksh sh5; do
+ case $as_dir in
+ /*)
+ if ("$as_dir/$as_base" -c '
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
+ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+ CONFIG_SHELL=$as_dir/$as_base
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+ fi;;
+ esac
+ done
+done
+;;
+ esac
+
+ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+ # uniformly replaced by the line number. The first 'sed' inserts a
+ # line-number line before each line; the second 'sed' does the real
+ # work. The second script uses 'N' to pair each line-number line
+ # with the numbered line, and appends trailing '-' during
+ # substitution so that $LINENO is not a special case at line end.
+ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
+ sed '=' <$as_myself |
+ sed '
+ N
+ s,$,-,
+ : loop
+ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+ t loop
+ s,-$,,
+ s,^['$as_cr_digits']*\n,,
+ ' >$as_me.lineno &&
+ chmod +x $as_me.lineno ||
+ { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+ { (exit 1); exit 1; }; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensible to this).
+ . ./$as_me.lineno
+ # Exit status is that of the last command.
+ exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+ *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T=' ' ;;
+ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+ *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+ # We could just check for DJGPP; but this test a) works b) is more generic
+ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+ if test -f conf$$.exe; then
+ # Don't use ln at all; we don't have any links
+ as_ln_s='cp -p'
+ else
+ as_ln_s='ln -s'
+ fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p=:
+else
+ as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" $as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+exec 6>&1
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_config_libobj_dir=.
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Maximum number of lines to put in a shell here document.
+# This variable seems obsolete. It should probably be removed, and
+# only ac_max_sed_lines should be used.
+: ${ac_max_here_lines=38}
+
+# Identity of this package.
+PACKAGE_NAME='hibachi'
+PACKAGE_TARNAME='hibachi'
+PACKAGE_VERSION='1.0'
+PACKAGE_STRING='hibachi 1.0'
+PACKAGE_BUGREPORT='Anthony Howe '
+
+ac_unique_file="$PACKAGE_NAME.alt.c"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include
+#if HAVE_SYS_TYPES_H
+# include
+#endif
+#if HAVE_SYS_STAT_H
+# include
+#endif
+#if STDC_HEADERS
+# include
+# include
+#else
+# if HAVE_STDLIB_H
+# include
+# endif
+#endif
+#if HAVE_STRING_H
+# if !STDC_HEADERS && HAVE_MEMORY_H
+# include
+# endif
+# include
+#endif
+#if HAVE_STRINGS_H
+# include
+#endif
+#if HAVE_INTTYPES_H
+# include
+#else
+# if HAVE_STDINT_H
+# include
+# endif
+#endif
+#if HAVE_UNISTD_H
+# include
+#endif"
+
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS package_copyright package_major package_minor package_author enable_port CC_E CC_E_NAME CC_O CC_O_NAME CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT LN_S CPP EGREP LIBOBJS LTLIBOBJS'
+ac_subst_files=''
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+ac_prev=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_option in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+ { (exit 1); exit 1; }; }
+ ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+ eval "enable_$ac_feature=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+ { (exit 1); exit 1; }; }
+ ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+ case $ac_option in
+ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_$ac_feature='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid package name: $ac_package" >&2
+ { (exit 1); exit 1; }; }
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case $ac_option in
+ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_$ac_package='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid package name: $ac_package" >&2
+ { (exit 1); exit 1; }; }
+ ac_package=`echo $ac_package | sed 's/-/_/g'`
+ eval "with_$ac_package=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) { echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+ { (exit 1); exit 1; }; }
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+ { (exit 1); exit 1; }; }
+ ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+ eval "$ac_envvar='$ac_optarg'"
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ { echo "$as_me: error: missing argument to $ac_option" >&2
+ { (exit 1); exit 1; }; }
+fi
+
+# Be sure to have absolute paths.
+for ac_var in exec_prefix prefix
+do
+ eval ac_val=$`echo $ac_var`
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+# Be sure to have absolute paths.
+for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+ localstatedir libdir includedir oldincludedir infodir mandir
+do
+ eval ac_val=$`echo $ac_var`
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) ;;
+ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used." >&2
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_confdir=`(dirname "$0") 2>/dev/null ||
+$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$0" : 'X\(//\)[^/]' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$0" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
+ { (exit 1); exit 1; }; }
+ else
+ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+ { (exit 1); exit 1; }; }
+ fi
+fi
+(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
+ { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+ { (exit 1); exit 1; }; }
+srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+ac_env_build_alias_set=${build_alias+set}
+ac_env_build_alias_value=$build_alias
+ac_cv_env_build_alias_set=${build_alias+set}
+ac_cv_env_build_alias_value=$build_alias
+ac_env_host_alias_set=${host_alias+set}
+ac_env_host_alias_value=$host_alias
+ac_cv_env_host_alias_set=${host_alias+set}
+ac_cv_env_host_alias_value=$host_alias
+ac_env_target_alias_set=${target_alias+set}
+ac_env_target_alias_value=$target_alias
+ac_cv_env_target_alias_set=${target_alias+set}
+ac_cv_env_target_alias_value=$target_alias
+ac_env_CC_set=${CC+set}
+ac_env_CC_value=$CC
+ac_cv_env_CC_set=${CC+set}
+ac_cv_env_CC_value=$CC
+ac_env_CFLAGS_set=${CFLAGS+set}
+ac_env_CFLAGS_value=$CFLAGS
+ac_cv_env_CFLAGS_set=${CFLAGS+set}
+ac_cv_env_CFLAGS_value=$CFLAGS
+ac_env_LDFLAGS_set=${LDFLAGS+set}
+ac_env_LDFLAGS_value=$LDFLAGS
+ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
+ac_cv_env_LDFLAGS_value=$LDFLAGS
+ac_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_env_CPPFLAGS_value=$CPPFLAGS
+ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_cv_env_CPPFLAGS_value=$CPPFLAGS
+ac_env_CPP_set=${CPP+set}
+ac_env_CPP_value=$CPP
+ac_cv_env_CPP_set=${CPP+set}
+ac_cv_env_CPP_value=$CPP
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures hibachi 1.0 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+_ACEOF
+
+ cat <<_ACEOF
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --infodir=DIR info documentation [PREFIX/info]
+ --mandir=DIR man documentation [PREFIX/man]
+_ACEOF
+
+ cat <<\_ACEOF
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of hibachi 1.0:";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-port=number specifiy the server port number, default is 8008
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L if you have libraries in a
+ nonstandard directory
+ CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have
+ headers in a nonstandard directory
+ CPP C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to >.
+_ACEOF
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ ac_popdir=`pwd`
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d $ac_dir || continue
+ ac_builddir=.
+
+if test "$ac_dir" != .; then
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+ ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_srcdir=.
+ if test -z "$ac_top_builddir"; then
+ ac_top_srcdir=.
+ else
+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+ fi ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir ;;
+ *) # Relative path.
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+ cd $ac_dir
+ # Check for guested configure; otherwise get Cygnus style configure.
+ if test -f $ac_srcdir/configure.gnu; then
+ echo
+ $SHELL $ac_srcdir/configure.gnu --help=recursive
+ elif test -f $ac_srcdir/configure; then
+ echo
+ $SHELL $ac_srcdir/configure --help=recursive
+ elif test -f $ac_srcdir/configure.ac ||
+ test -f $ac_srcdir/configure.in; then
+ echo
+ $ac_configure --help
+ else
+ echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi
+ cd $ac_popdir
+ done
+fi
+
+test -n "$ac_init_help" && exit 0
+if $ac_init_version; then
+ cat <<\_ACEOF
+hibachi configure 1.0
+generated by GNU Autoconf 2.57
+
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
+Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+
+Public Domain 2004 by Anthony Howe.
+_ACEOF
+ exit 0
+fi
+exec 5>config.log
+cat >&5 <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by hibachi $as_me 1.0, which was
+generated by GNU Autoconf 2.57. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ echo "PATH: $as_dir"
+done
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_sep=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+ ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+ 2)
+ ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+ # Get rid of the leading space.
+ ac_sep=" "
+ ;;
+ esac
+ done
+done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Be sure not to use single quotes in there, as some shells,
+# such as our DU 5.0 friend, will then `close' the trap.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+{
+ (set) 2>&1 |
+ case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ sed -n \
+ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+ ;;
+ *)
+ sed -n \
+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+ ;;
+ esac;
+}
+ echo
+
+ cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=$`echo $ac_var`
+ echo "$ac_var='"'"'$ac_val'"'"'"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ cat <<\_ASBOX
+## ------------- ##
+## Output files. ##
+## ------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=$`echo $ac_var`
+ echo "$ac_var='"'"'$ac_val'"'"'"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+ echo
+ sed "/^$/d" confdefs.h | sort
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ echo "$as_me: caught signal $ac_signal"
+ echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core core.* *.core &&
+ rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+ ' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo >confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special
+ # files actually), so we avoid doing that.
+ if test -f "$cache_file"; then
+ { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . $cache_file;;
+ *) . ./$cache_file;;
+ esac
+ fi
+else
+ { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in `(set) 2>&1 |
+ sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val="\$ac_cv_env_${ac_var}_value"
+ eval ac_new_val="\$ac_env_${ac_var}_value"
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
+echo "$as_me: former value: $ac_old_val" >&2;}
+ { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
+echo "$as_me: current value: $ac_new_val" >&2;}
+ ac_cache_corrupted=:
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+ ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+package_copyright='Public Domain 2004 by Anthony Howe.'
+
+
+package_major=`echo $PACKAGE_VERSION | sed -e 's/^\([0-9]*\)\.\([0-9]*\)/\1/'`
+
+package_minor=`echo $PACKAGE_VERSION | sed -e 's/^\([0-9]*\)\.\([0-9]*\)/\2/'`
+
+package_author=$PACKAGE_BUGREPORT
+
+
+cat >>confdefs.h <<_ACEOF
+#define _NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define _MAJOR $package_major
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define _MINOR $package_minor
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define _AUTHOR "$package_author"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define _VERSION "$PACKAGE_NAME/$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define _COPYRIGHT "$package_copyright"
+_ACEOF
+
+
+OS=`uname -s`
+
+#######################################################################
+# Setup paths
+#######################################################################
+
+# The total perspective vortex "You are here..."
+
+
+
+# If localstatedir still has its original value, then use our prefered default.
+if test "$localstatedir" = '${prefix}/var'; then
+ if test "$OS" = 'Linux'; then
+ localstatedir='/var/lib'
+ elif test "$OS" = 'FreeBSD'; then
+ localstatedir='/var/state'
+ elif test "$OS" = 'SunOS'; then
+ localstatedir='/var/opt'
+ else
+ localstatedir='/var'
+ fi
+fi
+
+#######################################################################
+# Auxliary files to be modified later
+#######################################################################
+
+ ac_config_files="$ac_config_files makefile"
+
+ ac_config_files="$ac_config_files hibachi-start.sh"
+
+
+#######################################################################
+# Configuration options
+#######################################################################
+
+# Check whether --enable-port or --disable-port was given.
+if test "${enable_port+set}" = set; then
+ enableval="$enable_port"
+
+else
+ enable_port=8008
+
+fi;
+
+
+#######################################################################
+# Setup compiler predefines and exceptions.
+#######################################################################
+
+# Tradional cc options.
+CC_E='-o'
+
+CC_E_NAME='-o $@'
+
+CC_O='-o'
+
+CC_O_NAME='-o $*$O'
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ CC=$ac_ct_CC
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="cc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ CC=$ac_ct_CC
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$ac_ct_CC" && break
+done
+
+ CC=$ac_ct_CC
+fi
+
+fi
+
+
+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO:" \
+ "checking for C compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5
+ (eval $ac_compiler --version &5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5
+ (eval $ac_compiler -v &5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5
+ (eval $ac_compiler -V &5) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+echo "$as_me:$LINENO: checking for C compiler default output" >&5
+echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
+ (eval $ac_link_default) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # Find the output, starting from the most likely. This scheme is
+# not robust to junk in `.', hence go to wildcards (a.*) only as a last
+# resort.
+
+# Be careful to initialize this variable, since it used to be cached.
+# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
+ac_cv_exeext=
+# b.out is created by i960 compilers.
+for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
+ ;;
+ conftest.$ac_ext )
+ # This is the source file.
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ # FIXME: I believe we export ac_cv_exeext for Libtool,
+ # but it would be cool to find out if it's true. Does anybody
+ # maintain Libtool? --akim.
+ export ac_cv_exeext
+ break;;
+ * )
+ break;;
+ esac
+done
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+See \`config.log' for more details." >&5
+echo "$as_me: error: C compiler cannot create executables
+See \`config.log' for more details." >&2;}
+ { (exit 77); exit 77; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6
+
+# Check the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+ if { ac_try='./$ac_file'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+fi
+echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+rm -f a.out a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+# Check the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6
+
+echo "$as_me:$LINENO: checking for suffix of executables" >&5
+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ export ac_cv_exeext
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+echo "$as_me:$LINENO: checking for suffix of object files" >&5
+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
+if test "${ac_cv_objext+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_compiler_gnu=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+GCC=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+CFLAGS="-g"
+echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_g+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cc_g=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_cc_g=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_prog_cc_stdc=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include
+#include
+#include
+#include
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX -qlanglvl=ansi
+# Ultrix and OSF/1 -std1
+# HP-UX 10.20 and later -Ae
+# HP-UX older versions -Aa -D_HPUX_SOURCE
+# SVR4 -Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cc_stdc=$ac_arg
+break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.$ac_objext
+done
+rm -f conftest.$ac_ext conftest.$ac_objext
+CC=$ac_save_CC
+
+fi
+
+case "x$ac_cv_prog_cc_stdc" in
+ x|xno)
+ echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6 ;;
+ *)
+ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+ CC="$CC $ac_cv_prog_cc_stdc" ;;
+esac
+
+# Some people use a C++ compiler to compile C. Since we use `exit',
+# in C++ we need to declare it. In case someone uses the same compiler
+# for both compiling C and C++ we need to have the C++ compiler decide
+# the declaration of exit, since it's the most demanding environment.
+cat >conftest.$ac_ext <<_ACEOF
+#ifndef __cplusplus
+ choke me
+#endif
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ for ac_declaration in \
+ ''\
+ '#include ' \
+ 'extern "C" void std::exit (int) throw (); using std::exit;' \
+ 'extern "C" void std::exit (int); using std::exit;' \
+ 'extern "C" void exit (int) throw ();' \
+ 'extern "C" void exit (int);' \
+ 'void exit (int);'
+do
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include
+$ac_declaration
+int
+main ()
+{
+exit (42);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+continue
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_declaration
+int
+main ()
+{
+exit (42);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+ echo '#ifdef __cplusplus' >>confdefs.h
+ echo $ac_declaration >>confdefs.h
+ echo '#endif' >>confdefs.h
+fi
+
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+echo "$as_me:$LINENO: checking whether ln -s works" >&5
+echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+ echo "$as_me:$LINENO: result: no, using $LN_S" >&5
+echo "${ECHO_T}no, using $LN_S" >&6
+fi
+
+
+
+#######################################################################
+# Check for libraries.
+#######################################################################
+
+
+echo "$as_me:$LINENO: checking for library containing socket" >&5
+echo $ECHO_N "checking for library containing socket... $ECHO_C" >&6
+if test "${ac_cv_search_socket+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+ac_cv_search_socket=no
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char socket ();
+int
+main ()
+{
+socket ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_socket="none required"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+if test "$ac_cv_search_socket" = no; then
+ for ac_lib in socket nsl; do
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char socket ();
+int
+main ()
+{
+socket ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_socket="-l$ac_lib"
+break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ done
+fi
+LIBS=$ac_func_search_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_search_socket" >&5
+echo "${ECHO_T}$ac_cv_search_socket" >&6
+if test "$ac_cv_search_socket" != no; then
+ test "$ac_cv_search_socket" = "none required" || LIBS="$ac_cv_search_socket $LIBS"
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SOCKET 1
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for library containing inet_ntoa" >&5
+echo $ECHO_N "checking for library containing inet_ntoa... $ECHO_C" >&6
+if test "${ac_cv_search_inet_ntoa+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+ac_cv_search_inet_ntoa=no
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char inet_ntoa ();
+int
+main ()
+{
+inet_ntoa ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_inet_ntoa="none required"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+if test "$ac_cv_search_inet_ntoa" = no; then
+ for ac_lib in socket nsl resolv; do
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char inet_ntoa ();
+int
+main ()
+{
+inet_ntoa ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_inet_ntoa="-l$ac_lib"
+break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ done
+fi
+LIBS=$ac_func_search_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_search_inet_ntoa" >&5
+echo "${ECHO_T}$ac_cv_search_inet_ntoa" >&6
+if test "$ac_cv_search_inet_ntoa" != no; then
+ test "$ac_cv_search_inet_ntoa" = "none required" || LIBS="$ac_cv_search_inet_ntoa $LIBS"
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_INET_NTOA 1
+_ACEOF
+
+fi
+
+
+#######################################################################
+# Check for headers.
+#######################################################################
+
+# Need this ANSI C headers.
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if test "${ac_cv_prog_CPP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer to if __STDC__ is defined, since
+ # exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include
+#else
+# include
+#endif
+ Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # Broken: success on invalid input.
+continue
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+echo "$as_me:$LINENO: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer to if __STDC__ is defined, since
+ # exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __STDC__
+# include
+#else
+# include
+#endif
+ Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # Broken: success on invalid input.
+continue
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ :
+else
+ { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+if test "${ac_cv_prog_egrep+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ 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
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
+echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+ EGREP=$ac_cv_prog_egrep
+
+
+echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include
+#include
+#include
+#include
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_header_stdc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_header_stdc=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then
+ :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then
+ :
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ exit(2);
+ exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+for ac_header in stdio.h stdlib.h string.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc in
+ yes:no )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+ no:yes )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+else
+ { { echo "$as_me:$LINENO: error: Missing required ANSI C header.
+See \`config.log' for more details." >&5
+echo "$as_me: error: Missing required ANSI C header.
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+
+done
+
+
+# Need these I/O headers.
+
+
+
+
+
+
+
+
+for ac_header in arpa/inet.h dirent.h fcntl.h netinet/in.h sys/socket.h sys/stat.h sys/wait.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+ # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_header_compiler=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_header_preproc=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc in
+ yes:no )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+ no:yes )
+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ (
+ cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+ ) |
+ sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+else
+ { { echo "$as_me:$LINENO: error: Missing required I/O header.
+See \`config.log' for more details." >&5
+echo "$as_me: error: Missing required I/O header.
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+
+done
+
+
+#######################################################################
+# Check for functions.
+#######################################################################
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+for ac_func in accept bind close closedir dup2 fork getenv inet_ntoa listen open opendir putenv read readdir recv send shutdown snprintf socket sscanf stat strcspn strncat strncmp strstr strtol system tolower waitpid
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer to if __STDC__ is defined, since
+ exists even on freestanding compilers. */
+#ifdef __STDC__
+# include
+#else
+# include
+#endif
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+else
+ { { echo "$as_me:$LINENO: error: Missing required function.
+See \`config.log' for more details." >&5
+echo "$as_me: error: Missing required function.
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+done
+
+
+#######################################################################
+# Generate output.
+#######################################################################
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+{
+ (set) 2>&1 |
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n \
+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+ ;;
+ esac;
+} |
+ sed '
+ t clear
+ : clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ : end' >>confcache
+if diff $cache_file confcache >/dev/null 2>&1; then :; else
+ if test -w $cache_file; then
+ test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+ cat confcache >$cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[ ]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[ ]*$//;
+}'
+fi
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then we branch to the quote section. Otherwise,
+# look for a macro that doesn't take arguments.
+cat >confdef2opt.sed <<\_ACEOF
+t clear
+: clear
+s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g
+t quote
+s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g
+t quote
+d
+: quote
+s,[ `~#$^&*(){}\\|;'"<>?],\\&,g
+s,\[,\\&,g
+s,\],\\&,g
+s,\$,$$,g
+p
+_ACEOF
+# We use echo to avoid assuming a particular line-breaking character.
+# The extra dot is to prevent the shell from consuming trailing
+# line-breaks from the sub-command output. A line-break within
+# single-quotes doesn't work because, if this script is created in a
+# platform that uses two characters for line-breaks (e.g., DOS), tr
+# would break.
+ac_LF_and_DOT=`echo; echo .`
+DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
+rm -f confdef2opt.sed
+
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_i=`echo "$ac_i" |
+ sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+ # 2. Add them.
+ ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
+ ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+: ${CONFIG_STATUS=./config.status}
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+## --------------------- ##
+## M4sh Initialization. ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+ set -o posix
+fi
+
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+ LC_TELEPHONE LC_TIME
+do
+ if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+ eval $as_var=C; export $as_var
+ else
+ $as_unset $as_var
+ fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)$' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+ /^X\/\(\/\/\)$/{ s//\1/; q; }
+ /^X\/\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+
+
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x$as_lineno_3" = "x$as_lineno_2" || {
+ # Find who we are. Look in the path if we contain no path at all
+ # relative or not.
+ case $0 in
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+ ;;
+ esac
+ # We did not find ourselves, most probably we were run as `sh COMMAND'
+ # in which case we are not to be found in the path.
+ if test "x$as_myself" = x; then
+ as_myself=$0
+ fi
+ if test ! -f "$as_myself"; then
+ { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ case $CONFIG_SHELL in
+ '')
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for as_base in sh bash ksh sh5; do
+ case $as_dir in
+ /*)
+ if ("$as_dir/$as_base" -c '
+ as_lineno_1=$LINENO
+ as_lineno_2=$LINENO
+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+ test "x$as_lineno_1" != "x$as_lineno_2" &&
+ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
+ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+ CONFIG_SHELL=$as_dir/$as_base
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+ fi;;
+ esac
+ done
+done
+;;
+ esac
+
+ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+ # uniformly replaced by the line number. The first 'sed' inserts a
+ # line-number line before each line; the second 'sed' does the real
+ # work. The second script uses 'N' to pair each line-number line
+ # with the numbered line, and appends trailing '-' during
+ # substitution so that $LINENO is not a special case at line end.
+ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
+ sed '=' <$as_myself |
+ sed '
+ N
+ s,$,-,
+ : loop
+ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+ t loop
+ s,-$,,
+ s,^['$as_cr_digits']*\n,,
+ ' >$as_me.lineno &&
+ chmod +x $as_me.lineno ||
+ { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+ { (exit 1); exit 1; }; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensible to this).
+ . ./$as_me.lineno
+ # Exit status is that of the last command.
+ exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+ *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T=' ' ;;
+ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+ *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+ # We could just check for DJGPP; but this test a) works b) is more generic
+ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+ if test -f conf$$.exe; then
+ # Don't use ln at all; we don't have any links
+ as_ln_s='cp -p'
+ else
+ as_ln_s='ln -s'
+ fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p=:
+else
+ as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" $as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+exec 6>&1
+
+# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling. Logging --version etc. is OK.
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+} >&5
+cat >&5 <<_CSEOF
+
+This file was extended by hibachi $as_me 1.0, which was
+generated by GNU Autoconf 2.57. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+_CSEOF
+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+echo >&5
+_ACEOF
+
+# Files that config.status was made for.
+if test -n "$ac_config_files"; then
+ echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_headers"; then
+ echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_links"; then
+ echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_commands"; then
+ echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number, then exit
+ -q, --quiet do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+
+Configuration files:
+$config_files
+
+Report bugs to ."
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+ac_cs_version="\\
+hibachi config.status 1.0
+configured by $0, generated by GNU Autoconf 2.57,
+ with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+srcdir=$srcdir
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If no file are specified by the user, then we need to provide default
+# value. By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=*)
+ ac_option=`expr "x$1" : 'x\([^=]*\)='`
+ ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ -*)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ *) # This is not an option, so the user has probably given explicit
+ # arguments.
+ ac_option=$1
+ ac_need_defaults=false;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --vers* | -V )
+ echo "$ac_cs_version"; exit 0 ;;
+ --he | --h)
+ # Conflict between --help and --header
+ { { echo "$as_me:$LINENO: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2;}
+ { (exit 1); exit 1; }; };;
+ --help | --hel | -h )
+ echo "$ac_cs_usage"; exit 0 ;;
+ --debug | --d* | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+ ac_need_defaults=false;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2;}
+ { (exit 1); exit 1; }; } ;;
+
+ *) ac_config_targets="$ac_config_targets $1" ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+if \$ac_cs_recheck; then
+ echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+ exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+fi
+
+_ACEOF
+
+
+
+
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_config_target in $ac_config_targets
+do
+ case "$ac_config_target" in
+ # Handling of arguments.
+ "makefile" ) CONFIG_FILES="$CONFIG_FILES makefile" ;;
+ "hibachi-start.sh" ) CONFIG_FILES="$CONFIG_FILES hibachi-start.sh" ;;
+ *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason to put it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+ trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+} ||
+{
+ tmp=./confstat$$-$RANDOM
+ (umask 077 && mkdir $tmp)
+} ||
+{
+ echo "$me: cannot create a temporary directory in ." >&2
+ { (exit 1); exit 1; }
+}
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+
+#
+# CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "\$CONFIG_FILES"; then
+ # Protect against being on the right side of a sed subst in config.status.
+ sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+ s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+s,@SHELL@,$SHELL,;t t
+s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+s,@exec_prefix@,$exec_prefix,;t t
+s,@prefix@,$prefix,;t t
+s,@program_transform_name@,$program_transform_name,;t t
+s,@bindir@,$bindir,;t t
+s,@sbindir@,$sbindir,;t t
+s,@libexecdir@,$libexecdir,;t t
+s,@datadir@,$datadir,;t t
+s,@sysconfdir@,$sysconfdir,;t t
+s,@sharedstatedir@,$sharedstatedir,;t t
+s,@localstatedir@,$localstatedir,;t t
+s,@libdir@,$libdir,;t t
+s,@includedir@,$includedir,;t t
+s,@oldincludedir@,$oldincludedir,;t t
+s,@infodir@,$infodir,;t t
+s,@mandir@,$mandir,;t t
+s,@build_alias@,$build_alias,;t t
+s,@host_alias@,$host_alias,;t t
+s,@target_alias@,$target_alias,;t t
+s,@DEFS@,$DEFS,;t t
+s,@ECHO_C@,$ECHO_C,;t t
+s,@ECHO_N@,$ECHO_N,;t t
+s,@ECHO_T@,$ECHO_T,;t t
+s,@LIBS@,$LIBS,;t t
+s,@package_copyright@,$package_copyright,;t t
+s,@package_major@,$package_major,;t t
+s,@package_minor@,$package_minor,;t t
+s,@package_author@,$package_author,;t t
+s,@enable_port@,$enable_port,;t t
+s,@CC_E@,$CC_E,;t t
+s,@CC_E_NAME@,$CC_E_NAME,;t t
+s,@CC_O@,$CC_O,;t t
+s,@CC_O_NAME@,$CC_O_NAME,;t t
+s,@CC@,$CC,;t t
+s,@CFLAGS@,$CFLAGS,;t t
+s,@LDFLAGS@,$LDFLAGS,;t t
+s,@CPPFLAGS@,$CPPFLAGS,;t t
+s,@ac_ct_CC@,$ac_ct_CC,;t t
+s,@EXEEXT@,$EXEEXT,;t t
+s,@OBJEXT@,$OBJEXT,;t t
+s,@LN_S@,$LN_S,;t t
+s,@CPP@,$CPP,;t t
+s,@EGREP@,$EGREP,;t t
+s,@LIBOBJS@,$LIBOBJS,;t t
+s,@LTLIBOBJS@,$LTLIBOBJS,;t t
+CEOF
+
+_ACEOF
+
+ cat >>$CONFIG_STATUS <<\_ACEOF
+ # Split the substitutions into bite-sized pieces for seds with
+ # small command number limits, like on Digital OSF/1 and HP-UX.
+ ac_max_sed_lines=48
+ ac_sed_frag=1 # Number of current file.
+ ac_beg=1 # First line for current file.
+ ac_end=$ac_max_sed_lines # Line after last line for current file.
+ ac_more_lines=:
+ ac_sed_cmds=
+ while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+ else
+ sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+ fi
+ if test ! -s $tmp/subs.frag; then
+ ac_more_lines=false
+ else
+ # The purpose of the label and of the branching condition is to
+ # speed up the sed processing (if there are no `@' at all, there
+ # is no need to browse any of the substitutions).
+ # These are the two extra sed commands mentioned above.
+ (echo ':t
+ /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+ fi
+ ac_sed_frag=`expr $ac_sed_frag + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_lines`
+ fi
+ done
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+ fi
+fi # test -n "$CONFIG_FILES"
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case $ac_file in
+ - | *:- | *:-:* ) # input from stdin
+ cat >$tmp/stdin
+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ * ) ac_file_in=$ac_file.in ;;
+ esac
+
+ # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+ ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ { if $as_mkdir_p; then
+ mkdir -p "$ac_dir"
+ else
+ as_dir="$ac_dir"
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }; }
+
+ ac_builddir=.
+
+if test "$ac_dir" != .; then
+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+ ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_srcdir=.
+ if test -z "$ac_top_builddir"; then
+ ac_top_srcdir=.
+ else
+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+ fi ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir ;;
+ *) # Relative path.
+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
+# absolute.
+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+
+
+ if test x"$ac_file" != x-; then
+ { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+ rm -f "$ac_file"
+ fi
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ if test x"$ac_file" = x-; then
+ configure_input=
+ else
+ configure_input="$ac_file. "
+ fi
+ configure_input=$configure_input"Generated from `echo $ac_file_in |
+ sed 's,.*/,,'` by configure."
+
+ # First look for the input files in the build tree, otherwise in the
+ # src tree.
+ ac_file_inputs=`IFS=:
+ for f in $ac_file_in; do
+ case $f in
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ echo $f;;
+ *) # Relative
+ if test -f "$f"; then
+ # Build tree
+ echo $f
+ elif test -f "$srcdir/$f"; then
+ # Source tree
+ echo $srcdir/$f
+ else
+ # /dev/null tree
+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+ esac
+ done` || { (exit 1); exit 1; }
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+ sed "$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s,@configure_input@,$configure_input,;t t
+s,@srcdir@,$ac_srcdir,;t t
+s,@abs_srcdir@,$ac_abs_srcdir,;t t
+s,@top_srcdir@,$ac_top_srcdir,;t t
+s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+s,@builddir@,$ac_builddir,;t t
+s,@abs_builddir@,$ac_abs_builddir,;t t
+s,@top_builddir@,$ac_top_builddir,;t t
+s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+ rm -f $tmp/stdin
+ if test x"$ac_file" != x-; then
+ mv $tmp/out $ac_file
+ else
+ cat $tmp/out
+ rm -f $tmp/out
+ fi
+
+ # Run the commands associated with the file.
+ case $ac_file in
+ hibachi-start.sh ) find . -name '*.sh' -exec chmod 755 \{\} \; ;;
+ esac
+done
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+{ (exit 0); exit 0; }
+_ACEOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || { (exit 1); exit 1; }
+fi
+
+
+echo
+echo $PACKAGE_NAME/$package_major.$package_minor
+echo $package_copyright
+echo
+echo "$as_me:$LINENO: result: prefix..................: $prefix" >&5
+echo "${ECHO_T} prefix..................: $prefix" >&6
+echo "$as_me:$LINENO: result: datadir.................: $datadir" >&5
+echo "${ECHO_T} datadir.................: $datadir" >&6
+echo "$as_me:$LINENO: result: CFLAGS..................: $CFLAGS" >&5
+echo "${ECHO_T} CFLAGS..................: $CFLAGS" >&6
+echo "$as_me:$LINENO: result: LDFLAGS.................: $LDFLAGS" >&5
+echo "${ECHO_T} LDFLAGS.................: $LDFLAGS" >&6
+echo "$as_me:$LINENO: result: LIBS....................: $LIBS" >&5
+echo "${ECHO_T} LIBS....................: $LIBS" >&6
+echo
diff --git a/2004/hibachi/src-alt/configure.in b/2004/hibachi/src-alt/configure.in
new file mode 100644
index 000000000..95855b930
--- /dev/null
+++ b/2004/hibachi/src-alt/configure.in
@@ -0,0 +1,138 @@
+#######################################################################
+# Thus it begins...
+#######################################################################
+
+AC_INIT(hibachi, 1.0, [Anthony Howe ])
+
+dnl The autoconf version I learned to deal with.
+AC_PREREQ(2.57)
+
+dnl Yes I wrote this mess.
+AC_COPYRIGHT([Public Domain 2004 by Anthony Howe.])
+
+AC_SUBST(package_copyright, ['Public Domain 2004 by Anthony Howe.'])
+
+AC_SUBST(package_major, [[`echo $PACKAGE_VERSION | sed -e 's/^\([0-9]*\)\.\([0-9]*\)/\1/'`]])
+AC_SUBST(package_minor, [[`echo $PACKAGE_VERSION | sed -e 's/^\([0-9]*\)\.\([0-9]*\)/\2/'`]])
+AC_SUBST(package_author, $PACKAGE_BUGREPORT)
+
+AC_DEFINE_UNQUOTED(_NAME, ["$PACKAGE_NAME"])
+AC_DEFINE_UNQUOTED(_MAJOR, $package_major)
+AC_DEFINE_UNQUOTED(_MINOR, $package_minor)
+AC_DEFINE_UNQUOTED(_AUTHOR, ["$package_author"])
+AC_DEFINE_UNQUOTED(_VERSION, ["$PACKAGE_NAME/$PACKAGE_VERSION"])
+AC_DEFINE_UNQUOTED(_COPYRIGHT, ["$package_copyright"])
+
+OS=`uname -s`
+
+#######################################################################
+# Setup paths
+#######################################################################
+
+# The total perspective vortex "You are here..."
+AC_CONFIG_SRCDIR($PACKAGE_NAME.alt.c)
+
+dnl AC_SUBST(srcdir)
+dnl AC_SUBST(top_srcdir)
+dnl AC_SUBST(abs_srcdir)
+dnl AC_SUBST(abs_top_srcdir)
+dnl
+dnl AC_SUBST(builddir)
+dnl AC_SUBST(top_builddir)
+dnl AC_SUBST(abs_builddir)
+dnl AC_SUBST(abs_top_builddir)
+
+# If localstatedir still has its original value, then use our prefered default.
+if test "$localstatedir" = '${prefix}/var'; then
+ if test "$OS" = 'Linux'; then
+ localstatedir='/var/lib'
+ elif test "$OS" = 'FreeBSD'; then
+ localstatedir='/var/state'
+ elif test "$OS" = 'SunOS'; then
+ localstatedir='/var/opt'
+ else
+ localstatedir='/var'
+ fi
+fi
+
+#######################################################################
+# Auxliary files to be modified later
+#######################################################################
+
+AC_CONFIG_FILES(makefile)
+AC_CONFIG_FILES(hibachi-start.sh, [find . -name '*.sh' -exec chmod 755 \{\} \;])
+
+#######################################################################
+# Configuration options
+#######################################################################
+
+AC_ARG_ENABLE(port,
+ [AC_HELP_STRING([--enable-port=number],[specifiy the server port number, default is 8008])],
+ [], [enable_port=8008]
+)
+AC_SUBST(enable_port)
+
+#######################################################################
+# Setup compiler predefines and exceptions.
+#######################################################################
+
+# Tradional cc options.
+AC_SUBST(CC_E, '-o')
+AC_SUBST(CC_E_NAME, '-o $@')
+AC_SUBST(CC_O, '-o')
+AC_SUBST(CC_O_NAME, '-o $*$O')
+
+AC_PROG_CC
+AC_PROG_LN_S
+dnl AC_PROG_MAKE_SET
+
+dnl AC_CHECK_TOOL(RANLIB, ranlib, true)
+
+#######################################################################
+# Check for libraries.
+#######################################################################
+
+AC_SEARCH_LIBS(socket, [socket nsl],[AC_DEFINE_UNQUOTED([AS_TR_CPP([HAVE_SOCKET])])])
+AC_SEARCH_LIBS(inet_ntoa, [socket nsl resolv],[AC_DEFINE_UNQUOTED([AS_TR_CPP([HAVE_INET_NTOA])])])
+
+#######################################################################
+# Check for headers.
+#######################################################################
+
+# Need this ANSI C headers.
+AC_CHECK_HEADERS(
+ [stdio.h stdlib.h string.h],
+ [], [AC_MSG_FAILURE([Missing required ANSI C header.], 1)]
+)
+
+# Need these I/O headers.
+AC_CHECK_HEADERS(
+ [arpa/inet.h dirent.h fcntl.h netinet/in.h sys/socket.h sys/stat.h sys/wait.h unistd.h],
+ [], [AC_MSG_FAILURE([Missing required I/O header.], 1)]
+)
+
+#######################################################################
+# Check for functions.
+#######################################################################
+
+AC_CHECK_FUNCS(
+ [ accept bind close closedir dup2 fork getenv inet_ntoa listen open opendir putenv read readdir recv send shutdown snprintf socket sscanf stat strcspn strncat strncmp strstr strtol system tolower waitpid],
+ [], [AC_MSG_FAILURE([Missing required function.], 1)]
+)
+
+#######################################################################
+# Generate output.
+#######################################################################
+
+AC_OUTPUT()
+
+echo
+echo $PACKAGE_NAME/$package_major.$package_minor
+echo $package_copyright
+echo
+AC_MSG_RESULT([ prefix..................: $prefix])
+AC_MSG_RESULT([ datadir.................: $datadir])
+AC_MSG_RESULT([ CFLAGS..................: $CFLAGS])
+AC_MSG_RESULT([ LDFLAGS.................: $LDFLAGS])
+AC_MSG_RESULT([ LIBS....................: $LIBS])
+echo
diff --git a/2004/hibachi/src-alt/hibachi-start.sh b/2004/hibachi/src-alt/hibachi-start.sh
new file mode 100755
index 000000000..fe22f23f8
--- /dev/null
+++ b/2004/hibachi/src-alt/hibachi-start.sh
@@ -0,0 +1,185 @@
+#!/bin/bash
+#!/usr/bin/env -i /bin/sh
+#!/bin/ksh
+#!/bin/sh
+#
+# hibachi-start.sh
+#
+# Limited implementation of RFC 2616 and CGI/1.1.
+#
+# Public Domain 2002, 2004 by Anthony Howe. All rights released.
+#
+# usage:
+#
+# hibachi-start.sh &
+#
+
+#######################################################################
+# Do NOT modify the following section if you are security conscious.
+#######################################################################
+
+#
+# Reset internal field separator to space, tab, newline.
+# Not 100% effective if the environment we inherited has
+# already played silly buggers with IFS like "IFS='S'".
+#
+# Use #!/usr/bin/env -i /bin/sh on shells that support
+# option passing and #! lines longer than 32 bytes to
+# guarantee a clean environment.
+#
+IFS='
+'
+
+SED=$(which sed)
+
+#
+# Get a clean environment to work with. This works for all
+# Bourne like shells under Linux and Cygwin environments.
+#
+unset $(env | $SED -e 's/^\([^=]*\).*/\1/')
+
+#
+# Path of safe executables.
+#
+export PATH='/usr/local/bin:/usr/bin:/bin'
+
+#
+# Disable any environment file.
+#
+unset ENV
+
+#
+# Disable cd shortcuts.
+#
+unset CDPATH
+
+#######################################################################
+# Minimum required for serving static files.
+#######################################################################
+
+prefix=/usr/local
+exec_prefix=${prefix}
+
+datadir=${prefix}/share
+sysconfdir=${prefix}/etc
+sharedstatedir=${prefix}/com
+localstatedir=/var
+sbindir=${exec_prefix}/sbin
+bindir=${exec_prefix}/bin
+
+#
+# The port to be used by the Hibachi web server.
+#
+# This is NOT normally a server parameter, but information about the
+# client connection, but since Hibachi only listens on one port, we
+# assume to know what the incoming port is and listen on that. Also
+# for the purpose of demonstration, we can't bind to a privileged
+# port.
+#
+export SERVER_PORT=8008
+
+#
+# The root of the Hibachi document tree. Virtual hosts
+# are implemented as subdirectories from this location.
+#
+# For example, to setup virtual hosts by name or IP:
+#
+# /usr/local/share/hibachi/
+# localhost/
+# index.html
+# ...
+# 127.0.0.1 -> localhost/
+#
+# www.ioccc.org/
+# index.html
+# ...
+# 64.81.251.233 -> www.ioccc.org/
+#
+#export DOCUMENT_ROOT=${datadir}/hibachi
+export DOCUMENT_ROOT=$(pwd)
+
+#
+# The executable.
+#
+#hibachi=${sbindir}/hibachi
+hibachi=`dirname $0`/hibachi
+
+#######################################################################
+# Required for most CGI scripts.
+#######################################################################
+
+#
+# Your host name or IP address. Ideally this should be the server-name
+# used in self-referencing URLs.
+#
+export SERVER_NAME=127.0.0.1
+
+#
+# My web server name and version
+#
+export SERVER_SOFTWARE='hibachi/1.0'
+
+#
+# Predefined environment space for the request method.
+#
+export REQUEST_METHOD='1234'
+
+#
+# Predefined environment space for remote address of a request.
+#
+export REMOTE_ADDR='123.123.123.123'
+
+#
+# Predefined environment space for upload Content-Length.
+#
+export CONTENT_LENGTH='123456789.123456789.'
+
+#
+# Predefined environment space for upload Content-Type.
+# Look at the Apache mime.types file, there are some long ones.
+#
+export CONTENT_TYPE='123456789.123456789.123456789.123456789.123456789.123456789.'
+
+#
+# Predefined environment space for cookies. A single cookie can actually
+# be a maximum of 4096 bytes in size, but here we only handle shorter ones.
+#
+export HTTP_COOKIE='123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.'
+
+#
+# Predefined environment space for the absolute path of the script
+# to be processed. Required by PHP/CGI in order to find the script.
+# This variable is not part of the CGI/1.1 Specification.
+#
+export SCRIPT_FILENAME='123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.'
+
+#
+# Hibachi does support the entire CGI/1.1 specification.
+#
+export GATEWAY_INTERFACE='CGI/0.0'
+
+#
+# We cannot support the following common CGI environment variables
+# as specified in the draft 3 of a proposed Internet Standard
+# due to space limitations, but since the draft has expired and
+# on hold, there is a lot of lee way:
+#
+# AUTH_TYPE (MUST) HTTP_ACCEPT (MAY)
+# HTTP_REFERER (MAY) PATH_INFO (MUST)
+# PATH_TRANSLATED (SHOULD) REMOTE_HOST (SHOULD)
+# REMOTE_IDENT (MAY) REMOTE_USER (SHOULD)
+# SCRIPT_NAME (MUST) SERVER_PROTOCOL (MUST)
+#
+
+#######################################################################
+# Nothing to configure below this point.
+#######################################################################
+
+#
+# Start the web server.
+#
+exec ${hibachi}
+
+#######################################################################
+# Beyond here be dragons...
+#######################################################################
diff --git a/2004/hibachi/src-alt/hibachi-start.sh.in b/2004/hibachi/src-alt/hibachi-start.sh.in
new file mode 100644
index 000000000..b6acb7de0
--- /dev/null
+++ b/2004/hibachi/src-alt/hibachi-start.sh.in
@@ -0,0 +1,185 @@
+#!/bin/bash
+#!/usr/bin/env -i /bin/sh
+#!/bin/ksh
+#!/bin/sh
+#
+# hibachi-start.sh
+#
+# Limited implementation of RFC 2616 and CGI/1.1.
+#
+# Public Domain 2002, 2004 by Anthony Howe. All rights released.
+#
+# usage:
+#
+# hibachi-start.sh &
+#
+
+#######################################################################
+# Do NOT modify the following section if you are security conscious.
+#######################################################################
+
+#
+# Reset internal field separator to space, tab, newline.
+# Not 100% effective if the environment we inherited has
+# already played silly buggers with IFS like "IFS='S'".
+#
+# Use #!/usr/bin/env -i /bin/sh on shells that support
+# option passing and #! lines longer than 32 bytes to
+# guarantee a clean environment.
+#
+IFS='
+'
+
+SED=$(which sed)
+
+#
+# Get a clean environment to work with. This works for all
+# Bourne like shells under Linux and Cygwin environments.
+#
+unset $(env | $SED -e 's/^\([^=]*\).*/\1/')
+
+#
+# Path of safe executables.
+#
+export PATH='/usr/local/bin:/usr/bin:/bin'
+
+#
+# Disable any environment file.
+#
+unset ENV
+
+#
+# Disable cd shortcuts.
+#
+unset CDPATH
+
+#######################################################################
+# Minimum required for serving static files.
+#######################################################################
+
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+
+datadir=@datadir@
+sysconfdir=@sysconfdir@
+sharedstatedir=@sharedstatedir@
+localstatedir=@localstatedir@
+sbindir=@sbindir@
+bindir=@bindir@
+
+#
+# The port to be used by the Hibachi web server.
+#
+# This is NOT normally a server parameter, but information about the
+# client connection, but since Hibachi only listens on one port, we
+# assume to know what the incoming port is and listen on that. Also
+# for the purpose of demonstration, we can't bind to a privileged
+# port.
+#
+export SERVER_PORT=@enable_port@
+
+#
+# The root of the Hibachi document tree. Virtual hosts
+# are implemented as subdirectories from this location.
+#
+# For example, to setup virtual hosts by name or IP:
+#
+# /usr/local/share/hibachi/
+# localhost/
+# index.html
+# ...
+# 127.0.0.1 -> localhost/
+#
+# www.ioccc.org/
+# index.html
+# ...
+# 64.81.251.233 -> www.ioccc.org/
+#
+#export DOCUMENT_ROOT=${datadir}/hibachi
+export DOCUMENT_ROOT=$(pwd)
+
+#
+# The executable.
+#
+#hibachi=${sbindir}/@PACKAGE_NAME@
+hibachi=`dirname $0`/@PACKAGE_NAME@
+
+#######################################################################
+# Required for most CGI scripts.
+#######################################################################
+
+#
+# Your host name or IP address. Ideally this should be the server-name
+# used in self-referencing URLs.
+#
+export SERVER_NAME=127.0.0.1
+
+#
+# My web server name and version
+#
+export SERVER_SOFTWARE='@PACKAGE_NAME@/@PACKAGE_VERSION@'
+
+#
+# Predefined environment space for the request method.
+#
+export REQUEST_METHOD='1234'
+
+#
+# Predefined environment space for remote address of a request.
+#
+export REMOTE_ADDR='123.123.123.123'
+
+#
+# Predefined environment space for upload Content-Length.
+#
+export CONTENT_LENGTH='123456789.123456789.'
+
+#
+# Predefined environment space for upload Content-Type.
+# Look at the Apache mime.types file, there are some long ones.
+#
+export CONTENT_TYPE='123456789.123456789.123456789.123456789.123456789.123456789.'
+
+#
+# Predefined environment space for cookies. A single cookie can actually
+# be a maximum of 4096 bytes in size, but here we only handle shorter ones.
+#
+export HTTP_COOKIE='123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.'
+
+#
+# Predefined environment space for the absolute path of the script
+# to be processed. Required by PHP/CGI in order to find the script.
+# This variable is not part of the CGI/1.1 Specification.
+#
+export SCRIPT_FILENAME='123456789.123456789.123456789.123456789.123456789.123456789.123456789.123456789.'
+
+#
+# Hibachi does support the entire CGI/1.1 specification.
+#
+export GATEWAY_INTERFACE='CGI/0.0'
+
+#
+# We cannot support the following common CGI environment variables
+# as specified in the draft 3 of a proposed Internet Standard
+# due to space limitations, but since the draft has expired and
+# on hold, there is a lot of lee way:
+#
+# AUTH_TYPE (MUST) HTTP_ACCEPT (MAY)
+# HTTP_REFERER (MAY) PATH_INFO (MUST)
+# PATH_TRANSLATED (SHOULD) REMOTE_HOST (SHOULD)
+# REMOTE_IDENT (MAY) REMOTE_USER (SHOULD)
+# SCRIPT_NAME (MUST) SERVER_PROTOCOL (MUST)
+#
+
+#######################################################################
+# Nothing to configure below this point.
+#######################################################################
+
+#
+# Start the web server.
+#
+exec ${hibachi}
+
+#######################################################################
+# Beyond here be dragons...
+#######################################################################
diff --git a/2004/hibachi/src-alt/ioccc.c b/2004/hibachi/src-alt/ioccc.c
new file mode 100644
index 000000000..d4922c752
--- /dev/null
+++ b/2004/hibachi/src-alt/ioccc.c
@@ -0,0 +1,117 @@
+/*
+ * ioccc.c IOCCC 2001 Source Size Rule
+ *
+ * Public Domain 1992 by Anthony Howe. All rights released.
+ *
+ *
+ * SYNOPSIS
+ *
+ * ioccc [-s]
+ *
+ * DESCRIPION
+ *
+ * Taking input from standard input, apply the IOCCC Source Size
+ * Rule for 2001. The program's offical length is written to
+ * standard error. Also filter out C comment blocks sending the
+ * modified source to standard output.
+ *
+ * The 2001 Source Size Rule is:
+ *
+ * Your entry must be <= 4096 bytes in length. The number of characters
+ * excluding whitespace (tab, space, newline, formfeed, return), and
+ * excluding any ';', '{' or '}' followed by whitespace or end of file,
+ * must be <= 2048.
+ *
+ * The -s option siliences standard output.
+ *
+ * NOTE the overall length is not counted since this can be checked
+ * with "ls -l".
+ */
+
+#include
+#include
+#include
+#include
+
+char usage_err[] = "usage: ioccc [-s]\n";
+
+int count(int silience);
+
+int
+main(int argc, char **argv)
+{
+ char *ap;
+ int silence = 0;
+ for (--argc, ++argv; 0 < argc && **argv == '-'; --argc, ++argv) {
+ ap = &argv[0][1];
+ if (*ap == '-' && ap[1] == '\0') {
+ --argc;
+ ++argv;
+ break;
+ }
+ while (*ap != '\0') {
+ switch (*ap++) {
+ case 's':
+ silence = 1;
+ break;
+ default:
+ fprintf(stderr, usage_err);
+ return (2);
+ }
+ break;
+ }
+ }
+ (void) count(silence);
+ return (0);
+}
+
+/*
+ * Count chacacters and strip comments. The stripped input is
+ * sent to standard output. The count of character is sent to
+ * to standard error.
+ *
+ * If silence is true, then do not print anything to standard output.
+ */
+int
+count(int silence)
+{
+ int i, j, k;
+ char *p, buf[256];
+
+ for (i = k = 0; fgets(buf, 256, stdin) != NULL;) {
+ for (p = buf; *p != '\0'; ++p) {
+ if (k == 1) {
+ if (*p == '*' && p[1] == '/') {
+ /* End of comment. */
+ k = 0;
+ ++p;
+ }
+ /* Skip characters in comment block. */
+ continue;
+ }
+ if (*p == '/' && p[1] == '*') {
+ /* Begin comment block. */
+ k = 1;
+ ++p;
+ continue;
+ }
+ /* Everything above here is stripped from the input. */
+ if (!silence)
+ putchar(*p);
+ /* Ignore all whitespace. */
+ if (isspace(*p))
+ continue;
+ /* Ignore curly braces and semicolons when followed
+ * by any whitspace or EOF.
+ */
+ if (strchr("{;}", *p) != NULL
+ && (isspace(p[1]) || p[1] == '\0'))
+ continue;
+ /* Count this character. */
+ ++i;
+ }
+ }
+ fprintf(stderr, "%d\n", i);
+ return (i);
+}
+
diff --git a/2004/hibachi/src-alt/localhost/CHANGELOG.TXT b/2004/hibachi/src-alt/localhost/CHANGELOG.TXT
new file mode 100644
index 000000000..5b0a30e96
--- /dev/null
+++ b/2004/hibachi/src-alt/localhost/CHANGELOG.TXT
@@ -0,0 +1,63 @@
+CHANGES
+-------
+
+The major number changes for such things as code rewrites, changes in
+syntax, and/or dramatic changes in functionality. The minor number
+changes for corrections, enhancements, etc. made to the code. There
+is no set schedule for releases.
+
+--TODO--
+
+ + Figure out why Links browser doesn't work.
+
+--1.0--
+
+ Initial release. Submission to the IOCCC 2004.
+
+--0.8--
+
+ + Add support for SCRIPT_FILENAME for PHP/CGI.
+
+ + Restructured directories.
+
+ + Added autoconf configure.in script and friends.
+
+--0.7--
+
+ ! Replaced print() macro by expansion in status(). Only used in one
+ place. This also fixes a macro expansion bug in status().
+
+ ! status() now correctly passes the size of the status response
+ headers to send().
+
+ ! Fixed transform.sed which incorrectly transform Host: header string
+ into h:.
+
+ + Experimented with configure.in and makefile.in. Not really necessary
+ and the macros tests required in the source exceed the size limit.
+
+
+--0.6--
+
+ ! Renamed error() to status(). Set content-length to that of the
+ response message or static file.
+
+ + Added more details comments with citiations of relavent paragraphs
+ from RFC 2616 and the CGI/1.1 specification.
+
+ ! Enlarged header parsing buffer from 4KB to 8KB.
+
+ ! Changed parsing of request CRLF to allow for just LF.
+
+ + Fold case of request headers to lower case, because of problem with
+ Lynx not specifying headers as they appear in RFC 2616.
+
+--0.5--
+
+ + First attempt static file web server, with virtual host support.
+
+ + Added support for CGI/1.1 specification, in particular "nph" CGIs
+ with a selected set of necessary environment variables.
+
+
+
diff --git a/2004/hibachi/src-alt/localhost/Img/cygwin-icon.gif b/2004/hibachi/src-alt/localhost/Img/cygwin-icon.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a2b81cdbb368f7240e092cae8d0a5adde576aa92
GIT binary patch
literal 132
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
CllUJ1
literal 0
HcmV?d00001
diff --git a/2004/hibachi/src-alt/localhost/Img/hibachi-256-oc-nc-300x150.gif b/2004/hibachi/src-alt/localhost/Img/hibachi-256-oc-nc-300x150.gif
new file mode 100644
index 0000000000000000000000000000000000000000..963da77d42bcab673399e2607506ca158bc3e4dd
GIT binary patch
literal 227717
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