diff --git a/src/configure b/src/configure
new file mode 100755
index 0000000000000000000000000000000000000000..f0f34d64fe0e869bc7564678682cd3ec5a129f0f
--- /dev/null
+++ b/src/configure
@@ -0,0 +1,3356 @@
+#! /bin/sh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 2.4 
+# Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Initialize some other variables.
+subdirs=
+
+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
+
+  case "$ac_option" in
+  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) ac_optarg= ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case "$ac_option" in
+
+  -build | --build | --buil | --bui | --bu | --b)
+    ac_prev=build ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=* | --b=*)
+    build="$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" ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    eval "enable_${ac_feature}=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) 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)
+    # 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 << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+  --cache-file=FILE       cache test results in FILE
+  --help                  print this message
+  --no-create             do not create output files
+  --quiet, --silent       do not print \`checking...' messages
+  --version               print the version of autoconf that created configure
+Directory and file names:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=PREFIX    install architecture-dependent files in PREFIX
+                          [same as prefix]
+  --srcdir=DIR            find the sources in DIR [configure dir or ..]
+  --program-prefix=PREFIX prepend PREFIX to installed program names
+  --program-suffix=SUFFIX append SUFFIX to installed program names
+  --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+Host type:
+  --build=BUILD           configure for building on BUILD [BUILD=HOST]
+  --host=HOST             configure for HOST [guessed]
+  --target=TARGET         configure for TARGET [TARGET=HOST]
+Features and packages:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --x-includes=DIR        X include files are in DIR
+  --x-libraries=DIR       X library files are in DIR
+--enable and --with options recognized:$ac_help
+EOF
+    exit 0 ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host="$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)
+    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 ;;
+
+  -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 ;;
+
+  -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" ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target="$ac_optarg" ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers)
+    echo "configure generated by autoconf version 2.4"
+    exit 0 ;;
+
+  -with-* | --with-*)
+    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_${ac_package}='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    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 "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+    ;;
+
+  *) 
+    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+      echo "configure: warning: $ac_option: invalid host type" 1>&2
+    fi
+    if test "x$nonopt" != xNONE; then
+      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+    fi
+    nonopt="$ac_option"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+  exec 6>/dev/null
+else
+  exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+  case "$ac_arg" in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+  esac
+done
+
+# NLS nuisances.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+
+# 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
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=interpret.c
+
+# 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_prog=$0
+  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+  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 "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+  else
+    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+  fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# 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 "loading site script $ac_site_file"
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  echo "loading cache $cache_file"
+  . $cache_file
+else
+  echo "creating cache $cache_file"
+  > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5 2>&5'
+ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5 2>&5'
+
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+    ac_n= ac_c='
+' ac_t='	'
+  else
+    ac_n=-n ac_c= ac_t=
+  fi
+else
+  ac_n= ac_c='\c' ac_t=
+fi
+
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="gcc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="cc"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.c <<EOF
+#ifdef __GNUC__
+  yes;
+#endif
+EOF
+if ${CC-cc} -E conftest.c 2>&5 | egrep yes >/dev/null 2>&1; then
+  ac_cv_prog_gcc=yes
+else
+  ac_cv_prog_gcc=no
+fi
+fi
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+if test $ac_cv_prog_gcc = yes; then
+  GCC=yes
+  if test "${CFLAGS+set}" != set; then
+    echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_prog_gcc_g'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+  ac_cv_prog_gcc_g=yes
+else
+  ac_cv_prog_gcc_g=no
+fi
+rm -f conftest*
+
+fi
+    echo "$ac_t""$ac_cv_prog_gcc_g" 1>&6
+    if test $ac_cv_prog_gcc_g = yes; then
+      CFLAGS="-g -O"
+    else
+      CFLAGS="-O"
+    fi
+  fi
+else
+  GCC=
+  test "${CFLAGS+set}" = set || CFLAGS="-g"
+fi
+
+
+OLD_CFLAGS="$CFLAGS"
+OPTIMIZE="";
+
+echo $ac_n "checking -O""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'lpc_cv_option_opt'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+  CFLAGS="$OLD_CFLAGS -O"
+  cat > conftest.$ac_ext <<EOF
+#line 486 "configure"
+#include "confdefs.h"
+
+int main() { return 0; }
+int t() {
+ exit(0); 
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+  lpc_cv_option_opt=yes
+else
+  rm -rf conftest*
+  lpc_cv_option_opt=no
+fi
+rm -f conftest*
+
+
+fi
+
+
+if test "$lpc_cv_option_opt" = "yes" ; then
+  CFLAGS="$OLD_CFLAGS -O"
+  OPTIMIZE="$OPTIMIZE -O"
+  echo "$ac_t""-O found" 1>&6
+else
+  echo "$ac_t""-O not found" 1>&6
+fi
+
+echo $ac_n "checking warning flags""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'lpc_cv_option_warn'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+lpc_cv_option_warn=
+for a in -pipe -g -W -Wunused -Wformat
+do
+  case "$CFLAGS" in
+    *\ $a\ *) lpc_cv_option_warn="$lpc_cv_option_warn $a" ;;
+    $a\ *) lpc_cv_option_warn="$lpc_cv_option_warn $a" ;;
+    *\ $a) lpc_cv_option_warn="$lpc_cv_option_warn $a" ;;
+    *)
+  CFLAGS="$OLD_CFLAGS $OPTIMIZE $a"
+  cat > conftest.$ac_ext <<EOF
+#line 530 "configure"
+#include "confdefs.h"
+
+int main() { return 0; }
+int t() {
+ exit(0); 
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+   lpc_cv_option_warn="$lpc_cv_option_warn $a" 
+fi
+rm -f conftest*
+
+  ;;
+  esac 
+done
+
+fi
+
+
+echo "$ac_t""$lpc_cv_option_warn" 1>&6
+WARN="$lpc_cv_option_warn"
+CFLAGS="$OLD_CFLAGS"
+
+
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+  if test -f $ac_dir/install-sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f $ac_dir/install.sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+    IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    # Account for people who put trailing slashes in PATH elements.
+    case "$ac_dir/" in
+    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+    *)
+      # OSF1 and SCO ODT 3.0 have their own names for install.
+      for ac_prog in ginstall installbsd scoinst install; do
+        if test -f $ac_dir/$ac_prog; then
+	  if test $ac_prog = install &&
+            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    # OSF/1 installbsd also uses dspmsg, but is usable.
+	    :
+	  else
+	    ac_cv_path_install="$ac_dir/$ac_prog -c"
+	    break 2
+	  fi
+	fi
+      done
+      ;;
+    esac
+  done
+  IFS="$ac_save_ifs"
+  # As a last resort, use the slow shell script.
+  test -z "$ac_cv_path_install" && ac_cv_path_install="$ac_install_sh"
+fi
+  INSTALL="$ac_cv_path_install"
+fi
+echo "$ac_t""$INSTALL" 1>&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+for ac_prog in 'bison -y' byacc
+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 $ac_n "checking for $ac_word""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$YACC"; then
+  ac_cv_prog_YACC="$YACC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_YACC="$ac_prog"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+YACC="$ac_cv_prog_YACC"
+if test -n "$YACC"; then
+  echo "$ac_t""$YACC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$YACC" && break
+done
+test -n "$YACC" || YACC="yacc"
+
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+    # This must be in double quotes, not single quotes, because CPP may get
+  # substituted into the Makefile and "${CC-cc}" will confuse make.
+  CPP="${CC-cc} -E"
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp.
+  cat > conftest.$ac_ext <<EOF
+#line 675 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  rm -rf conftest*
+  CPP="${CC-cc} -E -traditional-cpp"
+  cat > conftest.$ac_ext <<EOF
+#line 689 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  rm -rf conftest*
+  CPP=/lib/cpp
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+  ac_cv_prog_CPP="$CPP"
+fi
+  CPP="$ac_cv_prog_CPP"
+else
+  ac_cv_prog_CPP="$CPP"
+fi
+echo "$ac_t""$CPP" 1>&6
+
+# Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_RANLIB="ranlib"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+  echo "$ac_t""$RANLIB" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+set dummy ${MAKE-make}; ac_make=$2
+if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftestmake <<\EOF
+all:
+	@echo 'ac_maketemp="${MAKE}"'
+EOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+  eval ac_cv_prog_make_${ac_make}_set=yes
+else
+  eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftestmake
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  SET_MAKE=
+else
+  echo "$ac_t""no" 1>&6
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+
+echo $ac_n "checking first yacc define""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'lpc_cv_yacc_first'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+cat >conftest.y <<\EOF
+%token GURKA
+%%
+all: GURKA
+%%
+EOF
+lpc_cv_yacc_first=257;
+if $YACC -d conftest.y ; then
+  if test -f y.tab.h; then
+    lpc_cv_yacc_first=`egrep GURKA y.tab.h | sed 's/^#[^0-9]*\([0-9]*\)[^0-9]*$/\1/'`
+    echo $lpc_cv_yacc_first >conftest.out
+    if egrep '^(0|1|2|3|4|5|6|7|8|9)+$' conftest.out >/dev/null 2>&1; then
+      echo >/dev/null
+    else
+      lpc_cv_yacc_first=257
+    fi
+  fi
+fi
+
+fi
+
+echo "$ac_t""$lpc_cv_yacc_first" 1>&6
+cat >> confdefs.h <<EOF
+#define F_OFFSET $lpc_cv_yacc_first
+EOF
+
+
+rm -rf conftest.y y.tab.c y.tab.h conftest.out
+
+for ac_hdr in sys/rusage.h sys/time.h unistd.h stdlib.h memory.h values.h \
+ string.h fcntl.h sys/filio.h sys/sockio.h crypt.h locale.h sys/resource.h \
+ sys/select.h
+do
+ac_safe=`echo "$ac_hdr" | tr './\055' '___'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 813 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | tr '[a-z]./\055' '[A-Z]___'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+# If we cannot run a trivial program, we must be cross compiling.
+echo $ac_n "checking whether cross-compiling""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_c_cross'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_c_cross=yes
+else
+cat > conftest.$ac_ext <<EOF
+#line 850 "configure"
+#include "confdefs.h"
+main(){return(0);}
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  ac_cv_c_cross=no
+else
+  ac_cv_c_cross=yes
+fi
+fi
+rm -fr conftest*
+fi
+cross_compiling=$ac_cv_c_cross
+echo "$ac_t""$ac_cv_c_cross" 1>&6
+
+echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 871 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+EOF
+eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  ac_cv_header_stdc=yes
+else
+  echo "$ac_err" >&5
+  rm -rf conftest*
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 893 "configure"
+#include "confdefs.h"
+#include <string.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "memchr" >/dev/null 2>&1; then
+  :
+else
+  rm -rf conftest*
+  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 <<EOF
+#line 911 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "free" >/dev/null 2>&1; then
+  :
+else
+  rm -rf conftest*
+  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
+  ac_cv_header_stdc=no
+else
+cat > conftest.$ac_ext <<EOF
+#line 932 "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#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); }
+
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+fi
+rm -fr conftest*
+fi
+fi
+echo "$ac_t""$ac_cv_header_stdc" 1>&6
+if test $ac_cv_header_stdc = yes; then
+  cat >> confdefs.h <<\EOF
+#define STDC_HEADERS 1
+EOF
+
+fi
+
+
+echo $ac_n "checking size of char *""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_sizeof_char_p'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+cat > conftest.$ac_ext <<EOF
+#line 970 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+main()
+{
+  FILE *f=fopen("conftestval", "w");
+  if (!f) exit(1);
+  fprintf(f, "%d\n", sizeof(char *));
+  exit(0);
+}
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  ac_cv_sizeof_char_p=`cat conftestval`
+else
+  ac_cv_sizeof_char_p=0
+fi
+fi
+rm -fr conftest*
+fi
+echo "$ac_t""$ac_cv_sizeof_char_p" 1>&6
+cat >> confdefs.h <<EOF
+#define SIZEOF_CHAR_P $ac_cv_sizeof_char_p
+EOF
+
+
+echo $ac_n "checking size of long""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+cat > conftest.$ac_ext <<EOF
+#line 1004 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+main()
+{
+  FILE *f=fopen("conftestval", "w");
+  if (!f) exit(1);
+  fprintf(f, "%d\n", sizeof(long));
+  exit(0);
+}
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  ac_cv_sizeof_long=`cat conftestval`
+else
+  ac_cv_sizeof_long=0
+fi
+fi
+rm -fr conftest*
+fi
+echo "$ac_t""$ac_cv_sizeof_long" 1>&6
+cat >> confdefs.h <<EOF
+#define SIZEOF_LONG $ac_cv_sizeof_long
+EOF
+
+
+echo $ac_n "checking size of int""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+cat > conftest.$ac_ext <<EOF
+#line 1038 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+main()
+{
+  FILE *f=fopen("conftestval", "w");
+  if (!f) exit(1);
+  fprintf(f, "%d\n", sizeof(int));
+  exit(0);
+}
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  ac_cv_sizeof_int=`cat conftestval`
+else
+  ac_cv_sizeof_int=0
+fi
+fi
+rm -fr conftest*
+fi
+echo "$ac_t""$ac_cv_sizeof_int" 1>&6
+cat >> confdefs.h <<EOF
+#define SIZEOF_INT $ac_cv_sizeof_int
+EOF
+
+
+echo $ac_n "checking size of short""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+cat > conftest.$ac_ext <<EOF
+#line 1072 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+main()
+{
+  FILE *f=fopen("conftestval", "w");
+  if (!f) exit(1);
+  fprintf(f, "%d\n", sizeof(short));
+  exit(0);
+}
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  ac_cv_sizeof_short=`cat conftestval`
+else
+  ac_cv_sizeof_short=0
+fi
+fi
+rm -fr conftest*
+fi
+echo "$ac_t""$ac_cv_sizeof_short" 1>&6
+cat >> confdefs.h <<EOF
+#define SIZEOF_SHORT $ac_cv_sizeof_short
+EOF
+
+
+echo $ac_n "checking size of float""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_sizeof_float'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+cat > conftest.$ac_ext <<EOF
+#line 1106 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+main()
+{
+  FILE *f=fopen("conftestval", "w");
+  if (!f) exit(1);
+  fprintf(f, "%d\n", sizeof(float));
+  exit(0);
+}
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  ac_cv_sizeof_float=`cat conftestval`
+else
+  ac_cv_sizeof_float=0
+fi
+fi
+rm -fr conftest*
+fi
+echo "$ac_t""$ac_cv_sizeof_float" 1>&6
+cat >> confdefs.h <<EOF
+#define SIZEOF_FLOAT $ac_cv_sizeof_float
+EOF
+
+
+echo $ac_n "checking size of double""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_sizeof_double'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+cat > conftest.$ac_ext <<EOF
+#line 1140 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+main()
+{
+  FILE *f=fopen("conftestval", "w");
+  if (!f) exit(1);
+  fprintf(f, "%d\n", sizeof(double));
+  exit(0);
+}
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  ac_cv_sizeof_double=`cat conftestval`
+else
+  ac_cv_sizeof_double=0
+fi
+fi
+rm -fr conftest*
+fi
+echo "$ac_t""$ac_cv_sizeof_double" 1>&6
+cat >> confdefs.h <<EOF
+#define SIZEOF_DOUBLE $ac_cv_sizeof_double
+EOF
+
+
+
+echo $ac_n "checking for size_t""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1172 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "size_t" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_type_size_t=yes
+else
+  rm -rf conftest*
+  ac_cv_type_size_t=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_size_t" 1>&6
+if test $ac_cv_type_size_t = no; then
+  cat >> confdefs.h <<\EOF
+#define size_t unsigned
+EOF
+
+fi
+
+echo $ac_n "checking for pid_t""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1203 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "pid_t" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_type_pid_t=yes
+else
+  rm -rf conftest*
+  ac_cv_type_pid_t=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_pid_t" 1>&6
+if test $ac_cv_type_pid_t = no; then
+  cat >> confdefs.h <<\EOF
+#define pid_t int
+EOF
+
+fi
+
+echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1234 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "uid_t" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_type_uid_t=yes
+else
+  rm -rf conftest*
+  ac_cv_type_uid_t=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_uid_t" 1>&6
+if test $ac_cv_type_uid_t = no; then
+  cat >> confdefs.h <<\EOF
+#define uid_t int
+EOF
+
+  cat >> confdefs.h <<\EOF
+#define gid_t int
+EOF
+
+fi
+
+echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1266 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <signal.h>
+#ifdef signal
+#undef signal
+#endif
+#ifdef __cplusplus
+extern "C"
+#endif
+void (*signal ()) ();
+int main() { return 0; }
+int t() {
+int i;
+; return 0; }
+EOF
+if eval $ac_compile; then
+  rm -rf conftest*
+  ac_cv_type_signal=void
+else
+  rm -rf conftest*
+  ac_cv_type_signal=int
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_signal" 1>&6
+cat >> confdefs.h <<EOF
+#define RETSIGTYPE $ac_cv_type_signal
+EOF
+
+
+echo $ac_n "checking for time_t""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_type_time_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1303 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "time_t" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_type_time_t=yes
+else
+  rm -rf conftest*
+  ac_cv_type_time_t=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_time_t" 1>&6
+if test $ac_cv_type_time_t = no; then
+  cat >> confdefs.h <<\EOF
+#define time_t INT32
+EOF
+
+fi
+
+
+OLD_LIBOBJS="${LIBOBJS}"
+
+echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_func_memcmp'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_func_memcmp=no
+else
+cat > conftest.$ac_ext <<EOF
+#line 1340 "configure"
+#include "confdefs.h"
+
+main()
+{
+  char c0 = 0x40, c1 = 0x80, c2 = 0x81;
+  exit(memcmp(&c0, &c2, 1) < 0 && memcmp(&c1, &c2, 1) < 0 ? 0 : 1);
+}
+
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  ac_cv_func_memcmp=yes
+else
+  ac_cv_func_memcmp=no
+fi
+fi
+rm -fr conftest*
+fi
+echo "$ac_t""$ac_cv_func_memcmp" 1>&6
+test $ac_cv_func_memcmp = no && LIBOBJS="$LIBOBJS memcmp.o"
+
+
+if test "${OLD_LIBOBJS}" = "${LIBOBJS}" ; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_MEMCMP 1
+EOF
+
+fi
+
+LIBOBJS="${OLD_LIBOBJS}"
+
+for ac_func in memset memcpy memchr strchr strrchr fchmod getrusage \
+ strcspn crypt _crypt getwd getcwd strtod strtok getenv vfprintf bzero bcopy \
+ strtol index rindex vsprintf clock times setlocale strcoll getrlimit setrlimit
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1381 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+char $ac_func(); 
+
+int main() { return 0; }
+int t() {
+
+/* 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
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+
+fi
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr '[a-z]' '[A-Z]'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+
+
+
+
+ echo $ac_n "checking for strchr declaration""... $ac_c" 1>&6
+ if eval "test \"`echo '$''{'lpc_cv_decl_strchr'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+   lpc_cv_decl_strchr=nonexistant
+   for a in string.h unistd.h stdlib.h
+   do
+     cat > conftest.$ac_ext <<EOF
+#line 1438 "configure"
+#include "confdefs.h"
+#include <$a>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "strchr" >/dev/null 2>&1; then
+  rm -rf conftest*
+  lpc_cv_decl_strchr=existant; break
+fi
+rm -f conftest*
+
+   done
+ 
+fi
+
+ echo "$ac_t""$lpc_cv_decl_strchr" 1>&6
+ if test "$lpc_cv_decl_strchr" = nonexistant; then
+   cat >> confdefs.h <<\EOF
+#define STRCHR_DECL_MISSING 1
+EOF
+
+ fi
+
+
+ echo $ac_n "checking for malloc declaration""... $ac_c" 1>&6
+ if eval "test \"`echo '$''{'lpc_cv_decl_malloc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+   lpc_cv_decl_malloc=nonexistant
+   for a in memory.h unistd.h stdlib.h
+   do
+     cat > conftest.$ac_ext <<EOF
+#line 1471 "configure"
+#include "confdefs.h"
+#include <$a>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "malloc" >/dev/null 2>&1; then
+  rm -rf conftest*
+  lpc_cv_decl_malloc=existant; break
+fi
+rm -f conftest*
+
+   done
+ 
+fi
+
+ echo "$ac_t""$lpc_cv_decl_malloc" 1>&6
+ if test "$lpc_cv_decl_malloc" = nonexistant; then
+   cat >> confdefs.h <<\EOF
+#define MALLOC_DECL_MISSING 1
+EOF
+
+ fi
+
+
+ echo $ac_n "checking for getpeername declaration""... $ac_c" 1>&6
+ if eval "test \"`echo '$''{'lpc_cv_decl_getpeername'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+   lpc_cv_decl_getpeername=nonexistant
+   for a in sys/socket.h sys/socketvar.h sys/socketio.h
+   do
+     cat > conftest.$ac_ext <<EOF
+#line 1504 "configure"
+#include "confdefs.h"
+#include <$a>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "getpeername" >/dev/null 2>&1; then
+  rm -rf conftest*
+  lpc_cv_decl_getpeername=existant; break
+fi
+rm -f conftest*
+
+   done
+ 
+fi
+
+ echo "$ac_t""$lpc_cv_decl_getpeername" 1>&6
+ if test "$lpc_cv_decl_getpeername" = nonexistant; then
+   cat >> confdefs.h <<\EOF
+#define GETPEERNAME_DECL_MISSING 1
+EOF
+
+ fi
+
+
+ echo $ac_n "checking for popen declaration""... $ac_c" 1>&6
+ if eval "test \"`echo '$''{'lpc_cv_decl_popen'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+   lpc_cv_decl_popen=nonexistant
+   for a in stdio.h unistd.h
+   do
+     cat > conftest.$ac_ext <<EOF
+#line 1537 "configure"
+#include "confdefs.h"
+#include <$a>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "popen" >/dev/null 2>&1; then
+  rm -rf conftest*
+  lpc_cv_decl_popen=existant; break
+fi
+rm -f conftest*
+
+   done
+ 
+fi
+
+ echo "$ac_t""$lpc_cv_decl_popen" 1>&6
+ if test "$lpc_cv_decl_popen" = nonexistant; then
+   cat >> confdefs.h <<\EOF
+#define POPEN_DECL_MISSING 1
+EOF
+
+ fi
+
+
+ echo $ac_n "checking for getenv declaration""... $ac_c" 1>&6
+ if eval "test \"`echo '$''{'lpc_cv_decl_getenv'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+   lpc_cv_decl_getenv=nonexistant
+   for a in unistd.h stdlib.h
+   do
+     cat > conftest.$ac_ext <<EOF
+#line 1570 "configure"
+#include "confdefs.h"
+#include <$a>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "getenv" >/dev/null 2>&1; then
+  rm -rf conftest*
+  lpc_cv_decl_getenv=existant; break
+fi
+rm -f conftest*
+
+   done
+ 
+fi
+
+ echo "$ac_t""$lpc_cv_decl_getenv" 1>&6
+ if test "$lpc_cv_decl_getenv" = nonexistant; then
+   cat >> confdefs.h <<\EOF
+#define GETENV_DECL_MISSING 1
+EOF
+
+ fi
+
+
+ echo $ac_n "checking for gethostname declaration""... $ac_c" 1>&6
+ if eval "test \"`echo '$''{'lpc_cv_decl_gethostname'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+   lpc_cv_decl_gethostname=nonexistant
+   for a in unistd.h
+   do
+     cat > conftest.$ac_ext <<EOF
+#line 1603 "configure"
+#include "confdefs.h"
+#include <$a>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "gethostname" >/dev/null 2>&1; then
+  rm -rf conftest*
+  lpc_cv_decl_gethostname=existant; break
+fi
+rm -f conftest*
+
+   done
+ 
+fi
+
+ echo "$ac_t""$lpc_cv_decl_gethostname" 1>&6
+ if test "$lpc_cv_decl_gethostname" = nonexistant; then
+   cat >> confdefs.h <<\EOF
+#define GETHOSTNAME_DECL_MISSING 1
+EOF
+
+ fi
+
+
+echo $ac_n "checking return type of free""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'lpc_cv_sys_free_return'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1632 "configure"
+#include "confdefs.h"
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H)
+#include <memory.h>
+#endif
+
+void free();
+
+
+int main() { return 0; }
+int t() {
+
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+  lpc_cv_sys_free_return='char *'
+
+else
+  rm -rf conftest*
+  lpc_cv_sys_free_return='void'
+
+fi
+rm -f conftest*
+
+fi
+
+
+if test "$lpc_cv_sys_free_return" = void; then
+  cat >> confdefs.h <<\EOF
+#define FREE_RETURNS_VOID 1
+EOF
+
+  echo "$ac_t""void" 1>&6;
+else
+  echo "$ac_t""not void" 1>&6
+fi
+
+echo $ac_n "checking void* or char* from malloc""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'lpc_cv_sys_malloc_return'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+cat > conftest.$ac_ext <<EOF
+#line 1685 "configure"
+#include "confdefs.h"
+
+#include <sys/types.h>
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H)
+#include <memory.h>
+#endif
+
+#define POINTER void *
+POINTER malloc(size_t);
+
+#ifdef FREE_RETURNS_VOID
+void free(POINTER);
+#else
+int free(POINTER);
+#endif
+
+
+int main() { return 0; }
+int t() {
+
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+  lpc_cv_sys_malloc_return="void *"
+
+else
+  rm -rf conftest*
+  lpc_cv_sys_malloc_return="char *"
+
+fi
+rm -f conftest*
+
+fi
+
+
+echo "$ac_t""$lpc_cv_sys_malloc_return" 1>&6
+cat >> confdefs.h <<EOF
+#define POINTER $lpc_cv_sys_malloc_return
+EOF
+
+
+# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+# for constant arguments.  Useless!
+echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1744 "configure"
+#include "confdefs.h"
+#include <alloca.h>
+int main() { return 0; }
+int t() {
+char *p = alloca(2 * sizeof(int));
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+  ac_cv_header_alloca_h=yes
+else
+  rm -rf conftest*
+  ac_cv_header_alloca_h=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_header_alloca_h" 1>&6
+if test $ac_cv_header_alloca_h = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_ALLOCA_H 1
+EOF
+
+fi
+
+echo $ac_n "checking for alloca""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_func_alloca'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1775 "configure"
+#include "confdefs.h"
+
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+#else
+# if HAVE_ALLOCA_H
+#  include <alloca.h>
+# else
+#  ifdef _AIX
+ #pragma alloca
+#  else
+#   ifndef alloca /* predefined by HP cc +Olibcalls */
+char *alloca ();
+#   endif
+#  endif
+# endif
+#endif
+
+int main() { return 0; }
+int t() {
+char *p = (char *) alloca(1);
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+  ac_cv_func_alloca=yes
+else
+  rm -rf conftest*
+  ac_cv_func_alloca=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_func_alloca" 1>&6
+if test $ac_cv_func_alloca = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_ALLOCA 1
+EOF
+
+fi
+
+if test $ac_cv_func_alloca = no; then
+  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
+  # that cause trouble.  Some versions do not even contain alloca or
+  # contain a buggy version.  If you still want to use their alloca,
+  # use ar to extract alloca.o from them instead of compiling alloca.c.
+  ALLOCA=alloca.o
+  cat >> confdefs.h <<\EOF
+#define C_ALLOCA 1
+EOF
+
+
+echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1833 "configure"
+#include "confdefs.h"
+#if defined(CRAY) && ! defined(CRAY2)
+webecray
+#else
+wenotbecray
+#endif
+
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "webecray" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_os_cray=yes
+else
+  rm -rf conftest*
+  ac_cv_os_cray=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_os_cray" 1>&6
+if test $ac_cv_os_cray = yes; then
+for ac_func in _getb67 GETB67 getb67; do
+  echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1861 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+char $ac_func(); 
+
+int main() { return 0; }
+int t() {
+
+/* 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
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+
+fi
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<EOF
+#define CRAY_STACKSEG_END $ac_func
+EOF
+
+  break
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+done
+fi
+
+echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_c_stack_direction=0
+else
+cat > conftest.$ac_ext <<EOF
+#line 1915 "configure"
+#include "confdefs.h"
+find_stack_direction ()
+{
+  static char *addr = 0;
+  auto char dummy;
+  if (addr == 0)
+    {
+      addr = &dummy;
+      return find_stack_direction ();
+    }
+  else
+    return (&dummy > addr) ? 1 : -1;
+}
+main ()
+{
+  exit (find_stack_direction() < 0);
+}
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  ac_cv_c_stack_direction=1
+else
+  ac_cv_c_stack_direction=-1
+fi
+fi
+rm -fr conftest*
+fi
+echo "$ac_t""$ac_cv_c_stack_direction" 1>&6
+cat >> confdefs.h <<EOF
+#define STACK_DIRECTION $ac_cv_c_stack_direction
+EOF
+
+fi
+
+
+echo $ac_n "checking for working const""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1956 "configure"
+#include "confdefs.h"
+
+int main() { return 0; }
+int t() {
+
+/* Ultrix mips cc rejects this.  */
+typedef int charset[2]; const charset x;
+/* SunOS 4.1.1 cc rejects this.  */
+char const *const *ccp;
+char **p;
+/* NEC SVR4.0.2 mips cc rejects this.  */
+struct point {int x, y;};
+static struct point const zero;
+/* AIX XL C 1.02.0.0 rejects this.
+   It does not let you subtract one const X* pointer from another in an arm
+   of an if-expression whose if-part is not a constant expression */
+const char *g = "string";
+ccp = &g + (g ? g-g : 0);
+/* HPUX 7.0 cc rejects these. */
+++ccp;
+p = (char**) ccp;
+ccp = (char const *const *) p;
+{ /* SCO 3.2v4 cc rejects this.  */
+  char *t;
+  char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+  *t++ = 0;
+}
+{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
+  int x[] = {25, 17};
+  const int *foo = &x[0];
+  ++foo;
+}
+{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+  typedef const int *iptr;
+  iptr p = 0;
+  ++p;
+}
+{ /* AIX XL C 1.02.0.0 rejects this saying
+     "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+  struct s { int j; const int *ap[3]; };
+  struct s *b; b->j = 5;
+}
+{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+  const int foo = 10;
+}
+
+; return 0; }
+EOF
+if eval $ac_compile; then
+  rm -rf conftest*
+  ac_cv_c_const=yes
+else
+  rm -rf conftest*
+  ac_cv_c_const=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_c_const" 1>&6
+if test $ac_cv_c_const = no; then
+  cat >> confdefs.h <<\EOF
+#define const 
+EOF
+
+fi
+
+echo $ac_n "checking for inline""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+  cat > conftest.$ac_ext <<EOF
+#line 2031 "configure"
+#include "confdefs.h"
+
+int main() { return 0; }
+int t() {
+} $ac_kw foo() {
+; return 0; }
+EOF
+if eval $ac_compile; then
+  rm -rf conftest*
+  ac_cv_c_inline=$ac_kw; break
+fi
+rm -f conftest*
+
+done
+
+fi
+echo "$ac_t""$ac_cv_c_inline" 1>&6
+case "$ac_cv_c_inline" in
+  inline | yes) ;;
+  no) cat >> confdefs.h <<\EOF
+#define inline 
+EOF
+ ;;
+  *)  cat >> confdefs.h <<EOF
+#define inline $ac_cv_c_inline
+EOF
+ ;;
+esac
+
+
+echo $ac_n "checking for -lm""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_lib_m'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lm  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2069 "configure"
+#include "confdefs.h"
+
+int main() { return 0; }
+int t() {
+floor()
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+  eval "ac_cv_lib_m=yes"
+else
+  rm -rf conftest*
+  eval "ac_cv_lib_m=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'m`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo m | tr '[a-z]' '[A-Z]'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="-lm $LIBS"
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+echo $ac_n "checking for -lsocket""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_lib_socket'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lsocket  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2108 "configure"
+#include "confdefs.h"
+
+int main() { return 0; }
+int t() {
+socket()
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+  eval "ac_cv_lib_socket=yes"
+else
+  rm -rf conftest*
+  eval "ac_cv_lib_socket=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'socket`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo socket | tr '[a-z]' '[A-Z]'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="-lsocket $LIBS"
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+if test "$ac_cv_lib_socket" = yes -o "$ac_cv_lib_ucb"; then
+ echo $ac_n "checking for -lnsl""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_lib_nsl'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lnsl  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2149 "configure"
+#include "confdefs.h"
+
+int main() { return 0; }
+int t() {
+main()
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+  eval "ac_cv_lib_nsl=yes"
+else
+  rm -rf conftest*
+  eval "ac_cv_lib_nsl=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'nsl`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo nsl | tr '[a-z]' '[A-Z]'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="-lnsl $LIBS"
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+fi
+
+for ac_func in ualarm
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2190 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+char $ac_func(); 
+
+int main() { return 0; }
+int t() {
+
+/* 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
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+
+fi
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+LIBOBJS="$LIBOBJS ${ac_func}.o"
+fi
+
+done
+
+
+case "$LIBOBJS" in
+   *ualarm.o*) ;;
+  *)
+    cat >> confdefs.h <<\EOF
+#define HAVE_UALARM 1
+EOF
+
+  ;;
+esac
+
+echo $ac_n "checking byteorder""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'lpc_cv_hardware_byteorder'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+cat > conftest.$ac_ext <<EOF
+#line 2252 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+
+int main()
+{
+#ifdef SIZEOF_INT == 4
+#define T int
+#else
+#define T long
+#endif
+  FILE *f;
+  T a;
+  int e;
+  for(e=0;e<sizeof(T);e++)
+    ((char *)&a)[e]=(e+1) % 10;
+
+  f=fopen("conftest.out.2","w");
+  for(e=0;e<sizeof(T);e++)
+  {
+    fprintf(f,"%d",(int)(a & 255));
+    a>>=8;
+  }
+  fprintf(f,"\n");
+  fclose(f);
+  
+  return 0;
+}
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  lpc_cv_hardware_byteorder=`cat conftest.out.2`
+
+else
+  lpc_cv_hardware_byteorder=0
+
+fi
+fi
+rm -fr conftest*
+fi
+
+
+echo "$ac_t""$lpc_cv_hardware_byteorder" 1>&6
+cat >> confdefs.h <<EOF
+#define BYTEORDER $lpc_cv_hardware_byteorder
+EOF
+
+
+echo $ac_n "checking unaligned read/writes""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'lpc_cv_hardware_unalignedRW'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+
+
+if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+cat > conftest.$ac_ext <<EOF
+#line 2312 "configure"
+#include "confdefs.h"
+
+int main()
+{
+  char *c;
+#ifdef __alpha
+  return 1;
+#endif
+  c=(char *)malloc(100);
+
+  *((int *)(c+0))=0x1243abcd;
+  if(*((int *)(c+0))!=0x1243abcd) return 1;
+  *((int *)(c+1))=0x1243abcd;
+  if(*((int *)(c+1))!=0x1243abcd) return 1;
+  *((int *)(c+2))=0x1243abcd;
+  if(*((int *)(c+2))!=0x1243abcd) return 1;
+  *((int *)(c+3))=0x1243abcd;
+  if(*((int *)(c+3))!=0x1243abcd) return 1;
+  *((short *)(c+1))=0x1243;
+  if(*((short *)(c+1))!=0x1243) return 1;
+  *((short *)(c+0))=0x1243;
+  if(*((short *)(c+0))!=0x1243) return 1;
+  return 0;
+}
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  lpc_cv_hardware_unalignedRW=yes
+else
+  lpc_cv_hardware_unalignedRW=no
+fi
+fi
+rm -fr conftest*
+fi
+
+
+if test "$lpc_cv_hardware_unalignedRW" = "yes"; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<\EOF
+#define HANDLES_UNALIGNED_MEMORY_ACCESS 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+echo $ac_n "checking for working memmem""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'lpc_cv_func_memmem'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+cat > conftest.$ac_ext <<EOF
+#line 2368 "configure"
+#include "confdefs.h"
+
+#include <string.h>
+char *a="foo bar gazonk";
+char *b="foo";
+char *c="bar";
+char *d="gazonk";
+void main()
+{
+  if(memmem(b,strlen(b),a,strlen(a))!=a ||
+     memmem(c,strlen(c),a,strlen(a))!=(a+4) ||
+     memmem(d,strlen(d),a,strlen(a))!=(a+8) ||
+     memmem(d,0,a,strlen(a))!=a ||
+     memmem(d,strlen(d)+1,a,strlen(a))!=0)
+    exit(1);
+  exit(0);
+}
+
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  lpc_cv_func_memmem=yes
+else
+  lpc_cv_func_memmem=no
+fi
+fi
+rm -fr conftest*
+fi
+
+
+if test "$lpc_cv_func_memmem" = yes; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<\EOF
+#define HAVE_MEMMEM 1
+EOF
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+echo $ac_n "checking for working memmove""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'lpc_cv_func_memmove'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+cat > conftest.$ac_ext <<EOF
+#line 2418 "configure"
+#include "confdefs.h"
+
+#include <string.h>
+char buf[100];
+void main()
+{
+  strcpy(buf,"foo bar gazonk elefantsnabel.");
+  if(strcmp(buf,"foo bar gazonk elefantsnabel.")) exit(1);
+  memmove(buf,buf+1,8);
+  if(strcmp(buf,"oo bar  gazonk elefantsnabel.")) exit(1);
+  memmove(buf+1,buf+1,9);
+  if(strcmp(buf,"oo bar  gazonk elefantsnabel.")) exit(1);
+  memmove(buf+1,buf,11);
+  if(strcmp(buf,"ooo bar  gaznk elefantsnabel.")) exit(1);
+  exit(0);
+}
+
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  lpc_cv_func_memmove=yes
+else
+  lpc_cv_func_memmove=no
+fi
+fi
+rm -fr conftest*
+fi
+
+
+if test "$lpc_cv_func_memmove" = yes; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<\EOF
+#define HAVE_MEMMOVE 1
+EOF
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+echo $ac_n "checking how to extract an unsigned char""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'lpc_cv_method_extract_uchar'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+cat > conftest.$ac_ext <<EOF
+#line 2467 "configure"
+#include "confdefs.h"
+
+void main()
+{
+  char i,*p;
+  i=-10;
+  p=&i;
+  if(*(unsigned char *)(p)!= 0x100 - 10) exit(1);
+  exit(0);
+}
+
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  lpc_cv_method_extract_uchar=by_cast
+else
+  lpc_cv_method_extract_uchar=not_by_cast
+fi
+fi
+rm -fr conftest*
+fi
+
+
+if test "$lpc_cv_method_extract_uchar" = by_cast; then
+  echo "$ac_t""by cast" 1>&6
+  cat >> confdefs.h <<\EOF
+#define EXTRACT_UCHAR_BY_CAST 1
+EOF
+
+else
+  echo "$ac_t""not by cast" 1>&6
+fi
+
+echo $ac_n "checking how to extract a signed char""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'lpc_cv_method_extract_char'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+cat > conftest.$ac_ext <<EOF
+#line 2510 "configure"
+#include "confdefs.h"
+
+void main()
+{
+  char i,*p;
+  i=-10;
+  p=&i;
+  if(*(signed char *)(p)!= -10) exit(1);
+  exit(0);
+}
+
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  lpc_cv_method_extract_char=by_cast
+else
+  lpc_cv_method_extract_char=not_by_cast
+fi
+fi
+rm -fr conftest*
+fi
+
+
+if test "$lpc_cv_method_extract_char" = by_cast; then
+  echo "$ac_t""by cast" 1>&6
+  cat >> confdefs.h <<\EOF
+#define EXTRACT_CHAR_BY_CAST 1
+EOF
+
+else
+  echo "$ac_t""not by cast" 1>&6
+fi
+
+echo $ac_n "checking available file descriptors""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'lpc_cv_max_open_fd'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+cat > conftest.$ac_ext <<EOF
+#line 2553 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+#ifdef HAVE_SYS_RESOURCE_H
+#include <sys/resource.h>
+#endif
+
+#ifndef MAX_FD
+#define MAX_FD 256
+#endif
+
+int main()
+{
+  FILE *f;
+  int limit;
+#ifdef HAVE_GETRLIMIT
+  struct rlimit lim;
+
+  if(getrlimit(RLIMIT_NOFILE,&lim))
+  {
+    limit = MAX_FD;
+  }else{
+    limit = lim.rlim_max;
+    if(limit == RLIM_INFINITY)
+      limit=16384; /* noone needs more */
+  }
+#else
+  limit = MAX_FD;
+#endif
+	
+
+  f=fopen("conftest.out.2","w");
+  fprintf(f,"%ld\n",(long)lim.rlim_max);
+  fclose(f);
+
+  return 0;
+}
+
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  lpc_cv_max_open_fd=`cat conftest.out.2`
+
+else
+  lpc_cv_max_open_fd=256
+
+fi
+fi
+rm -fr conftest*
+fi
+
+echo "$ac_t""$lpc_cv_max_open_fd" 1>&6
+cat >> confdefs.h <<EOF
+#define MAX_OPEN_FILEDESCRIPTORS $lpc_cv_max_open_fd
+EOF
+
+
+if test "$ac_cv_func_getrusage" = "yes"; then
+echo $ac_n "checking full availability of struct rusage members""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'lpc_cv_func_getrusage_full'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+cat > conftest.$ac_ext <<EOF
+#line 2621 "configure"
+#include "confdefs.h"
+
+#include <sys/time.h>
+#ifdef HAVE_SYS_RUSAGE_H
+#include <sys/rusage.h>
+#endif
+#include <sys/resource.h>
+#ifndef RUSAGE_SELF
+#define RUSAGE_SELF     0
+#endif
+
+int main() { return 0; }
+int t() {
+
+    struct rusage rus;
+    long *v = (long *)main;
+    getrusage(RUSAGE_SELF, &rus);
+    *v++ = rus.ru_maxrss;
+    *v++ = rus.ru_ixrss;
+    *v++ = rus.ru_idrss;
+    *v++ = rus.ru_isrss;
+    *v++ = rus.ru_minflt;
+    *v++ = rus.ru_majflt;
+    *v++ = rus.ru_nswap;
+    *v++ = rus.ru_inblock;
+    *v++ = rus.ru_oublock;
+    *v++ = rus.ru_msgsnd;
+    *v++ = rus.ru_msgrcv;
+    *v++ = rus.ru_nsignals;
+    *v++ = rus.ru_nvcsw;
+    *v++ = rus.ru_nivcsw;
+
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+  lpc_cv_func_getrusage_full=yes
+
+else
+  rm -rf conftest*
+  lpc_cv_func_getrusage_full=no
+
+fi
+rm -f conftest*
+
+fi
+
+
+if test "$lpc_cv_func_getrusage_full" = yes; then
+  echo "$ac_t""all there" 1>&6
+else
+  echo "$ac_t""getrusage is restricted" 1>&6
+  cat >> confdefs.h <<\EOF
+#define GETRUSAGE_RESTRICTED 1
+EOF
+
+fi
+
+else
+
+echo $ac_n "checking getrusage() through procfs""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'lpc_cv_getrusage_procfs'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+cat > conftest.$ac_ext <<EOF
+#line 2688 "configure"
+#include "confdefs.h"
+
+#include <sys/procfs.h>
+#include <sys/fcntl.h>
+int proc_fd;
+char proc_name[20];
+
+int main() { return 0; }
+int t() {
+
+  sprintf(proc_name, "/proc/%05d", getpid());
+  proc_fd = open(proc_name, O_RDONLY);
+
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+  lpc_cv_getrusage_procfs=yes
+
+else
+  rm -rf conftest*
+  lpc_cv_getrusage_procfs=no
+
+fi
+rm -f conftest*
+
+fi
+
+
+if test "$lpc_cv_getrusage_procfs" = yes; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<\EOF
+#define GETRUSAGE_THROUGH_PROCFS 1
+EOF
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+fi
+
+echo $ac_n "checking checking for volatile""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'lpc_cv_volatile'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+ cat > conftest.$ac_ext <<EOF
+#line 2735 "configure"
+#include "confdefs.h"
+
+int main() { return 0; }
+int t() {
+ volatile int foo=1;
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+  lpc_cv_volatile=yes
+else
+  rm -rf conftest*
+  lpc_cv_volatile=no
+fi
+rm -f conftest*
+
+
+fi
+
+
+if test "$lpc_cv_volatile" = yes; then
+ echo "$ac_t""yes" 1>&6
+ cat >> confdefs.h <<\EOF
+#define VOLATILE volatile
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+ cat >> confdefs.h <<\EOF
+#define VOLATILE 
+EOF
+
+fi
+
+echo $ac_n "checking for gcc function attributes""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'lpc_cv_gcc_attributes'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+cat > conftest.$ac_ext <<EOF
+#line 2779 "configure"
+#include "confdefs.h"
+
+#include <stdarg.h>
+void fatal(char *foo,...) __attribute__ ((noreturn,format (printf,1,2)));
+int sqr(int x) __attribute__ ((const));
+
+int sqr(int x) { return x*x; }
+
+void fatal(char *foo,...)
+{
+  va_list args;
+  va_start(foo,args);
+  printf(foo,args);
+  va_end(args);
+  exit(2);
+}
+main() {  exit(0); }
+
+
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  lpc_cv_gcc_attributes=yes
+else
+  lpc_cv_gcc_attributes=no
+fi
+fi
+rm -fr conftest*
+fi
+
+
+echo "$ac_t""$lpc_cv_gcc_attributes" 1>&6
+if test "$lpc_cv_gcc_attributes" = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_FUNCTION_ATTRIBUTES 1
+EOF
+
+fi
+
+echo $ac_n "checking how to set things nonblocking""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'lpc_cv_sys_nonblock'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+cat > conftest.$ac_ext <<EOF
+#line 2828 "configure"
+#include "confdefs.h"
+
+#define TESTING
+#define USE_FCNTL_FNDELAY
+#include "$srcdir/fd_control.c"
+
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  lpc_cv_sys_nonblock=USE_FCNTL_FNDELAY
+else
+  if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+cat > conftest.$ac_ext <<EOF
+#line 2844 "configure"
+#include "confdefs.h"
+
+#define TESTING
+#define USE_FCNTL_O_NDELAY
+#include "$srcdir/fd_control.c"
+
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  lpc_cv_sys_nonblock=USE_FCNTL_O_NDELAY
+else
+  if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+cat > conftest.$ac_ext <<EOF
+#line 2860 "configure"
+#include "confdefs.h"
+
+#define TESTING
+#define USE_FCNTL_O_NONBLOCK
+#include "$srcdir/fd_control.c"
+
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  lpc_cv_sys_nonblock=USE_FCNTL_O_NONBLOCK
+else
+  if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+cat > conftest.$ac_ext <<EOF
+#line 2876 "configure"
+#include "confdefs.h"
+
+#define TESTING
+#define USE_IOCTL_FIONBIO
+#include "$srcdir/fd_control.c"
+
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  lpc_cv_sys_nonblock=USE_IOCTL_FIONBIO
+else
+  unset lpc_cv_sys_nonblock
+
+fi
+fi
+rm -fr conftest*
+fi
+fi
+rm -fr conftest*
+fi
+fi
+rm -fr conftest*
+fi
+fi
+rm -fr conftest*
+fi
+
+
+if test "${lpc_cv_sys_nonblock}" = ""; then
+  echo "$ac_t""none found" 1>&6
+else
+ echo "$ac_t""$lpc_cv_sys_nonblock" 1>&6
+ cat >> confdefs.h <<EOF
+#define $lpc_cv_sys_nonblock 1
+EOF
+
+fi
+
+rm -f core
+
+
+dirs=
+MODULE_OBJS=
+module_names=
+for a in `(cd $srcdir/modules ; echo *)`
+do
+  if test "$a" != "CVS" ; then
+    if test -d "$srcdir/modules/$a" ; then
+      dirs="$dirs modules/$a"
+      MODULE_OBJS="$MODULE_OBJS modules/$a/$a.a"
+      module_names="$module_names $a"
+    fi
+  fi
+done
+
+
+subdirs="$dirs"
+
+
+
+
+
+
+
+
+
+
+trap '' 1 2 15
+cat > confcache <<\EOF
+# 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.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# 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 |
+  sed -n "s/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=\${\1='\2'}/p" \
+  >> confcache
+if cmp -s $cache_file confcache; then
+  :
+else
+  if test -w $cache_file; then
+    echo "updating cache $cache_file"
+    cat confcache > $cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+rm -f confcache
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+DEFS=-DHAVE_CONFIG_H
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+  case "\$ac_option" in
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+    echo "$CONFIG_STATUS generated by autoconf version 2.4"
+    exit 0 ;;
+  -help | --help | --hel | --he | --h)
+    echo "\$ac_cs_usage"; exit 0 ;;
+  *) echo "\$ac_cs_usage"; exit 1 ;;
+  esac
+done
+
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
+
+trap 'rm -fr `echo "Makefile machine.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+
+# Protect against being on the right side of a sed subst in config.status. 
+sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\\\&%]/\\\\&/g; 
+ s/@@/%@/; s/@@/@%/; s/@g$/%g/' > conftest.subs <<\CEOF
+$ac_vpsub
+$extrasub
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@CC@%$CC%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@YACC@%$YACC%g
+s%@CPP@%$CPP%g
+s%@RANLIB@%$RANLIB%g
+s%@SET_MAKE@%$SET_MAKE%g
+s%@LIBOBJS@%$LIBOBJS%g
+s%@ALLOCA@%$ALLOCA%g
+s%@subdirs@%$subdirs%g
+s%@MODULE_OBJS@%$MODULE_OBJS%g
+s%@INSTALL@%$INSTALL%g
+s%@WARN@%$WARN%g
+s%@COMPARE@%$COMPARE%g
+s%@OPTIMIZE@%$OPTIMIZE%g
+s%@EXTRA_OBJS@%$EXTRA_OBJS%g
+
+CEOF
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  # Adjust relative srcdir, etc. for subdirectories.
+
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+    # The file is in a subdirectory.
+    test ! -d "$ac_dir" && mkdir "$ac_dir"
+    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+    # A "../" for each directory in $ac_dir_suffix.
+    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+  else
+    ac_dir_suffix= ac_dots=
+  fi
+
+  case "$ac_given_srcdir" in
+  .)  srcdir=.
+      if test -z "$ac_dots"; then top_srcdir=.
+      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+  *) # Relative path.
+    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
+
+  case "$ac_given_INSTALL" in
+  [/$]*) INSTALL="$ac_given_INSTALL" ;;
+  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+  esac
+  echo creating "$ac_file"
+  rm -f "$ac_file"
+  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+  case "$ac_file" in
+  *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+  *) ac_comsub= ;;
+  esac
+  sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" -f conftest.subs $ac_given_srcdir/$ac_file_in > $ac_file
+fi; done
+rm -f conftest.subs
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s%^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
+ac_dB='\([ 	][ 	]*\)[^ 	]*%\1#\2'
+ac_dC='\3'
+ac_dD='%g'
+# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
+ac_uA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_uB='\([ 	]\)%\1#\2define\3'
+ac_uC=' '
+ac_uD='\4%g'
+# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_eA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_eB='$%\1#\2define\3'
+ac_eC=' '
+ac_eD='%g'
+
+CONFIG_HEADERS=${CONFIG_HEADERS-"machine.h"}
+for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  echo creating $ac_file
+
+  rm -f conftest.frag conftest.in conftest.out
+  cp $ac_given_srcdir/$ac_file_in conftest.in
+
+EOF
+
+# Transform confdefs.h into a sed script conftest.vals that substitutes
+# the proper values into config.h.in to produce config.h.  And first:
+# Protect against being on the right side of a sed subst in config.status. 
+# Protect against being in an unquoted here document in config.status.
+rm -f conftest.vals
+cat > conftest.hdr <<\EOF
+s/[\\&%]/\\&/g
+s%[\\$`]%\\&%g
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) \(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
+s%ac_d%ac_u%gp
+s%ac_u%ac_e%gp
+EOF
+sed -n -f conftest.hdr confdefs.h > conftest.vals
+rm -f conftest.hdr
+
+# This sed command replaces #undef with comments.  This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >> conftest.vals <<\EOF
+s%^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
+EOF
+
+# Break up conftest.vals because some shells have a limit on
+# the size of here documents, and old seds have small limits too.
+# Maximum number of lines to put in a single here document.
+ac_max_here_lines=12
+
+rm -f conftest.tail
+while :
+do
+  ac_lines=`grep -c . conftest.vals`
+  # grep -c gives empty output for an empty file on some AIX systems.
+  if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
+  # Write a limited-size here document to conftest.frag.
+  echo '  cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
+  echo 'CEOF
+  sed -f conftest.frag conftest.in > conftest.out
+  rm -f conftest.in
+  mv conftest.out conftest.in
+' >> $CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
+  rm -f conftest.vals
+  mv conftest.tail conftest.vals
+done
+rm -f conftest.vals
+
+cat >> $CONFIG_STATUS <<\EOF
+  rm -f conftest.frag conftest.h
+  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
+  cat conftest.in >> conftest.h
+  rm -f conftest.in
+  if cmp -s $ac_file conftest.h 2>/dev/null; then
+    echo "$ac_file is unchanged"
+    rm -f conftest.h
+  else
+    rm -f $ac_file
+    mv conftest.h $ac_file
+  fi
+fi; done
+
+EOF
+cat >> $CONFIG_STATUS <<EOF
+dirs="$module_names"
+
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+
+echo "FOO" >stamp-h
+if test ! -d ./modules ; then
+  mkdir modules
+fi
+
+echo "$ac_t""creating modlist.h" 1>&6
+echo "void init_main_efuns(void);" >modlist.h
+echo "void init_main_programs(void);" >>modlist.h
+echo "void exit_main(void);" >>modlist.h
+
+for a in $dirs
+do
+  echo "void init_"$a"_efuns(void);" >>modlist.h
+  echo "void init_"$a"_programs(void);" >>modlist.h
+  echo "void exit_"$a"(void);" >>modlist.h
+done
+echo "" >>modlist.h
+echo "struct module module_list UGLY_WORKAROUND={" >>modlist.h
+
+echo "  { \"main\", init_main_efuns, init_main_programs, exit_main, 0 }" >>modlist.h
+for a in $dirs
+do
+  echo " ,{ \"$a\", init_"$a"_efuns, init_"$a"_programs, exit_$a, 0 }" >>modlist.h
+done
+echo "};" >>modlist.h
+
+
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
+if test "$no_recursion" != yes; then
+
+  # Remove --cache-file and --srcdir arguments so they do not pile up.
+  ac_sub_configure_args=
+  ac_prev=
+  for ac_arg in $ac_configure_args; do
+    if test -n "$ac_prev"; then
+      ac_prev=
+      continue
+    fi
+    case "$ac_arg" in
+    -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=*)
+      ;;
+    -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+      ac_prev=srcdir ;;
+    -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+      ;;
+    *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;;
+    esac
+  done
+
+  for ac_config_dir in $dirs; do
+
+    # Do not complain, so a configure script can configure whichever
+    # parts of a large source tree are present.
+    if test ! -d $srcdir/$ac_config_dir; then
+      continue
+    fi
+
+    echo configuring in $ac_config_dir
+
+    case "$srcdir" in
+    .) ;;
+    *)
+      if test -d ./$ac_config_dir || mkdir ./$ac_config_dir; then :;
+      else
+        { echo "configure: error: can not create `pwd`/$ac_config_dir" 1>&2; exit 1; }
+      fi
+      ;;
+    esac
+
+    ac_popdir=`pwd`
+    cd $ac_config_dir
+
+    case "$srcdir" in
+    .) # No --srcdir option.  We are building in place.
+      ac_sub_srcdir=$srcdir ;;
+    /*) # Absolute path.
+      ac_sub_srcdir=$srcdir/$ac_config_dir ;;
+    *) # Relative path.
+      ac_sub_srcdir=../$srcdir/$ac_config_dir ;;
+    esac
+
+    # Check for guested configure; otherwise get Cygnus style configure.
+    if test -f $ac_sub_srcdir/configure; then
+      ac_sub_configure=$ac_sub_srcdir/configure
+    elif test -f $ac_sub_srcdir/configure.in; then
+      ac_sub_configure=$ac_configure
+    else
+      echo "configure: warning: no configuration information is in $ac_config_dir" 1>&2
+      ac_sub_configure=
+    fi
+
+    # The recursion is here.
+    if test -n "$ac_sub_configure"; then
+
+      # Make the cache file name correct relative to the subdirectory.
+      # A "../" for each directory in /$ac_config_dir.
+      ac_dots=`echo $ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'`
+      case "$cache_file" in
+      /*) ac_sub_cache_file=$cache_file ;;
+      *) # Relative path.
+        ac_sub_cache_file="$ac_dots$cache_file" ;;
+      esac
+  case "$ac_given_INSTALL" in
+        [/$]*) INSTALL="$ac_given_INSTALL" ;;
+        *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+        esac
+
+      echo "running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir"
+      # The eval makes quoting arguments work.
+      if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir
+      then :
+      else
+        { echo "configure: error: $ac_sub_configure failed for $ac_config_dir" 1>&2; exit 1; }
+      fi
+    fi
+
+    cd $ac_popdir
+  done
+fi
+
+
+
diff --git a/src/dependencies b/src/dependencies
new file mode 100644
index 0000000000000000000000000000000000000000..0a3f25f69812ec078c56f5b3eb0c211fe28cd53c
--- /dev/null
+++ b/src/dependencies
@@ -0,0 +1,218 @@
+language.o: language.c global.h \
+  config.h machine.h port.h \
+  interpret.h program.h \
+  array.h las.h \
+  svalue.h dynamic_buffer.h \
+  object.h stralloc.h \
+  lex.h lpc_types.h \
+  add_efun.h hashtable.h \
+  macros.h error.h \
+  docode.h
+add_efun.o: add_efun.c add_efun.h \
+  svalue.h types.h \
+  hashtable.h macros.h \
+  program.h machine.h \
+  lpc_types.h stralloc.h \
+  memory.h interpret.h \
+  config.h
+alloca.o: alloca.c
+array.o: array.c global.h \
+  config.h machine.h port.h \
+  svalue.h array.h \
+  las.h dynamic_buffer.h \
+  program.h object.h \
+  stralloc.h interpret.h \
+  language.h error.h lpc_types.h \
+  fsort.h builtin_efuns.h
+backend.o: backend.c global.h \
+  config.h machine.h port.h \
+  interpret.h program.h \
+  object.h svalue.h \
+  error.h call_out.h \
+  backend.h fd_control.h \
+  main.h
+builtin_efuns.o: builtin_efuns.c \
+  global.h config.h machine.h \
+  port.h interpret.h \
+  program.h svalue.h \
+  macros.h object.h \
+  array.h las.h \
+  dynamic_buffer.h error.h \
+  add_efun.h hashtable.h \
+  mapping.h stralloc.h \
+  lex.h list.h \
+  lpc_types.h rusage.h \
+  operators.h fsort.h \
+  call_out.h
+call_out.o: call_out.c global.h \
+  config.h machine.h port.h \
+  array.h las.h \
+  svalue.h dynamic_buffer.h \
+  program.h call_out.h \
+  object.h interpret.h \
+  error.h builtin_efuns.h
+docode.o: docode.c machine.h \
+  config.h las.h \
+  types.h svalue.h \
+  dynamic_buffer.h program.h \
+  language.h lpc_types.h \
+  stralloc.h interpret.h \
+  add_efun.h hashtable.h \
+  array.h macros.h \
+  error.h memory.h \
+  main.h lex.h \
+  builtin_efuns.h
+dynamic_buffer.o: dynamic_buffer.c \
+  global.h config.h machine.h \
+  port.h dynamic_buffer.h \
+  stralloc.h error.h \
+  svalue.h
+error.o: error.c global.h \
+  config.h machine.h port.h \
+  macros.h error.h \
+  svalue.h interpret.h \
+  program.h stralloc.h \
+  builtin_efuns.h array.h \
+  las.h dynamic_buffer.h \
+  object.h
+fd_control.o: fd_control.c \
+  fd_control.h global.h \
+  config.h machine.h port.h
+fsort.o: fsort.c global.h \
+  config.h machine.h port.h \
+  fsort.h
+hashtable.o: hashtable.c \
+  hashtable.h types.h \
+  stralloc.h config.h machine.h \
+  stuff.h error.h \
+  svalue.h
+interpret.o: interpret.c global.h \
+  config.h machine.h port.h \
+  interpret.h program.h \
+  object.h svalue.h \
+  array.h las.h \
+  dynamic_buffer.h mapping.h \
+  error.h language.h stralloc.h \
+  add_efun.h hashtable.h \
+  macros.h list.h \
+  backend.h operators.h \
+  opcodes.h main.h \
+  lex.h builtin_efuns.h
+las.o: las.c global.h \
+  config.h machine.h port.h \
+  language.h interpret.h \
+  program.h las.h \
+  svalue.h dynamic_buffer.h \
+  array.h object.h \
+  stralloc.h lex.h \
+  lpc_types.h add_efun.h \
+  hashtable.h mapping.h \
+  list.h error.h \
+  docode.h main.h
+lex.o: lex.c global.h \
+  config.h machine.h port.h \
+  language.h array.h las.h \
+  svalue.h dynamic_buffer.h \
+  program.h lex.h \
+  stralloc.h add_efun.h \
+  hashtable.h macros.h \
+  stuff.h interpret.h \
+  error.h object.h \
+  operators.h opcodes.h \
+  builtin_efuns.h
+list.o: list.c global.h \
+  config.h machine.h port.h \
+  array.h las.h \
+  svalue.h dynamic_buffer.h \
+  program.h list.h \
+  macros.h error.h \
+  interpret.h builtin_efuns.h
+lpc_types.o: lpc_types.c global.h \
+  config.h machine.h port.h \
+  svalue.h lpc_types.h \
+  stralloc.h stuff.h \
+  array.h las.h \
+  dynamic_buffer.h program.h \
+  add_efun.h hashtable.h \
+  object.h list.h \
+  mapping.h macros.h \
+  error.h
+main.o: main.c global.h \
+  config.h machine.h port.h \
+  backend.h module.h \
+  object.h svalue.h \
+  lex.h lpc_types.h \
+  builtin_efuns.h array.h \
+  las.h dynamic_buffer.h \
+  program.h stralloc.h \
+  interpret.h error.h \
+  macros.h
+mapping.o: mapping.c global.h \
+  config.h machine.h port.h \
+  mapping.h las.h \
+  svalue.h dynamic_buffer.h \
+  program.h array.h \
+  macros.h language.h error.h \
+  interpret.h
+memory.o: memory.c global.h \
+  config.h machine.h port.h \
+  error.h svalue.h
+module.o: module.c module.h \
+  types.h macros.h \
+  error.h machine.h svalue.h \
+  modlist.h
+object.o: object.c object.h \
+  types.h svalue.h \
+  dynamic_buffer.h interpret.h \
+  program.h machine.h config.h \
+  stralloc.h macros.h \
+  memory.h error.h \
+  main.h
+opcodes.o: opcodes.c global.h \
+  config.h machine.h port.h \
+  interpret.h program.h \
+  svalue.h array.h \
+  las.h dynamic_buffer.h \
+  stralloc.h mapping.h \
+  list.h opcodes.h \
+  object.h error.h \
+  lpc_types.h
+operators.o: operators.c global.h \
+  config.h machine.h port.h \
+  interpret.h program.h \
+  svalue.h list.h \
+  las.h dynamic_buffer.h \
+  mapping.h array.h \
+  stralloc.h opcodes.h \
+  operators.h language.h error.h
+port.o: port.c global.h \
+  config.h machine.h port.h \
+  macros.h
+program.o: program.c global.h \
+  config.h machine.h port.h \
+  program.h object.h \
+  svalue.h dynamic_buffer.h \
+  lpc_types.h stralloc.h \
+  las.h language.h lex.h \
+  macros.h fsort.h \
+  error.h docode.h \
+  interpret.h hashtable.h
+rusage.o: rusage.c global.h \
+  config.h machine.h port.h \
+  rusage.h
+stralloc.o: stralloc.c global.h \
+  config.h machine.h port.h \
+  stralloc.h macros.h \
+  dynamic_buffer.h error.h \
+  svalue.h
+stuff.o: stuff.c stuff.h \
+  types.h
+svalue.o: svalue.c global.h \
+  config.h machine.h port.h \
+  svalue.h stralloc.h \
+  array.h las.h \
+  dynamic_buffer.h program.h \
+  mapping.h list.h \
+  object.h add_efun.h \
+  hashtable.h error.h
+ualarm.o: ualarm.c
diff --git a/src/modlist.h b/src/modlist.h
new file mode 100644
index 0000000000000000000000000000000000000000..b9afce74e50cd0ed3cc577ab36f221862c7ac4ad
--- /dev/null
+++ b/src/modlist.h
@@ -0,0 +1,35 @@
+void init_main_efuns(void);
+void init_main_programs(void);
+void exit_main(void);
+void init_files_efuns(void);
+void init_files_programs(void);
+void exit_files(void);
+void init_image_efuns(void);
+void init_image_programs(void);
+void exit_image(void);
+void init_math_efuns(void);
+void init_math_programs(void);
+void exit_math(void);
+void init_pipe_efuns(void);
+void init_pipe_programs(void);
+void exit_pipe(void);
+void init_regexp_efuns(void);
+void init_regexp_programs(void);
+void exit_regexp(void);
+void init_spider_efuns(void);
+void init_spider_programs(void);
+void exit_spider(void);
+void init_sprintf_efuns(void);
+void init_sprintf_programs(void);
+void exit_sprintf(void);
+
+struct module module_list UGLY_WORKAROUND={
+  { "main", init_main_efuns, init_main_programs, exit_main, 0 }
+ ,{ "files", init_files_efuns, init_files_programs, exit_files, 0 }
+ ,{ "image", init_image_efuns, init_image_programs, exit_image, 0 }
+ ,{ "math", init_math_efuns, init_math_programs, exit_math, 0 }
+ ,{ "pipe", init_pipe_efuns, init_pipe_programs, exit_pipe, 0 }
+ ,{ "regexp", init_regexp_efuns, init_regexp_programs, exit_regexp, 0 }
+ ,{ "spider", init_spider_efuns, init_spider_programs, exit_spider, 0 }
+ ,{ "sprintf", init_sprintf_efuns, init_sprintf_programs, exit_sprintf, 0 }
+};
diff --git a/src/modules/files/Makefile b/src/modules/files/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..e3f7ac96fc513833f1db6db1ad524bab3bfa7f1b
--- /dev/null
+++ b/src/modules/files/Makefile
@@ -0,0 +1,21 @@
+# Generated automatically from Makefile.in by configure.
+SRCDIR=.
+VPATH=.:./../..:../..
+PREFLAGS=-I. -I$(SRCDIR) -I$(SRCDIR)/../.. -I../..
+CFLAGS=$(PREFLAGS) $(OTHERFLAGS)
+
+FILES=file.o efuns.o socket.o
+
+files.a: $(FILES)
+	-rm -f files.a
+	ar cq files.a $(FILES)
+	-ranlib files.a
+
+clean:
+	-rm -f *.o *.a
+
+depend:
+	gcc -MM $(PREFLAGS) $(SRCDIR)/*.c | sed 's;$(SRCDIR)/;;g' | sed 's;\.\./;;g' | sed 's;\./;;g' >$(SRCDIR)/dependencies
+
+include ./dependencies
+
diff --git a/src/modules/files/configure b/src/modules/files/configure
new file mode 100755
index 0000000000000000000000000000000000000000..806bb0977639bc2f3600363db001b0e8524b396d
--- /dev/null
+++ b/src/modules/files/configure
@@ -0,0 +1,1142 @@
+#!/bin/sh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 1.119 
+# Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
+#
+# This configure script is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This script is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
+# Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ac_help=
+
+# Omit some internal or obsolete options to make the list less imposing.
+ac_usage="Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+  --cache-file=FILE       cache test results in FILE
+  --help                  print this message
+  --no-create             do not create output files
+  --quiet, --silent       do not print \`checking...' messages
+  --version               print the version of autoconf that created configure
+Directory and file names:
+  --exec-prefix=PREFIX    install host dependent files in PREFIX [/usr/local]
+  --prefix=PREFIX         install host independent files in PREFIX [/usr/local]
+  --srcdir=DIR            find the sources in DIR [configure dir or ..]
+  --program-prefix=PREFIX prepend PREFIX to installed program names
+  --program-suffix=SUFFIX append SUFFIX to installed program names
+Host type:
+  --build=BUILD           configure for building on BUILD [BUILD=HOST]
+  --host=HOST             configure for HOST [guessed]
+  --target=TARGET         configure for TARGET [TARGET=HOST]
+Features and packages:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --x-includes=DIR        X include files are in DIR
+  --x-libraries=DIR       X library files are in DIR
+--enable and --with options recognized:$ac_help"
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=NONE
+silent=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Initialize some other variables.
+subdirs=
+
+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
+
+  case "$ac_option" in
+  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) ac_optarg= ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case "$ac_option" in
+
+  -build | --build | --buil | --bui | --bu | --b)
+    ac_prev=build ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=* | --b=*)
+    build="$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" ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    eval "enable_${ac_feature}=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) 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)
+    cat << EOF
+$ac_usage
+EOF
+    exit 0 ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host="$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)
+    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 ;;
+
+  -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 ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir="$ac_optarg" ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target="$ac_optarg" ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers)
+    echo "configure generated by autoconf version 1.119"
+    exit 0 ;;
+
+  -with-* | --with-*)
+    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_${ac_package}='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    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 "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+    ;;
+
+  *) 
+    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+      echo "configure: warning: $ac_option: invalid host type" 1>&2
+    fi
+    if test "x$nonopt" != xNONE; then
+      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+    fi
+    nonopt="$ac_option"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 unused; standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 unused; some systems may open it to /dev/tty
+# 4 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+  exec 4>/dev/null
+else
+  exec 4>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+  case "$ac_arg" in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+  esac
+done
+
+# NLS nuisances.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+
+# 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
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=file.c
+
+# 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_prog=$0
+  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+  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 "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+  else
+    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+  fi
+fi
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE=$prefix/lib/config.site
+  else
+    CONFIG_SITE=/usr/local/lib/config.site
+  fi
+  # System dependent files override system independent ones.
+  if test "x$exec_prefix" != xNONE && test "x$exec_prefix" != "x$prefix"; then
+    CONFIG_SITE="$CONFIG_SITE $exec_prefix/lib/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    echo "loading site script $ac_site_file"
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  echo "loading cache $cache_file"
+  . $cache_file
+else
+  echo "creating cache $cache_file"
+  > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_link='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext -o conftest $LIBS 1>&5 2>&5'
+
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+    ac_n= ac_c='
+' ac_t='	'
+  else
+    ac_n=-n ac_c= ac_t=
+  fi
+else
+  ac_n= ac_c='\c' ac_t=
+fi
+
+
+
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="gcc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="cc"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&4
+else
+  echo "$ac_t""no" 1>&4
+fi
+
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_prog_gcc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  cat > conftest.c <<EOF
+#ifdef __GNUC__
+  yes
+#endif
+EOF
+if ${CC-cc} -E conftest.c 2>&5 | egrep yes >/dev/null 2>&1; then
+  ac_cv_prog_gcc=yes
+else
+  ac_cv_prog_gcc=no
+fi
+fi
+echo "$ac_t""$ac_cv_prog_gcc" 1>&4
+if test $ac_cv_prog_gcc = yes; then
+  GCC=yes
+  if test "${CFLAGS+set}" != set; then
+    echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_prog_gcc_g'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+  ac_cv_prog_gcc_g=yes
+else
+  ac_cv_prog_gcc_g=no
+fi
+rm -f conftest*
+
+fi
+    echo "$ac_t""$ac_cv_prog_gcc_g" 1>&4
+    if test $ac_cv_prog_gcc_g = yes; then
+      CFLAGS="-g -O"
+    else
+      CFLAGS="-O"
+    fi
+  fi
+else
+  GCC=
+  test "${CFLAGS+set}" = set || CFLAGS="-g"
+fi
+
+# Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_RANLIB="ranlib"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+  echo "$ac_t""$RANLIB" 1>&4
+else
+  echo "$ac_t""no" 1>&4
+fi
+
+
+
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&4
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+if eval "test \"`echo '${'ac_cv_prog_CPP'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+    # This must be in double quotes, not single quotes, because CPP may get
+  # substituted into the Makefile and "${CC-cc}" will confuse make.
+  CPP="${CC-cc} -E"
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp.
+  cat > conftest.$ac_ext <<EOF
+#line 523 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+Syntax Error
+EOF
+eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  rm -rf conftest*
+  CPP="${CC-cc} -E -traditional-cpp"
+  cat > conftest.$ac_ext <<EOF
+#line 537 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+Syntax Error
+EOF
+eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  rm -rf conftest*
+  CPP=/lib/cpp
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+  ac_cv_prog_CPP="$CPP"
+fi
+fi
+CPP="$ac_cv_prog_CPP"
+echo "$ac_t""$CPP" 1>&4
+
+for ac_hdr in arpa/inet.h sys/socketvar.h netinet/in.h
+do
+ac_safe=`echo "$ac_hdr" | tr './' '__'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  cat > conftest.$ac_ext <<EOF
+#line 568 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&4
+    ac_tr_hdr=HAVE_`echo $ac_hdr | tr '[a-z]./' '[A-Z]__'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&4
+fi
+done
+
+ac_header_dirent=no
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
+do
+ac_safe=`echo "$ac_hdr" | tr './' '__'`
+echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  cat > conftest.$ac_ext <<EOF
+#line 605 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <$ac_hdr>
+int main() { return 0; }
+int t() {
+DIR *dirp = 0;
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+  eval "ac_cv_header_dirent_$ac_safe=yes"
+else
+  rm -rf conftest*
+  eval "ac_cv_header_dirent_$ac_safe=no"
+fi
+rm -f conftest*
+
+fi
+if eval "test \"`echo '$ac_cv_header_dirent_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&4
+    ac_tr_hdr=HAVE_`echo $ac_hdr | tr '[a-z]./' '[A-Z]__'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ ac_header_dirent=$ac_hdr; break
+else
+  echo "$ac_t""no" 1>&4
+fi
+done
+# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix,
+# and -lx contains other useful things as well.  (FIXME what are they?)
+if test $ac_header_dirent = dirent.h; then
+echo $ac_n "checking for -ldir""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_lib_dir'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  ac_save_LIBS="$LIBS"
+LIBS="$LIBS -ldir "
+cat > conftest.$ac_ext <<EOF
+#line 645 "configure"
+#include "confdefs.h"
+
+int main() { return 0; }
+int t() {
+opendir()
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+  eval "ac_cv_lib_dir=yes"
+else
+  rm -rf conftest*
+  eval "ac_cv_lib_dir=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'dir`\" = yes"; then
+  echo "$ac_t""yes" 1>&4
+  LIBS="$LIBS -ldir"
+else
+  echo "$ac_t""no" 1>&4
+fi
+
+fi
+echo $ac_n "checking for -lx""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_lib_x'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  ac_save_LIBS="$LIBS"
+LIBS="$LIBS -lx "
+cat > conftest.$ac_ext <<EOF
+#line 679 "configure"
+#include "confdefs.h"
+
+int main() { return 0; }
+int t() {
+main()
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+  eval "ac_cv_lib_x=yes"
+else
+  rm -rf conftest*
+  eval "ac_cv_lib_x=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'x`\" = yes"; then
+  echo "$ac_t""yes" 1>&4
+  LIBS="$LIBS -lx"
+else
+  echo "$ac_t""no" 1>&4
+fi
+
+
+echo $ac_n "checking for -lsocket""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_lib_socket'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  ac_save_LIBS="$LIBS"
+LIBS="$LIBS -lsocket "
+cat > conftest.$ac_ext <<EOF
+#line 713 "configure"
+#include "confdefs.h"
+
+int main() { return 0; }
+int t() {
+socket()
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+  eval "ac_cv_lib_socket=yes"
+else
+  rm -rf conftest*
+  eval "ac_cv_lib_socket=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'socket`\" = yes"; then
+  echo "$ac_t""yes" 1>&4
+    ac_tr_lib=HAVE_LIB`echo socket | tr '[a-z]' '[A-Z]'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="$LIBS -lsocket"
+
+else
+  echo "$ac_t""no" 1>&4
+fi
+
+
+for ac_func in socketpair
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  cat > conftest.$ac_ext <<EOF
+#line 753 "configure"
+#include "confdefs.h"
+#include <ctype.h> /* Arbitrary system header to define __stub macros. */
+int main() { return 0; }
+int t() {
+
+/* 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
+/* Override any gcc2 internal prototype to avoid an error.  */
+char $ac_func(); $ac_func();
+#endif
+
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+
+fi
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&4
+    ac_tr_func=HAVE_`echo $ac_func | tr '[a-z]' '[A-Z]'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&4
+fi
+done
+
+
+echo $ac_n "checking size of socket buffers""... $ac_c" 1>&4
+if eval "test \"`echo '${'lpc_cv_socket_buffer_max'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  
+# If we cannot run a trivial program, we must be cross compiling.
+echo $ac_n "checking whether cross-compiling""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_c_cross'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_cross=yes
+else
+cat > conftest.$ac_ext <<EOF
+#line 808 "configure"
+#include "confdefs.h"
+main(){return(0);}
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  ac_cv_c_cross=no
+else
+  ac_cv_c_cross=yes
+fi
+fi
+rm -fr conftest*
+fi
+cross_compiling=$ac_cv_c_cross
+echo "$ac_t""$ac_cv_c_cross" 1>&4
+
+if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+cat > conftest.$ac_ext <<EOF
+#line 828 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/param.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <sys/wait.h>
+#include <sys/socket.h>
+
+int main()
+{
+  FILE *f;
+  int fd, try, tmp;
+
+  fd=socket(AF_INET, SOCK_STREAM, 0);
+
+  if(fd < 0) return 1;
+
+  try=1024;
+  while(try < 65000)
+  {
+    tmp=try*2;
+    if(setsockopt(fd, SOL_SOCKET, SO_SNDBUF, (char *)&tmp, sizeof(int)) < 0)
+    {
+      break;
+    }
+    try*=2;
+  }
+  f=fopen("conftest.out.2","w");
+  fprintf(f,"%d\n",try);
+  fclose(f);
+  
+  return 0;
+}
+EOF
+eval $ac_link
+if test -s conftest && (./conftest; exit) 2>/dev/null; then
+  lpc_cv_socket_buffer_max=`cat conftest.out.2`
+
+else
+  lpc_cv_socket_buffer_max=0
+
+fi
+fi
+rm -fr conftest*
+fi
+
+
+cat >> confdefs.h <<EOF
+#define SOCKET_BUFFER_MAX $lpc_cv_socket_buffer_max
+EOF
+
+echo "$ac_t""$lpc_cv_socket_buffer_max" 1>&4
+
+trap '' 1 2 15
+if test -w $cache_file; then
+echo "updating cache $cache_file"
+cat > $cache_file <<\EOF
+# 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.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# Ultrix sh set writes to stderr and can't be redirected directly.
+(set) 2>&1 |
+  sed -n "s/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/: \${\1='\2'}/p" \
+  >> $cache_file
+else
+echo "not updating unwritable cache $cache_file"
+fi
+
+trap 'rm -fr conftest* confdefs* core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=/usr/local
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+DEFS=-DHAVE_CONFIG_H
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#!/bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+  case "\$ac_option" in
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+    echo "$CONFIG_STATUS generated by autoconf version 1.119"
+    exit 0 ;;
+  -help | --help | --hel | --he | --h)
+    echo "\$ac_cs_usage"; exit 0 ;;
+  *) echo "\$ac_cs_usage"; exit 1 ;;
+  esac
+done
+
+ac_given_srcdir=$srcdir
+
+trap 'rm -fr Makefile file_machine.h conftest*; exit 1' 1 2 15
+
+# Protect against being on the right side of a sed subst in config.status. 
+sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\\\&%]/\\\\&/g; 
+ s/@@/%@/; s/@@/@%/; s/@g$/%g/' > conftest.subs <<\CEOF
+$ac_vpsub
+$extrasub
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@CC@%$CC%g
+s%@RANLIB@%$RANLIB%g
+s%@CPP@%$CPP%g
+
+CEOF
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  # Adjust relative srcdir, etc. for subdirectories.
+
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+    # The file is in a subdirectory.
+    test ! -d "$ac_dir" && mkdir "$ac_dir"
+    ac_dir_suffix="/$ac_dir"
+    # A "../" for each directory in $ac_dir_suffix.
+    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+  else
+    ac_dir_suffix= ac_dots=
+  fi
+
+  case "$ac_given_srcdir" in
+  .)  srcdir=.
+      if test -z "$ac_dots"; then top_srcdir=.
+      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+  *) # Relative path.
+    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
+
+  echo creating "$ac_file"
+  rm -f "$ac_file"
+  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+  case "$ac_file" in
+  *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+  *) ac_comsub= ;;
+  esac
+  sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+" -f conftest.subs $ac_given_srcdir/$ac_file_in > $ac_file
+fi; done
+rm -f conftest.subs
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s%^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
+ac_dB='\([ 	][ 	]*\)[^ 	]*%\1#\2'
+ac_dC='\3'
+ac_dD='%g'
+# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
+ac_uA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_uB='\([ 	]\)%\1#\2define\3'
+ac_uC=' '
+ac_uD='\4%g'
+# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_eA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_eB='$%\1#\2define\3'
+ac_eC=' '
+ac_eD='%g'
+
+CONFIG_HEADERS=${CONFIG_HEADERS-"file_machine.h"}
+for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  echo creating $ac_file
+
+  rm -f conftest.frag conftest.in conftest.out
+  cp $ac_given_srcdir/$ac_file_in conftest.in
+
+EOF
+
+# Transform confdefs.h into a sed script conftest.vals that substitutes
+# the proper values into config.h.in to produce config.h.  And first:
+# Protect against being on the right side of a sed subst in config.status. 
+# Protect against being in an unquoted here document in config.status.
+rm -f conftest.vals
+cat > conftest.hdr <<\EOF
+s/[\\&%]/\\&/g
+s%[\\$`]%\\&%g
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) \(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
+s%ac_d%ac_u%gp
+s%ac_u%ac_e%gp
+EOF
+sed -n -f conftest.hdr confdefs.h > conftest.vals
+rm -f conftest.hdr
+
+# This sed command replaces #undef with comments.  This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >> conftest.vals <<\EOF
+s%^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
+EOF
+
+# Break up conftest.vals because some shells have a limit on
+# the size of here documents, and old seds have small limits too.
+# Maximum number of lines to put in a single here document.
+ac_max_here_lines=12
+
+rm -f conftest.tail
+while :
+do
+  ac_lines=`grep -c . conftest.vals`
+  # grep -c gives empty output for an empty file on some AIX systems.
+  if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
+  # Write a limited-size here document to conftest.frag.
+  echo '  cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
+  echo 'CEOF
+  sed -f conftest.frag conftest.in > conftest.out
+  rm -f conftest.in
+  mv conftest.out conftest.in
+' >> $CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
+  rm -f conftest.vals
+  mv conftest.tail conftest.vals
+done
+rm -f conftest.vals
+
+cat >> $CONFIG_STATUS <<\EOF
+  rm -f conftest.frag conftest.h
+  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
+  cat conftest.in >> conftest.h
+  rm -f conftest.in
+  if cmp -s $ac_file conftest.h 2>/dev/null; then
+    echo "$ac_file is unchanged"
+    rm -f conftest.h
+  else
+    rm -f $ac_file
+    mv conftest.h $ac_file
+  fi
+fi; done
+
+
+echo FOO >stamp-h 
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS
+
+
+
diff --git a/src/modules/files/dependencies b/src/modules/files/dependencies
new file mode 100644
index 0000000000000000000000000000000000000000..703e249efdda352b2b4152b20217071a1895e167
--- /dev/null
+++ b/src/modules/files/dependencies
@@ -0,0 +1,46 @@
+datagram.o: datagram.c
+efuns.o: efuns.c \
+  global.h \
+  config.h machine.h \
+  port.h \
+  interpret.h \
+  program.h \
+  svalue.h \
+  stralloc.h \
+  array.h \
+  las.h \
+  dynamic_buffer.h \
+  macros.h \
+  fd_control.h file_machine.h
+file.o: file.c \
+  global.h \
+  config.h machine.h \
+  port.h \
+  interpret.h \
+  program.h \
+  svalue.h \
+  stralloc.h \
+  array.h \
+  las.h \
+  dynamic_buffer.h \
+  object.h \
+  macros.h \
+  backend.h \
+  fd_control.h file_machine.h \
+  file.h
+socket.o: socket.c \
+  global.h \
+  config.h machine.h \
+  port.h \
+  interpret.h \
+  program.h \
+  svalue.h \
+  stralloc.h \
+  array.h \
+  las.h \
+  dynamic_buffer.h \
+  object.h \
+  macros.h \
+  backend.h \
+  fd_control.h file_machine.h \
+  file.h
diff --git a/src/modules/files/file_machine.h b/src/modules/files/file_machine.h
new file mode 100644
index 0000000000000000000000000000000000000000..6f451df2d7282a6ba4e7d35830bf81950cd5c8d8
--- /dev/null
+++ b/src/modules/files/file_machine.h
@@ -0,0 +1,33 @@
+/* file_machine.h.  Generated automatically by configure.  */
+#ifndef FILE_MACHINE_H
+#define FILE_MACHINE_H
+
+/* Define if you have arpa/inhet.h */
+#define HAVE_ARPA_INET_H 1
+
+/* Define if you have the <sys/socketvar.h> header file.  */
+#define HAVE_SYS_SOCKETVAR_H 1
+
+/* Define if you have the <netinet/in.h> header file.  */
+#define HAVE_NETINET_IN_H 1
+
+/* Define if you have dirent.h.  */
+#define HAVE_DIRENT_H 1
+
+/* Define if you don't have dirent.h, but have ndir.h.  */
+/* #undef HAVE_NDIR_H */
+
+/* Define if you don't have dirent.h, but have sys/dir.h.  */
+/* #undef HAVE_SYS_DIR_H */
+
+/* Define if you don't have dirent.h, but have sys/ndir.h.  */
+/* #undef HAVE_SYS_NDIR_H */
+
+/* Buffer size to use on open sockets */
+#define SOCKET_BUFFER_MAX 65536 
+
+/* Do we have socketpair() ? */
+#define HAVE_SOCKETPAIR 1
+
+#endif
+
diff --git a/src/modules/files/stamp-h b/src/modules/files/stamp-h
new file mode 100644
index 0000000000000000000000000000000000000000..b7d6715e2df11b9c32b2341423273c6b3ad9ae8a
--- /dev/null
+++ b/src/modules/files/stamp-h
@@ -0,0 +1 @@
+FOO
diff --git a/src/modules/math/Makefile b/src/modules/math/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..1cee4e157ad032c2cdf118054766192e563ee756
--- /dev/null
+++ b/src/modules/math/Makefile
@@ -0,0 +1,21 @@
+# Generated automatically from Makefile.in by configure.
+SRCDIR=.
+VPATH=.:./../..:../..
+PREFLAGS=-I$(SRCDIR) -I$(SRCDIR)/../.. -I../..
+CFLAGS=$(PREFLAGS) $(OTHERFLAGS)
+
+FILES=math.o
+
+math.a: $(FILES)
+	-rm -f math.a
+	ar cq math.a $(FILES)
+	-ranlib math.a
+
+clean:
+	-rm -f *.o
+
+depend:
+	gcc -MM $(PREFLAGS) $(SRCDIR)/*.c | sed 's;$(SRCDIR)/;;g' | sed 's;\.\./;;g' | sed 's;\./;;g'>$(SRCDIR)/dependencies
+
+include ./dependencies
+
diff --git a/src/modules/math/configure b/src/modules/math/configure
new file mode 100755
index 0000000000000000000000000000000000000000..c47bf21f0aa272d4a79e13ec5c2272eea4be90b1
--- /dev/null
+++ b/src/modules/math/configure
@@ -0,0 +1,680 @@
+#!/bin/sh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 1.119 
+# Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
+#
+# This configure script is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This script is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
+# Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ac_help=
+
+# Omit some internal or obsolete options to make the list less imposing.
+ac_usage="Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+  --cache-file=FILE       cache test results in FILE
+  --help                  print this message
+  --no-create             do not create output files
+  --quiet, --silent       do not print \`checking...' messages
+  --version               print the version of autoconf that created configure
+Directory and file names:
+  --exec-prefix=PREFIX    install host dependent files in PREFIX [/usr/local]
+  --prefix=PREFIX         install host independent files in PREFIX [/usr/local]
+  --srcdir=DIR            find the sources in DIR [configure dir or ..]
+  --program-prefix=PREFIX prepend PREFIX to installed program names
+  --program-suffix=SUFFIX append SUFFIX to installed program names
+Host type:
+  --build=BUILD           configure for building on BUILD [BUILD=HOST]
+  --host=HOST             configure for HOST [guessed]
+  --target=TARGET         configure for TARGET [TARGET=HOST]
+Features and packages:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --x-includes=DIR        X include files are in DIR
+  --x-libraries=DIR       X library files are in DIR
+--enable and --with options recognized:$ac_help"
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=NONE
+silent=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Initialize some other variables.
+subdirs=
+
+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
+
+  case "$ac_option" in
+  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) ac_optarg= ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case "$ac_option" in
+
+  -build | --build | --buil | --bui | --bu | --b)
+    ac_prev=build ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=* | --b=*)
+    build="$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" ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    eval "enable_${ac_feature}=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) 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)
+    cat << EOF
+$ac_usage
+EOF
+    exit 0 ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host="$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)
+    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 ;;
+
+  -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 ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir="$ac_optarg" ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target="$ac_optarg" ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers)
+    echo "configure generated by autoconf version 1.119"
+    exit 0 ;;
+
+  -with-* | --with-*)
+    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_${ac_package}='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    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 "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+    ;;
+
+  *) 
+    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+      echo "configure: warning: $ac_option: invalid host type" 1>&2
+    fi
+    if test "x$nonopt" != xNONE; then
+      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+    fi
+    nonopt="$ac_option"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 unused; standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 unused; some systems may open it to /dev/tty
+# 4 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+  exec 4>/dev/null
+else
+  exec 4>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+  case "$ac_arg" in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+  esac
+done
+
+# NLS nuisances.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+
+# 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
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=math.c
+
+# 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_prog=$0
+  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+  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 "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+  else
+    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+  fi
+fi
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE=$prefix/lib/config.site
+  else
+    CONFIG_SITE=/usr/local/lib/config.site
+  fi
+  # System dependent files override system independent ones.
+  if test "x$exec_prefix" != xNONE && test "x$exec_prefix" != "x$prefix"; then
+    CONFIG_SITE="$CONFIG_SITE $exec_prefix/lib/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    echo "loading site script $ac_site_file"
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  echo "loading cache $cache_file"
+  . $cache_file
+else
+  echo "creating cache $cache_file"
+  > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_link='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext -o conftest $LIBS 1>&5 2>&5'
+
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+    ac_n= ac_c='
+' ac_t='	'
+  else
+    ac_n=-n ac_c= ac_t=
+  fi
+else
+  ac_n= ac_c='\c' ac_t=
+fi
+
+
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="gcc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="cc"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&4
+else
+  echo "$ac_t""no" 1>&4
+fi
+
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_prog_gcc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  cat > conftest.c <<EOF
+#ifdef __GNUC__
+  yes
+#endif
+EOF
+if ${CC-cc} -E conftest.c 2>&5 | egrep yes >/dev/null 2>&1; then
+  ac_cv_prog_gcc=yes
+else
+  ac_cv_prog_gcc=no
+fi
+fi
+echo "$ac_t""$ac_cv_prog_gcc" 1>&4
+if test $ac_cv_prog_gcc = yes; then
+  GCC=yes
+  if test "${CFLAGS+set}" != set; then
+    echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_prog_gcc_g'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+  ac_cv_prog_gcc_g=yes
+else
+  ac_cv_prog_gcc_g=no
+fi
+rm -f conftest*
+
+fi
+    echo "$ac_t""$ac_cv_prog_gcc_g" 1>&4
+    if test $ac_cv_prog_gcc_g = yes; then
+      CFLAGS="-g -O"
+    else
+      CFLAGS="-O"
+    fi
+  fi
+else
+  GCC=
+  test "${CFLAGS+set}" = set || CFLAGS="-g"
+fi
+
+# Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_RANLIB="ranlib"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+  echo "$ac_t""$RANLIB" 1>&4
+else
+  echo "$ac_t""no" 1>&4
+fi
+
+
+
+
+trap '' 1 2 15
+if test -w $cache_file; then
+echo "updating cache $cache_file"
+cat > $cache_file <<\EOF
+# 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.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# Ultrix sh set writes to stderr and can't be redirected directly.
+(set) 2>&1 |
+  sed -n "s/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/: \${\1='\2'}/p" \
+  >> $cache_file
+else
+echo "not updating unwritable cache $cache_file"
+fi
+
+trap 'rm -fr conftest* confdefs* core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=/usr/local
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+cat > conftest.defs <<\EOF
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) \(.*\)%-D\1=\2%g
+s%[ 	`~#$^&*(){}\\|;'"<>?]%\\&%g
+s%\[%\\&%g
+s%\]%\\&%g
+s%\$%$$%g
+EOF
+DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+rm -f conftest.defs
+
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#!/bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+  case "\$ac_option" in
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+    echo "$CONFIG_STATUS generated by autoconf version 1.119"
+    exit 0 ;;
+  -help | --help | --hel | --he | --h)
+    echo "\$ac_cs_usage"; exit 0 ;;
+  *) echo "\$ac_cs_usage"; exit 1 ;;
+  esac
+done
+
+ac_given_srcdir=$srcdir
+
+trap 'rm -f Makefile; exit 1' 1 2 15
+
+# Protect against being on the right side of a sed subst in config.status. 
+sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\\\&%]/\\\\&/g; 
+ s/@@/%@/; s/@@/@%/; s/@g$/%g/' > conftest.subs <<\CEOF
+$ac_vpsub
+$extrasub
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@CC@%$CC%g
+s%@RANLIB@%$RANLIB%g
+
+CEOF
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  # Adjust relative srcdir, etc. for subdirectories.
+
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+    # The file is in a subdirectory.
+    test ! -d "$ac_dir" && mkdir "$ac_dir"
+    ac_dir_suffix="/$ac_dir"
+    # A "../" for each directory in $ac_dir_suffix.
+    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+  else
+    ac_dir_suffix= ac_dots=
+  fi
+
+  case "$ac_given_srcdir" in
+  .)  srcdir=.
+      if test -z "$ac_dots"; then top_srcdir=.
+      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+  *) # Relative path.
+    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
+
+  echo creating "$ac_file"
+  rm -f "$ac_file"
+  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+  case "$ac_file" in
+  *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+  *) ac_comsub= ;;
+  esac
+  sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+" -f conftest.subs $ac_given_srcdir/$ac_file_in > $ac_file
+fi; done
+rm -f conftest.subs
+
+
+echo FOO >stamp-h 
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS
+
+
+
diff --git a/src/modules/math/dependencies b/src/modules/math/dependencies
new file mode 100644
index 0000000000000000000000000000000000000000..de99c1b51e1f6f428bf86f65702f7085154d9386
--- /dev/null
+++ b/src/modules/math/dependencies
@@ -0,0 +1,8 @@
+math.o: math.c \
+  interpret.h \
+  program.h machine.h \
+  types.h \
+  config.h \
+  add_efun.h \
+  svalue.h \
+  hashtable.h
diff --git a/src/modules/math/stamp-h b/src/modules/math/stamp-h
new file mode 100644
index 0000000000000000000000000000000000000000..b7d6715e2df11b9c32b2341423273c6b3ad9ae8a
--- /dev/null
+++ b/src/modules/math/stamp-h
@@ -0,0 +1 @@
+FOO
diff --git a/src/modules/pipe/Makefile b/src/modules/pipe/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..f3728413d491b99c9b13fb1cd3624a93716492d4
--- /dev/null
+++ b/src/modules/pipe/Makefile
@@ -0,0 +1,21 @@
+# Generated automatically from Makefile.in by configure.
+SRCDIR=.
+VPATH=.:./../..:../..
+PREFLAGS=-I$(SRCDIR) -I$(SRCDIR)/../.. -I../..
+CFLAGS=$(PREFLAGS) $(OTHERFLAGS)
+
+FILES=pipe.o
+
+pipe.a: $(FILES)
+	-rm -f pipe.a
+	ar cq pipe.a $(FILES)
+	-ranlib pipe.a
+
+clean:
+	-rm -f *.o *.a
+
+depend:
+	gcc -MM $(PREFLAGS) $(SRCDIR)/*.c >$(SRCDIR)/dependencies
+
+include ./dependencies
+
diff --git a/src/modules/pipe/Makefile.in b/src/modules/pipe/Makefile.in
new file mode 100644
index 0000000000000000000000000000000000000000..14aab9b0edb80e25028a89babd6b723b29c0f7f2
--- /dev/null
+++ b/src/modules/pipe/Makefile.in
@@ -0,0 +1,20 @@
+SRCDIR=@srcdir@
+VPATH=@srcdir@:@srcdir@/../..:../..
+PREFLAGS=-I$(SRCDIR) -I$(SRCDIR)/../.. -I../..
+CFLAGS=$(PREFLAGS) $(OTHERFLAGS)
+
+FILES=pipe.o
+
+pipe.a: $(FILES)
+	-rm -f pipe.a
+	ar cq pipe.a $(FILES)
+	-@RANLIB@ pipe.a
+
+clean:
+	-rm -f *.o *.a
+
+depend:
+	gcc -MM $(PREFLAGS) $(SRCDIR)/*.c >$(SRCDIR)/dependencies
+
+include @srcdir@/dependencies
+
diff --git a/src/modules/pipe/configure b/src/modules/pipe/configure
new file mode 100644
index 0000000000000000000000000000000000000000..15ca7eaf8149e24ca4366f1816280ec7f3b395b9
--- /dev/null
+++ b/src/modules/pipe/configure
@@ -0,0 +1,680 @@
+#!/bin/sh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 1.119 
+# Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
+#
+# This configure script is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This script is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
+# Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ac_help=
+
+# Omit some internal or obsolete options to make the list less imposing.
+ac_usage="Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+  --cache-file=FILE       cache test results in FILE
+  --help                  print this message
+  --no-create             do not create output files
+  --quiet, --silent       do not print \`checking...' messages
+  --version               print the version of autoconf that created configure
+Directory and file names:
+  --exec-prefix=PREFIX    install host dependent files in PREFIX [/usr/local]
+  --prefix=PREFIX         install host independent files in PREFIX [/usr/local]
+  --srcdir=DIR            find the sources in DIR [configure dir or ..]
+  --program-prefix=PREFIX prepend PREFIX to installed program names
+  --program-suffix=SUFFIX append SUFFIX to installed program names
+Host type:
+  --build=BUILD           configure for building on BUILD [BUILD=HOST]
+  --host=HOST             configure for HOST [guessed]
+  --target=TARGET         configure for TARGET [TARGET=HOST]
+Features and packages:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --x-includes=DIR        X include files are in DIR
+  --x-libraries=DIR       X library files are in DIR
+--enable and --with options recognized:$ac_help"
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=NONE
+silent=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Initialize some other variables.
+subdirs=
+
+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
+
+  case "$ac_option" in
+  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) ac_optarg= ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case "$ac_option" in
+
+  -build | --build | --buil | --bui | --bu | --b)
+    ac_prev=build ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=* | --b=*)
+    build="$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" ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    eval "enable_${ac_feature}=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) 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)
+    cat << EOF
+$ac_usage
+EOF
+    exit 0 ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host="$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)
+    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 ;;
+
+  -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 ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir="$ac_optarg" ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target="$ac_optarg" ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers)
+    echo "configure generated by autoconf version 1.119"
+    exit 0 ;;
+
+  -with-* | --with-*)
+    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_${ac_package}='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    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 "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+    ;;
+
+  *) 
+    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+      echo "configure: warning: $ac_option: invalid host type" 1>&2
+    fi
+    if test "x$nonopt" != xNONE; then
+      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+    fi
+    nonopt="$ac_option"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 unused; standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 unused; some systems may open it to /dev/tty
+# 4 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+  exec 4>/dev/null
+else
+  exec 4>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+  case "$ac_arg" in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+  esac
+done
+
+# NLS nuisances.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+
+# 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
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=pipe.c
+
+# 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_prog=$0
+  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+  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 "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+  else
+    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+  fi
+fi
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE=$prefix/lib/config.site
+  else
+    CONFIG_SITE=/usr/local/lib/config.site
+  fi
+  # System dependent files override system independent ones.
+  if test "x$exec_prefix" != xNONE && test "x$exec_prefix" != "x$prefix"; then
+    CONFIG_SITE="$CONFIG_SITE $exec_prefix/lib/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    echo "loading site script $ac_site_file"
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  echo "loading cache $cache_file"
+  . $cache_file
+else
+  echo "creating cache $cache_file"
+  > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_link='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext -o conftest $LIBS 1>&5 2>&5'
+
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+    ac_n= ac_c='
+' ac_t='	'
+  else
+    ac_n=-n ac_c= ac_t=
+  fi
+else
+  ac_n= ac_c='\c' ac_t=
+fi
+
+
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="gcc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="cc"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&4
+else
+  echo "$ac_t""no" 1>&4
+fi
+
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_prog_gcc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  cat > conftest.c <<EOF
+#ifdef __GNUC__
+  yes
+#endif
+EOF
+if ${CC-cc} -E conftest.c 2>&5 | egrep yes >/dev/null 2>&1; then
+  ac_cv_prog_gcc=yes
+else
+  ac_cv_prog_gcc=no
+fi
+fi
+echo "$ac_t""$ac_cv_prog_gcc" 1>&4
+if test $ac_cv_prog_gcc = yes; then
+  GCC=yes
+  if test "${CFLAGS+set}" != set; then
+    echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_prog_gcc_g'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+  ac_cv_prog_gcc_g=yes
+else
+  ac_cv_prog_gcc_g=no
+fi
+rm -f conftest*
+
+fi
+    echo "$ac_t""$ac_cv_prog_gcc_g" 1>&4
+    if test $ac_cv_prog_gcc_g = yes; then
+      CFLAGS="-g -O"
+    else
+      CFLAGS="-O"
+    fi
+  fi
+else
+  GCC=
+  test "${CFLAGS+set}" = set || CFLAGS="-g"
+fi
+
+# Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_RANLIB="ranlib"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+  echo "$ac_t""$RANLIB" 1>&4
+else
+  echo "$ac_t""no" 1>&4
+fi
+
+
+
+
+trap '' 1 2 15
+if test -w $cache_file; then
+echo "updating cache $cache_file"
+cat > $cache_file <<\EOF
+# 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.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# Ultrix sh set writes to stderr and can't be redirected directly.
+(set) 2>&1 |
+  sed -n "s/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/: \${\1='\2'}/p" \
+  >> $cache_file
+else
+echo "not updating unwritable cache $cache_file"
+fi
+
+trap 'rm -fr conftest* confdefs* core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=/usr/local
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+cat > conftest.defs <<\EOF
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) \(.*\)%-D\1=\2%g
+s%[ 	`~#$^&*(){}\\|;'"<>?]%\\&%g
+s%\[%\\&%g
+s%\]%\\&%g
+s%\$%$$%g
+EOF
+DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+rm -f conftest.defs
+
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#!/bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+  case "\$ac_option" in
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+    echo "$CONFIG_STATUS generated by autoconf version 1.119"
+    exit 0 ;;
+  -help | --help | --hel | --he | --h)
+    echo "\$ac_cs_usage"; exit 0 ;;
+  *) echo "\$ac_cs_usage"; exit 1 ;;
+  esac
+done
+
+ac_given_srcdir=$srcdir
+
+trap 'rm -f Makefile; exit 1' 1 2 15
+
+# Protect against being on the right side of a sed subst in config.status. 
+sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\\\&%]/\\\\&/g; 
+ s/@@/%@/; s/@@/@%/; s/@g$/%g/' > conftest.subs <<\CEOF
+$ac_vpsub
+$extrasub
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@CC@%$CC%g
+s%@RANLIB@%$RANLIB%g
+
+CEOF
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  # Adjust relative srcdir, etc. for subdirectories.
+
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+    # The file is in a subdirectory.
+    test ! -d "$ac_dir" && mkdir "$ac_dir"
+    ac_dir_suffix="/$ac_dir"
+    # A "../" for each directory in $ac_dir_suffix.
+    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+  else
+    ac_dir_suffix= ac_dots=
+  fi
+
+  case "$ac_given_srcdir" in
+  .)  srcdir=.
+      if test -z "$ac_dots"; then top_srcdir=.
+      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+  *) # Relative path.
+    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
+
+  echo creating "$ac_file"
+  rm -f "$ac_file"
+  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+  case "$ac_file" in
+  *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+  *) ac_comsub= ;;
+  esac
+  sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+" -f conftest.subs $ac_given_srcdir/$ac_file_in > $ac_file
+fi; done
+rm -f conftest.subs
+
+
+echo FOO >stamp-h 
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS
+
+
+
diff --git a/src/modules/pipe/configure.in b/src/modules/pipe/configure.in
new file mode 100644
index 0000000000000000000000000000000000000000..f52af3d77fa304ab4833ee89db240f5cc6c6d808
--- /dev/null
+++ b/src/modules/pipe/configure.in
@@ -0,0 +1,10 @@
+AC_INIT(pipe.c)
+
+AC_PROG_CC
+AC_PROG_RANLIB
+
+AC_SUBST(RANLIB)
+
+AC_OUTPUT(Makefile,echo FOO >stamp-h )
+
+
diff --git a/src/modules/pipe/dependencies b/src/modules/pipe/dependencies
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/modules/pipe/pipe.c b/src/modules/pipe/pipe.c
new file mode 100644
index 0000000000000000000000000000000000000000..ae79c3caa74be7bb6036171b7cc929855ec32429
--- /dev/null
+++ b/src/modules/pipe/pipe.c
@@ -0,0 +1,1108 @@
+#include <sys/stat.h>
+#include <sys/mman.h>
+#include <sys/types.h>
+#include <fcntl.h>
+
+#include "global.h"
+#include "stralloc.h"
+#include "types.h"
+#include "macros.h"
+#include "object.h"
+#include "add_efun.h"
+#include "interpret.h"
+#include "svalue.h"
+#include "error.h"
+
+/*
+#define PIPE_STRING_DEBUG
+#define PIPE_MMAP_DEBUG
+#define PIPE_FILE_DEBUG
+#define BLOCKING_CLOSE
+*/
+
+#if 0
+#define INSISTANT_WRITE
+#endif
+
+#ifndef MAP_FILE
+#  define MAP_FILE 0
+#endif
+
+#define READ_BUFFER_SIZE 32768
+#define MAX_BYTES_IN_BUFFER 65536
+
+/*
+ *  usage:
+ *  single socket output  
+ *  or regular file output and (multiple, adding) socket output 
+ *     with no mmap input 
+ *
+ *  multiple socket output without regular file output illegal
+ */
+
+static struct program *pipe_program, *output_program;
+
+#define THIS ((struct pipe *)(fp->current_storage))
+#define THISOBJ (fp->current_object)
+
+struct input
+{
+  enum { I_NONE,I_OBJ,I_STRING,I_MMAP } type;
+  union
+  {
+    struct object *obj; 
+    struct lpc_string *str;
+    unsigned char *mmap;
+  } u;
+  unsigned long len;		/* current input: string or mmap len */
+  int set_blocking_offset, set_nonblocking_offset;
+  struct input *next;
+};
+
+struct output
+{
+  struct object *obj;
+  int write_offset, set_blocking_offset, set_nonblocking_offset;
+  int fd;
+      
+  enum 
+  { 
+    O_RUN,			/* waiting for callback */
+    O_SLEEP			/* sleeping; waiting for more data */
+  } mode;
+
+  unsigned long pos; /* position in buffer */
+  struct object *next;
+  struct pipe *the_pipe;
+};
+
+struct buffer
+{
+  struct lpc_string *s;
+  struct buffer *next;
+};
+
+struct pipe
+{
+  int living_outputs;		/* number of output objects */
+
+  struct svalue done_callback;
+  struct svalue output_closed_callback;
+  struct svalue id;
+
+  /*
+   *  if fd is -1: use fd
+   *  else firstinput's type is I_MMAP: use firstinput's mmap
+   *  else use buffer
+   */
+
+  int fd;			/* buffer fd or -1 */
+
+  unsigned long bytes_in_buffer;
+  unsigned long pos; 
+  /* fd: size of buffer file */
+  /* current position of first element (buffer or mmap) */
+  struct buffer *firstbuffer,*lastbuffer;
+  short sleeping;			/* sleeping; buffer is full */
+  short done;
+  struct input *firstinput,*lastinput;
+  struct object *firstoutput;
+};
+
+static int offset_input_read_callback;
+static int offset_input_close_callback;
+static int offset_output_write_callback;
+static int offset_output_close_callback;
+static int mmapped, nobjects, nstrings, noutputs, ninputs, nbuffers, sbuffers;
+
+static unsigned char static_buffer[READ_BUFFER_SIZE];
+
+void close_and_free_everything(struct object *o,struct pipe *);
+static INLINE void output_finish(struct object *obj);
+static INLINE void output_try_write_some(struct object *obj);
+
+/********** internal ********************************************************/
+
+/* Push a callback to this object given the internal function number.
+ */
+static void push_callback(int no)
+{
+  sp->u.object=THISOBJ;
+  THISOBJ->refs++;
+  sp->subtype=no+fp->context.identifier_level;
+  sp->type=T_FUNCTION;
+  sp++;
+}
+
+/* Allocate a new struct input, link it last in the linked list */
+static INLINE struct input *new_input(void)
+{
+  struct input *i;
+  ninputs++;
+  i=ALLOC_STRUCT(input);
+  i->type=I_NONE;
+  i->next=NULL;
+  if (THIS->lastinput)
+    THIS->lastinput->next=i;
+  else
+    THIS->firstinput=i;
+  THIS->lastinput=i;
+  return i;
+}
+
+/* Free an input struct and all that it stands for */
+static INLINE void free_input(struct input *i)
+{
+  ninputs--;
+  switch (i->type)
+  {
+  case I_OBJ:
+    if (!i->u.obj) break;
+    if (i->u.obj->prog)
+    {
+#ifdef BLOCKING_CLOSE
+      apply_low(i->u.obj,i->set_blocking_offset,0);
+      pop_stack();
+#endif
+      apply(i->u.obj,"close",0);
+      pop_stack();
+    }
+    free_object(i->u.obj);
+    nobjects--;
+    i->u.obj=0;
+    break;
+
+  case I_STRING:
+    free_string(i->u.str);
+    nstrings--;
+    break;
+
+  case I_MMAP:
+    munmap(i->u.mmap,i->len);
+    mmapped -= i->len;
+    break;
+
+  }
+  free(i);
+}
+
+/* do the done_callback, then close and free everything */
+static INLINE void pipe_done(void)
+{
+  if (THIS->done_callback.type!=T_INT)
+  {
+    assign_svalue_no_free(sp++,&THIS->id);
+    apply_svalue(&(THIS->done_callback),1);
+    pop_stack();
+
+    if(!THISOBJ->prog)
+      error("Pipe done callback destructed pipe.\n");
+  }
+  close_and_free_everything(THISOBJ,THIS);
+}
+
+static void finished_p(void)
+{
+  if(THIS->done) return;
+
+  if(THIS->fd != -1) 
+  {
+    if(THIS->living_outputs > 1) return;
+    if(THIS->firstinput) return;
+
+  }else{
+    if(THIS->living_outputs) return;
+  }
+  pipe_done();
+}
+
+/* Allocate a new buffer and put it at the end of the chain of buffers
+ * scheduled for output. Return 1 if we have more bytes in buffers
+ * than allowed afterwards.
+ */
+static INLINE int append_buffer(struct lpc_string *s)
+   /* 1=buffer full */
+{
+   struct buffer *b;
+
+   if(THIS->fd!= -1)
+   {
+     lseek(THIS->fd,THIS->pos,0);
+     write(THIS->fd,s->str,s->len);
+     THIS->pos+=s->len;
+     return 0;
+   }
+   else
+   {
+     nbuffers++;
+     b=ALLOC_STRUCT(buffer);
+     b->next=NULL;
+     b->s=s;
+     sbuffers += s->len;
+     s->refs++;
+
+     if (THIS->lastbuffer)
+       THIS->lastbuffer->next=b;
+     else
+       THIS->firstbuffer=b;
+
+     THIS->lastbuffer=b;
+
+     THIS->bytes_in_buffer+=s->len;
+   }
+   return THIS->bytes_in_buffer > MAX_BYTES_IN_BUFFER;
+}
+
+/* Wake up the sleepers */
+static void low_start()
+{
+  struct object *obj;
+  struct output *o;
+
+
+  THISOBJ->refs++;		/* dont kill yourself now */
+  for(obj=THIS->firstoutput;obj;obj=o->next)
+  {
+    o=(struct output *)&(obj->storage);
+    if (o->obj && o->mode==O_SLEEP)
+    {
+      if (!o->obj->prog)
+      {
+	output_finish(obj);
+      }
+      else
+      {
+#if 0
+	push_int(0);
+	push_callback(offset_output_write_callback);
+	push_callback(offset_output_close_callback);
+	apply_low(o->obj,o->set_nonblocking_offset,3);
+#endif
+	output_try_write_some(obj);
+	o->mode=O_RUN;		/* Hubbe */
+      }
+    }
+  }
+
+  free_object(THISOBJ);
+}
+
+/* Let's guess what this function does....
+ *
+ */
+static INLINE void input_finish(void)
+{
+  struct input *i;
+
+  while(1)
+  {
+    i=THIS->firstinput->next;
+    free_input(THIS->firstinput);
+    THIS->firstinput=i;
+
+    if(!i) break;
+
+    switch(i->type)
+    {
+    case I_OBJ:
+      THIS->sleeping=0;
+      push_callback(offset_input_read_callback);
+      push_int(0);
+      push_callback(offset_input_close_callback);
+      apply_low(i->u.obj,i->set_nonblocking_offset,3);
+      pop_stack();
+      return;
+
+    case I_MMAP:
+      if (THIS->fd==-1) return;
+      continue;
+
+    case I_STRING:
+      append_buffer(i->u.str);
+    }
+  }
+  THIS->sleeping=0;
+
+  low_start();
+  finished_p();
+}
+
+/* This function reads some data from the file cache..
+ * Called when we want some data to send.
+ */
+static INLINE struct lpc_string* gimme_some_data(unsigned long pos)
+{
+   struct buffer *b;
+   unsigned long len;
+
+   /* We have a file cache, read from it */
+   if (THIS->fd!=-1)
+   {
+      if (THIS->pos<=pos) return NULL; /* no data */
+      len=THIS->pos-pos;
+      if (len>READ_BUFFER_SIZE) len=READ_BUFFER_SIZE;
+      lseek(THIS->fd,pos,0); /* SEEK_SET */
+      read(THIS->fd,static_buffer,len);
+      return make_shared_binary_string(static_buffer,len);
+   }
+
+   if (pos<THIS->pos)
+     return make_shared_string("buffer underflow"); /* shit */
+
+   /* We want something in the next buffer */
+   while (THIS->firstbuffer && pos>=THIS->pos+THIS->firstbuffer->s->len) 
+   {
+     /* Free the first buffer, and update THIS->pos */
+      b=THIS->firstbuffer;
+      THIS->pos+=b->s->len;
+      THIS->bytes_in_buffer-=b->s->len;
+      THIS->firstbuffer=b->next;
+      if (!b->next)
+	THIS->lastbuffer=NULL;
+      sbuffers-=b->s->len;
+      nbuffers--;
+      free_string(b->s);
+      free(b);
+
+      /* Wake up first input if it was sleeping and we
+       * have room for more in the buffer.
+       */
+      if (THIS->sleeping &&
+	  THIS->firstinput &&
+	  THIS->bytes_in_buffer<MAX_BYTES_IN_BUFFER)
+      {
+	THIS->sleeping=0;
+	push_callback(offset_input_read_callback);
+	push_int(0);
+	push_callback(offset_input_close_callback);
+	apply(THIS->firstinput->u.obj, "set_nonblocking", 3);
+	pop_stack();
+      }
+   }
+
+   while (!THIS->firstbuffer)
+   {
+     if (THIS->firstinput)
+     {
+       if (THIS->firstinput->type==I_MMAP)
+       {
+	 if (pos >= THIS->firstinput->len + THIS->pos) /* end of mmap */
+	 {
+	   THIS->pos+=THIS->firstinput->len;
+	   input_finish();
+	   continue;
+	 }
+	 len=THIS->firstinput->len+THIS->pos-pos;
+	 if (len>READ_BUFFER_SIZE) len=READ_BUFFER_SIZE;
+	 return make_shared_binary_string(THIS->firstinput->u.mmap+
+					  pos-THIS->pos,
+					  len);
+       }
+       else if (THIS->firstinput->type!=I_OBJ)
+       {
+	 input_finish();       /* shouldn't be anything else ... maybe a finished object */
+       }
+     }
+     return NULL;		/* no data */
+   } 
+
+   if (pos==THIS->pos)
+   {
+      THIS->firstbuffer->s->refs++;
+      return THIS->firstbuffer->s;
+   }
+   return make_shared_binary_string(THIS->firstbuffer->s->str+
+				    pos-THIS->pos,
+				    THIS->firstbuffer->s->len-
+				    pos+THIS->pos);
+}
+
+
+/*
+ * close and free the contents of a struct output
+ * Note that the output struct is not freed or unlinked here,
+ * that is taken care of later.
+ */
+static INLINE void output_finish(struct object *obj)
+{
+  struct output *o;
+
+  o=(struct output *)&(obj->storage);
+
+  if (o->obj)
+  {
+    if(o->obj->prog)
+    {
+#ifdef BLOCKING_CLOSE
+      apply_low(o->obj,o->set_blocking_offset,0);
+      pop_stack();
+#endif
+      push_int(0);
+      apply(o->obj,"set_id",1);
+      pop_stack();
+
+      apply(o->obj,"close",0);
+      pop_stack();
+
+      if(!THISOBJ->prog)
+	error("Pipe done callback destructed pipe.\n");
+    }
+    free_object(o->obj);
+    noutputs--;
+    o->obj=NULL;
+
+    THIS->living_outputs--;
+
+    finished_p(); /* Moved by per, one line down.. :) */
+
+    free_object(THISOBJ);		/* What? /Hubbe */
+  }
+}
+
+/*
+ * Try to write some data to our precious output
+ */
+static INLINE void output_try_write_some(struct object *obj)
+{
+  struct output *out;
+  struct lpc_string *s;
+  unsigned long len;
+  INT32 ret;
+  
+  out=(struct output*)&(obj->storage);
+
+#ifdef INSISTANT_WRITE   
+  do
+  {
+#endif
+    /* Get some data to write */
+    s=gimme_some_data(out->pos);
+    if (!s)			/* out of data */
+    {
+      /* out of data, goto sleep */
+      if (!THIS->firstinput || !out->obj->prog) /* end of life */
+      {
+	output_finish(obj);
+      }
+      else
+      {
+#if 0
+	apply_low(out->obj, out->set_blocking_offset, 0);
+	pop_stack();		/* from apply */
+#endif
+	out->mode=O_SLEEP;
+      }
+      return;
+    }
+    len=s->len;
+    push_string(s);
+    apply_low(out->obj,out->write_offset,1);
+    out->mode=O_RUN;
+
+    ret=-1;
+    if(sp[-1].type == T_INT) ret=sp[-1].u.integer;
+    pop_stack();
+
+    if (ret==-1)		/* error, byebye */
+    {
+      output_finish(obj);
+      return;
+    }
+    out->pos+=ret;
+
+#ifdef INSISTANT_WRITE
+  } while(ret == len);
+#endif
+}
+
+/********** methods *********************************************************/
+
+/* Add an input to this pipe */
+static void pipe_input(INT32 args)
+{
+   struct input *i;
+   int fd=-1;			/* Per, one less warning to worry about... */
+   unsigned char *m;
+   struct stat s;
+   struct object *obj;
+
+   if (args<1 || sp[-args].type != T_OBJECT)
+     error("Bad/missing argument 1 to pipe->input().\n");
+
+   obj=sp[-args].u.object;
+   if(!obj || !obj->prog)
+     error("pipe->input() on destructed object.\n");
+
+   push_int(0);
+   apply(sp[-args-1].u.object,"set_id", 1);
+   pop_stack();
+
+   i=new_input();
+
+   /* We do not handle mmaps if we have a buffer */
+   if(THIS->fd == -1)
+   {
+     apply(obj, "query_fd", 0);
+     if(sp[-1].type == T_INT) fd=sp[-1].u.integer;
+     pop_stack();
+
+     if (fd != -1 && fstat(fd,&s)==0)
+     {
+       if(S_ISREG(s.st_mode)	/* regular file */
+	  && ((int)(m=mmap(0,s.st_size,PROT_READ,MAP_FILE|MAP_SHARED,fd,0))!=-1))
+       {
+	 mmapped += s.st_size;
+
+	 i->type=I_MMAP;
+	 i->len=s.st_size;
+	 i->u.mmap=m;
+       
+	 pop_n_elems(args);
+	 push_int(0);
+	 return;
+       }
+     }
+   }
+
+   i->u.obj=obj;
+   nobjects++;
+   i->type=I_OBJ;
+   i->u.obj->refs++;
+   i->set_nonblocking_offset=find_identifier("set_nonblocking",i->u.obj->prog);
+   i->set_blocking_offset=find_identifier("set_blocking",i->u.obj->prog);
+
+   if (i->set_nonblocking_offset<0 ||
+       i->set_blocking_offset<0) 
+   {
+      free_object(i->u.obj);
+      i->u.obj=NULL;
+      i->type=I_NONE;
+
+      nobjects--;
+      error("illegal file object%s%s\n",
+	    ((i->set_nonblocking_offset<0)?"; no set_nonblocking":""),
+	    ((i->set_blocking_offset<0)?"; no set_blocking":""));
+   }
+  
+   if (i==THIS->firstinput)
+   {
+     push_callback(offset_input_read_callback);
+     push_int(0);
+     push_callback(offset_input_close_callback);
+     apply_low(i->u.obj,i->set_nonblocking_offset,3);
+     pop_stack();
+   }
+   else
+   {
+     /* DOESN'T WORK!!! */
+     push_int(0);
+     push_int(0);
+     push_callback(offset_input_close_callback);
+     apply_low(i->u.obj,i->set_nonblocking_offset,3);
+     pop_stack();
+   }
+
+   pop_n_elems(args);
+   push_int(0);
+}
+
+static void pipe_write(INT32 args)
+{
+  struct input *i;
+
+  if (args<1 || sp[-args].type!=T_STRING)
+    error("illegal argument to pipe->write()\n");
+
+  if (!THIS->firstinput)
+  {
+    append_buffer(sp[-args].u.string);
+    pop_n_elems(args);
+    push_int(0);
+    return;
+  }
+
+  i=new_input();
+  i->type=I_STRING;
+  nstrings++;
+  i->u.str=sp[-args].u.string;
+  i->u.str->refs++;
+  pop_n_elems(args-1);
+}
+
+void f_mark_fd(INT32 args);
+
+static void pipe_output(INT32 args)
+{
+  struct object *obj;
+  struct output *o;
+  int fd;
+  struct stat s;
+  struct buffer *b;
+
+  if (args<1 || 
+      sp[-args].type != T_OBJECT ||
+      !sp[-args].u.object ||
+      !sp[-args].u.object->prog)
+    error("Bad/missing argument 1 to pipe->output().\n");
+
+  if (THIS->fd==-1)		/* no buffer */
+  {
+    /* test if usable as buffer */ 
+    apply(sp[-args].u.object,"query_fd",0);
+
+    if ((sp[-1].type==T_INT)
+	&& (fd=sp[-1].u.integer)>=0
+	&& (fstat(fd,&s)==0)
+	&& S_ISREG(s.st_mode)
+	&& (THIS->fd=dup(fd))!=-1 )
+    {
+      push_int(THIS->fd);
+      push_string(make_shared_string("pipe.c: file buffer"));
+      f_mark_fd(2);
+      pop_stack();
+
+      THIS->living_outputs++;
+
+      while (THIS->firstbuffer)
+      {
+	b=THIS->firstbuffer;
+	THIS->firstbuffer=b->next;
+	lseek(THIS->fd,THIS->pos,0);
+	write(THIS->fd,b->s->str,b->s->len);
+	sbuffers-=b->s->len;
+	nbuffers--;
+	free_string(b->s);
+	free(b);
+      }
+      THIS->lastbuffer=NULL;
+
+      THIS->pos=0;
+      push_int(0);
+      apply(sp[-args-2].u.object,"set_id", 1);
+      pop_n_elems(args+2);	/* ... and from apply x 2  */
+      return;
+    }
+    pop_stack();		/* from apply */
+  } 
+
+  THIS->living_outputs++;
+  THISOBJ->refs++;		/* Weird */
+
+  /* Allocate a new struct output */
+  obj=clone(output_program,0);
+  o=(struct output *)&(obj->storage);
+  o->next=THIS->firstoutput;
+  THIS->firstoutput=obj;
+  noutputs++;
+  o->obj=NULL;
+
+  o->obj=sp[-args].u.object;
+  o->obj->refs++;
+
+  o->write_offset=find_identifier("write",o->obj->prog);
+  o->set_nonblocking_offset=find_identifier("set_nonblocking",o->obj->prog);
+  o->set_blocking_offset=find_identifier("set_blocking",o->obj->prog);
+
+  if (o->write_offset<0 || o->set_nonblocking_offset<0 ||
+      o->set_blocking_offset<0) 
+  {
+    free_object(o->obj);
+    error("illegal file object%s%s%s\n",
+	  ((o->write_offset<0)?"; no write":""),
+	  ((o->set_nonblocking_offset<0)?"; no set_nonblocking":""),
+	  ((o->set_blocking_offset<0)?"; no set_blocking":""));
+  }
+
+  o->mode=O_RUN;
+  o->pos=0;
+
+  push_object(obj);
+  obj->refs++;
+  apply(o->obj,"set_id",1);
+  pop_stack();
+
+  push_int(0);
+  push_callback(offset_output_write_callback);
+  push_callback(offset_output_close_callback);
+  apply_low(o->obj,o->set_nonblocking_offset,3);
+  pop_stack();
+   
+  pop_n_elems(args-1);
+}
+
+static void pipe_set_done_callback(INT32 args)
+{
+  if (args==0)
+  {
+    free_svalue(&THIS->done_callback);
+    THIS->done_callback.type=T_INT;
+    return;
+  }
+  if (args<1 || (sp[-args].type!=T_FUNCTION && sp[-args].type!=T_ARRAY))
+    error("Illegal argument to set_done_callback()\n");
+
+  if (args>1)
+  {
+     free_svalue(&THIS->id);
+     assign_svalue_no_free(&(THIS->id),sp-args+1);
+  }
+
+  free_svalue(&THIS->done_callback);
+  assign_svalue_no_free(&(THIS->done_callback),sp-args); 
+  pop_n_elems(args-1); 
+}
+
+static void pipe_set_output_closed_callback(INT32 args)
+{
+  if (args==0)
+  {
+    free_svalue(&THIS->done_callback);
+    THIS->output_closed_callback.type=T_INT;
+    return;
+  }
+  if (args<1 || (sp[-args].type!=T_FUNCTION && sp[-args].type!=T_ARRAY))
+    error("Illegal argument to set_output_closed_callback()\n");
+
+  if (args>1)
+  {
+     free_svalue(&THIS->id);
+     assign_svalue_no_free(&(THIS->id),sp-args+1);
+  }
+  free_svalue(&THIS->output_closed_callback);
+  assign_svalue_no_free(&(THIS->output_closed_callback),sp-args); 
+  pop_n_elems(args-1); 
+}
+
+static void pipe_finish(INT32 args)
+{
+   pop_n_elems(args);
+   push_int(0);
+   pipe_done();
+}
+
+static void pipe_start(INT32 args) /* force start */
+{
+  low_start();
+  if(args)
+    pop_n_elems(args-1);
+}
+
+/********** callbacks *******************************************************/
+
+static void pipe_write_output_callback(INT32 args)
+{
+   if (args<1 ||
+       sp[-args].type!=T_OBJECT ||
+       sp[-args].u.object->prog != output_program)
+     error("Illegal argument to pipe->write_output_callback\n");
+
+   output_try_write_some(sp[-args].u.object);
+   pop_n_elems(args-1);
+}
+
+static void pipe_close_output_callback(INT32 args)
+{
+  struct output *o;
+   if (args<1 ||
+       sp[-args].type!=T_OBJECT ||
+       sp[-args].u.object->prog != output_program)
+     error("Illegal argument to pipe->close_output_callback\n");
+
+  o=(struct output *)&(sp[-args].u.object->storage);
+
+  if (THIS->output_closed_callback.type!=T_INT)
+  {
+    assign_svalue_no_free(sp++,&THIS->id);
+    push_object(o->obj);
+    apply_svalue(&(THIS->output_closed_callback),2);
+    pop_stack();
+  }
+
+  output_finish(sp[-args].u.object);
+  pop_n_elems(args-1);
+}
+
+static void pipe_read_input_callback(INT32 args)
+{
+  struct input *i;
+  struct lpc_string *s;
+
+  if (args<2 || sp[1-args].type!=T_STRING)
+    error("Illegal argument to pipe->read_input_callback\n");
+   
+  i=THIS->firstinput;
+
+  if (!i)
+    error("Pipe read callback without any inputs left.\n");
+
+  s=sp[1-args].u.string;
+
+  if(append_buffer(s))
+  {
+    /* THIS DOES NOT WORK */
+    push_int(0);
+    push_int(0);
+    push_callback(offset_input_close_callback);
+    apply_low(i->u.obj,i->set_nonblocking_offset,3);
+    pop_stack();
+    THIS->sleeping=1;
+  }
+
+  low_start();
+  pop_n_elems(args-1);
+}
+
+static void pipe_close_input_callback(INT32 args)
+{
+   struct input *i;
+   i=THIS->firstinput;
+
+   if(!i)
+     error("Input close callback without inputs!\n");
+
+   if(i->type != I_OBJ)
+     error("Premature close callback on pipe!.\n");
+
+   if (i->u.obj->prog)
+   {
+#ifdef BLOCKING_CLOSE
+      apply_low(i->u.obj,i->set_blocking_offset,0);
+      pop_stack();
+#endif
+      apply(i->u.obj,"close",0);
+      pop_stack();
+   }
+   nobjects--;
+   free_object(i->u.obj);
+   i->type=I_NONE;
+
+   input_finish();
+   if(args)
+     pop_n_elems(args-1);
+}
+
+static void pipe_version(INT32 args)
+{
+   pop_n_elems(args);
+   push_int(0);
+   push_string(make_shared_string("PIPE ver 2.0 compiled "__DATE__));
+}
+
+/********** init/exit *******************************************************/
+
+void close_and_free_everything(struct object *thisobj,struct pipe *p)
+{
+   struct buffer *b;
+   struct input *i;
+   struct output *o;
+   struct object *obj;
+   
+   p->done=1;
+
+   if (thisobj) 
+      thisobj->refs++; /* don't kill object during this */
+
+   while (p->firstbuffer)
+   {
+      b=p->firstbuffer;
+      p->firstbuffer=b->next;
+      sbuffers-=b->s->len;
+      nbuffers--;
+      free_string(b->s);
+      b->next=NULL;
+      free((char *)b); /* Hubbe */
+   }
+   p->lastbuffer=NULL;
+
+
+   while (p->firstinput)
+   {
+      i=p->firstinput;
+      p->firstinput=i->next;
+      free_input(i);
+   }
+   p->lastinput=NULL;
+
+   while (p->firstoutput)
+   {
+     obj=p->firstoutput;
+     o=(struct output *)&(obj->storage);
+     p->firstoutput=o->next;
+     output_finish(obj);
+     free_object(obj);
+   }
+   if (p->fd!=-1)
+   {
+     close(p->fd);
+     p->fd=-1;
+   }
+
+   p->living_outputs=0;
+   
+   if (thisobj)
+     free_object(thisobj);
+
+   free_svalue(& p->done_callback);
+   free_svalue(& p->output_closed_callback);
+   free_svalue(& p->id);
+
+   p->done_callback.type=T_INT;
+   p->output_closed_callback.type=T_INT;
+   p->id.type=T_INT;
+
+   p->done=0;
+}
+
+static void init_pipe_struct(char *foo, struct object *o)
+{
+   struct pipe *p;
+   p=(struct pipe *) foo;
+
+   p->firstbuffer=p->lastbuffer=NULL;
+   p->firstinput=p->lastinput=NULL;
+   p->firstoutput=NULL;
+   p->bytes_in_buffer=0;
+   p->pos=0;
+   p->sleeping=0;
+   p->done=0;
+   p->fd=-1;
+   p->done_callback.type=T_INT;
+   p->output_closed_callback.type=T_INT;
+   p->id.type=T_INT;
+   p->id.u.integer=0;
+   p->living_outputs=0;
+}
+
+static void exit_pipe_struct(char *foo, struct object *o)
+{
+  struct pipe *p;
+
+  p=(struct pipe *) foo;
+  close_and_free_everything(NULL,p);
+}
+
+static void exit_output_struct(char *foo, struct object *obj)
+{
+  struct output *o;
+  
+  o=(struct output *)foo;
+  if (o->obj)
+  {
+    if(o->obj->prog)
+    {
+#ifdef BLOCKING_CLOSE
+      apply_low(o->obj,o->set_blocking_offset,0);
+      pop_stack();
+#endif
+      push_int(0);
+      apply(o->obj,"set_id",1);
+      pop_stack();
+
+      apply(o->obj,"close",0);
+      pop_stack();
+
+      if(!THISOBJ->prog)
+	error("Pipe done callback destructed pipe.\n");
+    }
+    free_object(o->obj);
+    noutputs--;
+    o->obj=0;
+  }
+}
+
+static void init_output_struct(char *foo, struct object *ob)
+{
+  struct output *o;
+  
+  o=(struct output *)foo;
+  o->obj=0;
+}
+
+
+/********** ulpc init *******************************************************/
+
+void port_setup_program(void);
+
+void f__pipe_debug(INT32 args)
+{
+  pop_n_elems(args);
+  push_int(noutputs);
+  push_int(ninputs);
+  push_int(nstrings);
+  push_int(nobjects);
+  push_int(mmapped);
+  push_int(nbuffers);
+  push_int(sbuffers);
+  f_aggregate(7);
+}
+
+void init_pipe_programs()
+{
+   start_new_program();
+   add_storage(sizeof(struct pipe));
+   add_efun("_pipe_debug", f__pipe_debug, "function(:array)", 0);
+   add_function("input",pipe_input,"function(object:void)",0);
+   add_function("output",pipe_output,"function(object:void)",0);
+   add_function("write",pipe_write,"function(string:void)",0);
+
+   add_function("start",pipe_start,"function(:void)",0);
+   add_function("finish",pipe_finish,"function(:void)",0);
+   
+   add_function("set_output_closed_callback",pipe_set_output_closed_callback,
+		"function(void|function(mixed,object:mixed),void|mixed:void)",0);
+   add_function("set_done_callback",pipe_set_done_callback,
+		"function(void|function(mixed:mixed),void|mixed:void)",0);
+   
+   add_function("_output_close_callback",pipe_close_output_callback,
+		"function(int:void)",0);
+   add_function("_input_close_callback",pipe_close_input_callback,
+		"function(int:void)",0);
+   add_function("_output_write_callback",pipe_write_output_callback,
+		"function(int:void)",0);
+   add_function("_input_read_callback",pipe_read_input_callback,
+		"function(int,string:void)",0);
+
+   add_function("version",pipe_version,"function(:string)",0);
+   
+   set_init_callback(init_pipe_struct);
+   set_exit_callback(exit_pipe_struct);
+   
+   pipe_program=end_c_program("/precompiled/pipe");
+   
+   pipe_program->refs++;
+   
+   port_setup_program();
+   
+   offset_output_close_callback=find_identifier("_output_close_callback",
+						pipe_program);
+   offset_input_close_callback=find_identifier("_input_close_callback",
+					       pipe_program);
+   offset_output_write_callback=find_identifier("_output_write_callback",
+						pipe_program);
+   offset_input_read_callback=find_identifier("_input_read_callback",
+					      pipe_program);
+
+
+   start_new_program();
+   add_storage(sizeof(struct output));
+   set_init_callback(init_output_struct);
+   set_exit_callback(exit_output_struct);
+   output_program=end_c_program("/precompiled/_output");
+   output_program->refs++;
+}
+
+void init_pipe_efuns(void) {}
+void exit_pipe(void) 
+{
+  if(pipe_program) free_program(pipe_program);
+  pipe_program=0;
+  if(output_program) free_program(output_program);
+  output_program=0;
+}
+
+
+
+
+
+
+
diff --git a/src/modules/pipe/stamp-h b/src/modules/pipe/stamp-h
new file mode 100644
index 0000000000000000000000000000000000000000..b7d6715e2df11b9c32b2341423273c6b3ad9ae8a
--- /dev/null
+++ b/src/modules/pipe/stamp-h
@@ -0,0 +1 @@
+FOO
diff --git a/src/modules/regexp/Makefile b/src/modules/regexp/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..8b2c460273895d4e91182229f5f1cce52274a58a
--- /dev/null
+++ b/src/modules/regexp/Makefile
@@ -0,0 +1,22 @@
+# Generated automatically from Makefile.in by configure.
+SRCDIR=.
+VPATH=.:./../..:../..
+PREFLAGS=-I$(SRCDIR) -I$(SRCDIR)/../.. -I../..
+CFLAGS=$(PREFLAGS) $(OTHERFLAGS)
+
+FILES=regexp.o glue.o
+
+regexp.a: $(FILES)
+	-rm -f regexp.a
+	ar cq regexp.a $(FILES)
+	-ranlib regexp.a
+
+clean:
+	-rm -f *.o *.a
+
+depend:
+	gcc -MM $(PREFLAGS) $(SRCDIR)/*.c | sed 's;$(SRCDIR)/;;g' | sed 's;\.\./;;g' | sed 's;\./;;g' >$(SRCDIR)/dependencies
+
+include ./dependencies
+
+
diff --git a/src/modules/regexp/configure b/src/modules/regexp/configure
new file mode 100755
index 0000000000000000000000000000000000000000..928d14a5d0be8b6e409486ab56dd147ec40f2a89
--- /dev/null
+++ b/src/modules/regexp/configure
@@ -0,0 +1,679 @@
+#!/bin/sh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 1.119 
+# Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
+#
+# This configure script is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This script is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
+# Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ac_help=
+
+# Omit some internal or obsolete options to make the list less imposing.
+ac_usage="Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+  --cache-file=FILE       cache test results in FILE
+  --help                  print this message
+  --no-create             do not create output files
+  --quiet, --silent       do not print \`checking...' messages
+  --version               print the version of autoconf that created configure
+Directory and file names:
+  --exec-prefix=PREFIX    install host dependent files in PREFIX [/usr/local]
+  --prefix=PREFIX         install host independent files in PREFIX [/usr/local]
+  --srcdir=DIR            find the sources in DIR [configure dir or ..]
+  --program-prefix=PREFIX prepend PREFIX to installed program names
+  --program-suffix=SUFFIX append SUFFIX to installed program names
+Host type:
+  --build=BUILD           configure for building on BUILD [BUILD=HOST]
+  --host=HOST             configure for HOST [guessed]
+  --target=TARGET         configure for TARGET [TARGET=HOST]
+Features and packages:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --x-includes=DIR        X include files are in DIR
+  --x-libraries=DIR       X library files are in DIR
+--enable and --with options recognized:$ac_help"
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=NONE
+silent=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Initialize some other variables.
+subdirs=
+
+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
+
+  case "$ac_option" in
+  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) ac_optarg= ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case "$ac_option" in
+
+  -build | --build | --buil | --bui | --bu | --b)
+    ac_prev=build ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=* | --b=*)
+    build="$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" ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    eval "enable_${ac_feature}=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) 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)
+    cat << EOF
+$ac_usage
+EOF
+    exit 0 ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host="$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)
+    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 ;;
+
+  -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 ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir="$ac_optarg" ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target="$ac_optarg" ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers)
+    echo "configure generated by autoconf version 1.119"
+    exit 0 ;;
+
+  -with-* | --with-*)
+    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_${ac_package}='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    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 "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+    ;;
+
+  *) 
+    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+      echo "configure: warning: $ac_option: invalid host type" 1>&2
+    fi
+    if test "x$nonopt" != xNONE; then
+      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+    fi
+    nonopt="$ac_option"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 unused; standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 unused; some systems may open it to /dev/tty
+# 4 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+  exec 4>/dev/null
+else
+  exec 4>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+  case "$ac_arg" in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+  esac
+done
+
+# NLS nuisances.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+
+# 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
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=regexp.c
+
+# 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_prog=$0
+  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+  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 "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+  else
+    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+  fi
+fi
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE=$prefix/lib/config.site
+  else
+    CONFIG_SITE=/usr/local/lib/config.site
+  fi
+  # System dependent files override system independent ones.
+  if test "x$exec_prefix" != xNONE && test "x$exec_prefix" != "x$prefix"; then
+    CONFIG_SITE="$CONFIG_SITE $exec_prefix/lib/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    echo "loading site script $ac_site_file"
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  echo "loading cache $cache_file"
+  . $cache_file
+else
+  echo "creating cache $cache_file"
+  > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_link='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext -o conftest $LIBS 1>&5 2>&5'
+
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+    ac_n= ac_c='
+' ac_t='	'
+  else
+    ac_n=-n ac_c= ac_t=
+  fi
+else
+  ac_n= ac_c='\c' ac_t=
+fi
+
+
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="gcc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="cc"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&4
+else
+  echo "$ac_t""no" 1>&4
+fi
+
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_prog_gcc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  cat > conftest.c <<EOF
+#ifdef __GNUC__
+  yes
+#endif
+EOF
+if ${CC-cc} -E conftest.c 2>&5 | egrep yes >/dev/null 2>&1; then
+  ac_cv_prog_gcc=yes
+else
+  ac_cv_prog_gcc=no
+fi
+fi
+echo "$ac_t""$ac_cv_prog_gcc" 1>&4
+if test $ac_cv_prog_gcc = yes; then
+  GCC=yes
+  if test "${CFLAGS+set}" != set; then
+    echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_prog_gcc_g'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+  ac_cv_prog_gcc_g=yes
+else
+  ac_cv_prog_gcc_g=no
+fi
+rm -f conftest*
+
+fi
+    echo "$ac_t""$ac_cv_prog_gcc_g" 1>&4
+    if test $ac_cv_prog_gcc_g = yes; then
+      CFLAGS="-g -O"
+    else
+      CFLAGS="-O"
+    fi
+  fi
+else
+  GCC=
+  test "${CFLAGS+set}" = set || CFLAGS="-g"
+fi
+
+# Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_RANLIB="ranlib"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+  echo "$ac_t""$RANLIB" 1>&4
+else
+  echo "$ac_t""no" 1>&4
+fi
+
+
+
+trap '' 1 2 15
+if test -w $cache_file; then
+echo "updating cache $cache_file"
+cat > $cache_file <<\EOF
+# 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.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# Ultrix sh set writes to stderr and can't be redirected directly.
+(set) 2>&1 |
+  sed -n "s/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/: \${\1='\2'}/p" \
+  >> $cache_file
+else
+echo "not updating unwritable cache $cache_file"
+fi
+
+trap 'rm -fr conftest* confdefs* core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=/usr/local
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+cat > conftest.defs <<\EOF
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) \(.*\)%-D\1=\2%g
+s%[ 	`~#$^&*(){}\\|;'"<>?]%\\&%g
+s%\[%\\&%g
+s%\]%\\&%g
+s%\$%$$%g
+EOF
+DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+rm -f conftest.defs
+
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#!/bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+  case "\$ac_option" in
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+    echo "$CONFIG_STATUS generated by autoconf version 1.119"
+    exit 0 ;;
+  -help | --help | --hel | --he | --h)
+    echo "\$ac_cs_usage"; exit 0 ;;
+  *) echo "\$ac_cs_usage"; exit 1 ;;
+  esac
+done
+
+ac_given_srcdir=$srcdir
+
+trap 'rm -f Makefile; exit 1' 1 2 15
+
+# Protect against being on the right side of a sed subst in config.status. 
+sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\\\&%]/\\\\&/g; 
+ s/@@/%@/; s/@@/@%/; s/@g$/%g/' > conftest.subs <<\CEOF
+$ac_vpsub
+$extrasub
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@CC@%$CC%g
+s%@RANLIB@%$RANLIB%g
+
+CEOF
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  # Adjust relative srcdir, etc. for subdirectories.
+
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+    # The file is in a subdirectory.
+    test ! -d "$ac_dir" && mkdir "$ac_dir"
+    ac_dir_suffix="/$ac_dir"
+    # A "../" for each directory in $ac_dir_suffix.
+    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+  else
+    ac_dir_suffix= ac_dots=
+  fi
+
+  case "$ac_given_srcdir" in
+  .)  srcdir=.
+      if test -z "$ac_dots"; then top_srcdir=.
+      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+  *) # Relative path.
+    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
+
+  echo creating "$ac_file"
+  rm -f "$ac_file"
+  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+  case "$ac_file" in
+  *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+  *) ac_comsub= ;;
+  esac
+  sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+" -f conftest.subs $ac_given_srcdir/$ac_file_in > $ac_file
+fi; done
+rm -f conftest.subs
+
+
+echo FOO >stamp-h 
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS
+
+
+
diff --git a/src/modules/regexp/dependencies b/src/modules/regexp/dependencies
new file mode 100644
index 0000000000000000000000000000000000000000..4ad19a340e5a8b3c112de8a8b9d5ee8464e14293
--- /dev/null
+++ b/src/modules/regexp/dependencies
@@ -0,0 +1,20 @@
+glue.o: glue.c \
+  global.h \
+  config.h machine.h \
+  port.h \
+  interpret.h \
+  program.h \
+  svalue.h \
+  stralloc.h \
+  array.h \
+  las.h \
+  dynamic_buffer.h \
+  object.h \
+  macros.h
+regexp.o: regexp.c \
+  global.h \
+  config.h machine.h \
+  port.h \
+  regexp.h \
+  error.h \
+  svalue.h
diff --git a/src/modules/regexp/stamp-h b/src/modules/regexp/stamp-h
new file mode 100644
index 0000000000000000000000000000000000000000..b7d6715e2df11b9c32b2341423273c6b3ad9ae8a
--- /dev/null
+++ b/src/modules/regexp/stamp-h
@@ -0,0 +1 @@
+FOO
diff --git a/src/modules/spider/Makefile b/src/modules/spider/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..d26a916c975e239515030b9774d7bb3f5d867500
--- /dev/null
+++ b/src/modules/spider/Makefile
@@ -0,0 +1,21 @@
+# Generated automatically from Makefile.in by configure.
+SRCDIR=.
+VPATH=.:./../..:../..
+PREFLAGS=-I. -I$(SRCDIR) -I$(SRCDIR)/../.. -I../..
+CFLAGS=$(PREFLAGS) $(OTHERFLAGS)
+
+FILES=spider.o
+
+spider.a: $(FILES)
+	-rm -f spider.a
+	ar cq spider.a $(FILES)
+	-ranlib spider.a
+
+clean:
+	-rm -f *.o
+
+depend:
+	gcc -MM $(PREFLAGS) $(SRCDIR)/*.c | sed 's;$(SRCDIR)/;;g' | sed 's;\.\./;;g' | sed 's;\./;;g' >$(SRCDIR)/dependencies
+
+include ./dependencies
+
diff --git a/src/modules/spider/Makefile.in b/src/modules/spider/Makefile.in
new file mode 100644
index 0000000000000000000000000000000000000000..e4d1e1f487f80e1ef1155b33292f56f5bc75908c
--- /dev/null
+++ b/src/modules/spider/Makefile.in
@@ -0,0 +1,20 @@
+SRCDIR=@srcdir@
+VPATH=@srcdir@:@srcdir@/../..:../..
+PREFLAGS=-I. -I$(SRCDIR) -I$(SRCDIR)/../.. -I../..
+CFLAGS=$(PREFLAGS) $(OTHERFLAGS)
+
+FILES=spider.o
+
+spider.a: $(FILES)
+	-rm -f spider.a
+	ar cq spider.a $(FILES)
+	-@RANLIB@ spider.a
+
+clean:
+	-rm -f *.o
+
+depend:
+	gcc -MM $(PREFLAGS) $(SRCDIR)/*.c | sed 's;$(SRCDIR)/;;g' | sed 's;\.\./;;g' | sed 's;\./;;g' >$(SRCDIR)/dependencies
+
+include @srcdir@/dependencies
+
diff --git a/src/modules/spider/configure b/src/modules/spider/configure
new file mode 100755
index 0000000000000000000000000000000000000000..b6cb3d721739808ef9f3e20d9951c8df2ca44002
--- /dev/null
+++ b/src/modules/spider/configure
@@ -0,0 +1,963 @@
+#! /bin/sh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 2.4 
+# Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Initialize some other variables.
+subdirs=
+
+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
+
+  case "$ac_option" in
+  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) ac_optarg= ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case "$ac_option" in
+
+  -build | --build | --buil | --bui | --bu | --b)
+    ac_prev=build ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=* | --b=*)
+    build="$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" ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    eval "enable_${ac_feature}=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) 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)
+    # 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 << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+  --cache-file=FILE       cache test results in FILE
+  --help                  print this message
+  --no-create             do not create output files
+  --quiet, --silent       do not print \`checking...' messages
+  --version               print the version of autoconf that created configure
+Directory and file names:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=PREFIX    install architecture-dependent files in PREFIX
+                          [same as prefix]
+  --srcdir=DIR            find the sources in DIR [configure dir or ..]
+  --program-prefix=PREFIX prepend PREFIX to installed program names
+  --program-suffix=SUFFIX append SUFFIX to installed program names
+  --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+Host type:
+  --build=BUILD           configure for building on BUILD [BUILD=HOST]
+  --host=HOST             configure for HOST [guessed]
+  --target=TARGET         configure for TARGET [TARGET=HOST]
+Features and packages:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --x-includes=DIR        X include files are in DIR
+  --x-libraries=DIR       X library files are in DIR
+--enable and --with options recognized:$ac_help
+EOF
+    exit 0 ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host="$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)
+    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 ;;
+
+  -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 ;;
+
+  -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" ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target="$ac_optarg" ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers)
+    echo "configure generated by autoconf version 2.4"
+    exit 0 ;;
+
+  -with-* | --with-*)
+    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_${ac_package}='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    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 "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+    ;;
+
+  *) 
+    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+      echo "configure: warning: $ac_option: invalid host type" 1>&2
+    fi
+    if test "x$nonopt" != xNONE; then
+      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+    fi
+    nonopt="$ac_option"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+  exec 6>/dev/null
+else
+  exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+  case "$ac_arg" in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+  esac
+done
+
+# NLS nuisances.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+
+# 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
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=spider.c
+
+# 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_prog=$0
+  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+  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 "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+  else
+    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+  fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# 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 "loading site script $ac_site_file"
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  echo "loading cache $cache_file"
+  . $cache_file
+else
+  echo "creating cache $cache_file"
+  > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5 2>&5'
+ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5 2>&5'
+
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+    ac_n= ac_c='
+' ac_t='	'
+  else
+    ac_n=-n ac_c= ac_t=
+  fi
+else
+  ac_n= ac_c='\c' ac_t=
+fi
+
+
+
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="gcc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="cc"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.c <<EOF
+#ifdef __GNUC__
+  yes;
+#endif
+EOF
+if ${CC-cc} -E conftest.c 2>&5 | egrep yes >/dev/null 2>&1; then
+  ac_cv_prog_gcc=yes
+else
+  ac_cv_prog_gcc=no
+fi
+fi
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+if test $ac_cv_prog_gcc = yes; then
+  GCC=yes
+  if test "${CFLAGS+set}" != set; then
+    echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_prog_gcc_g'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+  ac_cv_prog_gcc_g=yes
+else
+  ac_cv_prog_gcc_g=no
+fi
+rm -f conftest*
+
+fi
+    echo "$ac_t""$ac_cv_prog_gcc_g" 1>&6
+    if test $ac_cv_prog_gcc_g = yes; then
+      CFLAGS="-g -O"
+    else
+      CFLAGS="-O"
+    fi
+  fi
+else
+  GCC=
+  test "${CFLAGS+set}" = set || CFLAGS="-g"
+fi
+
+# Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_RANLIB="ranlib"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+  echo "$ac_t""$RANLIB" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+    # This must be in double quotes, not single quotes, because CPP may get
+  # substituted into the Makefile and "${CC-cc}" will confuse make.
+  CPP="${CC-cc} -E"
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp.
+  cat > conftest.$ac_ext <<EOF
+#line 521 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  rm -rf conftest*
+  CPP="${CC-cc} -E -traditional-cpp"
+  cat > conftest.$ac_ext <<EOF
+#line 535 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  rm -rf conftest*
+  CPP=/lib/cpp
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+  ac_cv_prog_CPP="$CPP"
+fi
+  CPP="$ac_cv_prog_CPP"
+else
+  ac_cv_prog_CPP="$CPP"
+fi
+echo "$ac_t""$CPP" 1>&6
+
+for ac_hdr in syslog.h sys/syslog.h arpa/inet.h sys/socketvar.h netinet/in.h
+do
+ac_safe=`echo "$ac_hdr" | tr './\055' '___'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 568 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+eval "$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | tr '[a-z]./\055' '[A-Z]___'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+for ac_func in syslog perror strerror
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 603 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+char $ac_func(); 
+
+int main() { return 0; }
+int t() {
+
+/* 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
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+
+fi
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr '[a-z]' '[A-Z]'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+
+
+
+echo $ac_n "checking how to find timezone""... $ac_c" 1>&6
+
+if eval "test \"`echo '$''{'lpc_cv_timezone'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+cat > conftest.$ac_ext <<EOF
+#line 657 "configure"
+#include "confdefs.h"
+
+#include <time.h>
+
+int main() { return 0; }
+int t() {
+
+ int _tz;
+ time_t foo;
+ struct tm *g;
+ g=localtime(&foo);
+
+ _tz = g->tm_gmtoff;	
+
+; return 0; }
+EOF
+if eval $ac_link; then
+  rm -rf conftest*
+  lpc_cv_timezone='localtime'
+
+else
+  rm -rf conftest*
+  lpc_cv_timezone='int'
+
+fi
+rm -f conftest*
+
+fi
+
+
+if test "$lpc_cv_timezone" = int; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_INT_TIMEZONE 1
+EOF
+
+  echo "$ac_t""int" 1>&6;
+else
+  echo "$ac_t""localtime" 1>&6
+fi
+
+trap '' 1 2 15
+cat > confcache <<\EOF
+# 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.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# 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 |
+  sed -n "s/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=\${\1='\2'}/p" \
+  >> confcache
+if cmp -s $cache_file confcache; then
+  :
+else
+  if test -w $cache_file; then
+    echo "updating cache $cache_file"
+    cat confcache > $cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+rm -f confcache
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+DEFS=-DHAVE_CONFIG_H
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+  case "\$ac_option" in
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+    echo "$CONFIG_STATUS generated by autoconf version 2.4"
+    exit 0 ;;
+  -help | --help | --hel | --he | --h)
+    echo "\$ac_cs_usage"; exit 0 ;;
+  *) echo "\$ac_cs_usage"; exit 1 ;;
+  esac
+done
+
+ac_given_srcdir=$srcdir
+
+trap 'rm -fr `echo "Makefile spider.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+
+# Protect against being on the right side of a sed subst in config.status. 
+sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\\\&%]/\\\\&/g; 
+ s/@@/%@/; s/@@/@%/; s/@g$/%g/' > conftest.subs <<\CEOF
+$ac_vpsub
+$extrasub
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@CC@%$CC%g
+s%@RANLIB@%$RANLIB%g
+s%@CPP@%$CPP%g
+
+CEOF
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  # Adjust relative srcdir, etc. for subdirectories.
+
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+    # The file is in a subdirectory.
+    test ! -d "$ac_dir" && mkdir "$ac_dir"
+    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+    # A "../" for each directory in $ac_dir_suffix.
+    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+  else
+    ac_dir_suffix= ac_dots=
+  fi
+
+  case "$ac_given_srcdir" in
+  .)  srcdir=.
+      if test -z "$ac_dots"; then top_srcdir=.
+      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+  *) # Relative path.
+    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
+
+  echo creating "$ac_file"
+  rm -f "$ac_file"
+  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+  case "$ac_file" in
+  *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+  *) ac_comsub= ;;
+  esac
+  sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+" -f conftest.subs $ac_given_srcdir/$ac_file_in > $ac_file
+fi; done
+rm -f conftest.subs
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s%^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
+ac_dB='\([ 	][ 	]*\)[^ 	]*%\1#\2'
+ac_dC='\3'
+ac_dD='%g'
+# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
+ac_uA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_uB='\([ 	]\)%\1#\2define\3'
+ac_uC=' '
+ac_uD='\4%g'
+# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_eA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_eB='$%\1#\2define\3'
+ac_eC=' '
+ac_eD='%g'
+
+CONFIG_HEADERS=${CONFIG_HEADERS-"spider.h"}
+for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  echo creating $ac_file
+
+  rm -f conftest.frag conftest.in conftest.out
+  cp $ac_given_srcdir/$ac_file_in conftest.in
+
+EOF
+
+# Transform confdefs.h into a sed script conftest.vals that substitutes
+# the proper values into config.h.in to produce config.h.  And first:
+# Protect against being on the right side of a sed subst in config.status. 
+# Protect against being in an unquoted here document in config.status.
+rm -f conftest.vals
+cat > conftest.hdr <<\EOF
+s/[\\&%]/\\&/g
+s%[\\$`]%\\&%g
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) \(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
+s%ac_d%ac_u%gp
+s%ac_u%ac_e%gp
+EOF
+sed -n -f conftest.hdr confdefs.h > conftest.vals
+rm -f conftest.hdr
+
+# This sed command replaces #undef with comments.  This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >> conftest.vals <<\EOF
+s%^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
+EOF
+
+# Break up conftest.vals because some shells have a limit on
+# the size of here documents, and old seds have small limits too.
+# Maximum number of lines to put in a single here document.
+ac_max_here_lines=12
+
+rm -f conftest.tail
+while :
+do
+  ac_lines=`grep -c . conftest.vals`
+  # grep -c gives empty output for an empty file on some AIX systems.
+  if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
+  # Write a limited-size here document to conftest.frag.
+  echo '  cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
+  echo 'CEOF
+  sed -f conftest.frag conftest.in > conftest.out
+  rm -f conftest.in
+  mv conftest.out conftest.in
+' >> $CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
+  rm -f conftest.vals
+  mv conftest.tail conftest.vals
+done
+rm -f conftest.vals
+
+cat >> $CONFIG_STATUS <<\EOF
+  rm -f conftest.frag conftest.h
+  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
+  cat conftest.in >> conftest.h
+  rm -f conftest.in
+  if cmp -s $ac_file conftest.h 2>/dev/null; then
+    echo "$ac_file is unchanged"
+    rm -f conftest.h
+  else
+    rm -f $ac_file
+    mv conftest.h $ac_file
+  fi
+fi; done
+
+
+echo FOO >stamp-h 
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
+
+
diff --git a/src/modules/spider/configure.in b/src/modules/spider/configure.in
new file mode 100644
index 0000000000000000000000000000000000000000..cf14e2ab36e493187284b2052ff3797691ecb230
--- /dev/null
+++ b/src/modules/spider/configure.in
@@ -0,0 +1,40 @@
+AC_INIT(spider.c)
+AC_CONFIG_HEADER(spider.h)
+
+AC_PROG_CC
+AC_PROG_RANLIB
+
+AC_HAVE_HEADERS(syslog.h sys/syslog.h arpa/inet.h sys/socketvar.h netinet/in.h)
+AC_HAVE_FUNCS(syslog perror strerror)
+
+AC_SUBST(RANLIB)
+
+AC_MSG_CHECKING(how to find timezone)
+
+AC_CACHE_VAL(lpc_cv_timezone,
+[
+AC_TRY_LINK([
+#include <time.h>
+],[
+ int _tz;
+ time_t foo;
+ struct tm *g;
+ g=localtime(&foo);
+
+ _tz = g->tm_gmtoff;	
+],
+  lpc_cv_timezone='localtime'
+,
+  lpc_cv_timezone='int'
+)])
+
+if test "$lpc_cv_timezone" = int; then
+  AC_DEFINE(HAVE_INT_TIMEZONE)
+  AC_MSG_RESULT([int]);
+else
+  AC_MSG_RESULT([localtime])
+fi
+
+AC_OUTPUT(Makefile,echo FOO >stamp-h )
+
+
diff --git a/src/modules/spider/debug.c b/src/modules/spider/debug.c
new file mode 100644
index 0000000000000000000000000000000000000000..508eefa58da4f7d4d89484698010a45d2c4bef60
--- /dev/null
+++ b/src/modules/spider/debug.c
@@ -0,0 +1,101 @@
+#include "config.h"
+#include "program.h"
+
+extern void dump_stralloc_strings(void);
+void f__dump_string_table(INT32 args)
+{
+  pop_n_elems(args);
+  dump_stralloc_strings();
+  push_int(0);
+}
+
+void f__string_debug(INT32 args)
+{
+  pop_n_elems(args);
+  push_string(add_string_status(args));
+}
+
+static char *program_name(struct program *p)
+{
+  char *f;
+  f=(char *)(p->linenumbers+1);
+  if(!p->linenumbers || !strlen(f))
+  {
+    p->refs++;
+    push_program(p);
+    APPLY_MASTER("program_name", 1);
+    if(sp[-1].type == T_STRING)
+      return 0;
+    pop_stack();
+    f="Unknown program";
+  }
+  return f;
+}
+
+void f__dump_obj_table(INT32 args)
+{
+  struct object *o;
+  int n=0;
+  pop_n_elems(args);
+  o=first_object;
+  while(o) 
+  { 
+    if(o->prog)
+    {
+      char *f;
+      f=program_name(o->prog);
+      if(f)
+	push_string(make_shared_string(f));
+    } else {
+      push_string(make_shared_binary_string("No program (Destructed?)",24));
+    }
+    push_int(o->refs);
+    f_aggregate(2);
+    ++n;
+    o=o->next; 
+  }
+  f_aggregate(n);
+}
+
+void f__num_objects(INT32 args)
+{
+  struct object *o;
+  int n=0;
+  pop_n_elems(args);
+  o=first_object;
+  while(o) { ++n; o=o->next; }
+  push_int(n);
+}
+
+void f__num_mappings(INT32 args)
+{
+  extern struct mapping *first_mapping;
+  struct mapping *o;
+  int n=0;
+  pop_n_elems(args);
+  o=first_mapping;
+  while(o) { ++n; o=o->next; }
+  push_int(n);
+}
+
+void f__num_arrays(INT32 args)
+{
+  extern struct array empty_array;
+  struct array *o;
+  int n=0;
+  pop_n_elems(args);
+  o=(&empty_array)->next;
+  while(o && o != &empty_array) { ++n; o=o->next; }
+  push_int(n+1);
+}
+
+void f__num_dest_objects(INT32 args)
+{
+  struct object *o;
+  int n=0;
+  pop_n_elems(args);
+  o=first_object;
+  while(o) { if(!o->prog) n++; o=o->next; }
+  push_int(n);
+}
+
diff --git a/src/modules/spider/dependencies b/src/modules/spider/dependencies
new file mode 100644
index 0000000000000000000000000000000000000000..609c79a8e3a8d6dfb921951888e802eb55628a54
--- /dev/null
+++ b/src/modules/spider/dependencies
@@ -0,0 +1,6 @@
+discdate.o : ./discdate.c 
+spider.o : ./debug.c ./spider.c ./../../stralloc.h ./../../types.h ./../../global.h ./../../config.h \
+  ./../../machine.h ./../../port.h ./../../macros.h ./../../object.h ./../../svalue.h \
+  ./../../add_efun.h ./../../hashtable.h ./../../interpret.h ./../../program.h \
+  ./../../mapping.h ./../../las.h ./../../dynamic_buffer.h ./../../array.h ./../../builtin_efuns.h \
+  ./discdate.c ./spider.h 
diff --git a/src/modules/spider/discdate.c b/src/modules/spider/discdate.c
new file mode 100644
index 0000000000000000000000000000000000000000..37346d1cb6d54dc87112cfa91bf600256d6145a5
--- /dev/null
+++ b/src/modules/spider/discdate.c
@@ -0,0 +1,148 @@
+/* DiscDate.C .. converts boring normal dates to fun Discordian Date -><-
+   written  the 65th day of The Aftermath in the Year of Our Lady of 
+   Discord 3157 by Druel the Chaotic aka Jeremy Johnson aka
+   mpython@gnu.ai.mit.edu  
+      Worcester MA 01609
+
+   and I'm not responsible if this program messes anything up (except your 
+   mind, I'm responsible for that)
+*/
+
+#include <time.h>
+#include <string.h>
+#include <stdio.h>
+
+struct disc_time
+{
+  int season; /* 0-4 */
+  int day; /* 0-72 */
+  int yday; /* 0-365 */
+  int year; /* 3066- */
+};
+
+static char *ending(int);
+static void print(struct disc_time);
+static struct disc_time convert(int,int);
+
+void f_discdate(INT32 argc) 
+{
+  long t;
+  int bob,raw;
+  struct disc_time hastur;
+  if (argc != 1) 
+  {
+    error(stderr,"Error: discdate(time)");
+    exit(1);
+  } else {
+    struct tm *eris;
+    t=sp[-argc].u.integer;
+    eris=localtime(&t);
+    bob=eris->tm_yday;		/* days since Jan 1. */
+    raw=eris->tm_year;		/* years since 1980 */
+    hastur=convert(bob,raw);
+  }
+  pop_n_elems(argc);
+  print(hastur);
+}
+
+static char *ending(int num)
+{  
+  int temp;
+  char *this;
+ 
+  this=(char *)xalloc(sizeof(char)*3);
+ 
+  temp=num%10;			/* get 0-9 */  
+  switch (temp)
+  {
+   case 1:
+    strcpy(this,"st");
+    break;
+   case 2:
+    strcpy(this,"nd");
+    break;
+   case 3:
+    strcpy(this,"rd");
+    break;
+   default:
+    strcpy(this,"th");
+  }
+  return this;
+}
+
+static struct disc_time convert(int nday, int nyear)
+{ 
+  struct disc_time this;
+   
+  this.year = nyear+3066;
+  this.day=nday;
+  this.season=0;
+  if ((this.year%4)==2)
+  {
+    if (this.day==59)
+      this.day=-1;
+    else if (this.day >59)
+      this.day-=1;
+  }
+  this.yday=this.day;
+  while (this.day>=73)
+  { 
+    this.season++;
+    this.day-=73;
+  }
+  return this;
+}
+
+static char *days[5] = 
+{ 
+  "Sweetmorn",
+  "Boomtime",
+  "Pungenday",
+  "Prickle-Prickle",
+  "Setting Orange"
+  };
+
+static char *seasons[5] = 
+{ 
+  "Chaos",
+  "Discord",
+  "Confusion",
+  "Bureaucracy",
+  "The Aftermath"
+  };
+
+static char *holidays[5][2] = 
+{ 
+  "Mungday", "Chaoflux",
+  "Mojoday", "Discoflux",
+  "Syaday",  "Confuflux",
+  "Zaraday", "Bureflux",
+  "Maladay", "Afflux"
+  };
+
+static void print(struct disc_time tick)
+{ 
+  if (tick.day==-1) 
+  {
+    push_string(make_shared_string("St. Tib's Day!"));
+  } else { 
+    static char foo[10000], *e;
+    sprintf(foo, "%s, the %d%s day of %s",
+	    days[tick.yday%5], tick.day,
+	    e=ending(tick.day),seasons[tick.season]);
+    free(e);
+    tick.day++;
+    push_string(make_shared_string(foo));
+  }
+  push_int(tick.year);
+  if ((tick.day==5)||(tick.day==50))
+  { 
+    if (tick.day==5)
+      push_string(make_shared_string(holidays[tick.season][0]));
+    else
+      push_string(make_shared_string(holidays[tick.season][1]));
+  } else {
+    push_int(0);
+  }
+  f_aggregate(3);
+}
diff --git a/src/modules/spider/spider.c b/src/modules/spider/spider.c
new file mode 100644
index 0000000000000000000000000000000000000000..2c0ae3d00cede98e18fb2a16884d9f5ab053604f
--- /dev/null
+++ b/src/modules/spider/spider.c
@@ -0,0 +1,935 @@
+#include "machine.h"
+
+#include <sys/stat.h>
+#include <sys/mman.h>
+#include <sys/types.h>
+#include <fcntl.h>
+#include <ctype.h>
+#include <string.h>
+#include <time.h>
+#include <limits.h>
+
+#if HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+
+#include "stralloc.h"
+#include "global.h"
+#include "types.h"
+#include "macros.h"
+#include "object.h"
+#include "add_efun.h"
+#include "interpret.h"
+#include "svalue.h"
+#include "mapping.h"
+#include "array.h"
+#include "builtin_efuns.h"
+
+
+#include "discdate.c"
+#include "stardate.c"
+#include "debug.c"
+#include "spider.h"
+
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+
+#ifdef HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+
+#define MAX_PARSE_RECURSE 128
+
+void do_html_parse(struct lpc_string *ss,
+		   struct mapping *cont,struct mapping *single,
+		   int *strings,int recurse_left,
+		   struct array *extra_args);
+
+void f_parse_accessed_database(INT32 args)
+{
+  int cnum=0, i, num=0;
+
+  struct array *arg;
+  if(args != 1)
+    error("Wrong number of arguments to parse_accessed_database(string)\n");
+
+  push_string(make_shared_string("\n"));
+  f_explode(2);
+  arg = sp[-1].u.array;
+  arg->refs++;
+  /* The initial string is gone, but the array is there now. */
+  pop_n_elems(args); 
+
+  for (i = 0; i < arg->size; i++)
+  {
+    int j=0,k;
+    char *s;
+    s=(char *)(SHORT_ITEM(arg)[i].string->str);
+    k=(SHORT_ITEM(arg)[i].string->len);
+    for(j=k; j>0 && s[j-1]!=':'; j--);
+    if(j>0)
+    {
+      push_string(make_shared_binary_string(s, j-1));
+      k=atoi(s+j);
+      if(k>cnum)
+	cnum=k;
+      push_int(k);
+      num++;
+    }
+  }
+  free_array(arg);
+  f_aggregate_mapping(num*2);
+  push_int(cnum);
+  f_aggregate(2);
+}
+
+
+#if 0
+// This function leaks a lot of memory, but it ends with either an
+// exec() or an exit().  This could be a problem on systems with louse memory
+// management, though. I know of none.
+// Thanks to David Byers for the bugfix.
+#endif
+
+#if 0
+void f_exece(INT32 args)
+{
+  int i=0, environ_size=0;
+  struct array *arg;
+  struct array *env;
+  char **envv, **argv;
+  extern char **environ;
+    
+  /*
+   *  Check that the arguments given are
+   *  1. A string (the program to execute)
+   *  2. An array (argv)
+   *  3. An array (extra environment variables)
+   */
+    
+  if (args < 3 ||
+      sp[-args].type  != T_STRING ||
+      sp[1-args].type != T_ARRAY  ||
+      sp[2-args].type != T_ARRAY)
+    error("Illegal argument(s) to exece().\n");
+
+  environ_size = 0;
+  while (environ[environ_size])
+    environ_size += 1;
+
+  arg = sp[1-args].u.array;
+  env = sp[2-args].u.array;
+
+  /*
+   * Allocate argv and envv arrays
+   * In argv, make room for program name and NULL
+   * In envv, make room for NULL
+   */
+
+  argv = (char **)xalloc((2 + arg->size)*sizeof(char **));
+  envv = (char **)xalloc((1 + env->size + environ_size)*sizeof(char **));
+
+  /*
+   * Build argv
+   */
+
+  argv[0] = strdup((char *)(sp[-args].u.string->str));
+  if (arg->array_type == T_STRING)
+  {
+    for (i = 0; i < arg->size; i++)
+      argv[1+i] = strdup((char *)(SHORT_ITEM(arg)[i].string->str));
+  }
+  else if (arg->array_type == T_MIXED)
+  {
+    for (i = 0; i < arg->size; i++)
+      if (ITEM(arg)[i].type == T_STRING)
+	argv[1+i] = strdup((char *)(ITEM(arg)[i].u.string->str));
+      else
+	argv[1+i] = strdup("bad_argument");
+  }
+  else
+    error("Wrong type argv send to exece");
+
+  argv[1+i] = NULL;
+
+  /*
+   * Build envv
+   * 1. Copy environ
+   * 2. Copy arguments
+   */
+
+  for (i = 0; i < environ_size; i++)
+    envv[i] = environ[i];
+
+  if (arg->array_type == T_STRING)
+  {
+    for (i = 0; i < env->size; i++)
+      envv[environ_size+i] =
+	strdup((char *)(SHORT_ITEM(env)[i].string->str));
+  }
+  else if (env->array_type == T_MIXED)
+  {
+    for (i = 0; i < env->size; i++)
+      if (ITEM(env)[i].type == T_STRING)
+	envv[environ_size+i] =
+	  strdup((char *)(ITEM(env)[i].u.string->str));
+      else
+	envv[environ_size+i] = strdup("bad=argument");
+  }
+  else
+    error("Wrong type envv send to exece");
+
+  envv[environ_size + i] = NULL;
+
+  set_close_on_exec(0,0);
+  set_close_on_exec(1,0);
+  set_close_on_exec(2,0);
+
+  execve(argv[0], argv, envv);
+  exit(0);
+}
+#endif
+void f_parse_html(INT32 args)
+{
+  struct lpc_string *ss;
+  struct mapping *cont,*single;
+  int strings;
+  struct array *extra_args;
+   
+  if (args<3||
+      sp[-args].type!=T_STRING||
+      sp[1-args].type!=T_MAPPING||
+      sp[2-args].type!=T_MAPPING)
+    error("Bad argument(s) to parse_html.\n");
+
+  ss=sp[-args].u.string;
+  sp[-args].type=T_INT;
+
+  single=sp[1-args].u.mapping; 
+  cont=sp[2-args].u.mapping; 
+  cont->refs++;
+  single->refs++;
+
+  if (args>3)
+  {
+    f_aggregate(args-3);
+    extra_args=sp[-1].u.array;
+    extra_args->refs++;
+    pop_stack();
+  }
+  else extra_args=NULL;
+
+  pop_n_elems(3);
+
+  strings=0;
+  do_html_parse(ss,cont,single,&strings,MAX_PARSE_RECURSE,extra_args);
+
+  if (extra_args) free_array(extra_args);
+
+  free_mapping(cont);
+  free_mapping(single);
+  f_aggregate(strings);
+  f_implode(1);
+}
+
+int push_parsed_tag(char *s,int len)
+{
+  int i,j,elems=0;
+  int haskey;
+
+  for (i=haskey=0; i<len&&s[i]!='>';)
+  {
+    for (; i<len&&s[i]!='>' && isspace(s[i]); i++); /* skip space */
+    if (!(i<len && s[i]!='>')) break;
+    /* check wordlen */
+    for (j=i; i<len&&s[i]!='>' && !isspace(s[i]) && s[i]!='='; i++); 
+    if (j<i) 
+    {
+      push_string(make_shared_binary_string(s+j,i-j));
+      f_lower_case(1);
+    }
+    else
+      push_string(make_shared_string(""));
+
+    for (;i<len&&s[i]!='>'&&isspace(s[i]);i++); /* skip space */
+
+    if (i>=len || s[i]!='=') 
+    {
+      assign_svalue_no_free(sp,sp-1); sp++;
+      elems++;
+      continue;
+    }
+    i++;
+    if (i>=len || s[i]=='>' || (s[i]=='"' && i+1 >= len))
+    {
+      assign_svalue_no_free(sp,sp-1); sp++;
+      elems++;
+      continue;
+    }
+    if (s[i]=='"')
+    {
+      j=++i;
+      for (;i<len && s[i]!='"' ;i++); /* end quote */
+      push_string(make_shared_binary_string(s+j,i-j));
+      elems++;
+      if (i<len) i++;
+      continue;
+    }
+    for (j=i;i<len&&s[i]!='>'&&!isspace(s[i]);i++); /* check wordlen */
+    push_string(make_shared_binary_string(s+j,i-j));
+    elems++;
+  }
+  f_aggregate_mapping(elems*2);
+  return i+(i<len);
+}
+
+INLINE int tagsequal(char *s,char *t,int len)
+{
+  while (--len) if (tolower(*(t++))!=tolower(*(s++))) return 1;
+  return 0;
+}
+
+
+int find_endtag(struct lpc_string *tag,char *s,int len,int *aftertag)
+{
+  int i,lend,j;
+  for (i=j=0; i<len; i++)
+  {
+    for (; i<len&&s[i]!='<'; i++);
+    if (i>=len) break;
+    j=i++;
+    if (i>=len) break;
+    if (s[i]=='/')
+    {
+      if (i+tag->len+1<len&&
+	  !tagsequal(s+i+1,tag->str,tag->len)&&
+	  (isspace(s[i+1+tag->len])||s[i+1+tag->len]=='>'))
+	break;
+      continue;
+    }
+    if (i+tag->len<len&&
+	!tagsequal(s+i,tag->str,tag->len)&&
+	(isspace(s[i+tag->len])||s[i+tag->len]=='>')) /* oop, recurse */
+    {
+      find_endtag(tag,s+i+tag->len,len-i-tag->len,&lend);
+      j=i+=lend;
+    }
+  }
+  if (i>=len) *aftertag=len,j=i; /* no end */
+  else
+  {
+    for (;i<len&&s[i]!='>'; i++);
+    *aftertag=i+(i<len);
+  }
+  return j;
+}
+
+void do_html_parse(struct lpc_string *ss,
+		   struct mapping *cont,struct mapping *single,
+		   int *strings,int recurse_left,
+		   struct array *extra_args)
+{
+  int i,j,k,l,m,len,last;
+  unsigned char *s;
+  struct svalue sval1,sval2;
+  struct lpc_string *ss2;
+
+  if (!ss->len)
+  {
+    free_string(ss);
+    return;
+  }
+
+  if (!recurse_left)
+  {
+    push_string(ss);
+    (*strings)++;
+    return;
+  }
+
+  s=(unsigned char *)ss->str;
+  len=ss->len;
+
+  last=0;
+  for (i=0; i<len-1;)
+  {
+    if (s[i]=='<')
+    {
+      /* skip all spaces */
+      i++;
+      for (j=i; j<len && s[j]!='>' && !isspace(s[j]); j++);
+
+      if (j==len) break; /* end of string */
+
+      sval2.type=T_STRING;
+      sval2.subtype=-1;		/* ? */
+      sval2.u.string=make_shared_binary_string((char *)s+i,j-i);
+
+      mapping_index_no_free(&sval1,single,&sval2);
+      if (sval1.type==T_STRING)
+      {
+	assign_svalue_no_free(sp++,&sval1);
+	free_svalue(&sval1);
+	(*strings)++;
+	find_endtag(sval2.u.string,s+j,len-j,&l);
+	free_svalue(&sval2);
+	i=last=j+=l;
+	continue;
+      }
+      else if (sval1.type!=T_INT)
+      {
+	assign_svalue_no_free(sp++,&sval2);
+	k=push_parsed_tag(s+j,len-j); 
+	if (extra_args)
+	{
+	  extra_args->refs++;
+	  push_array_items(extra_args);
+	}
+
+	apply_svalue(&sval1,2+(extra_args?extra_args->size:0));
+	if (sp[-1].type==T_STRING)
+	{
+	  free_svalue(&sval1);
+	  free_svalue(&sval2);
+	  copy_shared_string(ss2,sp[-1].u.string);
+	  pop_stack();
+	  if (last!=i-1)
+	  { 
+	    push_string(make_shared_binary_string(s+last,i-last-1)); 
+	    (*strings)++; 
+	  }
+	  i=last=j+k;
+	  do_html_parse(ss2,cont,single,strings,recurse_left-1,extra_args);
+	  continue;
+	}
+	pop_stack();
+      }
+
+      free_svalue(&sval1);
+      mapping_index_no_free(&sval1,cont,&sval2);
+      if (sval1.type==T_STRING)
+      {
+	assign_svalue_no_free(sp++,&sval1);
+	free_svalue(&sval1);
+	(*strings)++;
+	find_endtag(sval2.u.string,s+j,len-j,&l);
+	free_svalue(&sval2);
+	i=last=j+=l;
+	continue;
+      }
+      else if (sval1.type!=T_INT)
+      {
+	assign_svalue_no_free(sp++,&sval2);
+	m=j+(k=push_parsed_tag(s+j,len-j)); 
+	k=find_endtag(sval2.u.string,s+m,len-m,&l);
+	push_string(make_shared_binary_string(s+m,k));
+	m+=l;
+	if (extra_args)
+	{
+	  extra_args->refs++;
+	  push_array_items(extra_args);
+	}
+
+	apply_svalue(&sval1,3+(extra_args?extra_args->size:0));
+	if (sp[-1].type==T_STRING)
+	{
+	  free_svalue(&sval1);
+	  free_svalue(&sval2);
+	  copy_shared_string(ss2,sp[-1].u.string);
+	  pop_stack();
+	  if (last!=i-1)
+	  { 
+	    push_string(make_shared_binary_string(s+last,i-last-1)); 
+	    (*strings)++; 
+	  }
+	  i=last=j=m;
+	  do_html_parse(ss2,cont,single,strings,recurse_left-1,extra_args);
+	  continue;
+	}
+	pop_stack();
+      }
+      free_svalue(&sval1);
+      free_svalue(&sval2);
+      i=j;
+    }
+    else
+      i++;
+  }
+
+  if (last==0)
+  {
+    push_string(ss);
+    (*strings)++;
+  }
+  else if (last<len)
+  {
+    push_string(make_shared_binary_string(s+last,len-last));  
+    free_string(ss);
+    (*strings)++;
+  }
+  else
+  {
+    free_string(ss);
+  }
+}
+
+static int does_match(char *s,int len,char *m,int mlen)
+{
+  int i,j;
+  for (i=j=0; i<mlen&&j<len; )
+    switch (m[i])
+    {
+     case '?': 
+      j++; i++; 
+      break;
+     case '*': 
+      i++;
+      if (i==mlen) return 1;	/* slut */
+      for (;j<len;j++)
+	if (does_match(s+j,len-j,m+i,mlen-i)) return 1;
+      return 0;
+     default: 
+      if (m[i]!=s[j]) return 0;
+      j++; i++;
+    }
+  if (i==mlen && j==len) return 1;
+  return 0;
+}
+
+void f_do_match(INT32 args)
+{
+  struct lpc_string *match,*str;
+  struct array *a;
+  int i;
+  struct svalue *sval;
+
+  if (args<2||
+      sp[1-args].type!=T_STRING||
+      (sp[-args].type!=T_STRING &&
+       sp[-args].type!=T_ARRAY))
+    error("Illegal arguments to do_match\n");
+
+  copy_shared_string(match,sp[1-args].u.string);
+  pop_n_elems(args-1);
+
+  if (sp[-1].type==T_ARRAY)
+  {
+    a=sp[-1].u.array;
+    a->refs++;
+    pop_stack();
+    i=a->size;
+    if (!i) { push_int(0); return; }
+    push_array_items(a);
+    while (i--)
+    {
+      match->refs++;
+      push_string(match);
+      f_do_match(2);
+      if (sp[-1].type!=T_INT)
+      {
+	sval=sp-1;
+	sp--;
+	pop_n_elems(i);
+	sp[0]=*sval;
+	sp++;
+	free_string(match);
+	return;
+      }
+      pop_stack();
+    }
+    push_int(0);
+    free_string(match);
+    return;
+  }
+  copy_shared_string(str,sp[-1].u.string);
+  pop_stack();
+   
+  if (does_match(str->str,str->len,match->str,match->len)) 
+  {
+    push_string(str); 
+    free_string(match); 
+    return; 
+  }
+  push_int(0);
+  free_string(str);
+  free_string(match);
+}
+
+#if !HAVE_INT_TIMEZONE
+int _tz;
+#else
+extern long int timezone;
+#endif
+
+
+
+void f_localtime(INT32 args)
+{
+  struct tm *tm;
+  time_t t;
+  if (args<1||
+      sp[-1].type!=T_INT)
+    error("Illegal argument to localtime");
+  t=sp[-1].u.integer;
+  tm=localtime(&t);
+  pop_stack();
+  push_string(make_shared_string("sec"));
+  push_int(tm->tm_sec);
+  push_string(make_shared_string("min"));
+  push_int(tm->tm_min);
+  push_string(make_shared_string("hour"));
+  push_int(tm->tm_hour);
+
+  push_string(make_shared_string("mday"));
+  push_int(tm->tm_mday);
+  push_string(make_shared_string("mon"));
+  push_int(tm->tm_mon);
+  push_string(make_shared_string("year"));
+  push_int(tm->tm_year);
+
+  push_string(make_shared_string("wday"));
+  push_int(tm->tm_wday);
+  push_string(make_shared_string("yday"));
+  push_int(tm->tm_yday);
+  push_string(make_shared_string("isdst"));
+  push_int(tm->tm_isdst);
+
+  push_string(make_shared_string("timezone"));
+#if !HAVE_INT_TIMEZONE
+  push_int(_tz);
+#else
+  push_int(timezone);
+#endif
+  f_aggregate_mapping(20);
+}
+
+void f_do_setuid(INT32 args)
+{
+  if(!args)
+    error("Set uid to what?\n");
+
+  if(sp[-1].type != T_INT)
+    error("Set uid to _what_?\n");
+
+  setuid(sp[-1].u.integer);
+  pop_n_elems(args-1);
+}
+
+void f_do_setgid(INT32 args)
+{
+  if(!args)
+    error("Set gid to what?\n");
+
+  if(sp[-1].type != T_INT)
+    error("Set gid to _what_?\n");
+
+  setgid(sp[-1].u.integer);
+  pop_n_elems(args-1);
+}
+
+
+void f_timezone(INT32 args)
+{
+  pop_n_elems(args);
+#if !HAVE_INT_TIMEZONE
+  push_int(_tz);
+#else
+  push_int(timezone);
+#endif
+}
+
+#ifdef HAVE_SYSLOG
+
+#ifdef HAVE_SYSLOG_H
+#include <syslog.h>
+#endif
+
+#ifdef HAVE_SYS_SYSLOG_H
+#ifndef HAVE_SYSLOG_H
+#include <sys/syslog.h>
+#endif
+#endif
+
+#ifndef LOG_PERROR
+#define LOG_PERROR 0
+#endif
+
+#ifndef LOG_AUTHPRIV
+#define LOG_AUTHPRIV 0
+#endif
+
+void f_openlog(INT32 args)
+{
+  int option=0, facility=0, i;
+  if(args < 3)
+    error("Wrong number of arguments to openlog(string,int,int)\n");
+  if(sp[-args].type != T_STRING
+     &&sp[-args+1].type != T_INT
+     &&sp[-args+2].type != T_INT)
+    error("Wrong type of arguments to openlog(string,int,int)\n");
+
+  i=sp[-args+1].u.integer;
+  
+  if(i & (1<<0)) option |= LOG_CONS;
+  if(i & (1<<1)) option |= LOG_NDELAY;
+  if(i & (1<<2)) option |= LOG_PERROR;
+  if(i & (1<<3)) option |= LOG_PID;
+
+  i=sp[-args+2].u.integer;
+
+  if(i & (1<<0)) facility |= LOG_AUTH; /* Don't use */
+  if(i & (1<<1)) facility |= LOG_AUTHPRIV;
+  if(i & (1<<2)) facility |= LOG_CRON;
+  if(i & (1<<3)) facility |= LOG_DAEMON;
+  if(i & (1<<4)) facility |= LOG_KERN;
+  if(i & (1<<5)) facility |= LOG_LOCAL0;
+  if(i & (1<<6)) facility |= LOG_LOCAL1;
+  if(i & (1<<7)) facility |= LOG_LOCAL2;
+  if(i & (1<<8)) facility |= LOG_LOCAL3;
+  if(i & (1<<9)) facility |= LOG_LOCAL4;
+  if(i & (1<<10)) facility |= LOG_LOCAL5;
+  if(i & (1<<11)) facility |= LOG_LOCAL6;
+  if(i & (1<<12)) facility |= LOG_LOCAL7;
+  if(i & (1<<13)) facility |= LOG_LPR;
+  if(i & (1<<14)) facility |= LOG_MAIL;
+  if(i & (1<<15)) facility |= LOG_NEWS;
+  if(i & (1<<16)) facility |= LOG_SYSLOG;
+  if(i & (1<<17)) facility |= LOG_USER;
+  if(i & (1<<18)) facility |= LOG_UUCP;
+  
+  openlog((char *)sp[-args].u.string->str, option, facility);
+}
+
+void f_syslog(INT32 args)
+{
+  int pri=0, i;
+
+  if(args < 2)
+    error("Wrong number of arguments to syslog(int, string)\n");
+  if(sp[-args].type != T_INT ||
+     sp[-args+1].type != T_STRING)
+    error("Wrong type of arguments to syslog(int, string)\n");
+
+  reference_shared_string(sp[-args+1].u.string);
+  push_string(sp[-args+1].u.string);
+  push_string(make_shared_string("%"));
+  push_string(make_shared_string("%%"));
+  f_replace(3);
+
+  i=sp[-args].u.integer;
+  if(i & (1<<0)) pri |= LOG_EMERG;
+  if(i & (1<<1)) pri |= LOG_ALERT;
+  if(i & (1<<2)) pri |= LOG_CRIT;
+  if(i & (1<<3)) pri |= LOG_ERR;
+  if(i & (1<<4)) pri |= LOG_WARNING;
+  if(i & (1<<5)) pri |= LOG_NOTICE;
+  if(i & (1<<6)) pri |= LOG_INFO;
+  if(i & (1<<6)) pri |= LOG_DEBUG;
+  
+  syslog(pri, (char *)sp[-1].u.string->str,"%s","%s","%s","%s","%s","%s",
+	 "%s","%s","%s","%s");
+  pop_n_elems(args);
+}
+
+void f_closelog(INT32 args)
+{
+  closelog();
+  pop_n_elems(args);
+}
+#endif
+
+#ifdef HAVE_PERROR
+void f_real_perror(INT32 args)
+{
+  pop_n_elems(args);
+  perror(NULL);
+}
+#else
+void f_real_perror(INT32 args)
+{
+  pop_n_elems(args);
+}
+#endif
+
+void f_get_all_active_fd(INT32 args)
+{
+  int i,fds;
+  struct stat foo;
+  pop_n_elems(args);
+  for (i=fds=0; i<MAX_OPEN_FILEDESCRIPTORS; i++)
+    if (!fstat(i,&foo))
+    {
+      push_int(i);
+      fds++;
+    }
+  f_aggregate(fds);
+}
+
+void f_fd_info(INT32 args)
+{
+  static char buf[256];
+  int i;
+  struct stat foo;
+
+  if (args<1||
+      sp[-args].type!=T_INT)
+    error("Illegal argument to fd_info\n");
+  i=sp[-args].u.integer;
+  pop_n_elems(args);
+  if (fstat(i,&foo))
+  {
+    push_string(make_shared_string("non-open filedescriptor"));
+    return;
+  }
+  sprintf(buf,"%o,%ld,%d,%ld",
+	  (unsigned int)foo.st_mode,
+	  (long)foo.st_size,
+	  (int)foo.st_dev,
+	  (long)foo.st_ino);
+  push_string(make_shared_string(buf));
+}
+
+struct lpc_string *fd_marks[MAX_OPEN_FILEDESCRIPTORS];
+
+void f_mark_fd(INT32 args)
+{
+  int fd;
+  struct lpc_string *s;
+  if (args<1 
+      || sp[-args].type!=T_INT 
+      || (args>2 && sp[-args+1].type!=T_STRING))
+    error("Illegal argument(s) to mark_fd(int,void|string)\n");
+  fd=sp[-args].u.integer;
+  if(fd>MAX_OPEN_FILEDESCRIPTORS || fd < 0)
+    error("Fd must be in the range 0 to %d\n", MAX_OPEN_FILEDESCRIPTORS);
+  if (args<2)
+  {
+    int len;
+    struct sockaddr_in addr;
+    char *tmp;
+    char buf[20];
+
+    pop_stack();
+    if(fd_marks[fd])
+    {
+      fd_marks[fd]->refs++;
+      push_string(fd_marks[fd]);
+    } else {
+      push_int(0);
+    }
+
+    len=sizeof(addr);
+    if(! getsockname(fd, (struct sockaddr *) &addr, &len))
+    {
+      tmp=inet_ntoa(addr.sin_addr);
+      push_string(make_shared_string(" Local:"));
+      push_string(make_shared_string(tmp));
+      sprintf(buf,".%d",(int)(ntohs(addr.sin_port)));
+      push_string(make_shared_string(buf));
+      f_sum(4);
+    }
+
+    if(! getpeername(fd, (struct sockaddr *) &addr, &len))
+    {
+      push_string(make_shared_string(" Remote:"));
+      tmp=inet_ntoa(addr.sin_addr);
+      push_string(make_shared_string(tmp));
+      sprintf(buf,".%d",(int)(ntohs(addr.sin_port)));
+      push_string(make_shared_string(buf));
+      f_sum(4);
+    }
+
+    return;
+  }
+  s=sp[-args+1].u.string;
+  s->refs++;
+  if(fd_marks[fd])
+    free_string(fd_marks[fd]);
+  fd_marks[fd]=s;
+  pop_n_elems(args);
+  push_int(0);
+}
+
+void init_spider_efuns(void) 
+{
+
+  add_efun("parse_accessed_database", f_parse_accessed_database,
+	   "function(string:array)", OPT_TRY_OPTIMIZE);
+
+  add_efun("_string_debug", f__string_debug, "function(void|mixed:string)", 
+	   OPT_EXTERNAL_DEPEND);
+
+  add_efun("_dump_string_table", f__dump_string_table, 
+	   "function(:array(array))",  OPT_EXTERNAL_DEPEND);
+
+  add_efun("_num_dest_objects", f__num_dest_objects, "function(:int)", 
+	   OPT_EXTERNAL_DEPEND);
+
+  add_efun("_num_arrays", f__num_arrays, "function(:int)", 
+	   OPT_EXTERNAL_DEPEND);
+
+  add_efun("_num_objects", f__num_objects, "function(:int)", 
+	   OPT_EXTERNAL_DEPEND);
+
+  add_efun("_num_mappings", f__num_mappings, "function(:int)", 
+	   OPT_EXTERNAL_DEPEND);
+
+  add_efun("_dump_obj_table", f__dump_obj_table, "function(:array(array))", 
+	   OPT_EXTERNAL_DEPEND);
+
+  add_efun("parse_html",f_parse_html,
+	   "function(string,mapping(string:function(string,mapping(string:string),mixed ...:string)),mapping(string:function(string,mapping(string:string),string,mixed ...:string)),mixed ...:string)",
+	   0);
+
+  add_efun("do_match",f_do_match,
+	   "function(string|array(string),string:string)",OPT_TRY_OPTIMIZE);
+
+  add_efun("localtime",f_localtime,
+	   "function(int:mapping(string:mixed))",OPT_EXTERNAL_DEPEND);
+
+  add_efun("real_perror",f_real_perror, "function(:void)",OPT_EXTERNAL_DEPEND);
+
+#ifdef HAVE_SYSLOG
+  add_efun("openlog", f_openlog, "function(string,int,int:void)", 0);
+  add_efun("syslog", f_syslog, "function(int,string:void)", 0);
+  add_efun("closelog", f_closelog, "function(:void)", 0);
+#endif
+
+  add_efun("discdate", f_discdate, "function(int:array)", 0);
+  add_efun("stardate", f_stardate, "function(int,void|int:int)", 0);
+
+  add_efun("setuid", f_do_setuid, "function(int:void)", 0);
+  add_efun("setgid", f_do_setgid, "function(int:void)", 0);
+  add_efun("timezone",f_timezone,"function(:int)",0);
+#if 0
+  add_efun("exece",f_exece,"function(string,array(string),array(string):int)",
+	   OPT_SIDE_EFFECT);
+#endif
+  add_efun("get_all_active_fd",f_get_all_active_fd,"function(:array(int))",0);
+  add_efun("fd_info",f_fd_info,"function(int:string)",0);
+  add_efun("mark_fd",f_mark_fd,"function(int,void|mixed:mixed)",0);
+
+  /* timezone() needs */
+  { 
+    time_t foo;
+    struct tm *g;
+    /* Purify wants */
+    foo=(time_t)0; 
+
+    g=localtime(&foo);
+#if !HAVE_INT_TIMEZONE
+    _tz = g->tm_gmtoff;
+#endif
+  }
+}
+
+void init_spider_programs() {}
+
+void exit_spider(void)
+{
+  int i;
+  for(i=0; i<MAX_OPEN_FILEDESCRIPTORS; i++)
+    if(fd_marks[i])
+      free_string(fd_marks[i]);
+}
diff --git a/src/modules/spider/spider.h b/src/modules/spider/spider.h
new file mode 100644
index 0000000000000000000000000000000000000000..173ef11340f9d4b3d031827ad15f1c9de078f560
--- /dev/null
+++ b/src/modules/spider/spider.h
@@ -0,0 +1,19 @@
+/* spider.h.  Generated automatically by configure.  */
+#define HAVE_SYSLOG_H 1
+
+#define HAVE_SYSLOG 1
+
+#define HAVE_INT_TIMEZONE 1
+
+#define HAVE_PERROR 1
+
+#define HAVE_STRERROR 1
+
+/* Define if you have arpa/inhet.h */
+#define HAVE_ARPA_INET_H 1
+
+/* Define if you have the <sys/socketvar.h> header file.  */
+#define HAVE_SYS_SOCKETVAR_H 1
+
+/* Define if you have the <netinet/in.h> header file.  */
+#define HAVE_NETINET_IN_H 1
diff --git a/src/modules/spider/spider.h.in b/src/modules/spider/spider.h.in
new file mode 100644
index 0000000000000000000000000000000000000000..fb15d80878fe55b662c2cdaf1cf70c8705d1041d
--- /dev/null
+++ b/src/modules/spider/spider.h.in
@@ -0,0 +1,18 @@
+#undef HAVE_SYSLOG_H
+
+#undef HAVE_SYSLOG
+
+#undef HAVE_INT_TIMEZONE
+
+#undef HAVE_PERROR
+
+#undef HAVE_STRERROR
+
+/* Define if you have arpa/inhet.h */
+#undef HAVE_ARPA_INET_H
+
+/* Define if you have the <sys/socketvar.h> header file.  */
+#undef HAVE_SYS_SOCKETVAR_H
+
+/* Define if you have the <netinet/in.h> header file.  */
+#undef HAVE_NETINET_IN_H
diff --git a/src/modules/spider/stamp-h b/src/modules/spider/stamp-h
new file mode 100644
index 0000000000000000000000000000000000000000..b7d6715e2df11b9c32b2341423273c6b3ad9ae8a
--- /dev/null
+++ b/src/modules/spider/stamp-h
@@ -0,0 +1 @@
+FOO
diff --git a/src/modules/spider/stardate.c b/src/modules/spider/stardate.c
new file mode 100644
index 0000000000000000000000000000000000000000..a3e41e1005f46cbb8e0df9d608644aba5db82e6d
--- /dev/null
+++ b/src/modules/spider/stardate.c
@@ -0,0 +1,108 @@
+#define	FIT(x,y) while((x)<0)(x)+=(y);while((x)>(y))(x)-=(y)
+
+#define MAXPRECISION       7
+#define OUTPUTFORMAT       "%%%03d.%df"
+
+/*---------------------------------------------------------------------*
+ *TAG (                           julian_day                           );
+ *---------------------------------------------------------------------*
+ * Returns the New Epoch Julian Day for the given Gregorian calendar
+ * day.
+ */
+double julian_day (int month, int day, int year)
+{
+  int loc_month;
+  int loc_year;
+  int a, b, c, d;
+  
+  loc_month = month;
+  loc_year = year;
+  
+  /* correct for March-based B.C. year */
+  if (year < 0) loc_year ++;
+  if (month < 3) {
+    loc_month = month + 12;
+    loc_year --;
+  }
+  
+  /* set up A and B for Julian to Gregorian calendar change */
+  if (year < 1582) b = 0;
+  else if (year == 1582) {
+    if (month < 10) b = 0;
+    else if (month == 10) {
+      if (day < 15) b = 0;
+      else {
+	a = loc_year / 100;
+	b = 2 - a + (a/4);
+      }
+    } else {
+      a = loc_year / 100;
+      b = 2 - a + (a/4);
+    }
+  } else {
+    a = loc_year / 100;
+    b = 2 - a + (a/4);		/* century is set up */
+  }
+  
+  /* fudge for year and month */
+  c = (int) (365.25 * loc_year) - 694025;
+  d = (int) (30.6001 * (loc_month + 1));
+  
+  return (double) (b + c + d + day) - .5;
+}
+
+/*---------------------------------------------------------------------*
+ *TAG (                            sidereal                            );
+ *---------------------------------------------------------------------*
+ * Returns Greenwich Mean Sidereal Time for the given Greenwich Mean
+ * Solar Time on the given NE Julian Day.
+ */
+double sidereal (double gmt, double jd, int gyear)
+{
+  register double dayfudge, yrfudge, jhund;
+  double initjd, hourfudge, time0, lst;
+  
+  /* find Julian century at start of year */
+  initjd = julian_day (1, 0, gyear);
+  jhund = initjd / 36525.0;
+  
+  /* apply polynomial correction */
+  dayfudge = 6.6460656 + (0.051262 + (jhund * 0.00002581)) * jhund;
+  yrfudge = 2400.0 * (jhund - ( (double) (gyear - 1900) / 100));
+  hourfudge = 24.0 - dayfudge - yrfudge;
+  time0 = (jd - initjd) * 0.0657098 - hourfudge;
+  
+  /* adjust to modulo 24 hours */
+  lst = (gmt * 1.002737908) + time0;
+  FIT (lst, 24.0);
+  return lst;
+}
+
+void f_stardate (INT32 args)
+{
+  int jd, precis=0;
+  double gmt, gmst;
+  time_t t;
+  struct tm *tm;
+  char buf[16];
+  char fmt[16];
+
+  if (args < 2) 
+    error("Wrong number of arguments to stardate(int, int)\n");
+  precis=sp[-args+1].u.integer;
+  t=sp[-args].u.integer;
+
+  if (precis < 1) precis = 1;
+  if (precis > MAXPRECISION) precis = MAXPRECISION;
+  tm = gmtime (&t);
+  jd = julian_day (tm->tm_mon + 1, tm->tm_mday, tm->tm_year + 1900);
+
+  gmt = (double) tm->tm_hour +
+    tm->tm_min / 60.0 +
+    tm->tm_sec / 3600.0;
+  gmst = sidereal (gmt, (double) jd, tm->tm_year);
+  sprintf (fmt, OUTPUTFORMAT, precis + 6, precis);
+  sprintf (buf, fmt, (double) jd + gmst / 24.0);
+  pop_n_elems(args);
+  push_string(make_shared_string(buf));
+}
diff --git a/src/modules/sprintf/Makefile b/src/modules/sprintf/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..ee618c89f1d01e006a2f2505729d7f2e1fb3ba6b
--- /dev/null
+++ b/src/modules/sprintf/Makefile
@@ -0,0 +1,22 @@
+# Generated automatically from Makefile.in by configure.
+SRCDIR=.
+VPATH=.:./../..:../..
+PREFLAGS=-I$(SRCDIR) -I$(SRCDIR)/../.. -I../..
+CFLAGS=$(PREFLAGS) $(OTHERFLAGS)
+
+FILES=sprintf.o
+
+sprintf.a: $(FILES)
+	-rm -f sprintf.a
+	ar cq sprintf.a $(FILES)
+	-ranlib sprintf.a
+
+clean:
+	-rm -f *.o *.a
+
+depend:
+	gcc -MM $(PREFLAGS) $(SRCDIR)/*.c | sed 's;$(SRCDIR)/;;g' | sed 's;\.\./;;g' | sed 's;\./;;g' >$(SRCDIR)/dependencies
+
+include ./dependencies
+
+
diff --git a/src/modules/sprintf/configure b/src/modules/sprintf/configure
new file mode 100755
index 0000000000000000000000000000000000000000..10600f308a0f73b918d796d2eee190c11cc9e1ab
--- /dev/null
+++ b/src/modules/sprintf/configure
@@ -0,0 +1,679 @@
+#!/bin/sh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 1.119 
+# Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
+#
+# This configure script is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This script is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
+# Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ac_help=
+
+# Omit some internal or obsolete options to make the list less imposing.
+ac_usage="Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+  --cache-file=FILE       cache test results in FILE
+  --help                  print this message
+  --no-create             do not create output files
+  --quiet, --silent       do not print \`checking...' messages
+  --version               print the version of autoconf that created configure
+Directory and file names:
+  --exec-prefix=PREFIX    install host dependent files in PREFIX [/usr/local]
+  --prefix=PREFIX         install host independent files in PREFIX [/usr/local]
+  --srcdir=DIR            find the sources in DIR [configure dir or ..]
+  --program-prefix=PREFIX prepend PREFIX to installed program names
+  --program-suffix=SUFFIX append SUFFIX to installed program names
+Host type:
+  --build=BUILD           configure for building on BUILD [BUILD=HOST]
+  --host=HOST             configure for HOST [guessed]
+  --target=TARGET         configure for TARGET [TARGET=HOST]
+Features and packages:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --x-includes=DIR        X include files are in DIR
+  --x-libraries=DIR       X library files are in DIR
+--enable and --with options recognized:$ac_help"
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=NONE
+silent=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Initialize some other variables.
+subdirs=
+
+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
+
+  case "$ac_option" in
+  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) ac_optarg= ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case "$ac_option" in
+
+  -build | --build | --buil | --bui | --bu | --b)
+    ac_prev=build ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=* | --b=*)
+    build="$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" ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    eval "enable_${ac_feature}=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) 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)
+    cat << EOF
+$ac_usage
+EOF
+    exit 0 ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host="$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)
+    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 ;;
+
+  -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 ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir="$ac_optarg" ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target="$ac_optarg" ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers)
+    echo "configure generated by autoconf version 1.119"
+    exit 0 ;;
+
+  -with-* | --with-*)
+    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_${ac_package}='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    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 "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+    ;;
+
+  *) 
+    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+      echo "configure: warning: $ac_option: invalid host type" 1>&2
+    fi
+    if test "x$nonopt" != xNONE; then
+      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+    fi
+    nonopt="$ac_option"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 unused; standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 unused; some systems may open it to /dev/tty
+# 4 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+  exec 4>/dev/null
+else
+  exec 4>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+  case "$ac_arg" in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+  esac
+done
+
+# NLS nuisances.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+
+# 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
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=sprintf.c
+
+# 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_prog=$0
+  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+  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 "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+  else
+    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+  fi
+fi
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE=$prefix/lib/config.site
+  else
+    CONFIG_SITE=/usr/local/lib/config.site
+  fi
+  # System dependent files override system independent ones.
+  if test "x$exec_prefix" != xNONE && test "x$exec_prefix" != "x$prefix"; then
+    CONFIG_SITE="$CONFIG_SITE $exec_prefix/lib/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    echo "loading site script $ac_site_file"
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  echo "loading cache $cache_file"
+  . $cache_file
+else
+  echo "creating cache $cache_file"
+  > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_link='${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext -o conftest $LIBS 1>&5 2>&5'
+
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+    ac_n= ac_c='
+' ac_t='	'
+  else
+    ac_n=-n ac_c= ac_t=
+  fi
+else
+  ac_n= ac_c='\c' ac_t=
+fi
+
+
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="gcc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="cc"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&4
+else
+  echo "$ac_t""no" 1>&4
+fi
+
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_prog_gcc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  cat > conftest.c <<EOF
+#ifdef __GNUC__
+  yes
+#endif
+EOF
+if ${CC-cc} -E conftest.c 2>&5 | egrep yes >/dev/null 2>&1; then
+  ac_cv_prog_gcc=yes
+else
+  ac_cv_prog_gcc=no
+fi
+fi
+echo "$ac_t""$ac_cv_prog_gcc" 1>&4
+if test $ac_cv_prog_gcc = yes; then
+  GCC=yes
+  if test "${CFLAGS+set}" != set; then
+    echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_prog_gcc_g'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+  ac_cv_prog_gcc_g=yes
+else
+  ac_cv_prog_gcc_g=no
+fi
+rm -f conftest*
+
+fi
+    echo "$ac_t""$ac_cv_prog_gcc_g" 1>&4
+    if test $ac_cv_prog_gcc_g = yes; then
+      CFLAGS="-g -O"
+    else
+      CFLAGS="-O"
+    fi
+  fi
+else
+  GCC=
+  test "${CFLAGS+set}" = set || CFLAGS="-g"
+fi
+
+# Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&4
+if eval "test \"`echo '${'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&4
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_RANLIB="ranlib"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+  echo "$ac_t""$RANLIB" 1>&4
+else
+  echo "$ac_t""no" 1>&4
+fi
+
+
+
+trap '' 1 2 15
+if test -w $cache_file; then
+echo "updating cache $cache_file"
+cat > $cache_file <<\EOF
+# 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.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# Ultrix sh set writes to stderr and can't be redirected directly.
+(set) 2>&1 |
+  sed -n "s/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/: \${\1='\2'}/p" \
+  >> $cache_file
+else
+echo "not updating unwritable cache $cache_file"
+fi
+
+trap 'rm -fr conftest* confdefs* core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=/usr/local
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+cat > conftest.defs <<\EOF
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) \(.*\)%-D\1=\2%g
+s%[ 	`~#$^&*(){}\\|;'"<>?]%\\&%g
+s%\[%\\&%g
+s%\]%\\&%g
+s%\$%$$%g
+EOF
+DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+rm -f conftest.defs
+
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#!/bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+  case "\$ac_option" in
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+    echo "$CONFIG_STATUS generated by autoconf version 1.119"
+    exit 0 ;;
+  -help | --help | --hel | --he | --h)
+    echo "\$ac_cs_usage"; exit 0 ;;
+  *) echo "\$ac_cs_usage"; exit 1 ;;
+  esac
+done
+
+ac_given_srcdir=$srcdir
+
+trap 'rm -f Makefile; exit 1' 1 2 15
+
+# Protect against being on the right side of a sed subst in config.status. 
+sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\\\&%]/\\\\&/g; 
+ s/@@/%@/; s/@@/@%/; s/@g$/%g/' > conftest.subs <<\CEOF
+$ac_vpsub
+$extrasub
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@CC@%$CC%g
+s%@RANLIB@%$RANLIB%g
+
+CEOF
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  # Adjust relative srcdir, etc. for subdirectories.
+
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+    # The file is in a subdirectory.
+    test ! -d "$ac_dir" && mkdir "$ac_dir"
+    ac_dir_suffix="/$ac_dir"
+    # A "../" for each directory in $ac_dir_suffix.
+    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+  else
+    ac_dir_suffix= ac_dots=
+  fi
+
+  case "$ac_given_srcdir" in
+  .)  srcdir=.
+      if test -z "$ac_dots"; then top_srcdir=.
+      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+  *) # Relative path.
+    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
+
+  echo creating "$ac_file"
+  rm -f "$ac_file"
+  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+  case "$ac_file" in
+  *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+  *) ac_comsub= ;;
+  esac
+  sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+" -f conftest.subs $ac_given_srcdir/$ac_file_in > $ac_file
+fi; done
+rm -f conftest.subs
+
+
+echo FOO >stamp-h 
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS
+
+
+
diff --git a/src/modules/sprintf/dependencies b/src/modules/sprintf/dependencies
new file mode 100644
index 0000000000000000000000000000000000000000..41099fa0369fd9b4fe6ed2a93d8d1fcaef267bff
--- /dev/null
+++ b/src/modules/sprintf/dependencies
@@ -0,0 +1,15 @@
+sprintf.o: sprintf.c \
+  global.h \
+  config.h machine.h \
+  port.h \
+  error.h \
+  svalue.h \
+  array.h \
+  las.h \
+  dynamic_buffer.h \
+  program.h \
+  stralloc.h \
+  lpc_types.h \
+  add_efun.h \
+  hashtable.h \
+  interpret.h
diff --git a/src/modules/sprintf/stamp-h b/src/modules/sprintf/stamp-h
new file mode 100644
index 0000000000000000000000000000000000000000..b7d6715e2df11b9c32b2341423273c6b3ad9ae8a
--- /dev/null
+++ b/src/modules/sprintf/stamp-h
@@ -0,0 +1 @@
+FOO
diff --git a/src/stamp-h b/src/stamp-h
new file mode 100644
index 0000000000000000000000000000000000000000..b7d6715e2df11b9c32b2341423273c6b3ad9ae8a
--- /dev/null
+++ b/src/stamp-h
@@ -0,0 +1 @@
+FOO